Files
2026-09-04 23:01:31 +03:00

43 KiB
Raw Permalink Blame History

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.0 tag: bkt skill now supports installing, listing, previewing, updating, and publishing Agent Skills hosted in Bitbucket Cloud or Data Center, plus Cloud workspace skill search.
  • bkt pipeline run can select branch and custom pipeline definitions with --selector-type and --selector-pattern.

Fixed

  • Local skill discovery ignores Git metadata, so concurrent Git maintenance no longer causes bkt skill publish to fail while walking .git.

0.32.0 - 2026-09-04

Added

  • bkt skill installs and manages Agent Skills hosted in Bitbucket repositories, mirroring GitHub CLI's gh skill (install, list, preview, update). Repositories are addressed as WORKSPACE/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.json entry match gh skill; installed skills record their origin under metadata.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 publish validates a repository's skills against the Agent Skills specification (naming rules, required frontmatter, allowed-tools as a string, no committed install metadata) and reports the spec's recommendations as warnings. --fix strips committed install metadata, --dry-run validates only, and --tag marks the current commit as a released version. Bitbucket has no releases, so publishing a version means creating a tag, which is what bkt skill install resolves to when no version is requested. (#310)
  • bkt pipeline run can select a pipeline definition with --selector-type and --selector-pattern, including named custom pipelines on a branch.
  • Data Center bkt repo list and bkt repo view include the repository archived flag in structured output (always present, including false). Human repo view prints Archived: true|false; archived repo list rows get an (archived) suffix. Bitbucket Cloud is unchanged.
  • bkt skill search searches SKILL.md files 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 install stages 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 publish refuses to tag while the published files have uncommitted changes, and addresses the repository by its full host URL.
  • bkt skill update emits 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=bearer without requiring BKT_USERNAME.

Changed

  • The README first screen now shows Homebrew install plus a recorded bkt --help session (docs/demo.gif and docs/demo.svg). No credentials are used.

Fixed

  • Windows Cloud --web login 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 list lists 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.md export and ignored promptcode_*.md so generated dumps stay out of version control.

0.30.0 - 2026-07-22

Added

  • bkt pr list --reviewer lists 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. --mine and --reviewer are mutually exclusive. (#253)
  • bkt pr create --source-project and --source-repo create 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-CLI and submit updates to microsoft/winget-pkgs after the package's initial catalog entry is accepted. (#246)

Changed

  • make build, make clean, and make test now 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. A windows-latest CI job verifies the Windows build and test path.

Fixed

  • Bitbucket API errors now surface actionable errors[].details[] text and additional errors[] 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 existing bkt authentication. 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 --wait and bkt pipeline run --wait poll a pipeline until it completes, using the same backoff flags (--interval, --max-interval, --timeout) and exit-code contract as bkt 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 --parent on Bitbucket Cloud no longer reports success when Bitbucket does not thread the reply under the requested parent. When the created-comment response is available, bkt verifies the echoed parent.id and 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 --from on Bitbucket Data Center no longer wraps commit hashes in refs/heads/, so creating a branch from a commit hash works.
  • bkt variable set and bkt variable delete on Bitbucket Cloud now reject invalid variable and deployment-environment UUIDs locally instead of calling malformed API endpoints.
  • bkt pipeline view and bkt pipeline logs now paginate pipeline steps, so pipelines with many steps are complete and the default log step is the true final step.
  • bkt pr merge on 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 --mine on 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 create now rejects host-specific flags that do not apply, such as --forkable, --default-branch, --scm, and --project on Cloud or --workspace and --cloud-project on Data Center, instead of silently ignoring them.
  • bkt pr create --with-default-reviewers, bkt pr edit --with-default-reviewers, and Data Center bkt repo default-reviewers list --source/--target now 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, and bkt pr comments delete now 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 deleted can now list deleted pull request comments returned by Bitbucket Cloud, making deletion verification explicit.
  • bkt pr comments delete now 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> and bkt 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 task now works on Bitbucket Cloud, using its first-class pull request tasks API (list, create, complete, reopen).

Fixed

  • bkt pr task on Bitbucket Data Center no longer calls endpoints that never existed (the old create, complete, and reopen paths 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 and bkt pr comments --details overlap 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 as bkt pr approve and bkt pr merge.
  • Corrected the bkt skill's structured-output example: piping bkt pr list --json to jq '.[].title' fails because the command returns an object keyed by pull_requests, not a bare array. The example now uses jq '.pull_requests[].title'.

0.26.6 - 2026-05-13

Fixed

  • Bitbucket Cloud pipeline steps now decode state.result the same way as pipeline runs, so bkt pipeline view, bkt pipeline view --json, and bkt status pipeline show per-step outcomes (for example FAILED vs SUCCESSFUL) instead of only COMPLETED.

0.26.5 - 2026-05-11

Fixed

  • Corrected the Bitbucket Data Center README login example to use --web-token, and made bkt auth login https://bitbucket.org --web infer 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_ID and BKT_OAUTH_CLIENT_SECRET remain the fallback for source and Nix builds (#189).

0.26.3 - 2026-04-26

Added

  • bkt auth status now surfaces Cloud OAuth refresh risks, including expired inferred OAuth credentials, missing refresh credentials, and BKT_TOKEN overrides as effective basic auth (#184).

Changed

  • Cloud authentication now treats explicit auth_method values as authoritative, and API-token logins store auth_method: basic instead 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, codesign still 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 login once after upgrading to benefit. (#181)
  • macOS Keychain items created by bkt now set KeychainTrustApplication on darwin, so fresh items trust the calling binary at create time instead of prompting on every access. KeychainAccessibleWhenUnlocked is 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.gz and .zip archives now bundle skills/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:bitbucket scope.

0.26.0 - 2026-04-18

Added

  • bkt pr close as an alias for bkt pr decline, matching gh-style command expectations (#160).
  • --destination as a visible alias for --target on bkt pr create, mutually exclusive with --target (#160).
  • Global --format json|yaml flag as an alternative to --json / --yaml; validated before any mutating subcommand runs (#160).

0.25.0 - 2026-04-16

Added

  • bkt pr decline now accepts --comment / -m, plus --text and --body aliases, to send a decline reason on Bitbucket Cloud and Data Center (#161).
  • Nix flake support for running and installing bkt via nix 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 --details now 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-reviewers now 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.md References section stay in sync with the Cobra command tree, with GO override support in the verification path (#148).

Fixed

  • bkt pr update is now an alias for bkt pr edit, matching gh-style command expectations and --help output (#149).

0.22.0 - 2026-04-12

Added

  • bkt auth login --web browser-based OAuth 2.0 login for Bitbucket Cloud, with keyring-stored short-lived access tokens and automatic refresh on expiry (#152).
  • BKT_HOST + BKT_TOKEN env-var-driven headless authentication for CI and containers, so commands can run without a prior bkt auth login or bkt context create (#138).
  • Pull request JSON output now includes creation and update timestamps for Cloud and Data Center listings.

Changed

  • bkt pr list now 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/oauth package, plus a TokenRefresher hook on httpx.Client for transparent 401-driven token refresh. Phase 1 only; login-command wiring is not included yet (#137).
  • Unit test coverage for bkt branch and bkt branch protect subcommands (#143).
  • Unit test coverage for bkt context subcommands (#143).
  • Unit test coverage for bkt project list (#144).
  • Unit test coverage for bkt webhook subcommands (#145).

0.20.0 - 2026-04-09

Added

  • Deprecation warning on all bkt issue subcommands for Bitbucket Cloud contexts, ahead of the August 20, 2026 Issues/Wikis sunset (#139).
  • Generated per-command skill rule files and rewritten SKILL.md via cmd/docgen pipeline (#133).
  • Unit tests for bkt pr comments covering Data Center and Cloud code paths, state filtering, and empty results (#140).

0.19.0 - 2026-04-07

Added

  • bkt auth login --auth-method bearer for Data Center instances that require bearer token authentication instead of basic auth (#97).
  • bkt pr create --with-default-reviewers now works on Bitbucket Cloud, fetching effective default reviewers via the API with UUID-based self-exclusion and deduplication (#127).
  • cmd/docgen skill generator and make generate-skill target for auto-generating skill documentation from Cobra command definitions (#131).

Fixed

  • Bearer auth propagation to all inline bbdc.New() call sites in repo list, repo view, status commit, and status pr (#112).

0.18.0 - 2026-04-07

Added

  • bkt pr edit --reviewer and --remove-reviewer flags to add or remove reviewers on existing pull requests for both Data Center and Cloud (#128).
  • bkt pr create --body / -b as an alias for --description, matching gh CLI conventions (#126).
  • Long and Example docstrings for all Cobra commands, improving --help output and enabling future skill auto-generation (#129).

0.17.0 - 2026-04-05

Added

  • bkt pr publish and bkt pr unpublish commands to toggle draft status on Bitbucket Cloud and Data Center 8.18+ pull requests. Alias: bkt pr ready (#122).
  • bkt pr create now outputs the pull request URL on success (#105).
  • bkt pr create defaults --source to the current branch and --target to the repository default branch, making both flags optional (#116).
  • Bitbucket Pipelines install section in README with validated curl | tar snippet.
  • Privacy policy at docs/PRIVACY.md.
  • .scratch/ convention for local working documents (gitignored).

Fixed

  • bkt pr create now 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 a bitbucket.org remote (#119).
  • Stale credential storage description in docs/SECURITY.md updated 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_TOKEN cannot trigger.
  • Pinned all GitHub Actions to commit SHAs across every workflow for supply-chain safety.
  • Added missing timeout-minutes and concurrency blocks to all workflows.
  • Standalone publish-skill workflow now accepts workflow_dispatch with an explicit tag input.
  • 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-notes argument 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.sh flow, with CHANGELOG.md supplying 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 view and bkt status pipeline for Bitbucket Cloud, making in-flight step progress visible without --json.

Fixed

  • Switched Data Center bkt pr comments to the pull request activities endpoint so general and inline comments can be listed without the invalid path query error.

0.15.0 - 2026-04-01

Added

  • bkt pr create --draft to create draft pull requests on Bitbucket Cloud and on Bitbucket Data Center 8.18+.
  • bkt pr comment --pending to 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 exists as 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_dispatch support 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 bkt processes access the same token concurrently.
  • Ad-hoc signed macOS binaries with the stable identifier io.github.avivsinai.bitbucket-cli in 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-line for added/changed lines (new side), --from-line for removed lines (old side). Supports both Bitbucket Cloud (inline object) and Data Center (anchor object) (#86).
  • Inline field on Cloud PullRequestComment and Anchor field on DC PullRequestComment structs, exposing file/line location in --json output.

Changed

  • Refactored CommentPullRequest in both Cloud and DC clients from positional parameters to a CommentOptions struct, enabling extensible comment creation.

0.13.1 - 2026-03-18

Fixed

  • Rejected half-braced UUID inputs (e.g. {uuid or uuid}) in looksLikeUUID. 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 the uuid key to Bitbucket Cloud, while preserving username-based identification for non-UUID values (#87).
  • USERNAME column in bkt repo default-reviewers list Cloud output, making it easier to copy reviewer identifiers for use with --reviewer.

Fixed

  • Tightened looksLikeUUID regex to match only canonical UUIDs (8-4-4-4-12 hex segments), preventing false positives on hex-only usernames like cafe or dead.
  • 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

  • --reviewer flag help text now clarifies that both usernames and {UUID} values are accepted.
  • Moved looksLikeUUID helper alongside normalizeUUID in client.go for co-location.

0.12.0 - 2026-03-17

Added

  • bkt pr comments <id> command to list pull request comments with optional --state filtering (resolved, unresolved, all). Supports both Cloud and Data Center with paginated API calls. Cloud uses the resolution object for client-side state filtering (#75).
  • bkt pr comment --parent <id> flag for creating threaded replies under existing PR comments. Maps to the parent.id API field on both Cloud and Data Center (#76).
  • bkt repo default-reviewers list command 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/term v0.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 remove and bkt 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-After backoff handling in the retrying HTTP client to 60 seconds.
  • Added a warning when loading plaintext host tokens from config.yml.

Changed

  • bkt auth login now requires --allow-http for http:// hosts and warns when insecure HTTP is explicitly allowed.
  • bkt auth login --token now warns that command-line tokens may be visible to other local users.

Fixed

  • Added regression coverage confirming Bitbucket Cloud /user requests preserve the versioned /2.0 base path.

0.11.0 - 2026-03-11

Added

  • bkt pr create --with-default-reviewers flag that automatically fetches and merges repository default reviewers (Data Center only). Properly unmarshals RestPullRequestCondition responses, flattens nested reviewer groups, normalizes branch refs, and deduplicates across conditions and explicit --reviewer values.
  • Cloud GetEffectiveDefaultReviewers client (gated pending UUID-based reviewer identity migration).
  • Generic mergeReviewers helper 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 diff command.
  • 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, and pr comment subcommands (#57).
  • pr diff --stat support for Cloud with per-file diff statistics.
  • Fork-aware pr checkout on Cloud with automatic protocol inference from existing remotes.

Fixed

  • pr checkout now 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_TOKEN environment variable for runtime token injection, bypassing the keyring entirely. Modeled after GH_TOKEN in the GitHub CLI. Enables headless/container usage without keyring dependencies (#59).
  • auth status now shows the token source (BKT_TOKEN or keyring) for each configured host.

Fixed

  • --allow-insecure-store in headless/container environments no longer hangs on an interactive passphrase prompt. Returns an actionable error directing users to set BKT_KEYRING_PASSPHRASE or use BKT_TOKEN (#59).
  • auth login and auth logout now return a clear error when BKT_TOKEN is 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.md into CONTRIBUTING.md.
  • Removed static docs/TESTING.md coverage 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-source flag on bkt pr decline to delete the source branch after declining (Data Center only).

Fixed

  • --delete-source now 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_TIMEOUT for 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 --mine flag 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_DEBUG environment variable for API troubleshooting.

Fixed

  • Fixed 400 "unexpected.response.body" error on bkt pipeline view and bkt pipeline logs commands. Bitbucket Cloud requires UUID braces to be URL-encoded (#38).
  • Fixed 406 error on bkt pipeline logs by setting correct Accept header for octet-stream response.

0.5.4 - 2026-01-30

Added

  • bkt pipeline list now 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 bkt skill 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.org is required and adding a tip to use bkt auth status to 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.git format. 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 --project and --repo flags to override this behavior.

0.4.0 - 2026-01-17

Added

  • New bkt issue command 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 --json and --yaml output formats.
  • New bkt pr checks command 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.
    • --wait flag polls until all builds complete (useful for CI automation).
    • --timeout flag sets maximum wait time (default: 30 minutes).
    • --interval flag configures initial polling frequency (default: 10 seconds).
    • --max-interval flag 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 CommitStatus type in pkg/types for 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-store for 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 api escape 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 diff now supports --stat and streams via the pager when available.
  • bkt webhook commands 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.