| Filename | Latest commit message | Latest commit date |
|---|---|---|
Second round for the flat-alias deprecation. `pr-commits` and `pr-assign-reviewer` are back-compat aliases with an exact scoped equivalent, and they were missed by all three buckets of the original accounting -- which was wrong in both terms: `reopen`/`dependency`/ `reaction` appear only in the doc-comment prose listing the scoped surface and are not Verb variants at all, so the real count is 17 (7 + 2 + 7 + 1), not 18. The test for "pure rename" is that an exact scoped form exists AND the verb is PR-only, so a caller holding just a number can be sent somewhere unambiguous. Verified rather than assumed: `pr commits` and `pr assign-reviewer` exit 0, while `issue commits` and `issue assign-reviewer` exit 2 -- the same code a deliberately bogus verb returns, which is what makes those 2s mean "no such verb". That is also why the seven kind-agnostic aliases are untouched here: each exists as both `issue <verb>` and `pr <verb>`, so refusing them would remove a capability rather than rename one. Both run functions are still called from pr_cmd.rs, so nothing becomes dead code. The enum's block comment enumerates the pure renames by name and is extended to match -- left alone it would be a stale claim naming seven of nine. |
||
| .. | ||
| src | ||
| Cargo.toml | ||
| README.md | ||
hive-forge
Typed CLI wrapper around the in-cluster Forgejo's REST API — issues,
PRs, comments, labels, reviews, CI status, attachments, triage.
Replaces the old bash-script wrapper so agents and operators get
consistent error handling, exit codes, and JSON shapes. This is the
only supported path to the forge from inside an agent container;
never curl it directly.
Reads credentials from the environment (HIVE_FORGE_URL,
HYPERHIVE_STATE_DIR); -f/--forge <label> retargets a
dashboard-provisioned external forge account instead. The active repo
resolves -r/--repo > the origin remote of the cwd's git checkout >
HIVE_FORGE_REPO (last-resort override, unset by default) > a hard
error — see client::Client::from_env.
When to use it
Reach for this crate when adding or changing a forge verb — it's the
single place issue/PR/comment/CI logic lives for every agent and
hivectl. Adding a tool an agent's claude session calls is
hive-agent-mcp wrapping a shellout to this binary, not new logic
here.
Shape
verbs/— one module per subcommand (clapArgs+run).client.rs— the Forgejo client wrapper + token loading.notify.rs— the read-before-comment guard, backed by forge's own notification read-state (no local mirror to drift).body.rs— shared--body/--body-file/stdin resolution.
Full verb reference: docs/tools/forge.md.