A GitHub Actions tool for AI agents
Agents already commit and push. But once a workflow starts running, they can't tell if the build passed, read the failing logs, or retry a broken run. This GitHub Actions tool restores that feedback loop.
So what actually ships to close the loop?
Roughly 2,200 lines of Python expose exactly seven CI/CD operations, backed by a collected suite of 28 tests.
But restoring the loop means letting the agent act — and that's where it gets dangerous.
Four of the operations only read. But three of them act — triggering, canceling, and rerunning workflows. Give an agent those and an unguarded mistake can kick off the wrong run, or a deployment.
The mechanism has to answer that. Start with how the operations split.
Reads let the agent see the pipeline; writes let it drive. The README numbers them exactly this way.
The writes are the dangerous half — so every one of them is gated.
list_workflowslist_runsget_runget_run_logs
trigger_workflowcancel_runrerun_workflow
check_write_operation always checks the repository allowlist (an empty list allows all). Deployment-looking workflows are blocked unless explicitly enabled.
Guarded to act — now the reading half, done without drowning in logs.
Logs cap at 500 lines by default (max 2,000), with an optional failed-jobs-only filter. The truncator prioritizes errors instead of dumping everything.
Watch, guard, read — now the whole loop closes.
Push, watch the run, pull only the failing lines, rerun the fixed job. The feedback loop that broke at CI is whole again.
That's the pattern worth keeping.
Safe, typed, remediation-carrying access closes the agent's CI loop. Eleven exception classes — one base plus ten subclasses, each carrying remediation text — tell the agent exactly what to do next when something breaks.
A DevOps partner, not just a code-pusher.
Data as of: 2026-01-21 (single commit c0e748e, branch main)
Feature status: Single-commit initial implementation; fully wired. 26/28 tests pass in this environment (2 fail only because no valid GITHUB_TOKEN is present).
Repository: amplifier-module-tool-github-actions — sole author Sam Schillace (ramparte@gmail.com), 1 commit.
Research performed:
git log --oneline -20; git rev-list --count HEAD (1 commit found)grep -n 'enum' schema.py; grep -n 'VALID_OPERATIONS' tool.py; ls operations/*.pygrep -n 'Read Operations\|Write Operations' README.mdgrep -c '^class .*Error' exceptions.py; grep -c 'remediation=' exceptions.pysed -n '13,28p;112,135p' log_truncator.pysed -n '37,73p' safety.py; grep 'allow_deployment_triggers' config.pyfind src -name '*.py' | xargs wc -l; wc -l operations/*.py.venv/bin/python -m pytest --collect-only -q; .venv/bin/python -m pytest -qGaps: No .github/workflows CI config exists in the module; test results reflect local pytest runs, not a CI pipeline. The "5,000 requests/hour" figure appears only as a hard-coded string in RateLimitError remediation text, not measured against the live API.
Primary contributor: Sam Schillace — sole author of the only commit (100%).