feat: add support for insecure mode in Gitea client configuration (#20)

- 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: https://gitea.com/gitea/gitea-mcp/pulls/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>
This commit is contained in:
Bo-Yi Wu
2025-04-08 01:16:37 +00:00
committed by Bo-Yi Wu (吳柏毅)
parent 1965c9830b
commit 8dc9ed9299
6 changed files with 37 additions and 6 deletions

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
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"
@@ -16,13 +18,27 @@ var (
func Client() *gitea.Client {
clientOnce.Do(func() {
if client == nil {
c, err := gitea.NewClient(flag.Host, gitea.SetToken(flag.Token))
var err error
if client != nil {
return
}
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))
}
client, err = gitea.NewClient(flag.Host, opts...)
if err != nil {
log.Fatalf("create gitea client err: %v", err)
}
client = c
}
})
return client
}