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

Open
opened 2026-05-26 03:41:38 +00:00 by coilysiren · 0 comments
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.
coilysiren added
P2
and removed
P1
labels 2026-05-31 07:01:26 +00:00
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#13
No description provided.