diff --git a/skills/gitea/references/issues.md b/skills/gitea/references/issues.md new file mode 100644 index 0000000..bddaed8 --- /dev/null +++ b/skills/gitea/references/issues.md @@ -0,0 +1,106 @@ +# Issues API reference + +Base: `https://git.mpm.to/api/v1` + +## List issues for a repository + +```bash +curl -s -H "Authorization: token e82a7235b948fbbeea60329422fcac89fa5a5ce8" \ + "https://git.mpm.to/api/v1/repos/{owner}/{repo}/issues?type=issues&state=open&limit=50&page=1" +``` + +Query params: +- `state`: `open` | `closed` | `all` (default: `open`) +- `type`: `issues` | `pulls` (use `issues` to exclude PRs) +- `labels`: comma-separated label names to filter +- `assignee`: filter by username +- `milestone`: milestone ID +- `q`: search keyword + +Key response fields per issue: `number`, `title`, `body`, `state`, `user.login`, `assignees`, `labels`, `milestone`, `created_at`, `updated_at`, `html_url`. + +## Get a single issue + +```bash +curl -s -H "Authorization: token e82a7235b948fbbeea60329422fcac89fa5a5ce8" \ + "https://git.mpm.to/api/v1/repos/{owner}/{repo}/issues/{index}" +``` + +## Create an issue + +```bash +curl -s -X POST \ + -H "Authorization: token e82a7235b948fbbeea60329422fcac89fa5a5ce8" \ + -H "Content-Type: application/json" \ + -d '{ + "title": "Issue title", + "body": "Issue description (markdown supported)", + "assignees": ["username1"], + "labels": [123], + "milestone": 1 + }' \ + "https://git.mpm.to/api/v1/repos/{owner}/{repo}/issues" +``` + +Note: `labels` takes an array of label IDs (integers), not names. Fetch label IDs first if needed: +```bash +curl -s -H "Authorization: token e82a7235b948fbbeea60329422fcac89fa5a5ce8" \ + "https://git.mpm.to/api/v1/repos/{owner}/{repo}/labels" +``` + +## Update an issue (edit title, body, state, assignees) + +```bash +curl -s -X PATCH \ + -H "Authorization: token e82a7235b948fbbeea60329422fcac89fa5a5ce8" \ + -H "Content-Type: application/json" \ + -d '{ + "title": "Updated title", + "body": "Updated body", + "state": "closed" + }' \ + "https://git.mpm.to/api/v1/repos/{owner}/{repo}/issues/{index}" +``` + +Use `"state": "closed"` to close an issue, `"state": "open"` to reopen. + +## Add a comment to an issue + +```bash +curl -s -X POST \ + -H "Authorization: token e82a7235b948fbbeea60329422fcac89fa5a5ce8" \ + -H "Content-Type: application/json" \ + -d '{"body": "Comment text (markdown supported)"}' \ + "https://git.mpm.to/api/v1/repos/{owner}/{repo}/issues/{index}/comments" +``` + +## List comments on an issue + +```bash +curl -s -H "Authorization: token e82a7235b948fbbeea60329422fcac89fa5a5ce8" \ + "https://git.mpm.to/api/v1/repos/{owner}/{repo}/issues/{index}/comments" +``` + +## Add labels to an issue + +```bash +curl -s -X POST \ + -H "Authorization: token e82a7235b948fbbeea60329422fcac89fa5a5ce8" \ + -H "Content-Type: application/json" \ + -d '{"labels": [123, 456]}' \ + "https://git.mpm.to/api/v1/repos/{owner}/{repo}/issues/{index}/labels" +``` + +## List all labels for a repo + +```bash +curl -s -H "Authorization: token e82a7235b948fbbeea60329422fcac89fa5a5ce8" \ + "https://git.mpm.to/api/v1/repos/{owner}/{repo}/labels" +``` + +## List issues across all repos (authenticated user) + +```bash +curl -s -H "Authorization: token e82a7235b948fbbeea60329422fcac89fa5a5ce8" \ + "https://git.mpm.to/api/v1/repos/issues/search?state=open&type=comment&limit=50" +```