Skip to main content
Glama

forgejo-mcp

Mozilla Public License 2.0
9
features.tw.md9.29 kB
# 功能列表 ## 實作策略說明 - 🟢 **SDK**:使用官方 SDK 實作 - 🟡 **Custom**:自訂 HTTP 請求實作(重用 SDK 的認證機制) - 🔴 **Mixed**:部分功能使用 SDK,部分需要自訂實作 ### Label 相關功能 針對某個 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 相關功能 🟢 - **列出 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)` ### Issue 相關功能 🔴 - **列出 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 評論** 🟢 - `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 請求 ### Wiki 相關功能 🟡 - **查詢頁面** - `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 管理 🟢 - **列出 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 管理 🟢 - **列出及查詢 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 管理 🟢 - **列出及查詢 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)` ### Forgejo Actions (CI/CD) 🟡 - **列出 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 請求。

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/raohwork/forgejo-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server