mirror of
				https://gitea.com/gitea/gitea-mcp.git
				synced 2025-11-03 20:01:50 +00:00 
			
		
		
		
	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:
		@@ -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>"
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
 
 | 
			
		||||
@@ -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>"
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
 
 | 
			
		||||
@@ -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>"
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										11
									
								
								cmd/cmd.go
									
									
									
									
									
								
							
							
						
						
									
										11
									
								
								cmd/cmd.go
									
									
									
									
									
								
							@@ -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) {
 | 
			
		||||
 
 | 
			
		||||
@@ -7,5 +7,6 @@ var (
 | 
			
		||||
	Version string
 | 
			
		||||
	Mode    string
 | 
			
		||||
 | 
			
		||||
	Debug bool
 | 
			
		||||
	Insecure bool
 | 
			
		||||
	Debug    bool
 | 
			
		||||
)
 | 
			
		||||
 
 | 
			
		||||
@@ -1,6 +1,8 @@
 | 
			
		||||
package gitea
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"crypto/tls"
 | 
			
		||||
	"net/http"
 | 
			
		||||
	"sync"
 | 
			
		||||
 | 
			
		||||
	"gitea.com/gitea/gitea-mcp/pkg/flag"
 | 
			
		||||
@@ -16,12 +18,26 @@ var (
 | 
			
		||||
 | 
			
		||||
func Client() *gitea.Client {
 | 
			
		||||
	clientOnce.Do(func() {
 | 
			
		||||
		if client == nil {
 | 
			
		||||
			c, err := gitea.NewClient(flag.Host, gitea.SetToken(flag.Token))
 | 
			
		||||
			if err != nil {
 | 
			
		||||
				log.Fatalf("create gitea client err: %v", err)
 | 
			
		||||
		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,
 | 
			
		||||
					},
 | 
			
		||||
				},
 | 
			
		||||
			}
 | 
			
		||||
			client = c
 | 
			
		||||
			opts = append(opts, gitea.SetHTTPClient(httpClient))
 | 
			
		||||
		}
 | 
			
		||||
		client, err = gitea.NewClient(flag.Host, opts...)
 | 
			
		||||
		if err != nil {
 | 
			
		||||
			log.Fatalf("create gitea client err: %v", err)
 | 
			
		||||
		}
 | 
			
		||||
	})
 | 
			
		||||
	return client
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user