diff --git a/CHANGELOG.md b/CHANGELOG.md index fe83e7c..81731be 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +## [0.5.0] - 2026-10-31 + +prw now works with Bitbucket Cloud as well as GitHub, and `prw dashboard` shows all your PRs across repositories in one live table, grouped by task, with one column per target branch — handy when a change travels dev → rc → master as cherry-picks. + ### Added - `prw dashboard` (alias `prw top`): a live table of your PRs across every repository on GitHub and Bitbucket Cloud, refreshed every minute (`--interval`). It finds them itself (`--review` adds PRs to review, `--merged --since 24h` recently merged ones), groups them by task — the issue key in the branch or title, else the branch without cherry-pick decorations — and shows one column per target branch in promotion order (dev → staging → rc/release → main/master; other targets share an `other` column). Cells show the PR (a clickable link) and its most pressing state: failed CI, conflict, changes requested, running CI, approvals, ready, merged. CI is only re-read when a PR's head changes, while it runs, or every 15 minutes, so dozens of Bitbucket PRs fit in its rate limit; the footer shows requests per hour. `--once`, `--json`; `group_by`, `issue_pattern`, `branch_order`, `bitbucket_workspaces` and `bitbucket_user` config keys. - Bitbucket Cloud pull requests: `prw watch`, `run`, `wait`, `checks`, `list`, `broadcast` and the MCP tools accept `bitbucket.org///pull-requests/` URLs. CI comes from the commit's build statuses (Bitbucket Pipelines, Jenkins, ...), reviews from participants' approvals and change requests, the merge state from the PR's merge checks. Authenticate with an Atlassian API token (`bitbucket_email` + `bitbucket_token`, or `BITBUCKET_EMAIL` / `BITBUCKET_TOKEN`) or an access token alone; public repositories need none. To stay within Bitbucket's 1,000 requests/hour, `prw run` checks each Bitbucket PR at most once a minute, and rate limits pause only the service that hit them. Auto-watch, `--logs` and `prw flaky` are GitHub-only for now. @@ -88,7 +92,8 @@ prw now covers the whole PR lifecycle and is built for scripts and AI agents: it - Complete documentation: README, CONTRIBUTING, SECURITY, QUICKSTART - MIT license -[Unreleased]: https://github.com/devblac/prw/compare/v0.4.0...HEAD +[Unreleased]: https://github.com/devblac/prw/compare/v0.5.0...HEAD +[0.5.0]: https://github.com/devblac/prw/compare/v0.4.0...v0.5.0 [0.4.0]: https://github.com/devblac/prw/compare/v0.3.0...v0.4.0 [0.3.0]: https://github.com/devblac/prw/releases/tag/v0.3.0 [0.2.0]: https://github.com/devblac/prw/releases/tag/v0.2.0 diff --git a/TASKS.md b/TASKS.md index db63efa..eae5e2f 100644 --- a/TASKS.md +++ b/TASKS.md @@ -99,6 +99,7 @@ Legend — Impact: 1–5 · Effort: S (≤½ day), M (1–2 days), L (3+ days) - 🚀 v0.4.0 released with everything above (PRs #6–#22). - 🆕 Bitbucket Cloud support (requested by the owner, who uses Bitbucket at work). Phase 1 done: PR identity carries the host; a Bitbucket client maps PRs, build statuses (Pipelines, Jenkins), participants and merge checks onto the existing types, so run / wait / checks / list / broadcast / MCP work unchanged; per-host rate-limit pauses; ≥60s between checks of a Bitbucket PR (1,000 req/h limit). Verified live on public atlassian/atlassian-connect-express PRs. Next: auto-watch (`--mine` / `--review-requested`) on Bitbucket, Pipelines step logs for `--logs`, then GitHub Enterprise (#2) on the same host abstraction. - ✅ `prw dashboard` (owner's use case: ~25 repos × dev/rc/master cherry-picks at work) — live table grouped by task across GitHub + Bitbucket, smart CI re-reads. Bitbucket discovery endpoints verified live anonymously (workspace user PRs, merged since, recent repos, reviewer filter); `/user` and `/user/workspaces` still need a check with the owner's token. Verified live on the owner's GitHub PRs. +- 🚀 v0.5.0 released with Bitbucket Cloud and `prw dashboard` (PRs #24–#25). - Next: #17 packaging (Homebrew/Scoop) + keychain token storage, #8 `gh` extension publishing — both need owner decisions ## Planned diff --git a/internal/version/version.go b/internal/version/version.go index cec8f58..851f3c3 100644 --- a/internal/version/version.go +++ b/internal/version/version.go @@ -3,7 +3,7 @@ package version import "fmt" var ( - Version = "0.4.0" + Version = "0.5.0" Commit = "unknown" )