Add coily ops forgejo REST wrapper for issue + comment creation #14

Closed
opened 2026-05-26 03:42:23 +00:00 by coilysiren · 1 comment
Owner

Problem

Default TODO destination per AGENTS.md is a Forgejo issue on coilysiren/agentic-os-kai, but no coily wrapper exists for filing one. Agents that need to file an issue today fall back to raw curl against forgejo.coilysiren.me/api/v1/..., manually shaped json bodies, and a hand-fetched /forgejo/api-token from SSM. Every agent reinvents the same curl. Friction taxes the "file the follow-up, then proceed" discipline in AGENTS.md.

Today's session is a concrete instance: filed coilysiren/agentic-os-kai#260 with a curl one-liner after first failing to find the token because I searched only under /coilysiren/ and missed the top-level /forgejo/api-token.

Proposal

Add a coily ops forgejo umbrella as a REST wrapper, same shape as the existing coily ops trello, coily ops discord, coily ops sentry, coily ops modio umbrellas. Auto-resolves the token from /forgejo/api-token in SSM, signs the request, passes argv through to the issue/PR endpoints, audit-logs each call.

Minimum useful verbs:

  • coily ops forgejo issue create --repo <owner/repo> --title <t> --body-file <path> -> POST /repos/{owner}/{repo}/issues
  • coily ops forgejo issue comment --repo <owner/repo> --number <N> --body-file <path> -> POST /repos/{owner}/{repo}/issues/{N}/comments
  • coily ops forgejo issue list --repo <owner/repo> [--state open|closed|all] -> GET /repos/{owner}/{repo}/issues
  • coily ops forgejo issue close --repo <owner/repo> --number <N> -> PATCH /repos/{owner}/{repo}/issues/{N} {state: closed}

Larger surface (pulls, releases, repos) can land later via the same openapi-to-coily generator if Forgejo publishes a usable spec.

Routing

This issue lives in coilysiren/agent-guard because the new top-level coily ops forgejo verb needs an entry in coilyRoutes. The implementation of the REST wrapper itself lives in the coilysiren/coily repo. Per AGENTS.md, the framing in any user-facing recovery hint stays "coily" not "agent-guard."

Out of scope

  • Forgejo admin verbs already exist under coily forgejo admin and coily forgejo doctor; this issue is about the REST wrapper, not extending the CLI passthrough.
  • GH issue-creation parity is not a goal. GH issues are disabled across coilysiren/* per AGENTS.md.
## Problem Default TODO destination per AGENTS.md is a Forgejo issue on `coilysiren/agentic-os-kai`, but no `coily` wrapper exists for filing one. Agents that need to file an issue today fall back to raw `curl` against `forgejo.coilysiren.me/api/v1/...`, manually shaped json bodies, and a hand-fetched `/forgejo/api-token` from SSM. Every agent reinvents the same curl. Friction taxes the "file the follow-up, then proceed" discipline in AGENTS.md. Today's session is a concrete instance: filed coilysiren/agentic-os-kai#260 with a curl one-liner after first failing to find the token because I searched only under `/coilysiren/` and missed the top-level `/forgejo/api-token`. ## Proposal Add a `coily ops forgejo` umbrella as a REST wrapper, same shape as the existing `coily ops trello`, `coily ops discord`, `coily ops sentry`, `coily ops modio` umbrellas. Auto-resolves the token from `/forgejo/api-token` in SSM, signs the request, passes argv through to the issue/PR endpoints, audit-logs each call. Minimum useful verbs: - `coily ops forgejo issue create --repo <owner/repo> --title <t> --body-file <path>` -> POST `/repos/{owner}/{repo}/issues` - `coily ops forgejo issue comment --repo <owner/repo> --number <N> --body-file <path>` -> POST `/repos/{owner}/{repo}/issues/{N}/comments` - `coily ops forgejo issue list --repo <owner/repo> [--state open|closed|all]` -> GET `/repos/{owner}/{repo}/issues` - `coily ops forgejo issue close --repo <owner/repo> --number <N>` -> PATCH `/repos/{owner}/{repo}/issues/{N}` `{state: closed}` Larger surface (pulls, releases, repos) can land later via the same openapi-to-coily generator if Forgejo publishes a usable spec. ## Routing This issue lives in `coilysiren/agent-guard` because the new top-level `coily ops forgejo` verb needs an entry in `coilyRoutes`. The implementation of the REST wrapper itself lives in the `coilysiren/coily` repo. Per AGENTS.md, the framing in any user-facing recovery hint stays "coily" not "agent-guard." ## Out of scope - Forgejo admin verbs already exist under `coily forgejo admin` and `coily forgejo doctor`; this issue is about the *REST* wrapper, not extending the CLI passthrough. - GH issue-creation parity is not a goal. GH issues are disabled across `coilysiren/*` per AGENTS.md.
Author
Owner

Merged into #13 in the 2026-05-29 backlog burn-down. exact duplicate of forgejo REST wrapper issue 13 Reopen if it should stand alone.

Merged into #13 in the 2026-05-29 backlog burn-down. exact duplicate of forgejo REST wrapper issue 13 Reopen if it should stand alone.
Sign in to join this conversation.
No labels
P0
P1
P2
P3
P4
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
coilyco-flight-deck/ward#14
No description provided.