- Rename job from `release` to `goreleaser` in `release-tag.yml` - Change the tag pattern from `' * '` to `" * "` in `release-tag.yml` - Update job steps to better describe their actions in `release-tag.yml` - Replace build steps with GoReleaser action steps in `release-tag.yml` - Add configuration file `.goreleaser.yaml` for GoReleaser - Include hooks, builds, archives, changelog sorting, and release footer in `.goreleaser.yaml` Signed-off-by: appleboy <appleboy.tw@gmail.com>
## Why With the following configuration: ```bash docker run -i --rm -e GITEA_HOST=<gitea_host> -e GITEA_ACCESS_TOKEN=<gitea_access_token_for_host> docker.gitea.com/gitea-mcp-server:latest ``` after mcp-client calling a tool, the gitea client will encounter the following fatal error: ``` FATAL gitea/gitea.go:47 create gitea client err: user does not exist [uid: 0, name: ] gitea.com/gitea/gitea-mcp/pkg/gitea.Client.func1 /app/pkg/gitea/gitea.go:47 sync.(*Once).doSlow /usr/local/go/src/sync/once.go:78 sync.(*Once).Do /usr/local/go/src/sync/once.go:69 gitea.com/gitea/gitea-mcp/pkg/gitea.Client /app/pkg/gitea/gitea.go:21 gitea.com/gitea/gitea-mcp/operation/search.SearchReposFn /app/operation/search/search.go:161 github.com/mark3labs/mcp-go/server.(*MCPServer).handleToolCall /go/pkg/mod/github.com/mark3labs/mcp-go@v0.18.0/server/server.go:717 github.com/mark3labs/mcp-go/server.(*MCPServer).HandleMessage /go/pkg/mod/github.com/mark3labs/mcp-go@v0.18.0/server/request_handler.go:264 github.com/mark3labs/mcp-go/server.(*StdioServer).processMessage /go/pkg/mod/github.com/mark3labs/mcp-go@v0.18.0/server/stdio.go:228 github.com/mark3labs/mcp-go/server.(*StdioServer).processInputStream /go/pkg/mod/github.com/mark3labs/mcp-go@v0.18.0/server/stdio.go:143 github.com/mark3labs/mcp-go/server.(*StdioServer).Listen /go/pkg/mod/github.com/mark3labs/mcp-go@v0.18.0/server/stdio.go:209 github.com/mark3labs/mcp-go/server.ServeStdio /go/pkg/mod/github.com/mark3labs/mcp-go@v0.18.0/server/stdio.go:282 gitea.com/gitea/gitea-mcp/operation.Run /app/operation/operation.go:48 gitea.com/gitea/gitea-mcp/cmd.Execute /app/cmd/cmd.go:119 main.main /app/main.go:12 runtime.main /usr/local/go/src/runtime/proc.go:283 ``` Turns out the root cause was because the `GITEA_HOST` environment variable wasn't overriding the default flag value, resulting in mismatch of host and access token. The if statement won't be entered 7cfa1fa218/cmd/cmd.go (L74-L77) Due to `host` could never be evaluated as an empty string from the default value `"http://gitea.com"` 7cfa1fa218/cmd/cmd.go (L35-L40) Unless user specify `gitea-mcp ... --host <empty_string> ...` with environment `GITEA_HOST=<non_empty_string>` at the same time, which is very unlikely IMHO. ## How - Set `host` flag default value from `GITEA_HOST` environment variable value - Remove possible dead code if-statement Co-authored-by: hiifong <i@hiif.ong> Reviewed-on: #23 Reviewed-by: hiifong <i@hiif.ong> Co-authored-by: Flynn Hou <flynnhou7@gmail.com> Co-committed-by: Flynn Hou <flynnhou7@gmail.com>
After #20, `GITEA_INSECURE` flag is introduced. However, the READMEs referred to the wrong name. Replace GITEA_INTERACTIVE terms with `GITEA_INSECURE`. Reviewed-on: #22 Reviewed-by: techknowlogick <techknowlogick@noreply.gitea.com> Co-authored-by: Flynn Hou <flynnhou7@gmail.com> Co-committed-by: Flynn Hou <flynnhou7@gmail.com>
- Add `GITEA_INTERACTIVE` configuration example in README files - Add `insecure` flag to ignore TLS certificate errors in `cmd.go` - Set insecure mode based on `GITEA_INSECURE` environment variable in `cmd.go` - Add `Insecure` boolean variable in `pkg/flag/flag.go` - Import `crypto/tls` and `net/http` in `pkg/gitea/gitea.go` - Modify Gitea client creation to support insecure HTTP client in `pkg/gitea/gitea.go` Signed-off-by: Bo-Yi Wu <appleboy.tw@gmail.com> Reviewed-on: #20 Reviewed-by: Lunny Xiao <xiaolunwen@gmail.com> Co-authored-by: Bo-Yi Wu <appleboy.tw@gmail.com> Co-committed-by: Bo-Yi Wu <appleboy.tw@gmail.com>
- Switch base image from `golang:1.24-alpine` to `golang:1.24-bullseye` for the build stage - Update working directory from `/build` to `/app` - Separate the copying of go.mod and go.sum files before downloading dependencies - Add comments for build stages and process steps - Switch final stage base image from `ubuntu:24.04` to `debian:bullseye-slim` - Improve installation of ca-certificates and clean up the apt lists afterward - Create and switch to a non-root user named `gitea-mcp` - Change the file copy command to `--chown=1000:1000 /app/gitea-mcp` - Update `CMD` to use an absolute path `/app/gitea-mcp` Signed-off-by: appleboy <appleboy.tw@gmail.com> Reviewed-on: #19 Co-authored-by: appleboy <appleboy.tw@gmail.com> Co-committed-by: appleboy <appleboy.tw@gmail.com>
- Add links to traditional and simplified Chinese versions of the README. - Add README in Simplified Chinese with installation, usage, and troubleshooting instructions. - Add README in Traditional Chinese with installation, usage, and troubleshooting instructions. Signed-off-by: appleboy <appleboy.tw@gmail.com> Co-authored-by: hiifong <i@hiif.ong> Reviewed-on: #18 Co-authored-by: appleboy <appleboy.tw@gmail.com> Co-committed-by: appleboy <appleboy.tw@gmail.com>
- Add a `help` target to print a help message. - Add descriptions for the `build`, `air`, `dev`, and `vendor` targets. - Remove inline comments for the `air`, `dev`, and `vendor` targets. Signed-off-by: appleboy <appleboy.tw@gmail.com> Reviewed-on: #17 Co-authored-by: appleboy <appleboy.tw@gmail.com> Co-committed-by: appleboy <appleboy.tw@gmail.com>
- Add a "What is Gitea?" section explaining Gitea - Add a "What is MCP?" section describing Model Context Protocol - Reformat the MCP server configuration instructions for better readability - Correct the markdown table for tool support - Add a Troubleshooting section with common steps to resolve issues Signed-off-by: appleboy <appleboy.tw@gmail.com> Reviewed-on: #12 Reviewed-by: Lunny Xiao <xiaolunwen@gmail.com> Co-authored-by: appleboy <appleboy.tw@gmail.com> Co-committed-by: appleboy <appleboy.tw@gmail.com>