docs: 📝 OpenSpec change for wiki support via direct API #176
No reviewers
Labels
No labels
Compat/Breaking
Kind/Bug
Kind/Documentation
Kind/Enhancement
Kind/Feature
Kind/OpenSpec
Kind/Security
Kind/Testing
Priority/Critical
Priority/High
Priority/Low
Priority/Medium
RFC - Request For Comments
Reviewed/Confirmed
Reviewed/Duplicate
Reviewed/Invalid
Reviewed/Won't Fix
Status/Abandoned
Status/Blocked
Status/Need More Info
hermes-attempted
hermes-needs-clarification
hermes-ready
hermes-review
hermes-wip
human-required
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
agentic-forges/forgejo-mcp!176
Loading…
Reference in a new issue
No description provided.
Delete branch "refs/pull/176/head"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
What
Adds the OpenSpec change
add-wiki-support(proposal, design, tasks, two spec deltas, and a showboat demo) for Codeberg #32.Why direct API, not the SDK
forgejo-sdk/forgejo/v3@v3.0.0has no wiki methods (verified: nowiki*.go, noWikiPagetype). The existingoperation/wiki/wiki.gois dead code behind//go:build wikibecause it calls those non-existent SDK symbols — that is the real meaning of #32'sStatus/Blocked. This spec unblocks now by reusing the existing raw-HTTP escape hatch (pkg/forgejo/rawhttp.goDoJSON/DoJSONList, built for attachments), rather than waiting 1–2 weeks on an upstream SDK contribution.Surface proposed
list_wiki_pages,get_wiki_page,get_wiki_revisions,create_wiki_page,update_wiki_page,delete_wiki_page— all output-bounded (page/limit/has_next;get_wiki_pagereusesget_file_content'sstart_line/end_line+total_lines).forgejo://repo/{owner}/{repo}/wiki/{pageName}→ JSON metadata + decoded markdown sidecar + bounded recent revisions.AGENTS.md, rich tool/param descriptions, plan-doc supersession note.demo.md— full create → list → read (tool + URI) → edit → history → bounded read → delete walkthrough.Load-bearing risk (called out, not assumed)
The
content_base64field name and page-name URL encoding are asserted from the documented Gitea/Forgejo API and must be verified live before archive — an explicit task intasks.md §5.Validated with
openspec validate add-wiki-support --strict. This PR is spec-only; implementation follows the tasks.Refs: #32
op1st Pipelines as Code/openspec-validate-pr-5qcf4 is running.
Starting Pipelinerun openspec-validate-pr-5qcf4 in namespace op1st-pipelines
You can monitor the execution using the op1st Pipelines as Code PipelineRun viewer or through the command line by
using the tkn CLI with the following command:
tkn pr logs -n op1st-pipelines openspec-validate-pr-5qcf4 -fop1st Pipelines as Code/code-scans-g85l2 is running.
Starting Pipelinerun code-scans-g85l2 in namespace op1st-pipelines
You can monitor the execution using the op1st Pipelines as Code PipelineRun viewer or through the command line by
using the tkn CLI with the following command:
tkn pr logs -n op1st-pipelines code-scans-g85l2 -fop1st Pipelines as Code/on-pull-request-gzmq7 is running.
Starting Pipelinerun on-pull-request-gzmq7 in namespace op1st-pipelines
You can monitor the execution using the op1st Pipelines as Code PipelineRun viewer or through the command line by
using the tkn CLI with the following command:
tkn pr logs -n op1st-pipelines on-pull-request-gzmq7 -fop1st Pipelines as Code/code-scans-g85l2 has successfully validated your commit.
Task Statuses:
fetch-source
gitleaks-version
gitleaks
op1st Pipelines as Code/openspec-validate-pr-5qcf4 has successfully validated your commit.
Task Statuses:
fetch-source
validate
op1st Pipelines as Code/on-pull-request-gzmq7 has successfully validated your commit.
Task Statuses:
fetch-source
build-and-test
commit-title-check
op1st Pipelines as Code/openspec-validate-pr-vlsn7 is running.
Starting Pipelinerun openspec-validate-pr-vlsn7 in namespace op1st-pipelines
You can monitor the execution using the op1st Pipelines as Code PipelineRun viewer or through the command line by
using the tkn CLI with the following command:
tkn pr logs -n op1st-pipelines openspec-validate-pr-vlsn7 -fop1st Pipelines as Code/on-pull-request-rlxdv is running.
Starting Pipelinerun on-pull-request-rlxdv in namespace op1st-pipelines
You can monitor the execution using the op1st Pipelines as Code PipelineRun viewer or through the command line by
using the tkn CLI with the following command:
tkn pr logs -n op1st-pipelines on-pull-request-rlxdv -fop1st Pipelines as Code/code-scans-dbcf4 is running.
Starting Pipelinerun code-scans-dbcf4 in namespace op1st-pipelines
You can monitor the execution using the op1st Pipelines as Code PipelineRun viewer or through the command line by
using the tkn CLI with the following command:
tkn pr logs -n op1st-pipelines code-scans-dbcf4 -fop1st Pipelines as Code/openspec-validate-pr-vlsn7 has successfully validated your commit.
Task Statuses:
fetch-source
validate
op1st Pipelines as Code/code-scans-dbcf4 has successfully validated your commit.
Task Statuses:
fetch-source
gitleaks-version
gitleaks
op1st Pipelines as Code/on-pull-request-rlxdv has failed.
Task Statuses:
fetch-source
build-and-test
commit-title-check
Failure snippet:
task commit-title-check has the status "Failed":op1st Pipelines as Code/on-pull-request-29fsc is running.
Starting Pipelinerun on-pull-request-29fsc in namespace op1st-pipelines
You can monitor the execution using the op1st Pipelines as Code PipelineRun viewer or through the command line by
using the tkn CLI with the following command:
tkn pr logs -n op1st-pipelines on-pull-request-29fsc -fop1st Pipelines as Code/code-scans-l5zhw is running.
Starting Pipelinerun code-scans-l5zhw in namespace op1st-pipelines
You can monitor the execution using the op1st Pipelines as Code PipelineRun viewer or through the command line by
using the tkn CLI with the following command:
tkn pr logs -n op1st-pipelines code-scans-l5zhw -fop1st Pipelines as Code/openspec-validate-pr- has failed.
There was an error creating the PipelineRun: openspec-validate-pr-
cannot use the API on the provider platform to create a in_progress status:
op1st Pipelines as Code/code-scans-l5zhw has successfully validated your commit.
Task Statuses:
fetch-source
gitleaks-version
gitleaks
op1st Pipelines as Code/on-pull-request-29fsc has failed.
Task Statuses:
fetch-source
build-and-test
commit-title-check
Failure snippet:
task commit-title-check has the status "Failed":op1st Pipelines as Code/openspec-validate-pr-nlkq9 is running.
Starting Pipelinerun openspec-validate-pr-nlkq9 in namespace op1st-pipelines
You can monitor the execution using the op1st Pipelines as Code PipelineRun viewer or through the command line by
using the tkn CLI with the following command:
tkn pr logs -n op1st-pipelines openspec-validate-pr-nlkq9 -fop1st Pipelines as Code/code-scans-qcmdb is running.
Starting Pipelinerun code-scans-qcmdb in namespace op1st-pipelines
You can monitor the execution using the op1st Pipelines as Code PipelineRun viewer or through the command line by
using the tkn CLI with the following command:
tkn pr logs -n op1st-pipelines code-scans-qcmdb -fop1st Pipelines as Code/on-pull-request- has failed.
There was an error creating the PipelineRun: on-pull-request-
cannot use the API on the provider platform to create a in_progress status:
op1st Pipelines as Code/openspec-validate-pr-nlkq9 has successfully validated your commit.
Task Statuses:
fetch-source
validate
op1st Pipelines as Code/code-scans-qcmdb has successfully validated your commit.
Task Statuses:
fetch-source
gitleaks-version
gitleaks
op1st Pipelines as Code/on-pull-request-gmc4k is running.
Starting Pipelinerun on-pull-request-gmc4k in namespace op1st-pipelines
You can monitor the execution using the op1st Pipelines as Code PipelineRun viewer or through the command line by
using the tkn CLI with the following command:
tkn pr logs -n op1st-pipelines on-pull-request-gmc4k -fop1st Pipelines as Code/openspec-validate-pr-bl4px is running.
Starting Pipelinerun openspec-validate-pr-bl4px in namespace op1st-pipelines
You can monitor the execution using the op1st Pipelines as Code PipelineRun viewer or through the command line by
using the tkn CLI with the following command:
tkn pr logs -n op1st-pipelines openspec-validate-pr-bl4px -fop1st Pipelines as Code/code-scans-lqd7x is running.
Starting Pipelinerun code-scans-lqd7x in namespace op1st-pipelines
You can monitor the execution using the op1st Pipelines as Code PipelineRun viewer or through the command line by
using the tkn CLI with the following command:
tkn pr logs -n op1st-pipelines code-scans-lqd7x -f📣 RFC — feedback wanted
This PR is now labelled RFC - Request For Comments. It is a spec-only design for wiki support (the
add-wiki-supportOpenSpec change) — no implementation yet, so it's the cheapest moment to change direction.@BoBeR182 (you opened #32), @cendenta and @zzantares (you 👍'd #32) — your input would be valuable before implementation starts.
What changed vs. the original ask: #32 assumed wiki support was blocked on upstream
forgejo-sdk. It isn't — the SDK has no wiki methods, so this design implements all six wiki operations via direct Forgejo REST calls (reusing the existingpkg/forgejoraw-HTTP helper). No upstream wait.Status/Blockedhas been removed from #32.What's proposed:
list_wiki_pages,get_wiki_page,get_wiki_revisions,create_wiki_page,update_wiki_page,delete_wiki_page— all output-bounded.forgejo://repo/{owner}/{repo}/wiki/{pageName}resource template so a page is referenceable by URI.Questions for you specifically:
page_name(spaces → dashes,/→%2Ffor sub-pages). Does that match how you'd want to reference pages?content_base64encoding, page-name path rule, paging) that need a real instance with wiki enabled.The design has already been through three rounds of adversarial review (see
design.md's## Adversarial Reviewsections). Comments welcome inline on the diff or here. 🙏op1st Pipelines as Code/openspec-validate-pr-bl4px has successfully validated your commit.
Task Statuses:
fetch-source
validate
op1st Pipelines as Code/code-scans-lqd7x has successfully validated your commit.
Task Statuses:
fetch-source
gitleaks-version
gitleaks
op1st Pipelines as Code/on-pull-request-gmc4k has successfully validated your commit.
Task Statuses:
fetch-source
build-and-test
commit-title-check