- 🟢 SDK:使用官方 SDK 實作
- 🟡 Custom:自訂 HTTP 請求實作(重用 SDK 的認證機制)
- 🔴 Mixed:部分功能使用 SDK,部分需要自訂實作
針對某個 repo 可以使用的 label
- 列出 Label 🟢
GET /repos/{owner}/{repo}/labels- SDK:
ListRepoLabels(owner, repo string, opt ListLabelsOptions) ([]*Label, *Response, error)
- 修改可用的 label 的名稱、說明、顏色 🟢
PATCH /repos/{owner}/{repo}/labels/{id}- SDK:
EditLabel(owner, repo string, id int64, opt EditLabelOption) (*Label, *Response, error)
- 新增或刪除 label 🟢
POST /repos/{owner}/{repo}/labels- SDK:
CreateLabel(owner, repo string, opt CreateLabelOption) (*Label, *Response, error) DELETE /repos/{owner}/{repo}/labels/{id}- SDK:
DeleteLabel(owner, repo string, id int64) (*Response, error)
- 列出 Milestone
GET /repos/{owner}/{repo}/milestones- SDK:
ListRepoMilestones(owner, repo string, opt ListMilestoneOption) ([]*Milestone, *Response, error)
- 建立、刪除、修改 milestone (包括標題、到期時間和說明)
POST /repos/{owner}/{repo}/milestones- SDK:
CreateMilestone(owner, repo string, opt CreateMilestoneOption) (*Milestone, *Response, error) DELETE /repos/{owner}/{repo}/milestones/{id}- SDK:
DeleteMilestone(owner, repo string, id int64) (*Response, error) PATCH /repos/{owner}/{repo}/milestones/{id}- SDK:
EditMilestone(owner, repo string, id int64, opt EditMilestoneOption) (*Milestone, *Response, error)
- 列出 Repository Issues 🟢
GET /repos/{owner}/{repo}/issues- SDK:
ListRepoIssues(owner, repo string, opt ListIssueOption) ([]*Issue, *Response, error) - 支援篩選: state, labels, milestones, assignees, search, date filters
- 取得特定 Issue 詳細資訊 🟢
GET /repos/{owner}/{repo}/issues/{index}- SDK:
GetIssue(owner, repo string, index int64) (*Issue, *Response, error)
- 列出 Issue 評論 🟢
GET /repos/{owner}/{repo}/issues/{index}/comments- SDK:
ListIssueComments(owner, repo string, index int64, opt ListIssueCommentOptions) ([]*Comment, *Response, error)
- 建立新的 issue 🟢
POST /repos/{owner}/{repo}/issues- SDK:
CreateIssue(owner, repo string, opt CreateIssueOption) (*Issue, *Response, error)
- 在現有的 issue 上留言 🟢
POST /repos/{owner}/{repo}/issues/{index}/comments- SDK:
CreateIssueComment(owner, repo string, index int64, opt CreateIssueCommentOption) (*Comment, *Response, error)
- 關閉 issue 🟢
PATCH /repos/{owner}/{repo}/issues/{index}(設定state為closed)- SDK:
EditIssue(owner, repo string, index int64, opt EditIssueOption) (*Issue, *Response, error)
- 修改 issue 資料 🟢
- 說明:
PATCH /repos/{owner}/{repo}/issues/{index}(修改body) - SDK:
EditIssue(owner, repo string, index int64, opt EditIssueOption) (*Issue, *Response, error) - label: 🟢
POST /repos/{owner}/{repo}/issues/{index}/labels(新增)- SDK:
AddIssueLabels(owner, repo string, index int64, opt IssueLabelsOption) ([]*Label, *Response, error) DELETE /repos/{owner}/{repo}/issues/{index}/labels/{id}(移除)- SDK:
DeleteIssueLabel(owner, repo string, index, label int64) (*Response, error) PUT /repos/{owner}/{repo}/issues/{index}/labels(取代)- SDK:
ReplaceIssueLabels(owner, repo string, index int64, opt IssueLabelsOption) ([]*Label, *Response, error)
- 負責人: 🟢
PATCH /repos/{owner}/{repo}/issues/{index}(修改assignees) - SDK:
EditIssue(owner, repo string, index int64, opt EditIssueOption) (*Issue, *Response, error) - milestone: 🟢
PATCH /repos/{owner}/{repo}/issues/{index}(修改milestone) - SDK:
EditIssue(owner, repo string, index int64, opt EditIssueOption) (*Issue, *Response, error) - 到期時間: 🟢
PATCH /repos/{owner}/{repo}/issues/{index}(修改due_date) - SDK:
EditIssue(owner, repo string, index int64, opt EditIssueOption) (*Issue, *Response, error) - 依賴管理: 🟡
- 依賴關係 (阻塞當前 issue 的其他 issues):
- 新增依賴:
POST /repos/{owner}/{repo}/issues/{index}/dependencies - Custom: SDK 無支援,需自訂 HTTP 請求
- 列出依賴:
GET /repos/{owner}/{repo}/issues/{index}/dependencies - Custom: SDK 無支援,需自訂 HTTP 請求
- 移除依賴:
DELETE /repos/{owner}/{repo}/issues/{index}/dependencies(透過 request body) - Custom: SDK 無支援,需自訂 HTTP 請求
- 新增依賴:
- 阻塞關係 (被當前 issue 阻塞的其他 issues):
- 新增阻塞:
POST /repos/{owner}/{repo}/issues/{index}/blocks - Custom: SDK 無支援,需自訂 HTTP 請求
- 列出阻塞:
GET /repos/{owner}/{repo}/issues/{index}/blocks - Custom: SDK 無支援,需自訂 HTTP 請求
- 移除阻塞:
DELETE /repos/{owner}/{repo}/issues/{index}/blocks(透過 request body) - Custom: SDK 無支援,需自訂 HTTP 請求
- 新增阻塞:
- 依賴關係 (阻塞當前 issue 的其他 issues):
- 說明:
- 編輯 Issue 評論 🟢
PATCH /repos/{owner}/{repo}/issues/comments/{id}- SDK:
EditIssueComment(owner, repo string, commentID int64, opt EditIssueCommentOption) (*Comment, *Response, error)
- 刪除 Issue 評論 🟢
DELETE /repos/{owner}/{repo}/issues/comments/{id}- SDK:
DeleteIssueComment(owner, repo string, commentID int64) (*Response, error)
- 附件管理 🟡
- 列出附件:
GET /repos/{owner}/{repo}/issues/{index}/assets - Custom: SDK 無支援,需自訂 HTTP 請求
- 刪除附件:
DELETE /repos/{owner}/{repo}/issues/{index}/assets/{attachment_id} - Custom: SDK 無支援,需自訂 HTTP 請求
- 修改附件:
PATCH /repos/{owner}/{repo}/issues/{index}/assets/{attachment_id} - Custom: SDK 無支援,需自訂 HTTP 請求
- 列出附件:
- 查詢頁面
GET /repos/{owner}/{repo}/wiki/page/{pageName}- Custom: SDK 無支援,需自訂 HTTP 請求
- 頁面列表
GET /repos/{owner}/{repo}/wiki/pages- Custom: SDK 無支援,需自訂 HTTP 請求
- 新增、刪除、修改頁面
POST /repos/{owner}/{repo}/wiki/new- Custom: SDK 無支援,需自訂 HTTP 請求
DELETE /repos/{owner}/{repo}/wiki/page/{pageName}- Custom: SDK 無支援,需自訂 HTTP 請求
PATCH /repos/{owner}/{repo}/wiki/page/{pageName}- Custom: SDK 無支援,需自訂 HTTP 請求
- 列出 Release
GET /repos/{owner}/{repo}/releases- SDK:
ListReleases(owner, repo string, opt ListReleasesOptions) ([]*Release, *Response, error)
- 建立、刪除、修改 release
POST /repos/{owner}/{repo}/releases- SDK:
CreateRelease(owner, repo string, opt CreateReleaseOption) (*Release, *Response, error) DELETE /repos/{owner}/{repo}/releases/{id}- SDK:
DeleteRelease(user, repo string, id int64) (*Response, error) PATCH /repos/{owner}/{repo}/releases/{id}- SDK:
EditRelease(owner, repo string, id int64, form EditReleaseOption) (*Release, *Response, error)
- 附件管理
- 列出附件:
GET /repos/{owner}/{repo}/releases/{id}/assets - SDK:
ListReleaseAttachments(user, repo string, release int64, opt ListReleaseAttachmentsOptions) ([]*Attachment, *Response, error) - 刪除附件:
DELETE /repos/{owner}/{repo}/releases/{id}/assets/{attachment_id} - SDK:
DeleteReleaseAttachment(user, repo string, release, id int64) (*Response, error) - 修改附件:
PATCH /repos/{owner}/{repo}/releases/{id}/assets/{attachment_id} - SDK:
EditReleaseAttachment(user, repo string, release, attachment int64, form EditAttachmentOptions) (*Attachment, *Response, error)
- 列出附件:
- 列出及查詢 PR
GET /repos/{owner}/{repo}/pulls- SDK:
ListRepoPullRequests(owner, repo string, opt ListPullRequestsOptions) ([]*PullRequest, *Response, error) GET /repos/{owner}/{repo}/pulls/{index}- SDK:
GetPullRequest(owner, repo string, index int64) (*PullRequest, *Response, error)
- 列出及查詢 repo
GET /repos/search- SDK:
SearchRepos(opt SearchRepoOptions) ([]*Repository, *Response, error) GET /user/repos- SDK:
ListMyRepos(opt ListReposOptions) ([]*Repository, *Response, error) GET /orgs/{org}/repos- SDK:
ListOrgRepos(org string, opt ListOrgReposOptions) ([]*Repository, *Response, error)
- 取得特定 Repository 資訊 🟢
GET /repos/{owner}/{repo}- SDK:
GetRepo(owner, repo string) (*Repository, *Response, error)
- 列出 Action 執行任務
GET /repos/{owner}/{repo}/actions/tasks- Custom: SDK 無支援,需自訂 HTTP 請求
- 🟢 完全支援 (5/7):Label、Milestone、Release、PR、Repo 管理
- 🔴 部分支援 (1/7):Issue 功能(附件、依賴需自訂)
- 🟡 需自訂實作 (2/7):Wiki、Forgejo Actions
建議采用 Hybrid 模式:約 71% 的功能可使用 SDK,剩餘功能自訂 HTTP 請求。