feat: add support for insecure mode in Gitea client configuration
All checks were successful
check-and-test / Run govulncheck (pull_request) Successful in 16s
check-and-test / check-and-test (pull_request) Successful in 18s

- 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>
This commit is contained in:
2025-04-08 09:01:06 +08:00
parent 1965c9830b
commit 8caefa8e6c

View File

@@ -109,6 +109,7 @@ To configure the MCP server for Gitea, add the following to your MCP configurati
],
"env": {
// "GITEA_HOST": "https://gitea.com",
// "GITEA_INTERACTIVE": "true",
"GITEA_ACCESS_TOKEN": "<your personal access token>"
}
}

View File

@@ -109,6 +109,7 @@ cp gitea-mcp /usr/local/bin/
],
"env": {
// "GITEA_HOST": "https://gitea.com",
// "GITEA_INTERACTIVE": "true",
"GITEA_ACCESS_TOKEN": "<your personal access token>"
}
}

View File

@@ -109,6 +109,7 @@ cp gitea-mcp /usr/local/bin/
],
"env": {
// "GITEA_HOST": "https://gitea.com",
// "GITEA_INTERACTIVE": "true",
"GITEA_ACCESS_TOKEN": "<your personal access token>"
}
}

View File

@@ -62,6 +62,12 @@ func init() {
true,
"debug mode",
)
flag.BoolVar(
&flagPkg.Insecure,
"insecure",
false,
"ignore TLS certificate errors",
)
flag.Parse()
@@ -88,6 +94,11 @@ func init() {
if !debug {
flagPkg.Debug = os.Getenv("GITEA_DEBUG") == "true"
}
// Set insecure mode based on environment variable
if os.Getenv("GITEA_INSECURE") == "true" {
flagPkg.Insecure = true
}
}
func Execute(version string) {

View File

@@ -7,5 +7,6 @@ var (
Version string
Mode string
Debug bool
Insecure bool
Debug bool
)

View File

@@ -1,6 +1,8 @@
package gitea
import (
"crypto/tls"
"net/http"
"sync"
"gitea.com/gitea/gitea-mcp/pkg/flag"
@@ -17,7 +19,20 @@ var (
func Client() *gitea.Client {
clientOnce.Do(func() {
if client == nil {
c, err := gitea.NewClient(flag.Host, gitea.SetToken(flag.Token))
opts := []gitea.ClientOption{
gitea.SetToken(flag.Token),
}
if flag.Insecure {
httpClient := &http.Client{
Transport: &http.Transport{
TLSClientConfig: &tls.Config{
InsecureSkipVerify: true,
},
},
}
opts = append(opts, gitea.SetHTTPClient(httpClient))
}
c, err := gitea.NewClient(flag.Host, opts...)
if err != nil {
log.Fatalf("create gitea client err: %v", err)
}