mirror of
https://github.com/avivsinai/bitbucket-cli.git
synced 2026-09-19 07:13:00 +08:00
43 KiB
43 KiB
Changelog
All notable changes to this project will be documented here. The format follows Keep a Changelog and adheres to Semantic Versioning.
Unreleased
0.32.1 - 2026-09-04
Added
- Carried forward from the unpublished
v0.32.0tag:bkt skillnow supports installing, listing, previewing, updating, and publishing Agent Skills hosted in Bitbucket Cloud or Data Center, plus Cloud workspace skill search. bkt pipeline runcan select branch and custom pipeline definitions with--selector-typeand--selector-pattern.
Fixed
- Local skill discovery ignores Git metadata, so concurrent Git maintenance no
longer causes
bkt skill publishto fail while walking.git.
0.32.0 - 2026-09-04
Added
bkt skillinstalls and manages Agent Skills hosted in Bitbucket repositories, mirroring GitHub CLI'sgh skill(install,list,preview,update). Repositories are addressed asWORKSPACE/REPO(Cloud),PROJECT/REPO(Data Center), or a Bitbucket URL, and are read with the active context's credentials. Skill discovery, the agent host table, the flat on-disk layout, and the~/.agents/.skill-lock.jsonentry matchgh skill; installed skills record their origin undermetadata.bitbucket-*. Bitbucket has no per-directory tree hash, so update detection uses the latest commit that touched the skill directory, and "latest" resolves to the newest tag, falling back to the default branch. (#310)bkt skill publishvalidates a repository's skills against the Agent Skills specification (naming rules, required frontmatter,allowed-toolsas a string, no committed install metadata) and reports the spec's recommendations as warnings.--fixstrips committed install metadata,--dry-runvalidates only, and--tagmarks the current commit as a released version. Bitbucket has no releases, so publishing a version means creating a tag, which is whatbkt skill installresolves to when no version is requested. (#310)bkt pipeline runcan select a pipeline definition with--selector-typeand--selector-pattern, including named custom pipelines on a branch.- Data Center
bkt repo listandbkt repo viewinclude the repositoryarchivedflag in structured output (always present, includingfalse). Humanrepo viewprintsArchived: true|false; archivedrepo listrows get an(archived)suffix. Bitbucket Cloud is unchanged. bkt skill searchsearchesSKILL.mdfiles across a Bitbucket Cloud workspace, with human and structured output. Data Center reports that the command is unsupported because it has no public workspace code-search API. Atlassian will deprecate the Cloud endpoint on November 1, 2026. (#310)
Changed
- Short skill versions now resolve tags before branches, so a tag wins when a branch shares its name.
Fixed
bkt skill installstages files in a temporary sibling of the skill directory within the install root, then replaces the destination only on success, so failed installs no longer leave partial skill directories.bkt skill publishrefuses to tag while the published files have uncommitted changes, and addresses the repository by its full host URL.bkt skill updateemits one structured document without human success text, and returns an error when any remote update check fails instead of reporting every skill as up to date.- Skill lock updates preserve unrelated entries and unknown JSON fields, and refuse to overwrite an existing malformed or incompatible lock file.
0.31.1 - 2026-08-21
Added
- Headless Bitbucket Cloud authentication now supports repository, project,
and workspace access tokens through
BKT_AUTH_METHOD=bearerwithout requiringBKT_USERNAME.
Changed
- The README first screen now shows Homebrew install plus a recorded
bkt --helpsession (docs/demo.gifanddocs/demo.svg). No credentials are used.
Fixed
- Windows Cloud
--weblogin now stores OAuth credentials that exceed Windows Credential Manager's 2560-byte blob limit by splitting the secret across multiple WinCred items. Token refresh write-back uses the same store. The default Windows path stays WinCred; oversized writes never fall back to the encrypted file backend. (#298)
0.31.0 - 2026-08-12
Added
bkt project reviewer-groups listlists the reviewer groups defined in a Bitbucket Data Center project's settings, including each group's members. The project is resolved from the active context or--project. (#290)
0.30.1 - 2026-08-05
Added
- Documented WinGet installation (
winget install AvivSinai.Bitbucket-CLI) in the README now that the package is available in the catalog.
Fixed
- Creating a Bitbucket Data Center repository with a default branch no longer reports a false 404 after the repository has already been created.
- ChatGPT GitHub imports no longer fail on unsupported skill symlinks; the Claude and agent skill paths are now committed directory mirrors. (#279)
- Corrected support and governance docs to point at GitHub Issues: removed a reference to a non-existent community Slack and to GitHub Discussions, which are not enabled for this repository.
- Removed an accidentally committed
promptcode_bitbucket-cli-full.mdexport and ignoredpromptcode_*.mdso generated dumps stay out of version control.
0.30.0 - 2026-07-22
Added
bkt pr list --reviewerlists pull requests where the authenticated user is a requested reviewer. Data Center supports dashboard-wide and repository-scoped views; Bitbucket Cloud supports repository-scoped filtering and requires a repository from the active context or--repo.--mineand--reviewerare mutually exclusive. (#253)bkt pr create --source-projectand--source-repocreate Data Center pull requests from a fork repository into an independent destination repository, including cross-repository default-reviewer resolution. The flags are rejected on Bitbucket Cloud. (#268)- Release automation can generate WinGet manifests for
AvivSinai.Bitbucket-CLIand submit updates tomicrosoft/winget-pkgsafter the package's initial catalog entry is accepted. (#246)
Changed
make build,make clean, andmake testnow run on Windows GNU Make using cmd.exe-pinned recipes and Windows-safe test helpers, while keeping the existing Unix build and release script paths intact. Awindows-latestCI job verifies the Windows build and test path.
Fixed
- Bitbucket API errors now surface actionable
errors[].details[]text and additionalerrors[]entries while preserving the existing first-line status/message format. LF/CRLF boundary blank lines no longer add stray stderr lines. (#269)
0.29.0 - 2026-07-21
Added
bkt mcp serve(experimental): a read-only Model Context Protocol server over stdio for AI agents, exposing Bitbucket Data Center and Cloud through a single interface and reusing your existingbktauthentication. The server pins one context resolved at startup — the working directory never changes the target, and the credential is frozen for the process lifetime — and registers nine tools:bkt_get_context, repository list/get, pull request listing (repo-scoped with author/reviewer role filters, plus a cross-repo "my pull requests" view), and pull request detail, unified diff, comments, and checks. Role and state filters are applied by Bitbucket before the result limit; list results are bounded with explicit truncation; pull request descriptions, comment bodies, and diffs are size-bounded and tagged as untrusted; errors are redacted and machine-readable; and the tool schemas are frozen by a drift-checked contract. Register with e.g.claude mcp add bitbucket -- bkt mcp serve. (#258–#263)bkt pipeline view --waitandbkt pipeline run --waitpoll a pipeline until it completes, using the same backoff flags (--interval,--max-interval,--timeout) and exit-code contract asbkt pr checks --wait: 0 = succeeded, 1 = completed unsuccessfully, 8 = timed out while still running. (#252)
Fixed
- The HTTP client is now safe for concurrent use during OAuth token refresh: credential updates are mutex-protected and simultaneous 401 responses coalesce into a single token refresh instead of racing. (#257)
0.28.2 - 2026-06-06
Fixed
bkt pr comment --parenton Bitbucket Cloud no longer reports success when Bitbucket does not thread the reply under the requested parent. When the created-comment response is available,bktverifies the echoedparent.idand returns an actionable error instead of a false "Commented" message.- The HTTP client no longer retries non-idempotent requests (POST/PATCH) on server (5xx) or network errors, preventing duplicate pull request comments when a transient failure occurs after the comment was already created. Rate-limited (429) responses remain retryable for all methods.
0.28.1 - 2026-05-30
Fixed
bkt branch create --fromon Bitbucket Data Center no longer wraps commit hashes inrefs/heads/, so creating a branch from a commit hash works.bkt variable setandbkt variable deleteon Bitbucket Cloud now reject invalid variable and deployment-environment UUIDs locally instead of calling malformed API endpoints.bkt pipeline viewandbkt pipeline logsnow paginate pipeline steps, so pipelines with many steps are complete and the default log step is the true final step.bkt pr mergeon Bitbucket Cloud now gives async merge tasks enough time to finish and reports an actionable "may still be running" message with task and pull request IDs if polling times out.bkt pr list --mineon Bitbucket Cloud now filters by the authenticated user's stable identity (UUID or account ID) instead of an email-shaped username, fixing empty results for API-token logins.bkt repo createnow rejects host-specific flags that do not apply, such as--forkable,--default-branch,--scm, and--projecton Cloud or--workspaceand--cloud-projecton Data Center, instead of silently ignoring them.bkt pr create --with-default-reviewers,bkt pr edit --with-default-reviewers, and Data Centerbkt repo default-reviewers list --source/--targetnow call the effective default reviewers API with repository IDs and branch/tag refs, and decode the direct user response returned by Bitbucket Data Center.
0.28.0 - 2026-05-30
Added
bkt pr comments resolve,bkt pr comments reopen, andbkt pr comments deletenow manage pull request comment threads/comments on Bitbucket Cloud and Data Center. Resolve/reopen require the top-level thread comment ID and support structured output.
Fixed
bkt pr comments --state deletedcan now list deleted pull request comments returned by Bitbucket Cloud, making deletion verification explicit.bkt pr comments deletenow includes the current comment version required by Bitbucket Data Center delete-comment requests.
0.27.1 - 2026-05-29
Fixed
- Fixed
bkt pipeline view <build-number>andbkt pipeline logs <build-number>so numeric build numbers use the Bitbucket Cloud build-number lookup without falling through to UUID validation.
0.27.0 - 2026-05-29
Added
bkt pr tasknow works on Bitbucket Cloud, using its first-class pull request tasks API (list,create,complete,reopen).
Fixed
bkt pr taskon Bitbucket Data Center no longer calls endpoints that never existed (the oldcreate,complete, andreopenpaths returned 404). It now uses the blocker-comments API (Bitbucket Data Center 7.2+); a task request against an older server surfaces a clear hint. On Data Center, tasks andbkt pr comments --detailsoverlap by design, since tasks are blocker comments there.
0.26.7 - 2026-05-27
Fixed
- Bitbucket Data Center mutating requests now send
X-Atlassian-Token: no-check, fixing 403 XSRF failures for first-class commands such asbkt pr approveandbkt pr merge. - Corrected the
bktskill's structured-output example: pipingbkt pr list --jsontojq '.[].title'fails because the command returns an object keyed bypull_requests, not a bare array. The example now usesjq '.pull_requests[].title'.
0.26.6 - 2026-05-13
Fixed
- Bitbucket Cloud pipeline steps now decode
state.resultthe same way as pipeline runs, sobkt pipeline view,bkt pipeline view --json, andbkt status pipelineshow per-step outcomes (for exampleFAILEDvsSUCCESSFUL) instead of onlyCOMPLETED.
0.26.5 - 2026-05-11
Fixed
- Corrected the Bitbucket Data Center README login example to use
--web-token, and madebkt auth login https://bitbucket.org --webinfer Bitbucket Cloud before validating the browser OAuth flow (#194).
0.26.4 - 2026-04-27
Fixed
- Restored zero-config Bitbucket Cloud browser OAuth in official release
binaries by embedding the CLI OAuth consumer credentials through release
ldflags again.
BKT_OAUTH_CLIENT_IDandBKT_OAUTH_CLIENT_SECRETremain the fallback for source and Nix builds (#189).
0.26.3 - 2026-04-26
Added
bkt auth statusnow surfaces Cloud OAuth refresh risks, including expired inferred OAuth credentials, missing refresh credentials, andBKT_TOKENoverrides as effective basic auth (#184).
Changed
- Cloud authentication now treats explicit
auth_methodvalues as authoritative, and API-token logins storeauth_method: basicinstead of relying on token-shape guessing (#184). - Cloud OAuth expiry metadata is runtime-only and preflighted before client construction, with recovery guidance pointing to scoped API-token login instead of
auth logout(#184). - Cloud OAuth login help no longer labels the OAuth browser flow as recommended, keeping scoped API-token login as the zero-config path (#184).
Fixed
- OAuth credential detection now validates the complete stored OAuth blob before treating keychain contents as refreshable OAuth credentials (#184).
- Concurrent Cloud OAuth refreshes now serialize behind a per-host file lock and reuse a fresher keychain token when another process already refreshed it (#184).
0.26.2 - 2026-04-24
Added
bkt auth doctor [host]diagnoses macOS Keychain re-prompt issues without reading the stored secret. Reports the binary's signature, Designated Requirement, and whether a Keychain entry is present for the host (#181).
Fixed
- macOS Keychain "Always Allow" now survives
brew upgrade bkt. The release codesign script pins the Designated Requirement to the bundle identifier (-r='designated => identifier "…"') instead of letting it default to the cdhash, which changes on every build. The previous claim in 0.21.0 that the stable identifier alone preserved approvals was incomplete — without an explicit DR,codesignstill derived one from the cdhash. (#181) - Token saves on macOS now delete any stale Keychain item before writing, so the new entry is created with the current binary's DR instead of inheriting an ACL from a previous bkt build. Re-run
bkt auth loginonce after upgrading to benefit. (#181) - macOS Keychain items created by bkt now set
KeychainTrustApplicationon darwin, so fresh items trust the calling binary at create time instead of prompting on every access.KeychainAccessibleWhenUnlockedis set alongside for forward compatibility (currently a no-op on the file-based Keychain path 99designs/keyring uses). (#181)
0.26.1 - 2026-04-22
Added
- Release
.tar.gzand.ziparchives now bundleskills/bkt/alongside the CLI binary and docs.
Fixed
- Bitbucket Cloud 401 auth failures now explain the most common API-token misconfigurations, including the required Atlassian-account email username and
read:user:bitbucketscope.
0.26.0 - 2026-04-18
Added
bkt pr closeas an alias forbkt pr decline, matchinggh-style command expectations (#160).--destinationas a visible alias for--targetonbkt pr create, mutually exclusive with--target(#160).- Global
--format json|yamlflag as an alternative to--json/--yaml; validated before any mutating subcommand runs (#160).
0.25.0 - 2026-04-16
Added
bkt pr declinenow accepts--comment/-m, plus--textand--bodyaliases, to send a decline reason on Bitbucket Cloud and Data Center (#161).- Nix flake support for running and installing
bktvianix run/nix profile install, with CI validation on Linux and macOS (#165).
0.24.1 - 2026-04-15
Fixed
- Release workflow attestation subject collection now avoids Bash-4-only
mapfile, so macOS runners can finish artifact attestation after GoReleaser publishes a release.
0.24.0 - 2026-04-15
Added
bkt pr comments --detailsnow shows file:line context, resolved/complete status, full comment text, and nested reply indentation for Bitbucket Data Center pull request threads (#110).
Changed
- Bitbucket Cloud OAuth login now layers PKCE (RFC 7636, S256) onto the existing authorization-code flow while preserving the client-secret token exchange Bitbucket still requires (#162).
- Release automation now attests published artifacts and tightens release-commit verification before tags are created (#164).
0.23.0 - 2026-04-12
Added
bkt pr edit --with-default-reviewersnow works on Bitbucket Cloud and Data Center, merging effective default reviewers with explicit reviewer edits while preserving mixed Cloud reviewer identities (#150).
Changed
- Added pre-commit and CI validation that generated skill rule files and the
SKILL.mdReferences section stay in sync with the Cobra command tree, withGOoverride support in the verification path (#148).
Fixed
bkt pr updateis now an alias forbkt pr edit, matchinggh-style command expectations and--helpoutput (#149).
0.22.0 - 2026-04-12
Added
bkt auth login --webbrowser-based OAuth 2.0 login for Bitbucket Cloud, with keyring-stored short-lived access tokens and automatic refresh on expiry (#152).BKT_HOST+BKT_TOKENenv-var-driven headless authentication for CI and containers, so commands can run without a priorbkt auth loginorbkt context create(#138).- Pull request JSON output now includes creation and update timestamps for Cloud and Data Center listings.
Changed
bkt pr listnow appends a local creation timestamp column (YYYY-MM-DD HH:MM) to text output for Cloud and Data Center listings.
0.21.0 - 2026-04-10
Added
- OAuth 2.0 infrastructure for Cloud login in the new
pkg/oauthpackage, plus aTokenRefresherhook onhttpx.Clientfor transparent 401-driven token refresh. Phase 1 only; login-command wiring is not included yet (#137). - Unit test coverage for
bkt branchandbkt branch protectsubcommands (#143). - Unit test coverage for
bkt contextsubcommands (#143). - Unit test coverage for
bkt project list(#144). - Unit test coverage for
bkt webhooksubcommands (#145).
0.20.0 - 2026-04-09
Added
- Deprecation warning on all
bkt issuesubcommands for Bitbucket Cloud contexts, ahead of the August 20, 2026 Issues/Wikis sunset (#139). - Generated per-command skill rule files and rewritten
SKILL.mdviacmd/docgenpipeline (#133). - Unit tests for
bkt pr commentscovering Data Center and Cloud code paths, state filtering, and empty results (#140).
0.19.0 - 2026-04-07
Added
bkt auth login --auth-method bearerfor Data Center instances that require bearer token authentication instead of basic auth (#97).bkt pr create --with-default-reviewersnow works on Bitbucket Cloud, fetching effective default reviewers via the API with UUID-based self-exclusion and deduplication (#127).cmd/docgenskill generator andmake generate-skilltarget for auto-generating skill documentation from Cobra command definitions (#131).
Fixed
- Bearer auth propagation to all inline
bbdc.New()call sites inrepo list,repo view,status commit, andstatus pr(#112).
0.18.0 - 2026-04-07
Added
bkt pr edit --reviewerand--remove-reviewerflags to add or remove reviewers on existing pull requests for both Data Center and Cloud (#128).bkt pr create --body/-bas an alias for--description, matchingghCLI conventions (#126).LongandExampledocstrings for all Cobra commands, improving--helpoutput and enabling future skill auto-generation (#129).
0.17.0 - 2026-04-05
Added
bkt pr publishandbkt pr unpublishcommands to toggle draft status on Bitbucket Cloud and Data Center 8.18+ pull requests. Alias:bkt pr ready(#122).bkt pr createnow outputs the pull request URL on success (#105).bkt pr createdefaults--sourceto the current branch and--targetto the repository default branch, making both flags optional (#116).- Bitbucket Pipelines install section in README with validated
curl | tarsnippet. - Privacy policy at
docs/PRIVACY.md. .scratch/convention for local working documents (gitignored).
Fixed
bkt pr createnow selects the git remote matching the active Bitbucket host instead of defaulting to the first remote (#116).- Deterministic remote name ordering in fallback when multiple remotes match (#116).
- Cloud diff tests (
TestCommitDiffCloud,TestCommitDiffEmptyCloud) no longer fail on Bitbucket Pipelines where the CWD has abitbucket.orgremote (#119). - Stale credential storage description in
docs/SECURITY.mdupdated to reflect OS keychain,BKT_TOKEN, and encrypted file backend. - Consolidated skill publishing into the release workflow so it no longer depends on tag-push events that
GITHUB_TOKENcannot trigger. - Pinned all GitHub Actions to commit SHAs across every workflow for supply-chain safety.
- Added missing
timeout-minutesandconcurrencyblocks to all workflows. - Standalone publish-skill workflow now accepts
workflow_dispatchwith an explicittaginput. - Bitbucket Pipelines Go image updated from 1.24 to 1.25 to match
go.mod.
0.16.4 - 2026-04-02
Fixed
- Passed the temp release-notes path directly to GoReleaser so GitHub Actions preserves the
--release-notesargument during publishing.
0.16.3 - 2026-04-02
Fixed
- Wrote generated GitHub release notes to the runner temp directory so GoReleaser can publish without dirtying the checked-out tree.
0.16.2 - 2026-04-02
Changed
- Switched releases to the shared PR-based
scripts/release.shflow, withCHANGELOG.mdsupplying the GitHub release notes and CI creating the version tag only after the merged release commit verifies.
Fixed
- Removed deprecated release shims so there is exactly one supported release entrypoint.
0.16.1 - 2026-04-02
Added
- Pipeline step state and result details in
bkt pipeline viewandbkt status pipelinefor Bitbucket Cloud, making in-flight step progress visible without--json.
Fixed
- Switched Data Center
bkt pr commentsto the pull request activities endpoint so general and inline comments can be listed without the invalidpathquery error.
0.15.0 - 2026-04-01
Added
bkt pr create --draftto create draft pull requests on Bitbucket Cloud and on Bitbucket Data Center 8.18+.bkt pr comment --pendingto create pending review comments on Bitbucket Cloud and Bitbucket Data Center.
0.14.7 - 2026-04-01
Fixed
- Keyed manual release rerun concurrency by tag so rerunning one release tag cannot cancel a different release recovery run.
0.14.6 - 2026-04-01
Fixed
- Treated
Version already existsas success when a skill publish reruns after retrying without an alias, preventing false-negative publish failures on release reruns.
0.14.5 - 2026-04-01
Changed
- Added manual
workflow_dispatchsupport for the release workflow so an existing tag can be rerun cleanly when GitHub release automation needs recovery without minting another version.
0.14.4 - 2026-04-01
Fixed
- Serialized macOS keychain reads and writes behind an inter-process lock to prevent prompt storms when multiple
bktprocesses access the same token concurrently. - Ad-hoc signed macOS binaries with the stable identifier
io.github.avivsinai.bitbucket-cliin both local builds and GoReleaser artifacts so Keychain approvals survive Homebrew upgrades.
0.14.3 - 2026-04-01
Fixed
- Prevented skill publish failures when a skill alias falls outside registry length limits.
- Ensured release automation stages optional Codex plugin manifests and verifies skill/plugin metadata versions before publishing or tagging.
Changed
- Added a default-branch marketplace dispatch workflow so plugin updates are announced after merges to
master. - Updated the Codecov action to v6.
0.14.2 - 2026-03-30
Changed
- Switched skill publishing to a tag-based release flow so binary and skill releases are driven from the same version tag.
0.14.1 - 2026-03-29
Added
- Codex plugin manifest metadata for
bkt, including interface metadata for marketplace and CLI consumers.
Changed
- Consolidated skill packaging around the shared plugin manifest layout.
Fixed
- Aligned Claude and Codex plugin manifest versions with release tags.
0.14.0 - 2026-03-18
Added
bkt pr comment --file <path> --to-line <n>and--from-line <n>flags for inline comments on PR diffs. Targets specific lines in the diff:--to-linefor added/changed lines (new side),--from-linefor removed lines (old side). Supports both Bitbucket Cloud (inlineobject) and Data Center (anchorobject) (#86).Inlinefield on CloudPullRequestCommentandAnchorfield on DCPullRequestCommentstructs, exposing file/line location in--jsonoutput.
Changed
- Refactored
CommentPullRequestin both Cloud and DC clients from positional parameters to aCommentOptionsstruct, enabling extensible comment creation.
0.13.1 - 2026-03-18
Fixed
- Rejected half-braced UUID inputs (e.g.
{uuidoruuid}) inlooksLikeUUID. The regex now requires either both curly braces or neither.
0.13.0 - 2026-03-18
Added
- UUID-based reviewer identification in
bkt pr create --reviewer. Automatically detects canonical UUIDs and sends them with theuuidkey to Bitbucket Cloud, while preserving username-based identification for non-UUID values (#87). - USERNAME column in
bkt repo default-reviewers listCloud output, making it easier to copy reviewer identifiers for use with--reviewer.
Fixed
- Tightened
looksLikeUUIDregex to match only canonical UUIDs (8-4-4-4-12 hex segments), preventing false positives on hex-only usernames likecafeordead. - Bitbucket Cloud API conformance: reviewer auto-detection, merge 202 async polling with bounded retries, variable UUID normalization in URL paths, and pipeline pagelen raised to API maximum of 100 (#78).
Changed
--reviewerflag help text now clarifies that both usernames and{UUID}values are accepted.- Moved
looksLikeUUIDhelper alongsidenormalizeUUIDinclient.gofor co-location.
0.12.0 - 2026-03-17
Added
bkt pr comments <id>command to list pull request comments with optional--statefiltering (resolved,unresolved,all). Supports both Cloud and Data Center with paginated API calls. Cloud uses theresolutionobject for client-side state filtering (#75).bkt pr comment --parent <id>flag for creating threaded replies under existing PR comments. Maps to theparent.idAPI field on both Cloud and Data Center (#76).bkt repo default-reviewers listcommand to show effective default reviewers for a repository. Cloud displays reviewer display names and UUIDs; Data Center returns users from default reviewer conditions (#77).
Changed
- Bumped minimum Go version to 1.25 (required by
golang.org/x/termv0.41.0). - CI and release workflows updated to use Go 1.25.
0.11.1 - 2026-03-11
Security
- Rejected path traversal names in
bkt extension removeandbkt extension exec. - Stopped passing sensitive
BKT_*credentials into extension subprocess environments. - Hardened git command invocation by using
git clone --where supported and rejecting option-like positional arguments where--is unavailable. - Capped
Retry-Afterbackoff handling in the retrying HTTP client to 60 seconds. - Added a warning when loading plaintext host tokens from
config.yml.
Changed
bkt auth loginnow requires--allow-httpforhttp://hosts and warns when insecure HTTP is explicitly allowed.bkt auth login --tokennow warns that command-line tokens may be visible to other local users.
Fixed
- Added regression coverage confirming Bitbucket Cloud
/userrequests preserve the versioned/2.0base path.
0.11.0 - 2026-03-11
Added
bkt pr create --with-default-reviewersflag that automatically fetches and merges repository default reviewers (Data Center only). Properly unmarshalsRestPullRequestConditionresponses, flattens nested reviewer groups, normalizes branch refs, and deduplicates across conditions and explicit--reviewervalues.- Cloud
GetEffectiveDefaultReviewersclient (gated pending UUID-based reviewer identity migration). - Generic
mergeReviewershelper with full deduplication including explicit reviewer duplicates.
0.10.0 - 2026-03-01
Added
bkt commit diff <from> <to>command to stream unified diffs between two refs (commit SHAs, branches, or tags) for both Bitbucket Cloud and Data Center.
Fixed
- Added missing Cloud HTTP error test and unsupported host kind test for
commit diffcommand. - Documented
..edge case in Cloud spec parsing for branch names containing double-dot.
0.9.0 - 2026-02-24
Added
- Bitbucket Cloud support for
pr checkout,pr diff,pr approve,pr merge, andpr commentsubcommands (#57). pr diff --statsupport for Cloud with per-file diff statistics.- Fork-aware
pr checkouton Cloud with automatic protocol inference from existing remotes.
Fixed
pr checkoutnow cleans up freshly added fork remotes when the subsequent fetch fails, preventing "remote already exists" errors on re-runs.
0.8.2 - 2026-02-24
Added
BKT_TOKENenvironment variable for runtime token injection, bypassing the keyring entirely. Modeled afterGH_TOKENin the GitHub CLI. Enables headless/container usage without keyring dependencies (#59).auth statusnow shows the token source (BKT_TOKENorkeyring) for each configured host.
Fixed
--allow-insecure-storein headless/container environments no longer hangs on an interactive passphrase prompt. Returns an actionable error directing users to setBKT_KEYRING_PASSPHRASEor useBKT_TOKEN(#59).auth loginandauth logoutnow return a clear error whenBKT_TOKENis set, since the token is externally managed.
0.8.1 - 2026-02-16
Changed
- Added Codecov integration for automated coverage tracking and badge in README.
- Moved testing guidance from
docs/TESTING.mdintoCONTRIBUTING.md. - Removed static
docs/TESTING.mdcoverage audit in favor of dynamic Codecov reporting.
0.8.0 - 2026-02-16
Added
bkt pr decline <id>to decline (reject) a pull request, supporting both Data Center and Cloud (#51).bkt pr reopen <id>to reopen a previously declined pull request (#51).--delete-sourceflag onbkt pr declineto delete the source branch after declining (Data Center only).
Fixed
--delete-sourcenow correctly targets the source branch's own repository for forked pull requests, preventing accidental deletion in the wrong repo.
Testing
- Comprehensive test coverage improvements across 7 packages: config, httpx, bbcloud, bbdc, cmdutil, format, and TESTING.md.
0.7.2 - 2026-02-06
Fixed
- Made keyring operations more reliable in interactive environments by using a longer default timeout, while keeping a short timeout for headless/SSH/CI to prevent hangs. Added
BKT_KEYRING_TIMEOUTfor configuration (#46).
0.7.1 - 2026-02-05
Fixed
- Prevented auth login hangs in headless/SSH environments when keyring backends block on GUI prompts (#44).
- Fixed skill publish version conflicts in CI.
0.7.0 - 2026-02-04
Added
- Added issue attachment management commands (
bkt issue attachment ...) (#41).
Fixed
- Improved attachment handling safety, tests, and documentation (#41).
- Prevented a release race condition in CI with concurrency control.
0.6.0 - 2026-02-01
Added
bkt pr list --mineflag to list your PRs across all repositories in a workspace (Cloud) or project (Data Center) (#35). Thanks @steveardis!
0.5.5 - 2026-01-31
Added
- Support build numbers as input for pipeline commands:
bkt pipeline view 10(#38). - Bitbucket Pipelines CI configuration for dogfooding on Bitbucket Cloud mirror.
- Documented
BKT_HTTP_DEBUGenvironment variable for API troubleshooting.
Fixed
- Fixed 400 "unexpected.response.body" error on
bkt pipeline viewandbkt pipeline logscommands. Bitbucket Cloud requires UUID braces to be URL-encoded (#38). - Fixed 406 error on
bkt pipeline logsby setting correct Accept header for octet-stream response.
0.5.4 - 2026-01-30
Added
bkt pipeline listnow displays build number (#N) and timestamp for each pipeline run (#36).
Changed
- Pipeline list now sorts by newest first (
-created_on) instead of oldest first.
0.5.3 - 2026-01-27
Added
- New
bktskill for Claude Code and Codex CLI (#28).
Fixed
- Preserve base URL path when resolving request paths.
- Update Bitbucket Cloud auth to use Atlassian API tokens.
0.5.2 - 2026-01-18
Changed
- Clarified Bitbucket Cloud context creation in README, showing that
--host api.bitbucket.orgis required and adding a tip to usebkt auth statusto discover the correct host value.
0.4.1 - 2026-01-17
Fixed
- Improved error messages for CAPTCHA-locked accounts. When a Bitbucket account is locked due to failed authentication attempts, the CLI now displays the actual CAPTCHA message instead of a generic "XSRF check failed" error (#16).
- Fixed SSH URL auto-detection for
ssh://host:port/PROJECT/repo.gitformat. Previously, commands would default to a configured project instead of parsing the project from the git remote URL (#17).
Changed
- Breaking: Git remote now takes precedence over context config for
project/repo detection. If you are in a git repository that matches your
configured host, the CLI will use the project and repo from the git remote
URL, overriding any values set in your context config. Use explicit
--projectand--repoflags to override this behavior.
0.4.0 - 2026-01-17
Added
- New
bkt issuecommand group for Bitbucket Cloud issue tracker (Cloud-only).bkt issue list: List issues with filtering by state, kind, priority, assignee, milestone.bkt issue view: Display issue details with optional comments.bkt issue create: Create new issues with title, body, kind, priority, assignee, etc.bkt issue edit: Update existing issue fields.bkt issue close: Close an issue.bkt issue reopen: Reopen a closed issue.bkt issue delete: Delete an issue with confirmation prompt.bkt issue comment: Add or list comments on an issue.bkt issue status: Show issues assigned to or created by the current user.- All commands support
--jsonand--yamloutput formats.
- New
bkt pr checkscommand to display build/CI status for pull requests.- Supports both Bitbucket Data Center and Cloud APIs.
- Color-coded output: green for success, red for failure, yellow for in-progress.
--waitflag polls until all builds complete (useful for CI automation).--timeoutflag sets maximum wait time (default: 30 minutes).--intervalflag configures initial polling frequency (default: 10 seconds).--max-intervalflag sets backoff cap (default: 2 minutes).- Exponential backoff (1.5x multiplier) to reduce API load during long builds.
- Random jitter (±15%) prevents thundering herd when multiple clients poll.
- Graceful handling of Ctrl-C interruption during polling.
- Automatic retry with backoff on transient errors (up to 3 attempts).
- Returns non-zero exit code when builds fail (for scripting).
- Shared
CommitStatustype inpkg/typesfor consistency between API clients.
0.2.1 - 2025-11-09
Security
- Tokens are now persisted in the host OS keychain (Keychain/WinCred/Secret
Service) instead of
config.yml, with an opt-in encrypted file fallback gated behind--allow-insecure-storefor legacy hosts.
Fixed
- Removed plaintext credential writes and aligned CLI output with lint expectations (errcheck), keeping tests and release automation green.
0.2.0 - 2025-10-28
Added
- Comprehensive Data Center coverage: reviewer groups, auto-merge management, diff statistics, PR tasks and suggestions, comment reactions, branch permissions, secrets rotation, logging controls.
- Bitbucket Cloud support: authentication, repository/branch/pull-request
flows, Pipelines run/list/view/log, webhook management,
status pipeline, shared rate-limit telemetry. - Raw
bkt apiescape hatch with method/field/header/param support for experimentation and automation. - Extension lifecycle commands (
bkt extension install|list|remove|exec) with automatic cloning into the CLI config directory. - Shared infrastructure upgrades: retrying HTTP client with caching, jq and Go-template output, pager integration, interactive prompts, browser helpers.
- Observability:
bkt status rate-limit, adaptive throttling, HTTP trace mode. - OSS readiness: Code of Conduct, contributing guide, governance, security policy, issue/PR templates, CI workflows, SBOM build, GoReleaser config.
- Project list command for pre-context discovery.
- Git remote inference for repository defaults.
- Enhanced pagination and retry logic for Cloud API.
Changed
bkt pr diffnow supports--statand streams via the pager when available.bkt webhookcommands support both Data Center and Cloud instances.- Simplified installation instructions to focus on Go install.
Fixed
- Added timeout protection for git command execution to prevent hanging.
- Fixed CI workflow to use correct branch name (master).
- Corrected Go version references in CI and release workflows.
- Updated GoReleaser configuration to use modern syntax.
- Added clarifying comments for intentionally ignored errors.
- Improved error handling for context resolution and merge workflows.
0.1.0 - 2025-10-26
- Initial public release of
bkt.