wiki

package
v0.0.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 5, 2025 License: MPL-2.0 Imports: 8 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type CreateWikiPageImpl

type CreateWikiPageImpl struct {
	Client *tools.Client
}

CreateWikiPageImpl implements the MCP tool for creating a new wiki page. This is a non-idempotent operation that adds a new page to the repository's wiki. Note: This feature is not supported by the official Forgejo SDK and requires a custom HTTP implementation.

func (CreateWikiPageImpl) Definition

func (CreateWikiPageImpl) Definition() *mcp.Tool

Definition describes the `create_wiki_page` tool. It requires `owner`, `repo`, `title`, and `content`. It is not idempotent as multiple calls with the same parameters will result in multiple pages if the title is not unique.

func (CreateWikiPageImpl) Handler

Handler implements the logic for creating a wiki page. It performs a custom HTTP POST request to the `/repos/{owner}/{repo}/wiki/new` endpoint. On success, it returns information about the newly created page.

type CreateWikiPageParams

type CreateWikiPageParams 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"`
	// Title is the title for the new wiki page.
	Title string `json:"title"`
	// Content is the markdown content of the new wiki page.
	Content string `json:"content"`
	// Message is an optional commit message for the creation.
	Message string `json:"message,omitempty"`
}

CreateWikiPageParams defines the parameters for the create_wiki_page tool. It includes the title and content for the new wiki page.

type DeleteWikiPageImpl

type DeleteWikiPageImpl struct {
	Client *tools.Client
}

DeleteWikiPageImpl implements the destructive MCP tool for deleting a wiki page. This is an idempotent but irreversible operation. Note: This feature is not supported by the official Forgejo SDK and requires a custom HTTP implementation.

func (DeleteWikiPageImpl) Definition

func (DeleteWikiPageImpl) Definition() *mcp.Tool

Definition describes the `delete_wiki_page` tool. It requires `owner`, `repo`, and `page_name`. It is marked as a destructive operation to ensure clients can warn the user before execution.

func (DeleteWikiPageImpl) Handler

Handler implements the logic for deleting a wiki page. It performs a custom HTTP DELETE request to the `/repos/{owner}/{repo}/wiki/page/{pageName}` endpoint. On success, it returns a simple text confirmation.

type DeleteWikiPageParams

type DeleteWikiPageParams 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"`
	// PageName is the title of the wiki page to delete.
	PageName string `json:"page_name"`
}

DeleteWikiPageParams defines the parameters for the delete_wiki_page tool. It specifies the page to be deleted.

type EditWikiPageImpl

type EditWikiPageImpl struct {
	Client *tools.Client
}

EditWikiPageImpl implements the MCP tool for editing an existing wiki page. This is an idempotent operation. Note: This feature is not supported by the official Forgejo SDK and requires a custom HTTP implementation.

func (EditWikiPageImpl) Definition

func (EditWikiPageImpl) Definition() *mcp.Tool

Definition describes the `edit_wiki_page` tool. It requires `owner`, `repo`, `page_name`, and new `content`. It is marked as idempotent.

func (EditWikiPageImpl) Handler

Handler implements the logic for editing a wiki page. It performs a custom HTTP PATCH request to the `/repos/{owner}/{repo}/wiki/page/{pageName}` endpoint. It returns an error if the page is not found.

type EditWikiPageParams

type EditWikiPageParams 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"`
	// PageName is the current title of the wiki page to edit.
	PageName string `json:"page_name"`
	// Title is the optional new title for the wiki page.
	Title string `json:"title,omitempty"`
	// Content is the new markdown content for the wiki page.
	Content string `json:"content"`
	// Message is an optional commit message for the update.
	Message string `json:"message,omitempty"`
}

EditWikiPageParams defines the parameters for the edit_wiki_page tool. It specifies the page to edit and the new content.

type GetWikiPageImpl

type GetWikiPageImpl struct {
	Client *tools.Client
}

GetWikiPageImpl implements the read-only MCP tool for fetching a single wiki page. This operation is safe, idempotent, and does not modify any data. Note: This feature is not supported by the official Forgejo SDK and requires a custom HTTP implementation.

func (GetWikiPageImpl) Definition

func (GetWikiPageImpl) Definition() *mcp.Tool

Definition describes the `get_wiki_page` tool. It requires `owner`, `repo`, and `page_name` as parameters and is marked as a safe, read-only operation.

func (GetWikiPageImpl) Handler

Handler implements the logic for fetching a wiki page. It performs a custom HTTP GET request to the `/repos/{owner}/{repo}/wiki/page/{pageName}` endpoint and formats the resulting page content as markdown. Errors will occur if the page or repository is not found.

type GetWikiPageParams

type GetWikiPageParams 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"`
	// PageName is the title of the wiki page to retrieve.
	PageName string `json:"page_name"`
}

GetWikiPageParams defines the parameters for the get_wiki_page tool. It specifies the owner, repository, and page name to retrieve.

type ListWikiPagesImpl

type ListWikiPagesImpl struct {
	Client *tools.Client
}

ListWikiPagesImpl implements the read-only MCP tool for listing repository wiki pages. This operation is safe, idempotent, and does not modify any data. It fetches all available wiki pages for a specified repository. Note: This feature is not supported by the official Forgejo SDK and requires a custom HTTP implementation.

func (ListWikiPagesImpl) Definition

func (ListWikiPagesImpl) Definition() *mcp.Tool

Definition describes the `list_wiki_pages` tool. It requires `owner` and `repo` as parameters and is marked as a safe, read-only operation.

func (ListWikiPagesImpl) Handler

Handler implements the logic for listing wiki pages. It performs a custom HTTP GET request to the `/repos/{owner}/{repo}/wiki/pages` endpoint and formats the resulting list of pages into a markdown table. Errors will occur if the repository is not found or authentication fails.

type ListWikiPagesParams

type ListWikiPagesParams 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"`
}

ListWikiPagesParams defines the parameters for the list_wiki_pages tool. It specifies the owner and repository name to list wiki pages from.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL