Add scripts/forgejo.py for milestones #16

Merged
icub3d merged 1 commit from 15-forgejo-tooling into main 2026-08-06 22:28:08 +00:00
Owner

Makes the milestone tooling permanent, scoped to the one gap fj has.

forgejo.py milestone list
forgejo.py milestone create "M8 — Title" --description "One line." [--due YYYY-MM-DD]
forgejo.py milestone assign "M1 — Playable Vertical Slice" 2-13
  • Reuses the token fj already stores — no second credential.
  • Idempotent create; assign takes numbers and inclusive ranges.
  • Errors name the file and key, or the status and the issue being worked on,
    rather than sending a bogus credential or raising a traceback.
  • Standard library only.

Deliberately not wrapped: issues, labels, and PRs, which fj already does,
and project boards, which have no API here.

docs/development.md gains a "Recreating the tracker" section. Milestone
descriptions there are one-liners pointing at ROADMAP.md rather than copies
of it, for the same reason the wiki is thin.

Verified against the live tracker: list, idempotent re-create, assign by id and
by title, and the three error paths. cargo test, clippy -D warnings, and
fmt --check all clean.

Closes #15

Makes the milestone tooling permanent, scoped to the one gap `fj` has. ``` forgejo.py milestone list forgejo.py milestone create "M8 — Title" --description "One line." [--due YYYY-MM-DD] forgejo.py milestone assign "M1 — Playable Vertical Slice" 2-13 ``` - Reuses the token `fj` already stores — no second credential. - Idempotent create; assign takes numbers and inclusive ranges. - Errors name the file and key, or the status and the issue being worked on, rather than sending a bogus credential or raising a traceback. - Standard library only. Deliberately **not** wrapped: issues, labels, and PRs, which `fj` already does, and project boards, which have no API here. `docs/development.md` gains a "Recreating the tracker" section. Milestone descriptions there are one-liners pointing at `ROADMAP.md` rather than copies of it, for the same reason the wiki is thin. Verified against the live tracker: list, idempotent re-create, assign by id and by title, and the three error paths. `cargo test`, `clippy -D warnings`, and `fmt --check` all clean. Closes #15
M1's milestones were created by a throwaway script in a scratchpad with the
seven descriptions and the issue numbers baked into it. That script does not
survive the session, so M2 would have started by rewriting it.

This covers milestones and nothing else. Issues, labels, and pull requests
already work through fj; wrapping them again would mean a second thing to keep
correct. Project boards have no API in this Forgejo version, so there is
nothing to wrap.

Content is passed in rather than embedded, and docs/development.md now
documents recreating the tracker from empty with milestone descriptions that
point at ROADMAP.md instead of copying it.

Closes #15

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
icub3d force-pushed 15-forgejo-tooling from 3d375a675c to 6b654d7fcc 2026-08-06 22:27:47 +00:00 Compare
icub3d merged commit 9f735f62aa into main 2026-08-06 22:28:08 +00:00
icub3d deleted branch 15-forgejo-tooling 2026-08-06 22:28:08 +00:00
Sign in to join this conversation.
No description provided.