Skip to main content
Glama
client_wiki.go2.52 kB
// This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this // file, You can obtain one at https://mozilla.org/MPL/2.0/. // // Copyright © 2025 Ronmi Ren <ronmi.ren@gmail.com> package tools import ( "fmt" "github.com/raohwork/forgejo-mcp/types" ) // MyListWikiPages lists all wiki pages in a repository. // GET /repos/{owner}/{repo}/wiki/pages func (c *Client) MyListWikiPages(owner, repo string) ([]*types.MyWikiPageMetaData, error) { endpoint := fmt.Sprintf("/api/v1/repos/%s/%s/wiki/pages", owner, repo) var result []*types.MyWikiPageMetaData err := c.sendSimpleRequest("GET", endpoint, nil, &result) if err != nil { return nil, err } return result, nil } // MyGetWikiPage gets a single wiki page by name. // GET /repos/{owner}/{repo}/wiki/page/{pageName} func (c *Client) MyGetWikiPage(owner, repo, pageName string) (*types.MyWikiPage, error) { endpoint := fmt.Sprintf("/api/v1/repos/%s/%s/wiki/page/%s", owner, repo, pageName) var result types.MyWikiPage err := c.sendSimpleRequest("GET", endpoint, nil, &result) if err != nil { return nil, err } return &result, nil } // MyCreateWikiPage creates a new wiki page. // POST /repos/{owner}/{repo}/wiki/new func (c *Client) MyCreateWikiPage(owner, repo string, options types.MyCreateWikiPageOptions) (*types.MyWikiPage, error) { endpoint := fmt.Sprintf("/api/v1/repos/%s/%s/wiki/new", owner, repo) var result types.MyWikiPage err := c.sendSimpleRequest("POST", endpoint, options, &result) if err != nil { return nil, err } return &result, nil } // MyDeleteWikiPage deletes a wiki page. // DELETE /repos/{owner}/{repo}/wiki/page/{pageName} func (c *Client) MyDeleteWikiPage(owner, repo, pageName string) error { endpoint := fmt.Sprintf("/api/v1/repos/%s/%s/wiki/page/%s", owner, repo, pageName) // DELETE returns 204 No Content on success var result interface{} err := c.sendSimpleRequest("DELETE", endpoint, nil, &result) if err != nil { return err } return nil } // MyEditWikiPage edits an existing wiki page. // PATCH /repos/{owner}/{repo}/wiki/page/{pageName} func (c *Client) MyEditWikiPage(owner, repo, pageName string, options types.MyCreateWikiPageOptions) (*types.MyWikiPage, error) { endpoint := fmt.Sprintf("/api/v1/repos/%s/%s/wiki/page/%s", owner, repo, pageName) var result types.MyWikiPage err := c.sendSimpleRequest("PATCH", endpoint, options, &result) if err != nil { return nil, err } return &result, nil }

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/raohwork/forgejo-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server