Extend forgejo extension: milestone create/list + label create tools #13

Closed
opened 2026-08-17 06:47:54 +00:00 by david · 1 comment
Owner

Description

The new forgejo pi extension (at forgejo/ in this repo) replaces fj for
issue/PR operations, but is currently missing tools needed by the
create-issues skill (see skills/create-issues/SKILL.md, Phase 6.1.1) to
create native Forgejo milestones.

Background

  • create-issues models milestones natively on Forgejo (and GitLab), and via
    labels on GitHub. Forgejo's REST API and web UI fully support milestones,
    but the extension's v1 scope (per its own docs/DESIGN.md) only supports
    the milestone param on forgejo_issue_create by numeric id, and has
    no way to create a milestone or resolve a name to an id.
  • The extension also has no label-create tool (forgejo_list_labels is
    list-only), which create-issues would otherwise want for its GitHub-style
    label fallback path if this dependency isn't resolved.
  • Until these tools exist, create-issues fails fast when targeting a
    Forgejo repo rather than silently degrading to labels-simulated milestones.

Tasks

  • Add forgejo_milestone_create(title, description?, due_date?) -> { id, title, ... }
    POST /repos/{owner}/{repo}/milestones
  • Add forgejo_list_milestones() -> [{ id, title, ... }, ...]
    GET /repos/{owner}/{repo}/milestones (enables name→id lookup, deferred
    to v2 per docs/DESIGN.md)
  • Add forgejo_label_create(name, color, description?) -> { id, name, ... }
    POST /repos/{owner}/{repo}/labels
  • Update forgejo_issue_create's milestone param docs/tests once name
    resolution is possible via forgejo_list_milestones
  • Update the extension's README.md tool table and docs/DESIGN.md caveats
    section to remove the "Milestones are by id in v1" / "no label-create
    tool" notes once implemented

Acceptance Criteria

  • forgejo_milestone_create, forgejo_list_milestones, and
    forgejo_label_create exist, are unit-tested (mocked fetch, matching the
    existing test style in tests/), and are documented in the README
  • create-issues's Phase 6.1.1 fail-fast check passes once these tools are
    installed (i.e. the skill can create a native Forgejo milestone end-to-end)

Verification

Manually smoke-test: create a milestone via forgejo_milestone_create, list it
back via forgejo_list_milestones, create a label via forgejo_label_create,
then create an issue assigned to that milestone id and confirm it shows up
correctly in the Forgejo web UI.

  • skills/create-issues/SKILL.md (Phase 6.1, "Forgejo Milestone Dependency")
  • forgejo/docs/DESIGN.md (existing v1/v2 milestone + label scope notes)
## Description The new `forgejo` pi extension (at `forgejo/` in this repo) replaces `fj` for issue/PR operations, but is currently missing tools needed by the `create-issues` skill (see `skills/create-issues/SKILL.md`, Phase 6.1.1) to create **native Forgejo milestones**. ## Background - `create-issues` models milestones natively on Forgejo (and GitLab), and via labels on GitHub. Forgejo's REST API and web UI fully support milestones, but the extension's v1 scope (per its own `docs/DESIGN.md`) only supports the `milestone` param on `forgejo_issue_create` **by numeric id**, and has no way to create a milestone or resolve a name to an id. - The extension also has no label-*create* tool (`forgejo_list_labels` is list-only), which `create-issues` would otherwise want for its GitHub-style label fallback path if this dependency isn't resolved. - Until these tools exist, `create-issues` **fails fast** when targeting a Forgejo repo rather than silently degrading to labels-simulated milestones. ## Tasks - [ ] Add `forgejo_milestone_create(title, description?, due_date?) -> { id, title, ... }` — `POST /repos/{owner}/{repo}/milestones` - [ ] Add `forgejo_list_milestones() -> [{ id, title, ... }, ...]` — `GET /repos/{owner}/{repo}/milestones` (enables name→id lookup, deferred to v2 per `docs/DESIGN.md`) - [ ] Add `forgejo_label_create(name, color, description?) -> { id, name, ... }` — `POST /repos/{owner}/{repo}/labels` - [ ] Update `forgejo_issue_create`'s `milestone` param docs/tests once name resolution is possible via `forgejo_list_milestones` - [ ] Update the extension's README.md tool table and `docs/DESIGN.md` caveats section to remove the "Milestones are by id in v1" / "no label-create tool" notes once implemented ## Acceptance Criteria - [ ] `forgejo_milestone_create`, `forgejo_list_milestones`, and `forgejo_label_create` exist, are unit-tested (mocked fetch, matching the existing test style in `tests/`), and are documented in the README - [ ] `create-issues`'s Phase 6.1.1 fail-fast check passes once these tools are installed (i.e. the skill can create a native Forgejo milestone end-to-end) ## Verification Manually smoke-test: create a milestone via `forgejo_milestone_create`, list it back via `forgejo_list_milestones`, create a label via `forgejo_label_create`, then create an issue assigned to that milestone id and confirm it shows up correctly in the Forgejo web UI. ## Related - `skills/create-issues/SKILL.md` (Phase 6.1, "Forgejo Milestone Dependency") - `forgejo/docs/DESIGN.md` (existing v1/v2 milestone + label scope notes)
Author
Owner

Superseded by a properly-scoped breakdown into 10 self-contained issues (via a Grill Me session + the create-issues methodology), covering full milestone CRUD + label create:

  • #18 — Add forgejo_label_create tool
  • #20 — Add forgejo_milestone_create tool
  • #21 — Add forgejo_list_milestones tool
  • #22 — Add forgejo_milestone_view tool
  • #23 — Add forgejo_milestone_edit tool
  • #24 — Add forgejo_milestone_close and forgejo_milestone_reopen tools
  • #25 — Add forgejo_milestone_delete tool
  • #26 — Cross-reference forgejo_list_milestones from issue/PR create promptGuidelines
  • #27 — Update README.md and DESIGN.md for milestone CRUD + label create
  • #28 — Final verification: full suite green + task_plan.md update

Full implementation plan: extensions/forgejo/implementation-plan-milestones-labels.md. Closing this umbrella issue in favor of the sub-issues above.

Superseded by a properly-scoped breakdown into 10 self-contained issues (via a Grill Me session + the `create-issues` methodology), covering full milestone CRUD + label create: - #18 — Add forgejo_label_create tool - #20 — Add forgejo_milestone_create tool - #21 — Add forgejo_list_milestones tool - #22 — Add forgejo_milestone_view tool - #23 — Add forgejo_milestone_edit tool - #24 — Add forgejo_milestone_close and forgejo_milestone_reopen tools - #25 — Add forgejo_milestone_delete tool - #26 — Cross-reference forgejo_list_milestones from issue/PR create promptGuidelines - #27 — Update README.md and DESIGN.md for milestone CRUD + label create - #28 — Final verification: full suite green + task_plan.md update Full implementation plan: `extensions/forgejo/implementation-plan-milestones-labels.md`. Closing this umbrella issue in favor of the sub-issues above.
david closed this issue 2026-08-18 02:34:49 +00:00
Sign in to join this conversation.
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
david/pi-extensions-and-skills#13
No description provided.