Skip to content

Reviewers

Manage pull request (PR) reviewers.

Global options work on every PR command: --json [fields], --jq <expression>, --no-color, --no-unicode, --no-truncate, --locale <locale>, -w, --workspace, -r, --repo — see Global Flags.

Bitbucket Cloud no longer accepts the legacy username (login name) when modifying reviewers. The <user> positional accepts either:

  • An account ID, e.g. 712020:3cfed7e0-0ed6-49fc-bb35-410a00ccee6f
  • A UUID wrapped in braces, e.g. {c1cb1bb5-2e32-456e-a373-43978dc12aa1}

Both forms come back from bb pr reviewers list --json, as the account_id and uuid fields:

Terminal window
# One object per reviewer: [{"account_id": "712020:3cfed..."}, …]
bb pr reviewers list 42 --json account_id
# Copy every reviewer from PR #42 onto PR #43
for u in $(bb pr reviewers list 42 --json --jq '.reviewers[].account_id' | tr -d '"'); do
bb pr reviewers add 43 "$u"
done

Two things to watch in scripts. --json <fields> projects across the reviewers array and drops the surrounding {workspace, repoSlug, pullRequestId, count} envelope, so you get a bare array of objects — not bare IDs. And the built-in jq runs without -r, so strings arrive JSON-quoted; strip the quotes with tr -d '"' or interpolate inside jq.

See bb pr create for matching --reviewer examples.

Subcommand Description
list <id> List reviewers on a pull request
add <id> <user> Add a reviewer to a pull request
remove <id> <user> Remove a reviewer from a pull request

None of the three take command-specific options — only the global ones. <id> is the pull request ID; <user> is an account ID or a braced UUID.


Terminal window
bb pr reviewers list <id>
Terminal window
# List reviewers on PR #42
bb pr reviewers list 42
# List reviewers in a specific repository
bb pr reviewers list 42 -w myworkspace -r myrepo

Human output is a two-column table of display name and account ID. If the pull request has no reviewers, the command prints No reviewers assigned to this pull request. The deprecated username field is never shown — Bitbucket Cloud stopped returning it for GDPR reasons.

--json returns the full envelope:

{
"workspace": "myworkspace",
"repoSlug": "myrepo",
"pullRequestId": 42,
"count": 1,
"reviewers": [
{
"display_name": "Jane Doe",
"account_id": "712020:3cfed7e0-0ed6-49fc-bb35-410a00ccee6f",
"uuid": "{c1cb1bb5-2e32-456e-a373-43978dc12aa1}"
}
]
}

Add a reviewer by account ID or UUID. The legacy username (login name) is not accepted by Bitbucket Cloud — see Identifying users.

Terminal window
bb pr reviewers add <id> <user>
Terminal window
# By account ID
bb pr reviewers add 42 "712020:3cfed7e0-0ed6-49fc-bb35-410a00ccee6f"
# By UUID (keep the braces, and quote the argument so the shell leaves them alone)
bb pr reviewers add 42 "{c1cb1bb5-2e32-456e-a373-43978dc12aa1}"

Adding someone who is already a reviewer succeeds and changes nothing.


Remove a reviewer by account ID or UUID. Same <user> rules as add.

Terminal window
bb pr reviewers remove <id> <user>
Terminal window
# By account ID
bb pr reviewers remove 42 "712020:3cfed7e0-0ed6-49fc-bb35-410a00ccee6f"
# By UUID
bb pr reviewers remove 42 "{c1cb1bb5-2e32-456e-a373-43978dc12aa1}"

Removing someone who is not a reviewer succeeds and changes nothing.

Both commands emit the same envelope. reviewer.username echoes the <user> value you passed, whatever form it was in; reviewer.uuid is the resolved UUID.

{
"success": true,
"pullRequestId": 42,
"reviewer": {
"username": "712020:3cfed7e0-0ed6-49fc-bb35-410a00ccee6f",
"uuid": "{c1cb1bb5-2e32-456e-a373-43978dc12aa1}"
},
"pullRequest": { "id": 42, "title": "Add user authentication" }
}

Both commands resolve <user> through Bitbucket’s user endpoint before touching the pull request. A bad account ID or UUID fails there with a 404, carrying whatever message Bitbucket returns. The CLI appends its generic 404 hint, which mentions --workspace and --repo — but for these two commands the wrong value is almost always the <user> argument, not the repository.