Releases: King0James0/a0-github-plugin
v1.5.4 — fix invalid 24h poll schedule
Fix: 24h recurring-poll preset generated invalid cron
Selecting the 24h interval for the recurring watch poll produced the cron hour=*/24, but cron hour steps cap at 23. croniter raised increment value must be less than 23, you provided 24 on every scheduler tick — crash-looping the job loop and making the Tasks list throw, which blanked the Tasks panel and wedged the web UI (New Chat stopped responding).
Fix: the interval→cron builder now maps >= 24h to a daily 0 0 * * * instead of */24. All dropdown presets (5m/10m/15m/30m/1h/2h/6h/12h/24h) verified to parse cleanly against the crontab parser.
Upgrade note: if you already had the 24h preset selected and hit the blank-Tasks/frozen-UI symptom, reinstall/upgrade to v1.5.4 and the self-registered task will be rewritten with a valid schedule. As a manual workaround you can also set the Advanced cron field to 0 0 * * *.
v1.5.3 — github-watch: poll, enrichment, Telegram, scheduling
github-watch — watch repos for new issues, PRs, and commits
This release adds a full repo-watch capability and refines it with enrichment, selectable Telegram delivery, and flexible scheduling.
Watch
- Poll a set of repos for new/updated issues, PRs, and (optional) commits since the last check — one deterministic, parallel script. Watched set = your configured
watch_repos∪ the repos you Watch on GitHub (user/subscriptions; needs the token's Watching: Read account permission). - Self-registering scheduled poll (
github-watch-poll) with a flexible cadence: a preset interval (5m–24h) or a full 5-field cron expression. - First in-plugin Config panel (Settings → plugin config): watched repos, interval/cron, scope, notifications, enrichment.
Notifications
- In-app toast + notifications bell via
notify_user. - Telegram, selectable method:
direct— the plugin sends the report itself via the Telegram Bot API (reads the bot token from an A0 Secret; no other plugin needed).tool— sent via a Telegram send tool you already have (e.g. the YATCA plugin).
- Report is a fixed markdown table + per-repo detail with 🐛 / 🔀 / 📝 markers, relayed verbatim.
Enrichment (optional)
- Richer per-item detail — body snippet, labels, author — rendered as Telegram blockquote cards.
- A short model-written release-note digest of what changed (extension- or agent-generated; selectable model tier).
Reliability
- Bounded context: the scheduled task resets its history at the start of each run, so its dedicated context no longer grows unbounded.
- Transient
gh5xx/timeout responses are auto-retried; persistent errors are surfaced with a count in the report and notifications.
See the README for setup and the full config reference.
v1.1.0 — Create releases
What's new in 1.1.0
New: create releases (github-create-release)
A fifth process skill so Agent Zero can cut a GitHub release with real, user-facing notes — not just push code.
- Picks the tag (matched to the project's
plugin.yamlversion) and refuses to overwrite an existing release. - Ensures the work is committed and pushed, summarizes commits since the last tag, and writes proper notes (what's new / unchanged).
- Supports drafts, pre-releases, and attaching build artifacts.
- Uses the Contents write permission the plugin already requires — no new token scope.
Unchanged from 1.0.0
Open PRs, triage issues, review PRs, and search — all via the gh CLI, authenticated from the GITHUB_TOKEN Secret.
v1.0.0 — GitHub via gh CLI
GitHub for Agent Zero — 1.0.0
First release. Lets Agent Zero work with GitHub through the gh CLI.
Capabilities (4 process skills)
- Open a pull request
- Triage an issue
- Review a pull request
- Search GitHub — repos, code, issues/PRs
Auth — stateless
- Reads a
GITHUB_TOKENfrom Agent Zero Secrets at call time via a thinghwrapper; nothing is stored, and it's removed on uninstall. git pushuses a github.com-scoped credential helper through the same wrapper.
Install
- Auto-installs the
ghCLI (downloaded over HTTPS and verified against a published SHA-256, refusing on mismatch), persisted in the plugin folder and removed on uninstall only if the plugin installed it.