robson
Rust async agent orchestrator that automates the full lifecycle from Jira task to code review:
Jira task → SQLite → branch → Claude Code → PR → Jira comment → Slack notification
System Dependencies
The git2 crate requires libgit2 and libssh2 C libraries at build time.
Debian / Ubuntu
Alpine
Fedora / RHEL
Build
Usage
# Create a task
# Process pending tasks
# Run a single task
# Start webhook server
Configuration
See docs/spec.md for the full specification.
Tests
Publishing to crates.io
All workspace crates share a single version in [workspace.package] at the root Cargo.toml. Internal robson-* dependency versions are kept in sync via make sync-workspace-versions (also run automatically by make bump-version and before publish).
Set your API token (create one at https://crates.io/settings/tokens):
Validate packaging without uploading (cargo publish --dry-run per crate; crates that depend on unpublished workspace members are skipped with a warning):
Manual release (bump + publish)
Tag-driven release
publish-tag requires HEAD to be tagged and the tag version (without v prefix) to match the workspace version in Cargo.toml.
To publish the current workspace version without bumping (e.g. retry after a failed publish):
Rate limits (first-time publish)
crates.io allows a burst of 5 new crates, then 1 new crate every 10 minutes. Publishing all 17 crates the first time takes about 2 hours.
If you hit 429 Too Many Requests, do not run make publish again (it re-runs clippy/tests). Wait until the time in the error message, then:
This skips crates already on crates.io, retries on 429 automatically, and waits 10 minutes between each remaining crate.