robson-cli 0.1.0

Rust async agent orchestrator for automated development workflows
Documentation

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

sudo apt-get install -y pkg-config libssl-dev cmake libssh2-1-dev libgit2-dev

Alpine

apk add --no-cache pkgconf openssl-dev cmake libssh2-dev libgit2-dev musl-dev gcc

Fedora / RHEL

sudo dnf install -y pkgconfig openssl-devel cmake libssh2-devel libgit2-devel

Build

cargo build --release

Usage

# Create a task
cargo robson task create --key PROJ-123 --summary "Fix bug" --description "Details" --repo-url "git://github.com/org/repo"

# Process pending tasks
cargo robson run

# Run a single task
cargo robson run-task PROJ-123

# Start webhook server
cargo robson server

Configuration

cp robson.example.toml robson.toml

See docs/spec.md for the full specification.

Tests

cargo test

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).

Install cargo-workspaces (required for publish targets):

cargo install cargo-workspaces --locked --version 0.4.2

Set your API token (create one at https://crates.io/settings/tokens):

export CARGO_REGISTRY_TOKEN=...

Inspect publish order (dependency graph):

make publish-plan

Validate packaging without uploading (cargo ws publish --dry-run for all crates in dependency order):

make publish-dry-run

Manual release (bump + publish)

make publish VERSION=0.2.0

Tag-driven release

make bump-version VERSION=0.2.0
git commit -am "chore: release v0.2.0"
git tag v0.2.0
make publish-tag

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):

make 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:

make publish-resume

This skips crates already on crates.io and continues publishing the rest without re-running pre-flight checks.

For slow first-time publishes, you can increase the delay between crates:

make publish PUBLISH_INTERVAL=600