Watch
0
0
Fork
You've already forked hyperhive
0
hyperhive/hive-forge
Repository files (latest commit first)
Filename Latest commit message Latest commit date
atlas 6859eb7f37 hive-forge list's paging trailer counts the rows actually shown
The trailer computed shown as page * rows-on-this-page, so a short last
page (page 27 of 1331 rows at 50/page, 31 rows) was counted as 837 of
1331 and printed a hint to fetch page 28. A page whose unclamped row
offset lands exactly on the total is now recognised as the last one, so
the trailer stays silent there. Shown is also clamped to the total.
2026-10-21 00:34:39 +02:00
..
src hive-forge list's paging trailer counts the rows actually shown 2026-10-21 00:34:39 +02:00
tests hive-forge: exit after HIVE_FORGE_DEADLINE instead of hanging on a stalled forge 2026-10-17 08:01:23 +02:00
Cargo.toml agents fetch the hive CA from bao at boot instead of the meta flake embedding it 2026-10-19 20:15:13 +02:00
README.md hive-forge: exit after HIVE_FORGE_DEADLINE instead of hanging on a stalled forge 2026-10-17 08:01:23 +02:00

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 swarm-UI-linked 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. HIVE_FORGE_DEADLINE (seconds, default 900) caps one invocation; past it the binary exits 75 (see src/deadline.rs).

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 (clap Args + 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.