From e2052d903f19434ef251fe0ef7ac4296b56ead97 Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Mon, 24 Aug 2026 17:21:20 +0000 Subject: [PATCH] chore(deps): update dependencies (#243) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This PR contains the following updates: | Package | Type | Update | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) | |---|---|---|---|---|---| | [docker/setup-buildx-action](https://github.com/docker/setup-buildx-action) ([changelog](https://github.com/docker/setup-buildx-action/compare/bb05f3f5519dd87d3ba754cc423b652a5edd6d2c..37fe631027851001ddb9b187196cc803df7f5f0e)) | action | digest | `bb05f3f` → `37fe631` | | | | [go](https://go.dev/) ([source](https://github.com/golang/go)) | toolchain | minor | `1.26.6` → `1.27.0` | ![age](https://developer.mend.io/api/mc/badges/age/golang-version/go/1.27.0?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/golang-version/go/1.26.6/1.27.0?slim=true) | | golang.org/x/vuln | | minor | `v1.6.0` → `v1.7.0` | ![age](https://developer.mend.io/api/mc/badges/age/go/golang.org%2fx%2fvuln/v1.7.0?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/go/golang.org%2fx%2fvuln/v1.6.0/v1.7.0?slim=true) | --- ### Configuration 📅 **Schedule**: (UTC) - Branch creation - Between 12:00 AM and 03:59 AM, only on Monday (`* 0-3 * * 1`) - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://github.com/renovatebot/renovate). --------- Co-authored-by: silverwind Reviewed-on: https://gitea.com/gitea/gitea-mcp/pulls/243 Reviewed-by: Lunny Xiao Co-authored-by: Renovate Bot --- .gitea/workflows/release-nightly.yml | 2 +- .gitea/workflows/release-tag.yml | 2 +- .golangci.yml | 5 +++-- BUILDING.md | 2 +- Dockerfile | 2 +- Makefile | 4 ++-- README.md | 2 +- README.zh-cn.md | 2 +- README.zh-tw.md | 2 +- go.mod | 12 +++++------ go.sum | 16 +++++++-------- operation/actions/config.go | 6 +++--- operation/issue/issue.go | 6 ++---- operation/label/label.go | 12 ++++------- operation/milestone/milestone.go | 10 ++++----- operation/notification/notification.go | 6 ++---- operation/pull/pull.go | 16 ++++++--------- operation/repo/branch.go | 6 ++---- operation/repo/commit.go | 10 ++++----- operation/repo/file.go | 8 +++----- operation/repo/release.go | 6 ++---- operation/repo/repo.go | 12 ++++------- operation/repo/tag.go | 6 ++---- operation/repo/tree.go | 6 ++---- operation/search/search.go | 28 +++++++++----------------- operation/timetracking/timetracking.go | 12 ++++------- operation/user/user.go | 6 ++---- pkg/gitea/attachment_test.go | 3 +-- pkg/gitea/rest.go | 3 +-- pkg/tool/tool.go | 3 +-- 30 files changed, 85 insertions(+), 131 deletions(-) diff --git a/.gitea/workflows/release-nightly.yml b/.gitea/workflows/release-nightly.yml index f5378e6..9f46795 100644 --- a/.gitea/workflows/release-nightly.yml +++ b/.gitea/workflows/release-nightly.yml @@ -22,7 +22,7 @@ jobs: uses: docker/setup-qemu-action@96fe6ef7f33517b61c61be40b68a1882f3264fb8 # v4 - name: Set up Docker BuildX - uses: docker/setup-buildx-action@bb05f3f5519dd87d3ba754cc423b652a5edd6d2c # v4 + uses: docker/setup-buildx-action@37fe631027851001ddb9b187196cc803df7f5f0e # v4 - name: Login to DockerHub uses: docker/login-action@dbcb813823bdd20940b903addbd779551569679f # v4 diff --git a/.gitea/workflows/release-tag.yml b/.gitea/workflows/release-tag.yml index 36847fe..4b200b1 100644 --- a/.gitea/workflows/release-tag.yml +++ b/.gitea/workflows/release-tag.yml @@ -66,7 +66,7 @@ jobs: uses: docker/setup-qemu-action@96fe6ef7f33517b61c61be40b68a1882f3264fb8 # v4 - name: Set up Docker BuildX - uses: docker/setup-buildx-action@bb05f3f5519dd87d3ba754cc423b652a5edd6d2c # v4 + uses: docker/setup-buildx-action@37fe631027851001ddb9b187196cc803df7f5f0e # v4 - name: Login to DockerHub uses: docker/login-action@dbcb813823bdd20940b903addbd779551569679f # v4 diff --git a/.golangci.yml b/.golangci.yml index f62038f..9960578 100644 --- a/.golangci.yml +++ b/.golangci.yml @@ -74,7 +74,7 @@ linters: arguments: - [] # AllowList - do not remove as args for the rule are positional and won't work without lists first - [] # DenyList - - - skip-package-name-checks: true + - - skip-initialism-name-checks: true staticcheck: checks: - all @@ -110,7 +110,8 @@ formatters: - blank - default gofumpt: - extra-rules: true + extra: + group-params: true exclusions: generated: lax run: diff --git a/BUILDING.md b/BUILDING.md index 08bdc3f..7d94add 100644 --- a/BUILDING.md +++ b/BUILDING.md @@ -4,7 +4,7 @@ This project includes PowerShell and batch scripts to build the gitea-mcp applic ## Prerequisites -- Go 1.26 or later +- Go 1.27 or later - Git (for version information) - PowerShell 5.1 or later (included with Windows 10/11) diff --git a/Dockerfile b/Dockerfile index 59736f6..787b981 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,7 +1,7 @@ # syntax=docker/dockerfile:1.26 # Build stage -FROM --platform=$BUILDPLATFORM golang:1.26-alpine AS builder +FROM --platform=$BUILDPLATFORM golang:1.27-alpine AS builder ARG VERSION=dev ARG TARGETOS diff --git a/Makefile b/Makefile index 93f5223..8351dfc 100644 --- a/Makefile +++ b/Makefile @@ -3,8 +3,8 @@ EXECUTABLE := gitea-mcp VERSION ?= $(shell git describe --tags --always | sed 's/-/+/' | sed 's/^v//') LDFLAGS := -X "main.Version=$(VERSION)" -GOLANGCI_LINT_PACKAGE ?= github.com/golangci/golangci-lint/v2/cmd/golangci-lint@v2.12.2 # renovate: datasource=go -GOVULNCHECK_PACKAGE ?= golang.org/x/vuln/cmd/govulncheck@v1.6.0 # renovate: datasource=go +GOLANGCI_LINT_PACKAGE ?= github.com/golangci/golangci-lint/v2/cmd/golangci-lint@v2.13.1 # renovate: datasource=go +GOVULNCHECK_PACKAGE ?= golang.org/x/vuln/cmd/govulncheck@v1.7.0 # renovate: datasource=go GOTEST_FLAGS ?= -race -timeout 20m diff --git a/README.md b/README.md index 91311de..a550a34 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,7 @@ ## Installation -Download a binary from the [releases page](https://gitea.com/gitea/gitea-mcp/releases) and put it in your `PATH`, use the `docker.gitea.com/gitea-mcp-server` image, or build from source into `$GOPATH/bin` with `make` and Go 1.26 or later: +Download a binary from the [releases page](https://gitea.com/gitea/gitea-mcp/releases) and put it in your `PATH`, use the `docker.gitea.com/gitea-mcp-server` image, or build from source into `$GOPATH/bin` with `make` and Go 1.27 or later: ```bash git clone https://gitea.com/gitea/gitea-mcp.git diff --git a/README.zh-cn.md b/README.zh-cn.md index deb926a..21f3f4f 100644 --- a/README.zh-cn.md +++ b/README.zh-cn.md @@ -8,7 +8,7 @@ ## 安装 -可从 [发布页面](https://gitea.com/gitea/gitea-mcp/releases) 下载二进制文件并放入 `PATH`,或使用 `docker.gitea.com/gitea-mcp-server` 镜像,也可用 `make` 和 Go 1.26 及以上从源码构建到 `$GOPATH/bin`: +可从 [发布页面](https://gitea.com/gitea/gitea-mcp/releases) 下载二进制文件并放入 `PATH`,或使用 `docker.gitea.com/gitea-mcp-server` 镜像,也可用 `make` 和 Go 1.27 及以上从源码构建到 `$GOPATH/bin`: ```bash git clone https://gitea.com/gitea/gitea-mcp.git diff --git a/README.zh-tw.md b/README.zh-tw.md index 9dc812e..ef79bbb 100644 --- a/README.zh-tw.md +++ b/README.zh-tw.md @@ -8,7 +8,7 @@ ## 安裝 -可從 [發布頁面](https://gitea.com/gitea/gitea-mcp/releases) 下載二進位檔並放入 `PATH`,或使用 `docker.gitea.com/gitea-mcp-server` 映像檔,也可用 `make` 與 Go 1.26 以上從原始碼建置到 `$GOPATH/bin`: +可從 [發布頁面](https://gitea.com/gitea/gitea-mcp/releases) 下載二進位檔並放入 `PATH`,或使用 `docker.gitea.com/gitea-mcp-server` 映像檔,也可用 `make` 與 Go 1.27 以上從原始碼建置到 `$GOPATH/bin`: ```bash git clone https://gitea.com/gitea/gitea-mcp.git diff --git a/go.mod b/go.mod index 58238da..c3d3f2f 100644 --- a/go.mod +++ b/go.mod @@ -1,8 +1,8 @@ module gitea.com/gitea/gitea-mcp -go 1.26.0 +go 1.27 -toolchain go1.26.6 +toolchain go1.27.0 require ( gitea.dev/sdk v1.2.0 @@ -17,14 +17,14 @@ require ( github.com/davidmz/go-pageant v1.0.2 // indirect github.com/google/jsonschema-go v0.4.3 // indirect github.com/hashicorp/go-version v1.9.0 // indirect - github.com/segmentio/asm v1.1.3 // indirect + github.com/segmentio/asm v1.2.1 // indirect github.com/segmentio/encoding v0.5.4 // indirect github.com/yosida95/uritemplate/v3 v3.0.2 // indirect go.uber.org/multierr v1.11.0 // indirect - golang.org/x/crypto v0.54.0 // indirect - golang.org/x/oauth2 v0.35.0 // indirect + golang.org/x/crypto v0.55.0 // indirect + golang.org/x/oauth2 v0.36.0 // indirect golang.org/x/sync v0.22.0 // indirect golang.org/x/sys v0.47.0 // indirect golang.org/x/time v0.15.0 // indirect - golang.org/x/tools v0.47.0 // indirect + golang.org/x/tools v0.49.0 // indirect ) diff --git a/go.sum b/go.sum index 648c0a0..7094c99 100644 --- a/go.sum +++ b/go.sum @@ -18,8 +18,8 @@ github.com/modelcontextprotocol/go-sdk v1.7.0 h1:yqjY2dsbKAC0LSuWZVBMrHgiG8ukXv6 github.com/modelcontextprotocol/go-sdk v1.7.0/go.mod h1:dL7u98E/zjJTGzEq+j30jQ8K2k1mb6LeAH4inEcSGts= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/segmentio/asm v1.1.3 h1:WM03sfUOENvvKexOLp+pCqgb/WDjsi7EK8gIsICtzhc= -github.com/segmentio/asm v1.1.3/go.mod h1:Ld3L4ZXGNcSLRg4JBsZ3//1+f/TjYl0Mzen/DQy1EJg= +github.com/segmentio/asm v1.2.1 h1:DTNbBqs57ioxAD4PrArqftgypG4/qNpXoJx8TVXxPR0= +github.com/segmentio/asm v1.2.1/go.mod h1:BqMnlJP91P8d+4ibuonYZw9mfnzI9HfxselHZr5aAcs= github.com/segmentio/encoding v0.5.4 h1:OW1VRern8Nw6ITAtwSZ7Idrl3MXCFwXHPgqESYfvNt0= github.com/segmentio/encoding v0.5.4/go.mod h1:HS1ZKa3kSN32ZHVZ7ZLPLXWvOVIiZtyJnO1gPH1sKt0= github.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu7U= @@ -37,11 +37,11 @@ go.uber.org/zap/exp v0.3.0/go.mod h1:5I384qq7XGxYyByIhHm6jg5CHkGY0nsTfbDLgDDlgJQ go.yaml.in/yaml/v3 v3.0.4 h1:tfq32ie2Jv2UxXFdLJdh3jXuOzWiL1fo0bu/FbuKpbc= go.yaml.in/yaml/v3 v3.0.4/go.mod h1:DhzuOOF2ATzADvBadXxruRBLzYTpT36CKvDb3+aBEFg= golang.org/x/crypto v0.0.0-20210513164829-c07d793c2f9a/go.mod h1:P+XmwS30IXTQdn5tA2iutPOUgjI07+tq3H3K9MVA1s8= -golang.org/x/crypto v0.54.0 h1:YLIA59K4fiNzHzjnZt2tUJQjQtUWfWbeHBqKtk3eScw= -golang.org/x/crypto v0.54.0/go.mod h1:KWL8ny2AZdGR2cWmzeHrp2azQPGogOv+HeQaVEXC2dk= +golang.org/x/crypto v0.55.0 h1:+KWHjbgOaAQ66dh/YlkZKHlz9ZUlq61AFirAR9ntP8M= +golang.org/x/crypto v0.55.0/go.mod h1:uq0V9dE/fzQuJtbnL+2EhWOE63vo164FY8xqEnV9xis= golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= -golang.org/x/oauth2 v0.35.0 h1:Mv2mzuHuZuY2+bkyWXIHMfhNdJAdwW3FuWeCPYN5GVQ= -golang.org/x/oauth2 v0.35.0/go.mod h1:lzm5WQJQwKZ3nwavOZ3IS5Aulzxi68dUSgRHujetwEA= +golang.org/x/oauth2 v0.36.0 h1:peZ/1z27fi9hUOFCAZaHyrpWG5lwe0RJEEEeH0ThlIs= +golang.org/x/oauth2 v0.36.0/go.mod h1:YDBUJMTkDnJS+A4BP4eZBjCqtokkg1hODuPjwiGPO7Q= golang.org/x/sync v0.22.0 h1:SZjpbeLmrCk4xhRSZFNZW5gFUeCeFgjekvI/+gfScek= golang.org/x/sync v0.22.0/go.mod h1:9xrNwdLfx4jkKbNva9FpL6vEN7evnE43NNNJQ2LF3+0= golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -54,8 +54,8 @@ golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/time v0.15.0 h1:bbrp8t3bGUeFOx08pvsMYRTCVSMk89u4tKbNOZbp88U= golang.org/x/time v0.15.0/go.mod h1:Y4YMaQmXwGQZoFaVFk4YpCt4FLQMYKZe9oeV/f4MSno= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.47.0 h1:7Kn5x/d1svx/PzryTsqeoZN4TZwqeH5pGWjefhLi/1Q= -golang.org/x/tools v0.47.0/go.mod h1:dFHnyTvFWY212G+h7ZY4Vsp/K3U4/7W9TyVaAul8uCA= +golang.org/x/tools v0.49.0 h1:3NI7VXzL9+1WZD52Dx2ttoPwD5DWrFGpl9mFZDlmisI= +golang.org/x/tools v0.49.0/go.mod h1:SJNXV9DBKT0UbdttsQjbfJlAE/q+y36++zo3uL3N0Oo= gopkg.in/natefinch/lumberjack.v2 v2.2.1 h1:bBRl1b0OH9s/DuPhuXpNl+VtCaJXFZ5/uEFST95x9zc= gopkg.in/natefinch/lumberjack.v2 v2.2.1/go.mod h1:YD8tP3GAjkrDg1eZH7EGmyESg/lsYskCTPBJVb9jqSc= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= diff --git a/operation/actions/config.go b/operation/actions/config.go index 41f70f4..761222e 100644 --- a/operation/actions/config.go +++ b/operation/actions/config.go @@ -148,7 +148,7 @@ func listRepoActionSecretsFn(ctx context.Context, args map[string]any) (*mcp.Cal } secrets, _, err := client.Actions.ListRepoSecrets(ctx, owner, repo, gitea_sdk.ListRepoActionsSecretOption{ - ListOptions: gitea_sdk.ListOptions{Page: page, PageSize: pageSize}, + Page: page, PageSize: pageSize, }) if err != nil { return to.ErrorResult(fmt.Errorf("list repo action secrets err: %v", err)) @@ -228,7 +228,7 @@ func listOrgActionSecretsFn(ctx context.Context, args map[string]any) (*mcp.Call } secrets, _, err := client.Actions.ListOrgSecrets(ctx, org, gitea_sdk.ListOrgActionsSecretOption{ - ListOptions: gitea_sdk.ListOptions{Page: page, PageSize: pageSize}, + Page: page, PageSize: pageSize, }) if err != nil { return to.ErrorResult(fmt.Errorf("list org action secrets err: %v", err)) @@ -428,7 +428,7 @@ func listOrgActionVariablesFn(ctx context.Context, args map[string]any) (*mcp.Ca return to.ErrorResult(fmt.Errorf("get gitea client err: %v", err)) } variables, _, err := client.Actions.ListOrgVariables(ctx, org, gitea_sdk.ListOrgActionsVariableOption{ - ListOptions: gitea_sdk.ListOptions{Page: page, PageSize: pageSize}, + Page: page, PageSize: pageSize, }) if err != nil { return to.ErrorResult(fmt.Errorf("list org action variables err: %v", err)) diff --git a/operation/issue/issue.go b/operation/issue/issue.go index e3703bc..e26795b 100644 --- a/operation/issue/issue.go +++ b/operation/issue/issue.go @@ -187,10 +187,8 @@ func listRepoIssuesFn(ctx context.Context, args map[string]any) (*mcp.CallToolRe State: gitea_sdk.StateType(state), Labels: labels, Milestones: milestones, - ListOptions: gitea_sdk.ListOptions{ - Page: page, - PageSize: pageSize, - }, + Page: page, + PageSize: pageSize, } switch args["type"] { case "issues": diff --git a/operation/label/label.go b/operation/label/label.go index 4a94a9f..34f3e22 100644 --- a/operation/label/label.go +++ b/operation/label/label.go @@ -116,10 +116,8 @@ func listRepoLabelsFn(ctx context.Context, args map[string]any) (*mcp.CallToolRe page, pageSize := params.GetPagination(args, 30) opt := gitea_sdk.ListLabelsOptions{ - ListOptions: gitea_sdk.ListOptions{ - Page: page, - PageSize: pageSize, - }, + Page: page, + PageSize: pageSize, } client, err := gitea.ClientFromContext(ctx) if err != nil { @@ -261,10 +259,8 @@ func listOrgLabelsFn(ctx context.Context, args map[string]any) (*mcp.CallToolRes page, pageSize := params.GetPagination(args, 30) opt := gitea_sdk.ListOrgLabelsOptions{ - ListOptions: gitea_sdk.ListOptions{ - Page: page, - PageSize: pageSize, - }, + Page: page, + PageSize: pageSize, } client, err := gitea.ClientFromContext(ctx) if err != nil { diff --git a/operation/milestone/milestone.go b/operation/milestone/milestone.go index 10947b4..d25e8e2 100644 --- a/operation/milestone/milestone.go +++ b/operation/milestone/milestone.go @@ -134,12 +134,10 @@ func listMilestonesFn(ctx context.Context, args map[string]any) (*mcp.CallToolRe name := params.GetOptionalString(args, "name", "") page, pageSize := params.GetPagination(args, 30) opt := gitea_sdk.ListMilestoneOption{ - State: gitea_sdk.StateType(state), - Name: name, - ListOptions: gitea_sdk.ListOptions{ - Page: page, - PageSize: pageSize, - }, + State: gitea_sdk.StateType(state), + Name: name, + Page: page, + PageSize: pageSize, } client, err := gitea.ClientFromContext(ctx) if err != nil { diff --git a/operation/notification/notification.go b/operation/notification/notification.go index d2c8dc9..1dcb72b 100644 --- a/operation/notification/notification.go +++ b/operation/notification/notification.go @@ -95,10 +95,8 @@ func notificationWriteFn(ctx context.Context, args map[string]any) (*mcp.CallToo func listNotificationsFn(ctx context.Context, args map[string]any) (*mcp.CallToolResult, error) { page, pageSize := params.GetPagination(args, 30) opt := gitea_sdk.ListNotificationOptions{ - ListOptions: gitea_sdk.ListOptions{ - Page: page, - PageSize: pageSize, - }, + Page: page, + PageSize: pageSize, } if status, ok := args["status"].(string); ok { opt.Status = []gitea_sdk.NotificationStatus{gitea_sdk.NotificationStatus(status)} diff --git a/operation/pull/pull.go b/operation/pull/pull.go index 7fb36b8..3997b1e 100644 --- a/operation/pull/pull.go +++ b/operation/pull/pull.go @@ -349,10 +349,8 @@ func listRepoPullRequestsFn(ctx context.Context, args map[string]any) (*mcp.Call State: gitea_sdk.StateType(state), Sort: sort, Milestone: milestone, - ListOptions: gitea_sdk.ListOptions{ - Page: page, - PageSize: pageSize, - }, + Page: page, + PageSize: pageSize, } client, err := gitea.ClientFromContext(ctx) if err != nil { @@ -509,10 +507,8 @@ func listPullRequestReviewsFn(ctx context.Context, args map[string]any) (*mcp.Ca } reviews, _, err := client.PullRequests.ListPullReviews(ctx, owner, repo, index, gitea_sdk.ListPullReviewsOptions{ - ListOptions: gitea_sdk.ListOptions{ - Page: page, - PageSize: pageSize, - }, + Page: page, + PageSize: pageSize, }) if err != nil { return to.ErrorResult(fmt.Errorf("list reviews for %v/%v/pr/%v err: %v", owner, repo, index, err)) @@ -578,7 +574,7 @@ func listPullRequestReviewCommentsFn(ctx context.Context, args map[string]any) ( } else { page, pageSize := params.GetPagination(args, 30) reviews, _, err := client.PullRequests.ListPullReviews(ctx, owner, repo, index, gitea_sdk.ListPullReviewsOptions{ - ListOptions: gitea_sdk.ListOptions{Page: page, PageSize: pageSize}, + Page: page, PageSize: pageSize, }) if err != nil { return to.ErrorResult(fmt.Errorf("list reviews for %v/%v/pr/%v err: %v", owner, repo, index, err)) @@ -1049,7 +1045,7 @@ func getPullRequestFilesFn(ctx context.Context, args map[string]any) (*mcp.CallT return to.ErrorResult(fmt.Errorf("get gitea client err: %v", err)) } files, _, err := client.PullRequests.ListPullRequestFiles(ctx, owner, repo, index, gitea_sdk.ListPullRequestFilesOptions{ - ListOptions: gitea_sdk.ListOptions{Page: page, PageSize: pageSize}, + Page: page, PageSize: pageSize, }) if err != nil { return to.ErrorResult(fmt.Errorf("get %v/%v/pr/%v files err: %v", owner, repo, index, err)) diff --git a/operation/repo/branch.go b/operation/repo/branch.go index 461752f..58e20cf 100644 --- a/operation/repo/branch.go +++ b/operation/repo/branch.go @@ -135,10 +135,8 @@ func ListBranchesFn(ctx context.Context, args map[string]any) (*mcp.CallToolResu } page, pageSize := params.GetPagination(args, 30) opt := gitea_sdk.ListRepoBranchesOptions{ - ListOptions: gitea_sdk.ListOptions{ - Page: page, - PageSize: pageSize, - }, + Page: page, + PageSize: pageSize, } client, err := gitea.ClientFromContext(ctx) if err != nil { diff --git a/operation/repo/commit.go b/operation/repo/commit.go index 8907ea7..395c5ce 100644 --- a/operation/repo/commit.go +++ b/operation/repo/commit.go @@ -69,12 +69,10 @@ func ListRepoCommitsFn(ctx context.Context, args map[string]any) (*mcp.CallToolR sha, _ := args["sha"].(string) path, _ := args["path"].(string) opt := gitea_sdk.ListCommitOptions{ - ListOptions: gitea_sdk.ListOptions{ - Page: page, - PageSize: pageSize, - }, - SHA: sha, - Path: path, + Page: page, + PageSize: pageSize, + SHA: sha, + Path: path, } client, err := gitea.ClientFromContext(ctx) if err != nil { diff --git a/operation/repo/file.go b/operation/repo/file.go index af10c07..3e3a075 100644 --- a/operation/repo/file.go +++ b/operation/repo/file.go @@ -266,11 +266,9 @@ func DeleteFileFn(ctx context.Context, args map[string]any) (*mcp.CallToolResult return to.ErrorResult(err) } opt := gitea_sdk.DeleteFileOptions{ - FileOptions: gitea_sdk.FileOptions{ - Message: message, - BranchName: branchName, - }, - SHA: sha, + Message: message, + BranchName: branchName, + SHA: sha, } client, err := gitea.ClientFromContext(ctx) if err != nil { diff --git a/operation/repo/release.go b/operation/repo/release.go index 59b5882..0b336ab 100644 --- a/operation/repo/release.go +++ b/operation/repo/release.go @@ -236,10 +236,8 @@ func ListReleasesFn(ctx context.Context, args map[string]any) (*mcp.CallToolResu return to.ErrorResult(fmt.Errorf("get gitea client err: %v", err)) } releases, _, err := client.Releases.ListReleases(ctx, owner, repo, gitea_sdk.ListReleasesOptions{ - ListOptions: gitea_sdk.ListOptions{ - Page: page, - PageSize: pageSize, - }, + Page: page, + PageSize: pageSize, IsDraft: params.GetOptionalBoolPtr(args, "is_draft"), IsPreRelease: params.GetOptionalBoolPtr(args, "is_pre_release"), }) diff --git a/operation/repo/repo.go b/operation/repo/repo.go index 5338924..7acae79 100644 --- a/operation/repo/repo.go +++ b/operation/repo/repo.go @@ -170,10 +170,8 @@ func ForkRepoFn(ctx context.Context, args map[string]any) (*mcp.CallToolResult, func ListMyReposFn(ctx context.Context, args map[string]any) (*mcp.CallToolResult, error) { page, pageSize := params.GetPagination(args, 30) opt := gitea_sdk.ListReposOptions{ - ListOptions: gitea_sdk.ListOptions{ - Page: page, - PageSize: pageSize, - }, + Page: page, + PageSize: pageSize, } client, err := gitea.ClientFromContext(ctx) if err != nil { @@ -194,10 +192,8 @@ func ListOrgReposFn(ctx context.Context, args map[string]any) (*mcp.CallToolResu } page, pageSize := params.GetPagination(args, 100) opt := gitea_sdk.ListOrgReposOptions{ - ListOptions: gitea_sdk.ListOptions{ - Page: page, - PageSize: pageSize, - }, + Page: page, + PageSize: pageSize, } client, err := gitea.ClientFromContext(ctx) if err != nil { diff --git a/operation/repo/tag.go b/operation/repo/tag.go index 43d9686..9453d63 100644 --- a/operation/repo/tag.go +++ b/operation/repo/tag.go @@ -185,10 +185,8 @@ func ListTagsFn(ctx context.Context, args map[string]any) (*mcp.CallToolResult, return to.ErrorResult(fmt.Errorf("get gitea client err: %v", err)) } tags, _, err := client.Repositories.ListRepoTags(ctx, owner, repo, gitea_sdk.ListRepoTagsOptions{ - ListOptions: gitea_sdk.ListOptions{ - Page: int(page), - PageSize: int(pageSize), - }, + Page: int(page), + PageSize: int(pageSize), }) if err != nil { return to.ErrorResult(fmt.Errorf("list tags error: %v", err)) diff --git a/operation/repo/tree.go b/operation/repo/tree.go index c10bcbd..f0cab09 100644 --- a/operation/repo/tree.go +++ b/operation/repo/tree.go @@ -54,10 +54,8 @@ func GetRepoTreeFn(ctx context.Context, args map[string]any) (*mcp.CallToolResul page, pageSize := params.GetPagination(args, 30) opt := gitea_sdk.ListTreeOptions{ - ListOptions: gitea_sdk.ListOptions{ - Page: page, - PageSize: pageSize, - }, + Page: page, + PageSize: pageSize, Ref: treeSHA, Recursive: recursive, } diff --git a/operation/search/search.go b/operation/search/search.go index 53faeb3..94203e8 100644 --- a/operation/search/search.go +++ b/operation/search/search.go @@ -102,11 +102,9 @@ func UsersFn(ctx context.Context, args map[string]any) (*mcp.CallToolResult, err } page, pageSize := params.GetPagination(args, 30) opt := gitea_sdk.SearchUsersOption{ - KeyWord: keyword, - ListOptions: gitea_sdk.ListOptions{ - Page: page, - PageSize: pageSize, - }, + KeyWord: keyword, + Page: page, + PageSize: pageSize, } client, err := gitea.ClientFromContext(ctx) if err != nil { @@ -133,10 +131,8 @@ func OrgTeamsFn(ctx context.Context, args map[string]any) (*mcp.CallToolResult, opt := gitea_sdk.SearchTeamsOptions{ Query: query, IncludeDescription: includeDescription, - ListOptions: gitea_sdk.ListOptions{ - Page: page, - PageSize: pageSize, - }, + Page: page, + PageSize: pageSize, } client, err := gitea.ClientFromContext(ctx) if err != nil { @@ -168,10 +164,8 @@ func ReposFn(ctx context.Context, args map[string]any) (*mcp.CallToolResult, err IsArchived: params.GetOptionalBoolPtr(args, "isArchived"), Sort: sort, Order: order, - ListOptions: gitea_sdk.ListOptions{ - Page: page, - PageSize: pageSize, - }, + Page: page, + PageSize: pageSize, } client, err := gitea.ClientFromContext(ctx) if err != nil { @@ -192,11 +186,9 @@ func IssuesFn(ctx context.Context, args map[string]any) (*mcp.CallToolResult, er page, pageSize := params.GetPagination(args, 30) opt := gitea_sdk.ListIssueOption{ - KeyWord: query, - ListOptions: gitea_sdk.ListOptions{ - Page: page, - PageSize: pageSize, - }, + KeyWord: query, + Page: page, + PageSize: pageSize, } if state, ok := args["state"].(string); ok { opt.State = gitea_sdk.StateType(state) diff --git a/operation/timetracking/timetracking.go b/operation/timetracking/timetracking.go index 819f877..2ec332a 100644 --- a/operation/timetracking/timetracking.go +++ b/operation/timetracking/timetracking.go @@ -200,10 +200,8 @@ func listTrackedTimesFn(ctx context.Context, args map[string]any) (*mcp.CallTool } times, _, err := client.Issues.ListIssueTrackedTimes(ctx, owner, repo, index, gitea_sdk.ListTrackedTimesOptions{ - ListOptions: gitea_sdk.ListOptions{ - Page: page, - PageSize: pageSize, - }, + Page: page, + PageSize: pageSize, }) if err != nil { return to.ErrorResult(fmt.Errorf("list tracked times for %s/%s#%d err: %v", owner, repo, index, err)) @@ -290,10 +288,8 @@ func listRepoTimesFn(ctx context.Context, args map[string]any) (*mcp.CallToolRes return to.ErrorResult(fmt.Errorf("get gitea client err: %v", err)) } times, _, err := client.Issues.ListRepoTrackedTimes(ctx, owner, repo, gitea_sdk.ListTrackedTimesOptions{ - ListOptions: gitea_sdk.ListOptions{ - Page: page, - PageSize: pageSize, - }, + Page: page, + PageSize: pageSize, }) if err != nil { return to.ErrorResult(fmt.Errorf("list repo tracked times for %s/%s err: %v", owner, repo, err)) diff --git a/operation/user/user.go b/operation/user/user.go index 03416b1..ac12417 100644 --- a/operation/user/user.go +++ b/operation/user/user.go @@ -59,10 +59,8 @@ func GetUserOrgsFn(ctx context.Context, args map[string]any) (*mcp.CallToolResul page, pageSize := params.GetPagination(args, 30) opt := gitea_sdk.ListOrgsOptions{ - ListOptions: gitea_sdk.ListOptions{ - Page: page, - PageSize: pageSize, - }, + Page: page, + PageSize: pageSize, } client, err := gitea.ClientFromContext(ctx) if err != nil { diff --git a/pkg/gitea/attachment_test.go b/pkg/gitea/attachment_test.go index 2685e4d..aff6f27 100644 --- a/pkg/gitea/attachment_test.go +++ b/pkg/gitea/attachment_test.go @@ -191,8 +191,7 @@ func TestDownloadAttachmentErrorsOnNon2xx(t *testing.T) { if status != http.StatusForbidden { t.Fatalf("status = %d, want %d", status, http.StatusForbidden) } - var httpErr *HTTPError - if !errors.As(err, &httpErr) { + if _, ok := errors.AsType[*HTTPError](err); !ok { t.Fatalf("expected HTTPError, got %T", err) } } diff --git a/pkg/gitea/rest.go b/pkg/gitea/rest.go index 76fe1ad..448cf96 100644 --- a/pkg/gitea/rest.go +++ b/pkg/gitea/rest.go @@ -236,8 +236,7 @@ func OpenAttachment(ctx context.Context, attachmentPath, accept string) (*Attach func DownloadAttachment(ctx context.Context, attachmentPath, accept string) ([]byte, string, int, error) { resp, err := OpenAttachment(ctx, attachmentPath, accept) if err != nil { - var httpErr *HTTPError - if errors.As(err, &httpErr) { + if httpErr, ok := errors.AsType[*HTTPError](err); ok { return nil, "", httpErr.StatusCode, err } return nil, "", 0, err diff --git a/pkg/tool/tool.go b/pkg/tool/tool.go index 2f15fec..87c6c1c 100644 --- a/pkg/tool/tool.go +++ b/pkg/tool/tool.go @@ -102,8 +102,7 @@ func (s ServerTool) MCPHandler() mcp.ToolHandler { result, err = s.Handler(ctx, arguments) if err != nil { - var protocolErr *jsonrpc.Error - if errors.As(err, &protocolErr) { + if _, ok := errors.AsType[*jsonrpc.Error](err); ok { return nil, err } return to.ErrorResult(err)