Sprint rollover
When an iteration ends, unfinished cards move into the next sprint automatically — nothing stranded in a closed iteration. Optionally tag each rolled card with the new sprint's label and strip stale ones like pulled-in.
Boardly is a free, open-source GitHub Action that automates GitHub Projects (v2) — sprint rollover & start, auto-assign, stale-card nudges, sub-issue gating, digests, standups, priority sorting, and Slack/email notifications — all from one YAML file.
project:
owner: my-org
number: 5
features:
rollover: { enabled: true }
staleNudge:
enabled: true
rules:
- { status: "In Progress", days: 3 }
digest: { enabled: true, postTo: { issue: 42 } }
# ...and it just runs on a schedule 🎉
Everything your board needs
Turn each feature on or off in YAML. Boardly reads your board once, applies your rules, and records every action.
When an iteration ends, unfinished cards move into the next sprint automatically — nothing stranded in a closed iteration. Optionally tag each rolled card with the new sprint's label and strip stale ones like pulled-in.
When a sprint becomes active, promote the cards you pre-parked in it — e.g. Backlog → Ready. Only touches cards parked before the sprint started.
A CODEOWNERS-style label → owner map. Unassigned Ready tickets get their owner — UI → @zach, security → @rajan. Never overrides a human.
GitHub never auto-creates iterations. Boardly warns when too few future sprints are planned — so you add the next one before rollover runs dry.
@-mention owners when a card sits in a column too long — or the PR's pending reviewers, auto-detected from the linked pull request. De-duped, so it never spams the same card twice.
Block a card from staying Done while sub-issues are open, and write live completion % into a progress field.
At iteration end, post completed-vs-carried-over counts and velocity to an issue, Slack, or email.
A summary of what moved in the last N hours, grouped by assignee — async standup without the meeting.
Keep the board ordered by your Priority field so the most important work always floats to the top.
Deliver digests, standups, and alerts to a Slack channel and inboxes — not just GitHub comments.
Every action lands in the job summary. Preview everything with dry-run before it touches your board.
Live in minutes
No app to host, no database, no dashboard to babysit. It runs as a scheduled GitHub Action inside your own repo.
A fine-grained PAT or App token with Projects + Issues access, stored as an encrypted secret.
Describe your rules in .github/project-automation.yml — start from the example and tweak.
One uses: cdrrazan/Boardly@v1 step on a cron. Run with dry-run first to preview.
Flip dry-run off. Boardly keeps your board honest on every schedule, and logs what it did.
A linear, ~15-minute walkthrough you can do entirely from the GitHub web UI — including a quick 5-step install and an org rollout section.
Copy, paste, done
project: { owner: my-org, type: org, number: 5 }
doneStatuses: ["Done", "Released"]
features:
staleNudge:
enabled: true
rules:
- { status: "In Review", days: 2 }
prioritySort: { enabled: true, order: ["High", "Low"] }
notifications:
slack: { enabled: true, webhookEnv: SLACK_WEBHOOK_URL }
on:
schedule: [{ cron: "0 8 * * 1-5" }]
permissions: { contents: read, issues: write }
jobs:
automate:
runs-on: ubuntu-latest
steps:
- uses: cdrrazan/Boardly@v1
with:
token: ${{ secrets.PROJECT_AUTOMATION_TOKEN }}
env:
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
Real-world recipes
Sixteen copy-pasteable recipes in the docs — here are a few favorites.
Never hand-move unfinished tickets on Monday again.
Pre-parked Backlog tickets flip to Ready the day the sprint begins.
Boardly nags you to add the next iteration before the board runs dry.
UI to Zach, security to Rajan — no more hand-assigning.
Gate epics until every sub-issue is closed.
The most important work floats to the top, automatically.
@-mention the owner when a card sits too long — de-duped, never spammy.
Completed-vs-carried-over counts and velocity at sprint end.
What moved yesterday, grouped by assignee — across time zones.
Deliver sprint reports where your team already lives.
See exactly what it would do before it does anything.
The full cookbook in the repo docs.
Free & open, forever
Boardly is MIT-licensed and runs entirely inside your GitHub. It only ever uses the token you provide, with the scopes you grant — and every action is auditable.
Point Boardly at a project, add a YAML file, and let it keep things tidy while you ship.