| Filename | Latest commit message | Latest commit date |
|---|---|---|
`docs/tools/forge.md` said the flat forms "still work as hidden back-compat aliases" and named `pr-create` and `pr-status` as its examples. Both refuse now: nine flat verbs parse only far enough to print the namespaced form that replaced them. The doc had no way to be read correctly, because the seven that do still work are hidden too and `--help` shows neither group. Naming the split here is the only place the difference is visible. At the enum the kind-agnostic seven now read as staying rather than as "still work", and `credential-helper` is marked as belonging to neither group: it is hidden because git invokes it, so a sweep reading `hide = true` as "deprecated" would remove checkout auth. Refs #3974. |
||
| .. | ||
| 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.