mirror of
https://gitea.com/gitea/gitea-mcp.git
synced 2025-08-23 14:23:05 +00:00
Fix: #35 Reviewed-on: https://gitea.com/gitea/gitea-mcp/pulls/36 Co-authored-by: hiifong <f@ilo.nz> Co-committed-by: hiifong <f@ilo.nz>
111 lines
1.7 KiB
Go
111 lines
1.7 KiB
Go
package cmd
|
|
|
|
import (
|
|
"context"
|
|
"flag"
|
|
"os"
|
|
|
|
"gitea.com/gitea/gitea-mcp/operation"
|
|
flagPkg "gitea.com/gitea/gitea-mcp/pkg/flag"
|
|
"gitea.com/gitea/gitea-mcp/pkg/log"
|
|
)
|
|
|
|
var (
|
|
host string
|
|
port int
|
|
token string
|
|
)
|
|
|
|
func init() {
|
|
flag.StringVar(
|
|
&flagPkg.Mode,
|
|
"t",
|
|
"stdio",
|
|
"Transport type (stdio or sse)",
|
|
)
|
|
flag.StringVar(
|
|
&flagPkg.Mode,
|
|
"transport",
|
|
"stdio",
|
|
"Transport type (stdio or sse)",
|
|
)
|
|
flag.StringVar(
|
|
&host,
|
|
"host",
|
|
os.Getenv("GITEA_HOST"),
|
|
"Gitea host",
|
|
)
|
|
flag.IntVar(
|
|
&port,
|
|
"port",
|
|
8080,
|
|
"sse port",
|
|
)
|
|
flag.StringVar(
|
|
&token,
|
|
"token",
|
|
"",
|
|
"Your personal access token",
|
|
)
|
|
flag.BoolVar(
|
|
&flagPkg.ReadOnly,
|
|
"read-only",
|
|
false,
|
|
"Read-only mode",
|
|
)
|
|
flag.BoolVar(
|
|
&flagPkg.Debug,
|
|
"d",
|
|
false,
|
|
"debug mode (If -d flag is provided, debug mode will be enabled by default)",
|
|
)
|
|
flag.BoolVar(
|
|
&flagPkg.Insecure,
|
|
"insecure",
|
|
false,
|
|
"ignore TLS certificate errors",
|
|
)
|
|
|
|
flag.Parse()
|
|
|
|
flagPkg.Host = host
|
|
if flagPkg.Host == "" {
|
|
flagPkg.Host = "https://gitea.com"
|
|
}
|
|
|
|
flagPkg.Port = port
|
|
|
|
flagPkg.Token = token
|
|
if flagPkg.Token == "" {
|
|
flagPkg.Token = os.Getenv("GITEA_ACCESS_TOKEN")
|
|
}
|
|
|
|
if os.Getenv("GITEA_MODE") != "" {
|
|
flagPkg.Mode = os.Getenv("GITEA_MODE")
|
|
}
|
|
|
|
if os.Getenv("GITEA_READONLY") == "true" {
|
|
flagPkg.ReadOnly = true
|
|
}
|
|
|
|
if os.Getenv("GITEA_DEBUG") == "true" {
|
|
flagPkg.Debug = true
|
|
}
|
|
|
|
// Set insecure mode based on environment variable
|
|
if os.Getenv("GITEA_INSECURE") == "true" {
|
|
flagPkg.Insecure = true
|
|
}
|
|
}
|
|
|
|
func Execute() {
|
|
defer log.Default().Sync()
|
|
if err := operation.Run(); err != nil {
|
|
if err == context.Canceled {
|
|
log.Info("Server shutdown due to context cancellation")
|
|
return
|
|
}
|
|
log.Fatalf("Run Gitea MCP Server Error: %v", err)
|
|
}
|
|
}
|