Documentation
¶
Index ¶
- type CreateReleaseAttachmentImpl
- type CreateReleaseAttachmentParams
- type CreateReleaseImpl
- type CreateReleaseParams
- type DeleteReleaseAttachmentImpl
- type DeleteReleaseAttachmentParams
- type DeleteReleaseImpl
- type DeleteReleaseParams
- type EditReleaseAttachmentImpl
- type EditReleaseAttachmentParams
- type EditReleaseImpl
- type EditReleaseParams
- type ListReleaseAttachmentsImpl
- type ListReleaseAttachmentsParams
- type ListReleasesImpl
- type ListReleasesParams
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type CreateReleaseAttachmentImpl ¶
CreateReleaseAttachmentImpl implements the MCP tool for adding an attachment to a release. This is a non-idempotent operation that uploads a file from the local filesystem to the specified release using the Forgejo SDK.
func (CreateReleaseAttachmentImpl) Definition ¶
func (CreateReleaseAttachmentImpl) Definition() *mcp.Tool
Definition describes the `create_release_attachment` tool. It requires `release_id` and a local `file_path`. It is not idempotent, as multiple calls will upload multiple files.
func (CreateReleaseAttachmentImpl) Handler ¶
func (impl CreateReleaseAttachmentImpl) Handler() mcp.ToolHandlerFor[CreateReleaseAttachmentParams, any]
Handler implements the logic for creating a release attachment. It reads the file from the specified `file_path`, then calls the Forgejo SDK's `CreateReleaseAttachment` function to upload it. It will return an error if the file cannot be read.
type CreateReleaseAttachmentParams ¶
type CreateReleaseAttachmentParams struct {
// Owner is the username or organization name that owns the repository.
Owner string `json:"owner"`
// Repo is the name of the repository.
Repo string `json:"repo"`
// ReleaseID is the unique identifier of the release to attach the file to.
ReleaseID int `json:"release_id"`
// FilePath is the local path to the file to be uploaded as an attachment.
FilePath string `json:"file_path"`
// Name is an optional display name for the attachment.
Name string `json:"name,omitempty"`
}
CreateReleaseAttachmentParams defines the parameters for creating a release attachment. It specifies the release and the local file path of the asset to upload.
type CreateReleaseImpl ¶
CreateReleaseImpl implements the MCP tool for creating a new release. This is a non-idempotent operation that creates a new git tag and a corresponding release object via the Forgejo SDK.
func (CreateReleaseImpl) Definition ¶
func (CreateReleaseImpl) Definition() *mcp.Tool
Definition describes the `create_release` tool. It requires `owner`, `repo`, `tag_name`, and a `name`. It is not idempotent, as multiple calls will fail once the tag is created.
func (CreateReleaseImpl) Handler ¶
func (impl CreateReleaseImpl) Handler() mcp.ToolHandlerFor[CreateReleaseParams, any]
Handler implements the logic for creating a release. It calls the Forgejo SDK's `CreateRelease` function. On success, it returns details of the new release.
type CreateReleaseParams ¶
type CreateReleaseParams struct {
// Owner is the username or organization name that owns the repository.
Owner string `json:"owner"`
// Repo is the name of the repository.
Repo string `json:"repo"`
// TagName is the name of the git tag for the release.
TagName string `json:"tag_name"`
// TargetCommitish is the branch or commit SHA to create the release from.
TargetCommitish string `json:"target_commitish,omitempty"`
// Name is the title of the release.
Name string `json:"name"`
// Body is the markdown description of the release.
Body string `json:"body,omitempty"`
// Draft indicates whether the release is a draft.
Draft bool `json:"draft,omitempty"`
// Prerelease indicates whether the release is a pre-release.
Prerelease bool `json:"prerelease,omitempty"`
}
CreateReleaseParams defines the parameters for the create_release tool. It includes all necessary details for creating a new release.
type DeleteReleaseAttachmentImpl ¶
DeleteReleaseAttachmentImpl implements the destructive MCP tool for deleting a release attachment. This is an idempotent but irreversible operation that removes an attachment from a release using the Forgejo SDK.
func (DeleteReleaseAttachmentImpl) Definition ¶
func (DeleteReleaseAttachmentImpl) Definition() *mcp.Tool
Definition describes the `delete_release_attachment` tool. It requires `release_id` and `attachment_id`. It is marked as a destructive operation to ensure clients can warn the user before execution.
func (DeleteReleaseAttachmentImpl) Handler ¶
func (impl DeleteReleaseAttachmentImpl) Handler() mcp.ToolHandlerFor[DeleteReleaseAttachmentParams, any]
Handler implements the logic for deleting a release attachment. It calls the Forgejo SDK's `DeleteReleaseAttachment` function. On success, it returns a simple text confirmation. It will return an error if the attachment does not exist.
type DeleteReleaseAttachmentParams ¶
type DeleteReleaseAttachmentParams struct {
// Owner is the username or organization name that owns the repository.
Owner string `json:"owner"`
// Repo is the name of the repository.
Repo string `json:"repo"`
// ReleaseID is the unique identifier of the release containing the attachment.
ReleaseID int `json:"release_id"`
// AttachmentID is the unique identifier of the attachment to delete.
AttachmentID int `json:"attachment_id"`
}
DeleteReleaseAttachmentParams defines the parameters for deleting a release attachment. It specifies the attachment to be deleted by its ID.
type DeleteReleaseImpl ¶
DeleteReleaseImpl implements the destructive MCP tool for deleting a release. This is an idempotent but irreversible operation that removes both the release object and its associated git tag. It uses the Forgejo SDK.
func (DeleteReleaseImpl) Definition ¶
func (DeleteReleaseImpl) Definition() *mcp.Tool
Definition describes the `delete_release` tool. It requires `owner`, `repo`, and the release `id`. It is marked as a destructive operation to ensure clients can warn the user before execution.
func (DeleteReleaseImpl) Handler ¶
func (impl DeleteReleaseImpl) Handler() mcp.ToolHandlerFor[DeleteReleaseParams, any]
Handler implements the logic for deleting a release. It calls the Forgejo SDK's `DeleteRelease` function. On success, it returns a simple text confirmation. It will return an error if the release does not exist.
type DeleteReleaseParams ¶
type DeleteReleaseParams struct {
// Owner is the username or organization name that owns the repository.
Owner string `json:"owner"`
// Repo is the name of the repository.
Repo string `json:"repo"`
// ID is the unique identifier of the release to delete.
ID int `json:"id"`
}
DeleteReleaseParams defines the parameters for the delete_release tool. It specifies the release to be deleted by its ID.
type EditReleaseAttachmentImpl ¶
EditReleaseAttachmentImpl implements the MCP tool for editing a release attachment. This is an idempotent operation that renames an existing attachment using the Forgejo SDK.
func (EditReleaseAttachmentImpl) Definition ¶
func (EditReleaseAttachmentImpl) Definition() *mcp.Tool
Definition describes the `edit_release_attachment` tool. It requires `release_id`, `attachment_id`, and a new `name`. It is marked as idempotent.
func (EditReleaseAttachmentImpl) Handler ¶
func (impl EditReleaseAttachmentImpl) Handler() mcp.ToolHandlerFor[EditReleaseAttachmentParams, any]
Handler implements the logic for editing a release attachment. It calls the Forgejo SDK's `EditReleaseAttachment` function. It will return an error if the attachment ID is not found.
type EditReleaseAttachmentParams ¶
type EditReleaseAttachmentParams struct {
// Owner is the username or organization name that owns the repository.
Owner string `json:"owner"`
// Repo is the name of the repository.
Repo string `json:"repo"`
// ReleaseID is the unique identifier of the release containing the attachment.
ReleaseID int `json:"release_id"`
// AttachmentID is the unique identifier of the attachment to edit.
AttachmentID int `json:"attachment_id"`
// Name is the new display name for the attachment.
Name string `json:"name"`
}
EditReleaseAttachmentParams defines the parameters for editing a release attachment. It specifies the attachment to edit and its new name.
type EditReleaseImpl ¶
EditReleaseImpl implements the MCP tool for editing an existing release. This is an idempotent operation that modifies the metadata of a release identified by its ID, using the Forgejo SDK.
func (EditReleaseImpl) Definition ¶
func (EditReleaseImpl) Definition() *mcp.Tool
Definition describes the `edit_release` tool. It requires `owner`, `repo`, and the release `id`. It is marked as idempotent, as multiple identical calls will result in the same state.
func (EditReleaseImpl) Handler ¶
func (impl EditReleaseImpl) Handler() mcp.ToolHandlerFor[EditReleaseParams, any]
Handler implements the logic for editing a release. It calls the Forgejo SDK's `EditRelease` function. It will return an error if the release ID is not found.
type EditReleaseParams ¶
type EditReleaseParams struct {
// Owner is the username or organization name that owns the repository.
Owner string `json:"owner"`
// Repo is the name of the repository.
Repo string `json:"repo"`
// ID is the unique identifier of the release to edit.
ID int `json:"id"`
// TagName is the new git tag name for the release.
TagName string `json:"tag_name,omitempty"`
// TargetCommitish is the new target branch or commit SHA.
TargetCommitish string `json:"target_commitish,omitempty"`
// Name is the new title for the release.
Name string `json:"name,omitempty"`
// Body is the new markdown description for the release.
Body string `json:"body,omitempty"`
// Draft indicates whether the release should be marked as a draft.
Draft bool `json:"draft,omitempty"`
// Prerelease indicates whether the release should be marked as a pre-release.
Prerelease bool `json:"prerelease,omitempty"`
}
EditReleaseParams defines the parameters for the edit_release tool. It specifies the release to edit by ID and the fields to update.
type ListReleaseAttachmentsImpl ¶
ListReleaseAttachmentsImpl implements the read-only MCP tool for listing release attachments. This is a safe, idempotent operation that uses the Forgejo SDK to fetch a list of all attachments for a specific release.
func (ListReleaseAttachmentsImpl) Definition ¶
func (ListReleaseAttachmentsImpl) Definition() *mcp.Tool
Definition describes the `list_release_attachments` tool. It requires `owner`, `repo`, and `release_id`. It is marked as a safe, read-only operation.
func (ListReleaseAttachmentsImpl) Handler ¶
func (impl ListReleaseAttachmentsImpl) Handler() mcp.ToolHandlerFor[ListReleaseAttachmentsParams, any]
Handler implements the logic for listing release attachments. It calls the Forgejo SDK's `ListReleaseAttachments` function and formats the results into a markdown list.
type ListReleaseAttachmentsParams ¶
type ListReleaseAttachmentsParams struct {
// Owner is the username or organization name that owns the repository.
Owner string `json:"owner"`
// Repo is the name of the repository.
Repo string `json:"repo"`
// ReleaseID is the unique identifier of the release.
ReleaseID int `json:"release_id"`
}
ListReleaseAttachmentsParams defines the parameters for the list_release_attachments tool. It specifies the release to list attachments from.
type ListReleasesImpl ¶
ListReleasesImpl implements the read-only MCP tool for listing repository releases. This is a safe, idempotent operation that uses the Forgejo SDK to fetch a paginated list of releases.
func (ListReleasesImpl) Definition ¶
func (ListReleasesImpl) Definition() *mcp.Tool
Definition describes the `list_releases` tool. It requires `owner` and `repo` and supports pagination. It is marked as a safe, read-only operation.
func (ListReleasesImpl) Handler ¶
func (impl ListReleasesImpl) Handler() mcp.ToolHandlerFor[ListReleasesParams, any]
Handler implements the logic for listing releases. It calls the Forgejo SDK's `ListReleases` function and formats the results into a markdown list.
type ListReleasesParams ¶
type ListReleasesParams struct {
// Owner is the username or organization name that owns the repository.
Owner string `json:"owner"`
// Repo is the name of the repository.
Repo string `json:"repo"`
// Page is the page number for pagination.
Page int `json:"page,omitempty"`
// Limit is the number of releases to return per page.
Limit int `json:"limit,omitempty"`
}
ListReleasesParams defines the parameters for the list_releases tool. It specifies the owner and repository, with optional pagination.