Skip to content

Releases: alexander-zierhut/agent-tool-drone-cli

v0.1.3

Choose a tag to compare

@github-actions github-actions released this 20 Jul 13:55
11668c4
Add `report` command — where and how to file an issue, offline

New top-level `<cmd> report` prints this tool's repo, a pre-filled GitHub
issues/new link (running version inlined into the body) and a `gh issue
create` one-liner. Like `guide` it needs no network, token or config. After
`pipx install` there is no README or AGENTS.md beside the binary, so the
tool must carry its own "report a problem" answer. Needs shared-cli>=0.1.4.

Claude-Session: https://claude.ai/code/session_017feobGd32Ftk7p4X4JqDKC

v0.1.2

Choose a tag to compare

@github-actions github-actions released this 18 Jul 21:45
937fe89
docs: unify README chrome + add LICENSE, bump 0.1.2

- add MIT LICENSE file (pyproject already declared MIT)
- README: embed the CLI 'command surface' (--help), add the
  'Part of the family' cross-link table, link LICENSE
Part of the cross-repo agent-tool CLI doc standardization.

v0.1.1

Choose a tag to compare

@github-actions github-actions released this 17 Jul 19:39
6778280
chore: release v0.1.1 — pin the chassis fix, ship the pending commits

Pins agent-tool-shared-cli >=0.1.2, which carries the `-o table` / `-o csv` /
`-o markdown` columns fix. Drone's `deploy history`, `auth status` and
`server version` all pass bare-string columns and therefore crashed under those
formats on 0.1.0 (json was unaffected, so it went unnoticed). A fresh install
already resolved the fix transitively; this makes the requirement explicit.

Also folds in the two commits sitting on main since 0.1.0: the domain scrub
(example.com, not a real hostname) and the release-workflow skip-existing fix.

Claude-Session: https://claude.ai/code/session_017feobGd32Ftk7p4X4JqDKC

v0.1.0 — agent-ready Drone CI CLI

Choose a tag to compare

@github-actions github-actions released this 16 Jul 20:50

The first release of drone-cli — a Drone CI client built to be driven by an AI agent.

This is not the official drone binary. Both coexist: drone is the official Go client; drone-cli is this tool. The name drone is deliberately not claimed.

pipx install agent-tool-drone-cli
drone-cli auth login       # asks for your server, then shows you where to get a token
drone-cli guide            # the whole playbook, offline, no config needed

Why it exists

Drone's API refuses to answer the questions you actually have. This CLI derives them.

Address builds by commit, not number. Build numbers are racy — if a colleague pushes while you do, "the latest build" may be theirs, and you'd report their failure as yours. You already know your SHA:

drone-cli wait --commit HEAD                  # did MY push pass?
drone-cli wait --commit HEAD --exit-code && ./deploy.sh

It distinguishes three outcomes an agent must never conflate: finished (outcome in the JSON), blocked (a human must approve — it tells you the command), and never appeared (exit 10 — the webhook may be broken, which is not "the tests are red").

log failed — just the failing step. Otherwise: GET the build → walk stages[] → know that stage/step are 1-based ordinals (not names, not ids) → GET that step's logs → strip the {pos,out,time} envelope. Four calls, three pieces of tribal knowledge, and an unbounded wall of apt-get noise.

Deployment questions the UI can't answer:

drone-cli deploy status              # which commit is on prod RIGHT NOW
drone-cli deploy of --commit HEAD    # has my commit shipped, and is it still live?
drone-cli promote --commit HEAD      # --to defaults to prod (configurable)

"On prod" means the newest successful promote — a failed promote deployed nothing, and reporting its commit as live would be the most dangerous wrong answer this tool could give.

Verified gotchas it protects you from

Every one of these was confirmed against a real Drone + Forgejo + runner stack, and several contradict the official docs:

  • Cron is seconds-first. "0 3 * * *" parses fine and fires every hour at :03, not daily at 3am. Silent, 24× wrong. Use cron add --at "3am daily".
  • build.link is not a commit link — it's a compare URL for pushes and an API URL for API-triggered builds. --links derives a real one.
  • Secret values can never be read back. By design. A get returning only a name is success, not failure.
  • A 500 saying "Unauthorized" means the server's link to your git provider is broken — not your token. server doctor says so in plain words.
  • restart mints a new build number. GET /api/version doesn't exist (it's /version). Org secrets live at /api/secrets/{namespace}.

The contract

JSON on stdout, JSON errors on stderr, stable exit codes (0 ok · 4 auth · 5 not-found · 8 not-implemented · 9 wait timed out · 10 no build for that commit). --dry-run previews any write. --fields/--stream for token thrift. drone-cli install claude registers a Claude Code skill.

Full API coverage: builds, repos, secrets, org secrets, crons, templates, users, logs, deployments — 18 groups, 76 commands.

Install

pipx install agent-tool-drone-cli        # or pip

Or grab a self-contained binary below (no Python needed).

Built on agent-tool-shared-cli. 501 hermetic tests — pip install -e '.[test]' && pytest needs no server, no Docker, no token.