mirror of
https://gitea.com/gitea/gitea-mcp.git
synced 2025-09-13 08:23:15 +00:00
Compare commits
2 Commits
ba07925969
...
v0.3.2
Author | SHA1 | Date | |
---|---|---|---|
|
dc3e120e97 | ||
|
f33b04a3df |
@@ -64,7 +64,7 @@ var (
|
|||||||
mcp.WithString("repo", mcp.Required(), mcp.Description("repository name")),
|
mcp.WithString("repo", mcp.Required(), mcp.Description("repository name")),
|
||||||
mcp.WithString("filePath", mcp.Required(), mcp.Description("file path")),
|
mcp.WithString("filePath", mcp.Required(), mcp.Description("file path")),
|
||||||
mcp.WithString("sha", mcp.Required(), mcp.Description("sha is the SHA for the file that already exists")),
|
mcp.WithString("sha", mcp.Required(), mcp.Description("sha is the SHA for the file that already exists")),
|
||||||
mcp.WithString("content", mcp.Required(), mcp.Description("file content, base64 encoded")),
|
mcp.WithString("content", mcp.Required(), mcp.Description("file content")),
|
||||||
mcp.WithString("message", mcp.Required(), mcp.Description("commit message")),
|
mcp.WithString("message", mcp.Required(), mcp.Description("commit message")),
|
||||||
mcp.WithString("branch_name", mcp.Required(), mcp.Description("branch name")),
|
mcp.WithString("branch_name", mcp.Required(), mcp.Description("branch name")),
|
||||||
)
|
)
|
||||||
|
@@ -27,7 +27,7 @@ const (
|
|||||||
var (
|
var (
|
||||||
CreateRepoTool = mcp.NewTool(
|
CreateRepoTool = mcp.NewTool(
|
||||||
CreateRepoToolName,
|
CreateRepoToolName,
|
||||||
mcp.WithDescription("Create repository"),
|
mcp.WithDescription("Create repository in personal account or organization"),
|
||||||
mcp.WithString("name", mcp.Required(), mcp.Description("Name of the repository to create")),
|
mcp.WithString("name", mcp.Required(), mcp.Description("Name of the repository to create")),
|
||||||
mcp.WithString("description", mcp.Description("Description of the repository to create")),
|
mcp.WithString("description", mcp.Description("Description of the repository to create")),
|
||||||
mcp.WithBoolean("private", mcp.Description("Whether the repository is private")),
|
mcp.WithBoolean("private", mcp.Description("Whether the repository is private")),
|
||||||
@@ -38,6 +38,7 @@ var (
|
|||||||
mcp.WithString("license", mcp.Description("License to use")),
|
mcp.WithString("license", mcp.Description("License to use")),
|
||||||
mcp.WithString("readme", mcp.Description("Readme of the repository to create")),
|
mcp.WithString("readme", mcp.Description("Readme of the repository to create")),
|
||||||
mcp.WithString("default_branch", mcp.Description("DefaultBranch of the repository (used when initializes and in template)")),
|
mcp.WithString("default_branch", mcp.Description("DefaultBranch of the repository (used when initializes and in template)")),
|
||||||
|
mcp.WithString("organization", mcp.Description("Organization name to create repository in (optional - defaults to personal account)")),
|
||||||
)
|
)
|
||||||
|
|
||||||
ForkRepoTool = mcp.NewTool(
|
ForkRepoTool = mcp.NewTool(
|
||||||
@@ -120,6 +121,7 @@ func CreateRepoFn(ctx context.Context, req mcp.CallToolRequest) (*mcp.CallToolRe
|
|||||||
license, _ := req.GetArguments()["license"].(string)
|
license, _ := req.GetArguments()["license"].(string)
|
||||||
readme, _ := req.GetArguments()["readme"].(string)
|
readme, _ := req.GetArguments()["readme"].(string)
|
||||||
defaultBranch, _ := req.GetArguments()["default_branch"].(string)
|
defaultBranch, _ := req.GetArguments()["default_branch"].(string)
|
||||||
|
organization, _ := req.GetArguments()["organization"].(string)
|
||||||
|
|
||||||
opt := gitea_sdk.CreateRepoOption{
|
opt := gitea_sdk.CreateRepoOption{
|
||||||
Name: name,
|
Name: name,
|
||||||
@@ -133,9 +135,19 @@ func CreateRepoFn(ctx context.Context, req mcp.CallToolRequest) (*mcp.CallToolRe
|
|||||||
Readme: readme,
|
Readme: readme,
|
||||||
DefaultBranch: defaultBranch,
|
DefaultBranch: defaultBranch,
|
||||||
}
|
}
|
||||||
repo, _, err := gitea.Client().CreateRepo(opt)
|
|
||||||
|
var repo *gitea_sdk.Repository
|
||||||
|
var err error
|
||||||
|
if organization != "" {
|
||||||
|
repo, _, err = gitea.Client().CreateOrgRepo(organization, opt)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return to.ErrorResult(fmt.Errorf("create repo err: %v", err))
|
return to.ErrorResult(fmt.Errorf("create organization repository '%s' in '%s' err: %v", name, organization, err))
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
repo, _, err = gitea.Client().CreateRepo(opt)
|
||||||
|
if err != nil {
|
||||||
|
return to.ErrorResult(fmt.Errorf("create repository '%s' err: %v", name, err))
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return to.TextResult(repo)
|
return to.TextResult(repo)
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user