Skip to main content

Agent-friendly thin CLI for Bitbucket Data Center REST API pull request workflows.

Project description

btbkt

PyPI Python Versions Wheel Downloads License

btbkt is an agent-facing CLI for Bitbucket Data Center / Server.

It is a thin wrapper over Bitbucket's REST API, with a small set of higher-level PR commands that return compact JSON for agent workflows: opening PRs, reviewing others' PRs, reading review comments, and responding after code changes.

Install

For normal use:

python -m pip install btbkt

This installs the btbkt command:

btbkt --help

For local development from a source checkout:

python -m pip install -e .

Run from source without installing:

PYTHONPATH=src python -m btbkt --help

Python >=3.9 is supported.

Authentication

Only these environment variables are read for authentication:

export BITBUCKET_BASE_URL="https://bitbucket.internal"
export BITBUCKET_USERNAME="alice"
export BITBUCKET_TOKEN="..."

BITBUCKET_PASSWORD can be used instead of BITBUCKET_TOKEN.

The CLI always sends HTTP Basic auth using BITBUCKET_USERNAME plus BITBUCKET_PASSWORD or BITBUCKET_TOKEN. Project, repo, source branch, and target branch are not read from env; they come from CLI flags or the current git checkout.

Skill

Agent workflow guidance lives here:

skills/using-btbkt-pr-workflows/SKILL.md

Use that skill when an agent needs to create a PR, review someone else's PR, or address review feedback on its own PR.

Examples

Find the PR for the current git branch:

btbkt pr current

Open a PR from the current branch:

btbkt pr create --title "feat: add config schema" --description "Adds schema validation." --reviewer alice

Start reviewing a PR:

btbkt pr review-summary 390
btbkt pr review-context 390 --path src/app.py --max-diff-lines 120

Read unresolved review comments, inspect terse comments with nearby diff context, and reply after fixing:

btbkt pr review-comments 390 --state OPEN --with-diff-context 5
btbkt pr reply 390 15450 --text "Fixed and covered by tests."

Reply to multiple handled comments from a reviewed JSON file:

btbkt pr reply-many 390 --input replies.json --dry-run
btbkt pr reply-many 390 --input replies.json

review-summary reports Bitbucket open state separately from reply state. A comment can remain OPEN after a reply, so use open_comments_without_replies for the remaining-unreplied count.

Submit a review decision:

btbkt pr review 390 --comment "Looks good." --approve
btbkt pr review 390 --comment "Please add a regression test." --needs-work

Notes

btbkt prints JSON. The high-level PR commands intentionally omit large raw Bitbucket payloads and include pagination metadata when the result may be partial.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

btbkt-0.1.1.tar.gz (51.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

btbkt-0.1.1-py3-none-any.whl (21.1 kB view details)

Uploaded Python 3

File details

Details for the file btbkt-0.1.1.tar.gz.

File metadata

  • Download URL: btbkt-0.1.1.tar.gz
  • Upload date:
  • Size: 51.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.0

File hashes

Hashes for btbkt-0.1.1.tar.gz
Algorithm Hash digest
SHA256 bb96d60616eef973e5f47240c371e22755f5d0c675bef04e4ff62fe2c8ffafca
MD5 e0c8f8243f3302103f1c8db8452a8279
BLAKE2b-256 8bac88d48cea6453cf8ede49cc0c490687f98c05e985701064dc9e4f74377f2c

See more details on using hashes here.

File details

Details for the file btbkt-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: btbkt-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 21.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.0

File hashes

Hashes for btbkt-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 086990038a36bc986bacb0f0485d316ce9e26f9b882b6963e4e33d538cdd8c31
MD5 b54eb5f5bbf8d49d647a1c4544d3f14d
BLAKE2b-256 a9f668a8a3dcb0f214ddef39a392d43f973d22f7a6c464da01e75a2dc1782628

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page