openapi: 3.0.0
info:
title: 'Atlassian repositories/'
description: Needs description.
version: '2.0'
termsOfService: https://www.atlassian.com/legal/customer-agreement
contact:
name: Bitbucket Support
url: https://support.atlassian.com/bitbucket-cloud/
email: support@bitbucket.org
paths:
/repositories/{workspace}:
get:
tags:
- Repositories
description: >-
Returns a paginated list of all repositories owned by the
specified
workspace.
The result can be narrowed down based on
the authenticated user's role.
E.g. with `?role=contributor`,
only those repositories that the
authenticated user has write access
to are returned (this includes any
repo the user is an admin on, as
that implies write access).
This endpoint also supports filtering
and sorting of the results. See
[filtering and
sorting](/cloud/bitbucket/rest/intro/#filtering) for more details.
summary: Atlassian List Repositories In A Workspace
responses:
'200':
description: The repositories owned by the specified account.
content:
application/json:
schema:
$ref: '#/components/schemas/paginated_repositories'
'404':
description: If the specified account does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
'410':
description: If the specified account marked as spam.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
parameters:
- name: role
in: query
description: >2
Filters the result based on the authenticated user's role on each
repository.
* **member**: returns repositories to which the user has explicit
read access
* **contributor**: returns repositories to which the user has
explicit write access
* **admin**: returns repositories to which the user has explicit
administrator access
* **owner**: returns all repositories owned by the current user
required: false
schema:
type: string
enum:
- admin
- contributor
- member
- owner
- name: q
in: query
description: >2
Query string to narrow down the response as per [filtering and
sorting](/cloud/bitbucket/rest/intro/#filtering).
required: false
schema:
type: string
- name: sort
in: query
description: >2-
Field by which the results should be sorted as per [filtering and
sorting](/cloud/bitbucket/rest/intro/#filtering).
required: false
schema:
type: string
security:
- oauth2:
- repository
- basic: []
- api_key: []
x-atlassian-oauth2-scopes:
- state: Current
scheme: oauth2
scopes:
- read:repository:bitbucket
operationId: atlassianListRepositoriesInAWorkspace
parameters:
- name: workspace
in: path
description: |
This can either be the workspace ID (slug) or the workspace UUID
surrounded by curly-braces, for example: `{workspace UUID}`.
required: true
schema:
type: string
/repositories/{workspace}/{repo_slug}:
delete:
tags:
- Repositories
description: >-
Deletes the repository. This is an irreversible operation.
This
does not affect its forks.
summary: Atlassian Delete A Repository
responses:
'204':
description: Indicates successful deletion.
'403':
description: >-
If the caller either does not have admin access to the repository,
or the repository is set to read-only.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
'404':
description: If the repository does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
parameters:
- name: redirect_to
in: query
description: >
If a repository has been moved to a new location, use this parameter
to
show users a friendly message in the Bitbucket UI that the
repository
has moved to a new location. However, a GET to this endpoint will
still
return a 404.
required: false
schema:
type: string
security:
- oauth2:
- repository:delete
- basic: []
- api_key: []
x-atlassian-oauth2-scopes:
- state: Current
scheme: oauth2
scopes:
- delete:repository:bitbucket
operationId: atlassianDeleteARepository
get:
tags:
- Repositories
description: Returns the object describing this repository.
summary: Atlassian Get A Repository
responses:
'200':
description: The repository object.
content:
application/json:
schema:
$ref: '#/components/schemas/repository'
'403':
description: >-
If the repository is private and the authenticated user does not
have access to it.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
'404':
description: If no repository exists at this location.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
security:
- oauth2:
- repository
- basic: []
- api_key: []
x-atlassian-oauth2-scopes:
- state: Current
scheme: oauth2
scopes:
- read:repository:bitbucket
operationId: atlassianGetARepository
post:
tags:
- Repositories
description: >-
Creates a new repository.
Note: In order to set the project for
the newly created repository,
pass in either the project key or the
project UUID as part of the
request body as shown in the examples
below:
```
$ curl -X POST -H "Content-Type: application/json"
-d '{
"scm": "git",
"project": {
"key":
"MARS"
}
}'
https://api.bitbucket.org/2.0/repositories/teamsinspace/hablanding
```
or
```
$
curl -X POST -H "Content-Type: application/json" -d '{
"scm":
"git",
"project": {
"key":
"{ba516952-992a-4c2d-acbd-17d502922f96}"
}
}'
https://api.bitbucket.org/2.0/repositories/teamsinspace/hablanding
```
The
project must be assigned for all repositories. If the project is not
provided,
the repository is automatically assigned to the oldest
project in the workspace.
Note: In the examples above, the
workspace ID `teamsinspace`,
and/or the repository name `hablanding`
can be replaced by UUIDs.
summary: Atlassian Create A Repository
responses:
'200':
description: The newly created repository.
content:
application/json:
schema:
$ref: '#/components/schemas/repository'
'400':
description: >-
If the input document was invalid, or if the caller lacks the
privilege to create repositories under the targeted account.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
'401':
description: If the request was not authenticated.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/repository'
description: >-
The repository that is to be created. Note that most object elements
are optional. Elements "owner" and "full_name" are ignored as the URL
implies them.
security:
- oauth2:
- repository:admin
- basic: []
- api_key: []
x-atlassian-oauth2-scopes:
- state: Current
scheme: oauth2
scopes:
- admin:repository:bitbucket
operationId: atlassianCreateARepository
put:
tags:
- Repositories
description: >-
Since this endpoint can be used to both update and to create
a
repository, the request body depends on the intent.
####
Creation
See the POST documentation for the repository endpoint
for an example
of the request body.
#### Update
Note:
Changing the `name` of the repository will cause the location to
be
changed. This is because the URL of the repo is derived from the
name
(a process called slugification). In such a scenario, it is
possible
for the request to fail if the newly created slug conflicts
with an
existing repository's slug. But if there is no conflict,
the new
location will be returned in the `Location` header of the
response.
summary: Atlassian Update A Repository
responses:
'200':
description: The existing repository has been updated
headers:
Location:
description: |-
The location of the repository. This header is only
provided when the repository's name is changed.
schema:
type: string
content:
application/json:
schema:
$ref: '#/components/schemas/repository'
'201':
description: A new repository has been created
headers:
Location:
description: The location of the newly created repository
schema:
type: string
content:
application/json:
schema:
$ref: '#/components/schemas/repository'
'400':
description: >-
If the input document was invalid, or if the caller lacks the
privilege to create repositories under the targeted account.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
'401':
description: If the request was not authenticated.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/repository'
description: |
The repository that is to be updated.
Note that the elements "owner" and "full_name" are ignored since the
URL implies them.
security:
- oauth2:
- repository:admin
- basic: []
- api_key: []
x-atlassian-oauth2-scopes:
- state: Current
scheme: oauth2
scopes:
- admin:repository:bitbucket
operationId: atlassianUpdateARepository
parameters:
- name: repo_slug
in: path
description: |
This can either be the repository slug or the UUID of the repository,
surrounded by curly-braces, for example: `{repository UUID}`.
required: true
schema:
type: string
- name: workspace
in: path
description: |
This can either be the workspace ID (slug) or the workspace UUID
surrounded by curly-braces, for example: `{workspace UUID}`.
required: true
schema:
type: string
/repositories/{workspace}/{repo_slug}/branch-restrictions:
get:
tags:
- Branch Restrictions
description: >-
Returns a paginated list of all branch restrictions on
the
repository.
summary: Atlassian List Branch Restrictions
responses:
'200':
description: A paginated list of branch restrictions
content:
application/json:
schema:
$ref: '#/components/schemas/paginated_branchrestrictions'
'401':
description: If the request was not authenticated
content:
application/json:
schema:
$ref: '#/components/schemas/error'
'403':
description: >-
If the authenticated user does not have admin access to the
repository
content:
application/json:
schema:
$ref: '#/components/schemas/error'
'404':
description: If the repository does not exist
content:
application/json:
schema:
$ref: '#/components/schemas/error'
parameters:
- name: kind
in: query
description: Branch restrictions of this type
required: false
schema:
type: string
- name: pattern
in: query
description: Branch restrictions applied to branches of this pattern
required: false
schema:
type: string
security:
- oauth2:
- repository:admin
- basic: []
- api_key: []
x-atlassian-oauth2-scopes:
- state: Current
scheme: oauth2
scopes:
- admin:repository:bitbucket
operationId: atlassianListBranchRestrictions
post:
tags:
- Branch Restrictions
description: >-
Creates a new branch restriction rule for a repository.
`kind`
describes what will be restricted. Allowed values include:
`push`,
`force`, `delete`, `restrict_merges`,
`require_tasks_to_be_completed`,
`require_approvals_to_merge`,
`require_default_reviewer_approvals_to_merge`,
`require_no_changes_requested`,
`require_passing_builds_to_merge`,
`require_commits_behind`,
`reset_pullrequest_approvals_on_change`,
`smart_reset_pullrequest_approvals`,
`reset_pullrequest_changes_requested_on_change`,
`require_all_dependencies_merged`,
`enforce_merge_checks`, and
`allow_auto_merge_when_builds_pass`.
Different kinds of branch
restrictions have different requirements:
* `push` and
`restrict_merges` require `users` and `groups` to be
specified.
Empty lists are allowed, in which case permission is
denied for
everybody.
The restriction applies to all branches that match.
There are
two ways to match a branch. It is configured in
`branch_match_kind`:
1. `glob`: Matches a branch against the
`pattern`. A `'*'` in
`pattern` will expand to match zero or more
characters, and every
other character matches itself. For example,
`'foo*'` will match
`'foo'` and `'foobar'`, but not `'barfoo'`.
`'*'` will match all
branches.
2. `branching_model`: Matches a
branch against the repository's
branching model. The `branch_type`
controls the type of branch
to match. Allowed values include:
`production`, `development`,
`bugfix`, `release`, `feature` and
`hotfix`.
The combination of `kind` and match must be unique.
This means that
two `glob` restrictions in a repository cannot have
the same `kind` and
`pattern`. Additionally, two `branching_model`
restrictions in a
repository cannot have the same `kind` and
`branch_type`.
`users` and `groups` are lists of users and groups
that are except from
the restriction. They can only be configured in
`push` and
`restrict_merges` restrictions. The `push` restriction
stops a user
pushing to matching branches unless that user is in
`users` or is a
member of a group in `groups`. The `restrict_merges`
stops a user
merging pull requests to matching branches unless that
user is in
`users` or is a member of a group in `groups`. Adding new
users or
groups to an existing restriction should be done via
`PUT`.
Note that branch restrictions with overlapping matchers is
allowed,
but the resulting behavior may be surprising.
summary: Atlassian Create A Branch Restriction Rule
responses:
'201':
description: A paginated list of branch restrictions
content:
application/json:
schema:
$ref: '#/components/schemas/branchrestriction'
'401':
description: If the request was not authenticated
content:
application/json:
schema:
$ref: '#/components/schemas/error'
'403':
description: >-
If the authenticated user does not have admin access to the
repository
content:
application/json:
schema:
$ref: '#/components/schemas/error'
'404':
description: If the repository does not exist
content:
application/json:
schema:
$ref: '#/components/schemas/error'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/branchrestriction'
description: The new rule
required: true
security:
- oauth2:
- repository:admin
- basic: []
- api_key: []
x-atlassian-oauth2-scopes:
- state: Current
scheme: oauth2
scopes:
- admin:repository:bitbucket
operationId: atlassianCreateABranchRestrictionRule
parameters:
- name: repo_slug
in: path
description: |
This can either be the repository slug or the UUID of the repository,
surrounded by curly-braces, for example: `{repository UUID}`.
required: true
schema:
type: string
- name: workspace
in: path
description: |
This can either be the workspace ID (slug) or the workspace UUID
surrounded by curly-braces, for example: `{workspace UUID}`.
required: true
schema:
type: string
/repositories/{workspace}/{repo_slug}/branch-restrictions/{id}:
delete:
tags:
- Branch Restrictions
description: Deletes an existing branch restriction rule.
summary: Atlassian Delete A Branch Restriction Rule
responses:
'204':
description: ''
'401':
description: If the request was not authenticated
content:
application/json:
schema:
$ref: '#/components/schemas/error'
'403':
description: >-
If the authenticated user does not have admin access to the
repository
content:
application/json:
schema:
$ref: '#/components/schemas/error'
'404':
description: If the repository or branch restriction id does not exist
content:
application/json:
schema:
$ref: '#/components/schemas/error'
security:
- oauth2:
- repository:admin
- basic: []
- api_key: []
x-atlassian-oauth2-scopes:
- state: Current
scheme: oauth2
scopes:
- admin:repository:bitbucket
operationId: atlassianDeleteABranchRestrictionRule
get:
tags:
- Branch Restrictions
description: Returns a specific branch restriction rule.
summary: Atlassian Get A Branch Restriction Rule
responses:
'200':
description: The branch restriction rule
content:
application/json:
schema:
$ref: '#/components/schemas/branchrestriction'
'401':
description: If the request was not authenticated
content:
application/json:
schema:
$ref: '#/components/schemas/error'
'403':
description: >-
If the authenticated user does not have admin access to the
repository
content:
application/json:
schema:
$ref: '#/components/schemas/error'
'404':
description: If the repository or branch restriction id does not exist
content:
application/json:
schema:
$ref: '#/components/schemas/error'
security:
- oauth2:
- repository:admin
- basic: []
- api_key: []
x-atlassian-oauth2-scopes:
- state: Current
scheme: oauth2
scopes:
- admin:repository:bitbucket
operationId: atlassianGetABranchRestrictionRule
put:
tags:
- Branch Restrictions
description: >-
Updates an existing branch restriction rule.
Fields not present
in the request body are ignored.
See
[`POST`](/cloud/bitbucket/rest/api-group-branch-restrictions/#api-repositories-workspace-repo-slug-branch-restrictions-post)
for details.
summary: Atlassian Update A Branch Restriction Rule
responses:
'200':
description: The updated branch restriction rule
content:
application/json:
schema:
$ref: '#/components/schemas/branchrestriction'
'401':
description: If the request was not authenticated
content:
application/json:
schema:
$ref: '#/components/schemas/error'
'403':
description: >-
If the authenticated user does not have admin access to the
repository
content:
application/json:
schema:
$ref: '#/components/schemas/error'
'404':
description: If the repository or branch restriction id does not exist
content:
application/json:
schema:
$ref: '#/components/schemas/error'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/branchrestriction'
description: The new version of the existing rule
required: true
security:
- oauth2:
- repository:admin
- basic: []
- api_key: []
x-atlassian-oauth2-scopes:
- state: Current
scheme: oauth2
scopes:
- admin:repository:bitbucket
operationId: atlassianUpdateABranchRestrictionRule
parameters:
- name: id
in: path
description: The restriction rule's id
required: true
schema:
type: string
- name: repo_slug
in: path
description: |
This can either be the repository slug or the UUID of the repository,
surrounded by curly-braces, for example: `{repository UUID}`.
required: true
schema:
type: string
- name: workspace
in: path
description: |
This can either be the workspace ID (slug) or the workspace UUID
surrounded by curly-braces, for example: `{workspace UUID}`.
required: true
schema:
type: string
/repositories/{workspace}/{repo_slug}/branching-model:
get:
tags:
- Branching Model
description: >-
Return the branching model as applied to the repository. This view
is
read-only. The branching model settings can be changed using
the
[settings](#api-repositories-workspace-repo-slug-branching-model-settings-get)
API.
The returned object:
1. Always has a `development`
property. `development.branch` contains
the actual repository
branch object that is considered to be the
`development` branch.
`development.branch` will not be present
if it does not
exist.
2. Might have a `production` property. `production` will
not
be present when `production` is disabled.
`production.branch` contains the actual branch object that is
considered to be the `production` branch. `production.branch` will
not be present if it does not exist.
3. Always has a `branch_types`
array which contains all enabled branch
types.
summary: Atlassian Get The Branching Model For A Repository
responses:
'200':
description: The branching model object
content:
application/json:
schema:
$ref: '#/components/schemas/branching_model'
examples:
response:
value:
development:
name: master
branch:
type: branch
name: master
target:
hash: 16dffcb0de1b22e249db6799532074cf32efe80f
use_mainbranch: true
production:
name: production
branch:
type: branch
name: production
target:
hash: 16dffcb0de1b22e249db6799532074cf32efe80f
use_mainbranch: false
branch_types:
- kind: release
prefix: release/
- kind: hotfix
prefix: hotfix/
- kind: feature
prefix: feature/
- kind: bugfix
prefix: bugfix/
type: branching_model
links:
self:
href: https://api.bitbucket.org/.../branching-model
'401':
description: If the request was not authenticated
content:
application/json:
schema:
$ref: '#/components/schemas/error'
'403':
description: >-
If the authenticated user does not have read access to the
repository
content:
application/json:
schema:
$ref: '#/components/schemas/error'
'404':
description: If the repository does not exist
content:
application/json:
schema:
$ref: '#/components/schemas/error'
security:
- oauth2:
- repository
- basic: []
- api_key: []
x-atlassian-oauth2-scopes:
- state: Current
scheme: oauth2
scopes:
- read:repository:bitbucket
operationId: atlassianGetTheBranchingModelForARepository
parameters:
- name: repo_slug
in: path
description: |
This can either be the repository slug or the UUID of the repository,
surrounded by curly-braces, for example: `{repository UUID}`.
required: true
schema:
type: string
- name: workspace
in: path
description: |
This can either be the workspace ID (slug) or the workspace UUID
surrounded by curly-braces, for example: `{workspace UUID}`.
required: true
schema:
type: string
/repositories/{workspace}/{repo_slug}/branching-model/settings:
get:
tags:
- Branching Model
description: >-
Return the branching model configuration for a repository. The
returned
object:
1. Always has a `development` property for
the development branch.
2. Always a `production` property for the
production branch. The
production branch can be disabled.
3.
The `branch_types` contains all the branch types.
This is the raw
configuration for the branching model. A client
wishing to see the
branching model with its actual current branches may
find the [active
model
API](/cloud/bitbucket/rest/api-group-branching-model/#api-repositories-workspace-repo-slug-branching-model-get)
more useful.
summary: Atlassian Get The Branching Model Config For A Repository
responses:
'200':
description: The branching model configuration
content:
application/json:
schema:
$ref: '#/components/schemas/branching_model_settings'
examples:
response:
value:
development:
is_valid: true
name: 'null'
use_mainbranch: true
production:
is_valid: true
name: production
use_mainbranch: false
enabled: false
branch_types:
- kind: release
enabled: true
prefix: release/
- kind: hotfix
enabled: true
prefix: hotfix/
- kind: feature
enabled: true
prefix: feature/
- kind: bugfix
enabled: false
prefix: bugfix/
type: branching_model_settings
links:
self:
href: https://api.bitbucket.org/.../branching-model/settings
'401':
description: If the request was not authenticated
content:
application/json:
schema:
$ref: '#/components/schemas/error'
'403':
description: >-
If the authenticated user does not have admin access to the
repository
content:
application/json:
schema:
$ref: '#/components/schemas/error'
'404':
description: If the repository does not exist
content:
application/json:
schema:
$ref: '#/components/schemas/error'
security:
- oauth2:
- repository:admin
- basic: []
- api_key: []
x-atlassian-oauth2-scopes:
- state: Current
scheme: oauth2
scopes:
- admin:repository:bitbucket
operationId: atlassianGetTheBranchingModelConfigForARepository
put:
tags:
- Branching Model
description: >-
Update the branching model configuration for a repository.
The
`development` branch can be configured to a specific branch or
to
track the main branch. When set to a specific branch it
must
currently exist. Only the passed properties will be updated.
The
properties not passed will be left unchanged. A request without
a
`development` property will leave the development branch
unchanged.
It is possible for the `development` branch to be
invalid. This
happens when it points at a specific branch that has
been
deleted. This is indicated in the `is_valid` field for the
branch. It is
not possible to update the settings for `development`
if that
would leave the branch in an invalid state. Such a request
will be
rejected.
The `production` branch can be a specific
branch, the main
branch or disabled. When set to a specific branch it
must currently
exist. The `enabled` property can be used to enable
(`true`) or
disable (`false`) it. Only the passed properties will be
updated. The
properties not passed will be left unchanged. A request
without a
`production` property will leave the production branch
unchanged.
It is possible for the `production` branch to be
invalid. This
happens when it points at a specific branch that has
been
deleted. This is indicated in the `is_valid` field for the
branch. A
request that would leave `production` enabled and invalid
will be
rejected. It is possible to update `production` and make it
invalid if
it would also be left disabled.
The `branch_types`
property contains the branch types to be updated.
Only the branch
types passed will be updated. All updates will be
rejected if it
would leave the branching model in an invalid state.
For branch types
this means that:
1. The prefixes for all enabled branch types are
valid. For example,
it is not possible to use '*' inside a Git
prefix.
2. A prefix of an enabled branch type must not be a prefix of
another
enabled branch type. This is to ensure that a branch can
be easily
classified by its prefix unambiguously.
It is
possible to store an invalid prefix if that branch type would be
left
disabled. Only the passed properties will be updated. The
properties
not passed will be left unchanged. Each branch type must
have a
`kind` property to identify it.
There is currently a side effect
when using this API endpoint. If the
repository is inheriting
branching model settings from its project,
updating the branching
model for this repository will disable the
project setting
inheritance.
We have deprecated this side effect and will
remove it on 1 August 2022.
summary: Atlassian Update The Branching Model Config For A Repository
responses:
'200':
description: The updated branching model configuration
content:
application/json:
schema:
$ref: '#/components/schemas/branching_model_settings'
examples:
response:
value:
development:
use_mainbranch: true
production:
enabled: true
use_mainbranch: false
name: production
branch_types:
- kind: bugfix
enabled: true
prefix: bugfix/
- kind: feature
enabled: true
prefix: feature/
- kind: hotfix
prefix: hotfix/
- kind: release
enabled: false
'400':
description: If the request contains invalid branching model configuration
content:
application/json:
schema:
$ref: '#/components/schemas/error'
'401':
description: If the request was not authenticated
content:
application/json:
schema:
$ref: '#/components/schemas/error'
'403':
description: >-
If the authenticated user does not have admin access to the
repository
content:
application/json:
schema:
$ref: '#/components/schemas/error'
'404':
description: If the repository does not exist
content:
application/json:
schema:
$ref: '#/components/schemas/error'
security:
- oauth2:
- repository:admin
- basic: []
- api_key: []
x-atlassian-oauth2-scopes:
- state: Current
scheme: oauth2
scopes:
- admin:repository:bitbucket
operationId: atlassianUpdateTheBranchingModelConfigForARepository
parameters:
- name: repo_slug
in: path
description: |
This can either be the repository slug or the UUID of the repository,
surrounded by curly-braces, for example: `{repository UUID}`.
required: true
schema:
type: string
- name: workspace
in: path
description: |
This can either be the workspace ID (slug) or the workspace UUID
surrounded by curly-braces, for example: `{workspace UUID}`.
required: true
schema:
type: string
/repositories/{workspace}/{repo_slug}/commit/{commit}:
get:
tags:
- Commits
description: Returns the specified commit.
summary: Atlassian Get A Commit
responses:
'200':
description: The commit object
content:
application/json:
schema:
$ref: '#/components/schemas/commit'
examples:
response:
value:
rendered:
message:
raw: Add a GEORDI_OUTPUT_DIR setting
markup: markdown
html:
type: author
user:
display_name: Brodie Rao
uuid: '{9484702e-c663-4afd-aefb-c93a8cd31c28}'
links:
self:
href: >-
https://api.bitbucket.org/2.0/users/%7B9484702e-c663-4afd-aefb-c93a8cd31c28%7D
html:
href: >-
https://bitbucket.org/%7B9484702e-c663-4afd-aefb-c93a8cd31c28%7D/
avatar:
href: >-
https://avatar-management--avatars.us-west-2.prod.public.atl-paas.net/557058:3aae1e05-702a-41e5-81c8-f36f29afb6ca/613070db-28b0-421f-8dba-ae8a87e2a5c7/128
type: user
nickname: brodie
account_id: 557058:3aae1e05-702a-41e5-81c8-f36f29afb6ca
summary:
raw: Add a GEORDI_OUTPUT_DIR setting
markup: markdown
html: Add a GEORDI_OUTPUT_DIR setting
type: rendered
participants: []
parents:
- type: commit
hash: f06941fec4ef6bcb0c2456927a0cf258fa4f899b
links:
self:
href: >-
https://api.bitbucket.org/2.0/repositories/bitbucket/geordi/commit/f06941fec4ef6bcb0c2456927a0cf258fa4f899b
html:
href: >-
https://bitbucket.org/bitbucket/geordi/commits/f06941fec4ef6bcb0c2456927a0cf258fa4f899b
date: '2012-07-16T19:37:54+00:00'
message: Add a GEORDI_OUTPUT_DIR setting
type: commit
'404':
description: If the specified commit or repository does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
security:
- oauth2:
- repository
- basic: []
- api_key: []
x-atlassian-oauth2-scopes:
- state: Current
scheme: oauth2
scopes:
- read:repository:bitbucket
operationId: atlassianGetACommit
parameters:
- name: commit
in: path
description: The commit's SHA1.
required: true
schema:
type: string
- name: repo_slug
in: path
description: |
This can either be the repository slug or the UUID of the repository,
surrounded by curly-braces, for example: `{repository UUID}`.
required: true
schema:
type: string
- name: workspace
in: path
description: |
This can either be the workspace ID (slug) or the workspace UUID
surrounded by curly-braces, for example: `{workspace UUID}`.
required: true
schema:
type: string
/repositories/{workspace}/{repo_slug}/commit/{commit}/approve:
delete:
tags:
- Commits
description: >-
Redact the authenticated user's approval of the specified
commit.
This operation is only available to users that have
explicit access to
the repository. In contrast, just the fact that a
repository is
publicly accessible to users does not give them the
ability to approve
commits.
summary: Atlassian Unapprove A Commit
responses:
'204':
description: >-
An empty response indicating the authenticated user's approval has
been withdrawn.
'404':
description: If the specified commit, or the repository does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
security:
- oauth2:
- repository:write
- basic: []
- api_key: []
x-atlassian-oauth2-scopes:
- state: Current
scheme: oauth2
scopes:
- write:repository:bitbucket
operationId: atlassianUnapproveACommit
post:
tags:
- Commits
description: >-
Approve the specified commit as the authenticated user.
This
operation is only available to users that have explicit access to
the
repository. In contrast, just the fact that a repository is
publicly
accessible to users does not give them the ability to
approve
commits.
summary: Atlassian Approve A Commit
responses:
'200':
description: >-
The `participant` object recording that the authenticated user
approved the commit.
content:
application/json:
schema:
$ref: '#/components/schemas/participant'
'404':
description: If the specified commit, or the repository does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
security:
- oauth2:
- repository:write
- basic: []
- api_key: []
x-atlassian-oauth2-scopes:
- state: Current
scheme: oauth2
scopes:
- read:repository:bitbucket
- write:repository:bitbucket
operationId: atlassianApproveACommit
parameters:
- name: commit
in: path
description: The commit's SHA1.
required: true
schema:
type: string
- name: repo_slug
in: path
description: |
This can either be the repository slug or the UUID of the repository,
surrounded by curly-braces, for example: `{repository UUID}`.
required: true
schema:
type: string
- name: workspace
in: path
description: |
This can either be the workspace ID (slug) or the workspace UUID
surrounded by curly-braces, for example: `{workspace UUID}`.
required: true
schema:
type: string
/repositories/{workspace}/{repo_slug}/commit/{commit}/comments:
get:
tags:
- Commits
description: >-
Returns the commit's comments.
This includes both global and
inline comments.
The default sorting is oldest to newest and can
be overridden with
the `sort` query parameter.
summary: Atlassian List A Commit S Comments
responses:
'200':
description: A paginated list of commit comments.
content:
application/json:
schema:
$ref: '#/components/schemas/paginated_commit_comments'
parameters:
- name: q
in: query
description: |
Query string to narrow down the response as per
[filtering and sorting](/cloud/bitbucket/rest/intro/#filtering).
required: false
schema:
type: string
- name: sort
in: query
description: |
Field by which the results should be sorted as per
[filtering and sorting](/cloud/bitbucket/rest/intro/#filtering).
required: false
schema:
type: string
security:
- oauth2:
- repository
- basic: []
- api_key: []
x-atlassian-oauth2-scopes:
- state: Current
scheme: oauth2
scopes:
- read:repository:bitbucket
operationId: atlassianListACommitSComments
post:
tags:
- Commits
description: >-
Creates new comment on the specified commit.
To post a reply to
an existing comment, include the `parent.id` field:
```
$ curl
https://api.bitbucket.org/2.0/repositories/atlassian/prlinks/commit/db9ba1e031d07a02603eae0e559a7adc010257fc/comments/
\
-X POST -u evzijst \
-H 'Content-Type: application/json'
\
-d '{"content": {"raw": "One more thing!"},
"parent":
{"id": 5728901}}'
```
summary: Atlassian Create Comment For A Commit
responses:
'201':
description: The newly created comment.
headers:
Location:
description: The location of the newly created comment.
schema:
type: string
'400':
description: >-
If the comment was detected as spam, or if the parent comment is not
attached to the same node as the new comment
'404':
description: If a parent ID was passed in that cannot be found
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/commit_comment'
description: The specified comment.
required: true
security:
- oauth2:
- repository
- basic: []
- api_key: []
x-atlassian-oauth2-scopes:
- state: Current
scheme: oauth2
scopes:
- read:repository:bitbucket
operationId: atlassianCreateCommentForACommit
parameters:
- name: commit
in: path
description: The commit's SHA1.
required: true
schema:
type: string
- name: repo_slug
in: path
description: |
This can either be the repository slug or the UUID of the repository,
surrounded by curly-braces, for example: `{repository UUID}`.
required: true
schema:
type: string
- name: workspace
in: path
description: |
This can either be the workspace ID (slug) or the workspace UUID
surrounded by curly-braces, for example: `{workspace UUID}`.
required: true
schema:
type: string
/repositories/{workspace}/{repo_slug}/commit/{commit}/comments/{comment_id}:
delete:
tags:
- Commits
description: >-
Deletes the specified commit comment.
Note that deleting comments
that have visible replies that point to
them will not really delete
the resource. This is to retain the integrity
of the original comment
tree. Instead, the `deleted` element is set to
`true` and the content
is blanked out. The comment will continue to be
returned by the
collections and self endpoints.
summary: Atlassian Delete A Commit Comment
responses:
'204':
description: >-
Indicates the comment was deleted by this action or a previous
delete.
'404':
description: If the comment doesn't exist
security:
- oauth2:
- repository
- basic: []
- api_key: []
x-atlassian-oauth2-scopes:
- state: Current
scheme: oauth2
scopes:
- read:repository:bitbucket
operationId: atlassianDeleteACommitComment
get:
tags:
- Commits
description: Returns the specified commit comment.
summary: Atlassian Get A Commit Comment
responses:
'200':
description: The commit comment.
content:
application/json:
schema:
$ref: '#/components/schemas/commit_comment'
security:
- oauth2:
- repository
- basic: []
- api_key: []
x-atlassian-oauth2-scopes:
- state: Current
scheme: oauth2
scopes:
- read:repository:bitbucket
operationId: atlassianGetACommitComment
put:
tags:
- Commits
description: >-
Used to update the contents of a comment. Only the content of the
comment can be updated.
```
$ curl
https://api.bitbucket.org/2.0/repositories/atlassian/prlinks/commit/7f71b5/comments/5728901
\
-X PUT -u evzijst \
-H 'Content-Type: application/json'
\
-d '{"content": {"raw": "One more thing!"}'
```
summary: Atlassian Update A Commit Comment
responses:
'201':
description: The newly updated comment.
headers:
Location:
description: The location of the newly updated comment.
schema:
type: string
'400':
description: If the comment update was detected as spam
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/commit_comment'
description: The updated comment.
required: true
security:
- oauth2:
- repository
- basic: []
- api_key: []
x-atlassian-oauth2-scopes:
- state: Current
scheme: oauth2
scopes:
- read:repository:bitbucket
operationId: atlassianUpdateACommitComment
parameters:
- name: comment_id
in: path
description: The id of the comment.
required: true
schema:
type: integer
- name: commit
in: path
description: The commit's SHA1.
required: true
schema:
type: string
- name: repo_slug
in: path
description: |
This can either be the repository slug or the UUID of the repository,
surrounded by curly-braces, for example: `{repository UUID}`.
required: true
schema:
type: string
- name: workspace
in: path
description: |
This can either be the workspace ID (slug) or the workspace UUID
surrounded by curly-braces, for example: `{workspace UUID}`.
required: true
schema:
type: string
/repositories/{workspace}/{repo_slug}/commit/{commit}/properties/{app_key}/{property_name}:
put:
responses:
'204':
description: An empty response.
operationId: atlassianUpdatecommithostedpropertyvalue
summary: Atlassian Update A Commit Application Property
description: >-
Update an [application
property](/cloud/bitbucket/application-properties/) value stored against
a commit.
parameters:
- required: true
in: path
name: workspace
description: >-
The repository container; either the workspace slug or the UUID in
curly braces.
schema:
type: string
- required: true
in: path
name: repo_slug
description: The repository.
schema:
type: string
- required: true
in: path
name: commit
description: The commit.
schema:
type: string
- required: true
in: path
name: app_key
description: The key of the Connect app.
schema:
type: string
- required: true
in: path
name: property_name
description: The name of the property.
schema:
type: string
requestBody:
$ref: '#/components/requestBodies/application_property'
tags:
- Properties
security:
- oauth2: []
- basic: []
- api_key: []
delete:
responses:
'204':
description: An empty response.
operationId: atlassianDeletecommithostedpropertyvalue
summary: Atlassian Delete A Commit Application Property
description: >-
Delete an [application
property](/cloud/bitbucket/application-properties/) value stored against
a commit.
parameters:
- required: true
in: path
name: workspace
description: >-
The repository container; either the workspace slug or the UUID in
curly braces.
schema:
type: string
- required: true
in: path
name: repo_slug
description: The repository.
schema:
type: string
- required: true
in: path
name: commit
description: The commit.
schema:
type: string
- required: true
in: path
name: app_key
description: The key of the Connect app.
schema:
type: string
- required: true
in: path
name: property_name
description: The name of the property.
schema:
type: string
tags:
- Properties
security:
- oauth2: []
- basic: []
- api_key: []
get:
responses:
'200':
description: The value of the property.
content:
application/json:
schema:
$ref: '#/components/schemas/application_property'
operationId: atlassianGetcommithostedpropertyvalue
summary: Atlassian Get A Commit Application Property
description: >-
Retrieve an [application
property](/cloud/bitbucket/application-properties/) value stored against
a commit.
parameters:
- required: true
in: path
name: workspace
description: >-
The repository container; either the workspace slug or the UUID in
curly braces.
schema:
type: string
- required: true
in: path
name: repo_slug
description: The repository.
schema:
type: string
- required: true
in: path
name: commit
description: The commit.
schema:
type: string
- required: true
in: path
name: app_key
description: The key of the Connect app.
schema:
type: string
- required: true
in: path
name: property_name
description: The name of the property.
schema:
type: string
tags:
- Properties
security:
- oauth2: []
- basic: []
- api_key: []
/repositories/{workspace}/{repo_slug}/commit/{commit}/pullrequests:
get:
tags:
- Pullrequests
summary: Atlassian List Pull Requests That Contain A Commit
description: >-
Returns a paginated list of all pull requests as part of which this
commit was reviewed. Pull Request Commit Links app must be installed
first before using this API; installation automatically occurs when 'Go
to pull request' is clicked from the web interface for a commit's
details.
operationId: atlassianGetpullrequestsforcommit
parameters:
- name: workspace
in: path
description: >-
This can either be the workspace ID (slug) or the workspace UUID
surrounded by curly-braces
required: true
schema:
type: string
- name: repo_slug
in: path
description: The repository; either the UUID in curly braces, or the slug
required: true
schema:
type: string
- name: commit
in: path
description: The SHA1 of the commit
required: true
schema:
type: string
- name: page
in: query
description: Which page to retrieve
required: false
schema:
type: integer
format: int32
default: 1
- name: pagelen
in: query
description: How many pull requests to retrieve per page
required: false
schema:
type: integer
format: int32
default: 30
responses:
'200':
description: The paginated list of pull requests.
content:
application/json:
schema:
$ref: '#/components/schemas/paginated_pullrequests'
'202':
description: The repository's pull requests are still being indexed.
content:
application/json:
schema:
$ref: '#/components/schemas/paginated_pullrequests'
'404':
description: >-
Either the repository does not exist, or pull request commit links
have not yet been indexed.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
x-atlassian-oauth2-scopes:
- state: Current
scheme: oauth2
scopes:
- read:pullrequest:bitbucket
security:
- oauth2:
- pullrequest
- basic: []
- api_key: []
/repositories/{workspace}/{repo_slug}/commit/{commit}/reports:
get:
tags:
- Reports - Commits
description: Returns a paginated list of Reports linked to this commit.
summary: Atlassian List Reports
operationId: atlassianGetreportsforcommit
parameters:
- name: workspace
description: >-
This can either be the workspace ID (slug) or the workspace UUID
surrounded by curly-braces, for example `{workspace UUID}`.
required: true
in: path
schema:
type: string
- name: repo_slug
description: The repository.
required: true
in: path
schema:
type: string
- name: commit
description: The commit for which to retrieve reports.
required: true
in: path
schema:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/paginated_reports'
x-atlassian-oauth2-scopes:
- state: Current
scheme: oauth2
scopes:
- read:repository:bitbucket
security:
- oauth2:
- repository
- basic: []
- api_key: []
/repositories/{workspace}/{repo_slug}/commit/{commit}/reports/{reportId}:
put:
tags:
- Reports - Commits
description: "Creates or updates a report for the specified commit.
To upload a report, make sure to generate an ID that is unique across all reports for that commit. If you want to use an existing id from your own system, we recommend prefixing it with your system's name to avoid collisions, for example, mySystem-001.
### Sample cURL request:
```
curl --request PUT 'https://api.bitbucket.org/2.0/repositories///commit//reports/mysystem-001' \\
--header 'Content-Type: application/json' \\
--data-raw '{
\"title\": \"Security scan report\",
\"details\": \"This pull request introduces 10 new dependency vulnerabilities.\",
\"report_type\": \"SECURITY\",
\"reporter\": \"mySystem\",
\"link\": \"http://www.mysystem.com/reports/001\",
\"result\": \"FAILED\",
\"data\": [
{
\"title\": \"Duration (seconds)\",
\"type\": \"DURATION\",
\"value\": 14
},
{
\"title\": \"Safe to merge?\",
\"type\": \"BOOLEAN\",
\"value\": false
}
]
}'
```
### Possible field values:
report_type: SECURITY, COVERAGE, TEST, BUG
result: PASSED, FAILED, PENDING
data.type: BOOLEAN, DATE, DURATION, LINK, NUMBER, PERCENTAGE, TEXT
#### Data field formats
| Type Field | Value Field Type | Value Field Display |
|:--|:|:--|
| None/ Omitted | Number, String or Boolean (not an array or object) | Plain text |
| BOOLEAN\t| Boolean | The value will be read as a JSON boolean and displayed as 'Yes' or 'No'. |
| DATE | Number | The value will be read as a JSON number in the form of a Unix timestamp (milliseconds) and will be displayed as a relative date if the date is less than one week ago, otherwise it will be displayed as an absolute date. |
| DURATION | Number | The value will be read as a JSON number in milliseconds and will be displayed in a human readable duration format. |
| LINK | Object: `{\"text\": \"Link text here\", \"href\": \"https://link.to.annotation/in/external/tool\"}` | The value will be read as a JSON object containing the fields \"text\" and \"href\" and will be displayed as a clickable link on the report. |
| NUMBER | Number | The value will be read as a JSON number and large numbers will be displayed in a human readable format (e.g. 14.3k). |
| PERCENTAGE | Number (between 0 and 100) | The value will be read as a JSON number between 0 and 100 and will be displayed with a percentage sign. |
| TEXT | String | The value will be read as a JSON string and will be displayed as-is |
Please refer to the [Code Insights documentation](https://confluence.atlassian.com/bitbucket/code-insights-994316785.html) for more information.
"
operationId: atlassianCreateorupdatereport
summary: Atlassian Create Or Update A Report
parameters:
- name: workspace
description: >-
This can either be the workspace ID (slug) or the workspace UUID
surrounded by curly-braces, for example `{workspace UUID}`.
required: true
in: path
schema:
type: string
- name: repo_slug
description: The repository.
required: true
in: path
schema:
type: string
- name: commit
description: The commit the report belongs to.
required: true
in: path
schema:
type: string
- name: reportId
description: Either the uuid or external-id of the report.
required: true
in: path
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/report'
description: The report to create or update
required: true
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/report'
'400':
description: The provided Report object is malformed or incomplete.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
security:
- oauth2:
- repository
- basic: []
- api_key: []
get:
tags:
- Reports - Commits
description: Returns a single Report matching the provided ID.
summary: Atlassian Get A Report
operationId: atlassianGetreport
parameters:
- name: workspace
description: >-
This can either be the workspace ID (slug) or the workspace UUID
surrounded by curly-braces, for example `{workspace UUID}`.
required: true
in: path
schema:
type: string
- name: repo_slug
description: The repository.
required: true
in: path
schema:
type: string
- name: commit
description: The commit the report belongs to.
required: true
in: path
schema:
type: string
- name: reportId
description: Either the uuid or external-id of the report.
required: true
in: path
schema:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/report'
'404':
description: The report with the given ID was not found.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
x-atlassian-oauth2-scopes:
- state: Current
scheme: oauth2
scopes:
- read:repository:bitbucket
security:
- oauth2:
- repository
- basic: []
- api_key: []
delete:
tags:
- Reports - Commits
description: Deletes a single Report matching the provided ID.
summary: Atlassian Delete A Report
operationId: atlassianDeletereport
parameters:
- name: workspace
description: >-
This can either be the workspace ID (slug) or the workspace UUID
surrounded by curly-braces, for example `{workspace UUID}`.
required: true
in: path
schema:
type: string
- name: repo_slug
description: The repository.
required: true
in: path
schema:
type: string
- name: commit
description: The commit the report belongs to.
required: true
in: path
schema:
type: string
- name: reportId
description: Either the uuid or external-id of the report.
required: true
in: path
schema:
type: string
responses:
'204':
description: No content
security:
- oauth2:
- repository
- basic: []
- api_key: []
/repositories/{workspace}/{repo_slug}/commit/{commit}/reports/{reportId}/annotations:
get:
tags:
- Reports - Commits
description: Returns a paginated list of Annotations for a specified report.
summary: Atlassian List Annotations
operationId: atlassianGetannotationsforreport
parameters:
- name: workspace
description: >-
This can either be the workspace ID (slug) or the workspace UUID
surrounded by curly-braces, for example `{workspace UUID}`.
required: true
in: path
schema:
type: string
- name: repo_slug
description: The repository.
required: true
in: path
schema:
type: string
- name: commit
description: The commit for which to retrieve reports.
required: true
in: path
schema:
type: string
- name: reportId
description: Uuid or external-if of the report for which to get annotations for.
required: true
in: path
schema:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/paginated_annotations'
x-atlassian-oauth2-scopes:
- state: Current
scheme: oauth2
scopes:
- read:repository:bitbucket
security:
- oauth2:
- repository
- basic: []
- api_key: []
post:
tags:
- Reports - Commits
description: >-
Bulk upload of annotations.
Annotations are individual findings that
have been identified as part of a report, for example, a line of code
that represents a vulnerability. These annotations can be attached to a
specific file and even a specific line in that file, however, that is
optional. Annotations are not mandatory and a report can contain up to
1000 annotations.
Add the annotations you want to upload as
objects in a JSON array and make sure each annotation has the
external_id field set to a unique value. If you want to use an existing
id from your own system, we recommend prefixing it with your system's
name to avoid collisions, for example, mySystem-annotation001. The
external id can later be used to identify the report as an alternative
to the generated
[UUID](https://developer.atlassian.com/bitbucket/api/2/reference/meta/uri-uuid#uuid).
You can upload up to 100 annotations per POST request.
### Sample
cURL request:
```
curl --location
'https://api.bitbucket.org/2.0/repositories///commit//reports/mysystem-001/annotations'
\
--header 'Content-Type: application/json' \
--data-raw '[
{
"external_id": "mysystem-annotation001",
"title": "Security scan report",
"annotation_type":
"VULNERABILITY",
"summary": "This line represents a security
threat.",
"severity": "HIGH",
"path":
"my-service/src/main/java/com/myCompany/mysystem/logic/Main.java",
"line": 42
},
{
"external_id":
"mySystem-annotation002",
"title": "Bug report",
"annotation_type": "BUG",
"result": "FAILED",
"summary": "This line might introduce a bug.",
"severity":
"MEDIUM",
"path":
"my-service/src/main/java/com/myCompany/mysystem/logic/Helper.java",
"line": 13
}
]'
```
### Possible field
values:
annotation_type: VULNERABILITY, CODE_SMELL, BUG
result:
PASSED, FAILED, IGNORED, SKIPPED
severity: HIGH, MEDIUM, LOW,
CRITICAL
Please refer to the [Code Insights
documentation](https://confluence.atlassian.com/bitbucket/code-insights-994316785.html)
for more information.
operationId: atlassianBulkcreateorupdateannotations
summary: Atlassian Bulk Create Or Update Annotations
parameters:
- name: workspace
description: >-
This can either be the workspace ID (slug) or the workspace UUID
surrounded by curly-braces, for example `{workspace UUID}`.
required: true
in: path
schema:
type: string
- name: repo_slug
description: The repository.
required: true
in: path
schema:
type: string
- name: commit
description: The commit for which to retrieve reports.
required: true
in: path
schema:
type: string
- name: reportId
description: Uuid or external-if of the report for which to get annotations for.
required: true
in: path
schema:
type: string
requestBody:
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/report_annotation'
minItems: 1
maxItems: 100
description: The annotations to create or update
required: true
responses:
'200':
description: OK
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/report_annotation'
security:
- oauth2:
- repository
- basic: []
- api_key: []
/repositories/{workspace}/{repo_slug}/commit/{commit}/reports/{reportId}/annotations/{annotationId}:
get:
tags:
- Reports - Commits
description: Returns a single Annotation matching the provided ID.
summary: Atlassian Get An Annotation
operationId: atlassianGetannotation
parameters:
- name: workspace
description: >-
This can either be the workspace ID (slug) or the workspace UUID
surrounded by curly-braces, for example `{workspace UUID}`.
required: true
in: path
schema:
type: string
- name: repo_slug
description: The repository.
required: true
in: path
schema:
type: string
- name: commit
description: The commit the report belongs to.
required: true
in: path
schema:
type: string
- name: reportId
description: Either the uuid or external-id of the report.
required: true
in: path
schema:
type: string
- name: annotationId
description: Either the uuid or external-id of the annotation.
required: true
in: path
schema:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/report_annotation'
'404':
description: The annotation with the given ID was not found.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
x-atlassian-oauth2-scopes:
- state: Current
scheme: oauth2
scopes:
- read:repository:bitbucket
security:
- oauth2:
- repository
- basic: []
- api_key: []
put:
tags:
- Reports - Commits
description: >-
Creates or updates an individual annotation for the specified
report.
Annotations are individual findings that have been identified
as part of a report, for example, a line of code that represents a
vulnerability. These annotations can be attached to a specific file and
even a specific line in that file, however, that is optional.
Annotations are not mandatory and a report can contain up to 1000
annotations.
Just as reports, annotation needs to be uploaded
with a unique ID that can later be used to identify the report as an
alternative to the generated
[UUID](https://developer.atlassian.com/bitbucket/api/2/reference/meta/uri-uuid#uuid).
If you want to use an existing id from your own system, we recommend
prefixing it with your system's name to avoid collisions, for example,
mySystem-annotation001.
### Sample cURL request:
```
curl
--request PUT
'https://api.bitbucket.org/2.0/repositories///commit//reports/mySystem-001/annotations/mysystem-annotation001'
\
--header 'Content-Type: application/json' \
--data-raw '{
"title": "Security scan report",
"annotation_type":
"VULNERABILITY",
"summary": "This line represents a security
thread.",
"severity": "HIGH",
"path":
"my-service/src/main/java/com/myCompany/mysystem/logic/Main.java",
"line": 42
}'
```
### Possible field
values:
annotation_type: VULNERABILITY, CODE_SMELL, BUG
result:
PASSED, FAILED, IGNORED, SKIPPED
severity: HIGH, MEDIUM, LOW,
CRITICAL
Please refer to the [Code Insights
documentation](https://confluence.atlassian.com/bitbucket/code-insights-994316785.html)
for more information.
operationId: atlassianCreateorupdateannotation
summary: Atlassian Create Or Update An Annotation
parameters:
- name: workspace
description: >-
This can either be the workspace ID (slug) or the workspace UUID
surrounded by curly-braces, for example `{workspace UUID}`.
required: true
in: path
schema:
type: string
- name: repo_slug
description: The repository.
required: true
in: path
schema:
type: string
- name: commit
description: The commit the report belongs to.
required: true
in: path
schema:
type: string
- name: reportId
description: Either the uuid or external-id of the report.
required: true
in: path
schema:
type: string
- name: annotationId
description: Either the uuid or external-id of the annotation.
required: true
in: path
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/report_annotation'
description: The annotation to create or update
required: true
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/report_annotation'
'400':
description: The provided Annotation object is malformed or incomplete.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
security:
- oauth2:
- repository
- basic: []
- api_key: []
delete:
tags:
- Reports - Commits
description: Deletes a single Annotation matching the provided ID.
summary: Atlassian Delete An Annotation
operationId: atlassianDeleteannotation
parameters:
- name: workspace
description: >-
This can either be the workspace ID (slug) or the workspace UUID
surrounded by curly-braces, for example `{workspace UUID}`.
required: true
in: path
schema:
type: string
- name: repo_slug
description: The repository.
required: true
in: path
schema:
type: string
- name: commit
description: The commit the annotation belongs to.
required: true
in: path
schema:
type: string
- name: reportId
description: Either the uuid or external-id of the annotation.
required: true
in: path
schema:
type: string
- name: annotationId
description: Either the uuid or external-id of the annotation.
required: true
in: path
schema:
type: string
responses:
'204':
description: No content
security:
- oauth2:
- repository
- basic: []
- api_key: []
/repositories/{workspace}/{repo_slug}/commit/{commit}/statuses:
get:
tags:
- Commit Statuses
description: Returns all statuses (e.g. build results) for a specific commit.
summary: Atlassian List Commit Statuses For A Commit
responses:
'200':
description: A paginated list of all commit statuses for this commit.
content:
application/json:
schema:
$ref: '#/components/schemas/paginated_commitstatuses'
'401':
description: If the repository is private and the request was not authenticated.
'404':
description: If the repository or commit does not exist
content:
application/json:
schema:
$ref: '#/components/schemas/error'
parameters:
- name: q
in: query
description: |
Query string to narrow down the response as per
[filtering and sorting](/cloud/bitbucket/rest/intro/#filtering).
required: false
schema:
type: string
- name: sort
in: query
description: |
Field by which the results should be sorted as per
[filtering and sorting](/cloud/bitbucket/rest/intro/#filtering).
Defaults to `created_on`.
required: false
schema:
type: string
security:
- oauth2:
- repository
- basic: []
- api_key: []
x-atlassian-oauth2-scopes:
- state: Current
scheme: oauth2
scopes:
- read:repository:bitbucket
operationId: atlassianListCommitStatusesForACommit
parameters:
- name: commit
in: path
description: The commit's SHA1.
required: true
schema:
type: string
- name: repo_slug
in: path
description: |
This can either be the repository slug or the UUID of the repository,
surrounded by curly-braces, for example: `{repository UUID}`.
required: true
schema:
type: string
- name: workspace
in: path
description: |
This can either be the workspace ID (slug) or the workspace UUID
surrounded by curly-braces, for example: `{workspace UUID}`.
required: true
schema:
type: string
/repositories/{workspace}/{repo_slug}/commit/{commit}/statuses/build:
post:
tags:
- Commit Statuses
description: >-
Creates a new build status against the specified commit.
If the
specified key already exists, the existing status object will
be
overwritten.
Example:
```
curl
https://api.bitbucket.org/2.0/repositories/my-workspace/my-repo/commit/e10dae226959c2194f2b07b077c07762d93821cf/statuses/build/ -X POST -u jdoe -H 'Content-Type: application/json' -d
'{
"key": "MY-BUILD",
"state": "SUCCESSFUL",
"description": "42 tests passed",
"url":
"https://www.example.org/my-build-result"
}'
```
When
creating a new commit status, you can use a URI template for the
URL.
Templates are URLs that contain variable names that Bitbucket
will
evaluate at runtime whenever the URL is displayed anywhere
similar to
parameter substitution in
[Bitbucket
Connect](https://developer.atlassian.com/bitbucket/concepts/context-parameters.html).
For
example, one could use
`https://foo.com/builds/{repository.full_name}`
which Bitbucket will
turn into `https://foo.com/builds/foo/bar` at render time.
The
context variables available are `repository` and `commit`.
summary: Atlassian Create A Build Status For A Commit
responses:
'201':
description: The newly created build status object.
content:
application/json:
schema:
$ref: '#/components/schemas/commitstatus'
'401':
description: If the repository is private and the request was not authenticated.
'404':
description: If the repository, commit, or build status key does not exist
content:
application/json:
schema:
$ref: '#/components/schemas/error'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/commitstatus'
description: The new commit status object.
security:
- oauth2:
- repository
- basic: []
- api_key: []
x-atlassian-oauth2-scopes:
- state: Current
scheme: oauth2
scopes:
- read:repository:bitbucket
operationId: atlassianCreateABuildStatusForACommit
parameters:
- name: commit
in: path
description: The commit's SHA1.
required: true
schema:
type: string
- name: repo_slug
in: path
description: |
This can either be the repository slug or the UUID of the repository,
surrounded by curly-braces, for example: `{repository UUID}`.
required: true
schema:
type: string
- name: workspace
in: path
description: |
This can either be the workspace ID (slug) or the workspace UUID
surrounded by curly-braces, for example: `{workspace UUID}`.
required: true
schema:
type: string
/repositories/{workspace}/{repo_slug}/commit/{commit}/statuses/build/{key}:
get:
tags:
- Commit Statuses
description: Returns the specified build status for a commit.
summary: Atlassian Get A Build Status For A Commit
responses:
'200':
description: The build status object with the specified key.
content:
application/json:
schema:
$ref: '#/components/schemas/commitstatus'
'401':
description: If the repository is private and the request was not authenticated.
'404':
description: If the repository, commit, or build status key does not exist
content:
application/json:
schema:
$ref: '#/components/schemas/error'
security:
- oauth2:
- repository
- basic: []
- api_key: []
x-atlassian-oauth2-scopes:
- state: Current
scheme: oauth2
scopes:
- read:repository:bitbucket
operationId: atlassianGetABuildStatusForACommit
put:
tags:
- Commit Statuses
description: >-
Used to update the current status of a build status object on
the
specific commit.
This operation can also be used to change
other properties of the
build status:
* `state`
*
`name`
* `description`
* `url`
* `refname`
The `key`
cannot be changed.
summary: Atlassian Update A Build Status For A Commit
responses:
'200':
description: The updated build status object.
content:
application/json:
schema:
$ref: '#/components/schemas/commitstatus'
'401':
description: If the repository is private and the request was not authenticated.
'404':
description: If the repository or build does not exist
content:
application/json:
schema:
$ref: '#/components/schemas/error'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/commitstatus'
description: The updated build status object
security:
- oauth2:
- repository
- basic: []
- api_key: []
x-atlassian-oauth2-scopes:
- state: Current
scheme: oauth2
scopes:
- read:repository:bitbucket
operationId: atlassianUpdateABuildStatusForACommit
parameters:
- name: commit
in: path
description: The commit's SHA1.
required: true
schema:
type: string
- name: key
in: path
description: The build status' unique key
required: true
schema:
type: string
- name: repo_slug
in: path
description: |
This can either be the repository slug or the UUID of the repository,
surrounded by curly-braces, for example: `{repository UUID}`.
required: true
schema:
type: string
- name: workspace
in: path
description: |
This can either be the workspace ID (slug) or the workspace UUID
surrounded by curly-braces, for example: `{workspace UUID}`.
required: true
schema:
type: string
/repositories/{workspace}/{repo_slug}/commits:
get:
tags:
- Commits
description: >-
These are the repository's commits. They are paginated and
returned
in reverse chronological order, similar to the output of
`git log`.
Like these tools, the DAG can be filtered.
#### GET
/repositories/{workspace}/{repo_slug}/commits/
Returns all
commits in the repo in topological order (newest commit
first). All
branches and tags are included (similar to
`git log
--all`).
#### GET
/repositories/{workspace}/{repo_slug}/commits/?exclude=master
Returns
all commits in the repo that are not on master
(similar to `git log
--all ^master`).
#### GET
/repositories/{workspace}/{repo_slug}/commits/?include=foo&include=bar&exclude=fu&exclude=fubar
Returns
all commits that are on refs `foo` or `bar`, but not on `fu`
or
`fubar` (similar to `git log foo bar ^fu ^fubar`).
An
optional `path` parameter can be specified that will limit
the
results to commits that affect that path. `path` can either be a
file
or a directory. If a directory is specified, commits are
returned that
have modified any file in the directory tree rooted by
`path`. It is
important to note that if the `path` parameter is
specified, the commits
returned by this endpoint may no longer be a
DAG, parent commits that
do not modify the path will be omitted from
the response.
#### GET
/repositories/{workspace}/{repo_slug}/commits/?path=README.md&include=foo&include=bar&exclude=master
Returns
all commits that are on refs `foo` or `bar`, but not on `master`
that
changed the file README.md.
#### GET
/repositories/{workspace}/{repo_slug}/commits/?path=src/&include=foo&include=bar&exclude=master
Returns
all commits that are on refs `foo` or `bar`, but not on `master`
that
changed to a file in any file in the directory src or its
children.
Because the response could include a very large number
of commits, it
is paginated. Follow the 'next' link in the response
to navigate to the
next page of commits. As with other paginated
resources, do not
construct your own links.
When the include
and exclude parameters are more than can fit in a
query string,
clients can use a `x-www-form-urlencoded` POST instead.
summary: Atlassian List Commits
responses:
'200':
description: A paginated list of commits
content:
application/json:
schema:
$ref: '#/components/schemas/paginated_changeset'
'404':
description: If the specified repository does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
security:
- oauth2:
- repository
- basic: []
- api_key: []
x-atlassian-oauth2-scopes:
- state: Current
scheme: oauth2
scopes:
- read:repository:bitbucket
operationId: atlassianListCommits
post:
tags:
- Commits
description: >-
Identical to `GET
/repositories/{workspace}/{repo_slug}/commits`,
except that POST
allows clients to place the include and exclude
parameters in the
request body to avoid URL length issues.
**Note that this
resource does NOT support new commit creation.**
summary: Atlassian List Commits With Include Exclude
responses:
'200':
description: A paginated list of commits
content:
application/json:
schema:
$ref: '#/components/schemas/paginated_changeset'
'404':
description: If the specified repository does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
security:
- oauth2:
- repository
- basic: []
- api_key: []
x-atlassian-oauth2-scopes:
- state: Current
scheme: oauth2
scopes:
- read:repository:bitbucket
operationId: atlassianListCommitsWithIncludeExclude
parameters:
- name: repo_slug
in: path
description: |
This can either be the repository slug or the UUID of the repository,
surrounded by curly-braces, for example: `{repository UUID}`.
required: true
schema:
type: string
- name: workspace
in: path
description: |
This can either be the workspace ID (slug) or the workspace UUID
surrounded by curly-braces, for example: `{workspace UUID}`.
required: true
schema:
type: string
/repositories/{workspace}/{repo_slug}/commits/{revision}:
get:
tags:
- Commits
description: >-
These are the repository's commits. They are paginated and
returned
in reverse chronological order, similar to the output of
`git log`.
Like these tools, the DAG can be filtered.
#### GET
/repositories/{workspace}/{repo_slug}/commits/master
Returns all
commits on ref `master` (similar to `git log master`).
#### GET
/repositories/{workspace}/{repo_slug}/commits/dev?include=foo&exclude=master
Returns
all commits on ref `dev` or `foo`, except those that are reachable
on
`master` (similar to `git log dev foo ^master`).
An
optional `path` parameter can be specified that will limit
the
results to commits that affect that path. `path` can either be a
file
or a directory. If a directory is specified, commits are
returned that
have modified any file in the directory tree rooted by
`path`. It is
important to note that if the `path` parameter is
specified, the commits
returned by this endpoint may no longer be a
DAG, parent commits that
do not modify the path will be omitted from
the response.
#### GET
/repositories/{workspace}/{repo_slug}/commits/dev?path=README.md&include=foo&include=bar&exclude=master
Returns
all commits that are on refs `dev` or `foo` or `bar`, but not on
`master`
that changed the file README.md.
#### GET
/repositories/{workspace}/{repo_slug}/commits/dev?path=src/&include=foo&exclude=master
Returns
all commits that are on refs `dev` or `foo`, but not on `master`
that
changed to a file in any file in the directory src or its
children.
Because the response could include a very large number
of commits, it
is paginated. Follow the 'next' link in the response
to navigate to the
next page of commits. As with other paginated
resources, do not
construct your own links.
When the include
and exclude parameters are more than can fit in a
query string,
clients can use a `x-www-form-urlencoded` POST instead.
summary: Atlassian List Commits For Revision
responses:
'200':
description: A paginated list of commits
content:
application/json:
schema:
$ref: '#/components/schemas/paginated_changeset'
'404':
description: If the specified revision does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
security:
- oauth2:
- repository
- basic: []
- api_key: []
x-atlassian-oauth2-scopes:
- state: Current
scheme: oauth2
scopes:
- read:repository:bitbucket
operationId: atlassianListCommitsForRevision
post:
tags:
- Commits
description: >-
Identical to `GET
/repositories/{workspace}/{repo_slug}/commits/{revision}`,
except
that POST allows clients to place the include and exclude
parameters
in the request body to avoid URL length issues.
**Note that this
resource does NOT support new commit creation.**
summary: Atlassian List Commits For Revision Using Include Exclude
responses:
'200':
description: A paginated list of commits
content:
application/json:
schema:
$ref: '#/components/schemas/paginated_changeset'
'404':
description: If the specified revision does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
security:
- oauth2:
- repository
- basic: []
- api_key: []
x-atlassian-oauth2-scopes:
- state: Current
scheme: oauth2
scopes:
- read:repository:bitbucket
operationId: atlassianListCommitsForRevisionUsingIncludeExclude
parameters:
- name: repo_slug
in: path
description: |
This can either be the repository slug or the UUID of the repository,
surrounded by curly-braces, for example: `{repository UUID}`.
required: true
schema:
type: string
- name: revision
in: path
description: A commit SHA1 or ref name.
required: true
schema:
type: string
- name: workspace
in: path
description: |
This can either be the workspace ID (slug) or the workspace UUID
surrounded by curly-braces, for example: `{workspace UUID}`.
required: true
schema:
type: string
/repositories/{workspace}/{repo_slug}/components:
get:
tags:
- Issue Tracker
description: >-
Returns the components that have been defined in the issue
tracker.
This resource is only available on repositories that
have the issue
tracker enabled.
summary: Atlassian List Components
responses:
'200':
description: The components that have been defined in the issue tracker.
content:
application/json:
schema:
$ref: '#/components/schemas/paginated_components'
'404':
description: >-
The specified repository does not exist or does not have the issue
tracker enabled.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
security:
- oauth2:
- issue
- basic: []
- api_key: []
operationId: atlassianListComponents
parameters:
- name: repo_slug
in: path
description: |
This can either be the repository slug or the UUID of the repository,
surrounded by curly-braces, for example: `{repository UUID}`.
required: true
schema:
type: string
- name: workspace
in: path
description: |
This can either be the workspace ID (slug) or the workspace UUID
surrounded by curly-braces, for example: `{workspace UUID}`.
required: true
schema:
type: string
/repositories/{workspace}/{repo_slug}/components/{component_id}:
get:
tags:
- Issue Tracker
description: Returns the specified issue tracker component object.
summary: Atlassian Get A Component For Issues
responses:
'200':
description: The specified component object.
content:
application/json:
schema:
$ref: '#/components/schemas/component'
'404':
description: >-
The specified repository or component does not exist or does not
have the issue tracker enabled.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
security:
- oauth2:
- issue
- basic: []
- api_key: []
operationId: atlassianGetAComponentForIssues
parameters:
- name: component_id
in: path
description: The component's id
required: true
schema:
type: integer
- name: repo_slug
in: path
description: |
This can either be the repository slug or the UUID of the repository,
surrounded by curly-braces, for example: `{repository UUID}`.
required: true
schema:
type: string
- name: workspace
in: path
description: |
This can either be the workspace ID (slug) or the workspace UUID
surrounded by curly-braces, for example: `{workspace UUID}`.
required: true
schema:
type: string
/repositories/{workspace}/{repo_slug}/default-reviewers:
get:
tags:
- Pullrequests
description: >-
Returns the repository's default reviewers.
These are the users
that are automatically added as reviewers on every
new pull request
that is created. To obtain the repository's default reviewers
as well
as the default reviewers inherited from the project, use
the
[effective-default-reveiwers](#api-repositories-workspace-repo-slug-effective-default-reviewers-get)
endpoint.
summary: Atlassian List Default Reviewers
responses:
'200':
description: The paginated list of default reviewers
content:
application/json:
schema:
$ref: '#/components/schemas/paginated_accounts'
'403':
description: >-
If the authenticated user does not have access to view the default
reviewers
content:
application/json:
schema:
$ref: '#/components/schemas/error'
security:
- oauth2:
- pullrequest
- basic: []
- api_key: []
x-atlassian-oauth2-scopes:
- state: Current
scheme: oauth2
scopes:
- read:pullrequest:bitbucket
operationId: atlassianListDefaultReviewers
parameters:
- name: repo_slug
in: path
description: |
This can either be the repository slug or the UUID of the repository,
surrounded by curly-braces, for example: `{repository UUID}`.
required: true
schema:
type: string
- name: workspace
in: path
description: |
This can either be the workspace ID (slug) or the workspace UUID
surrounded by curly-braces, for example: `{workspace UUID}`.
required: true
schema:
type: string
/repositories/{workspace}/{repo_slug}/default-reviewers/{target_username}:
delete:
tags:
- Pullrequests
description: Removes a default reviewer from the repository.
summary: Atlassian Remove A User From The Default Reviewers
responses:
'204':
description: The specified user successfully removed from the default reviewers
'403':
description: >-
If the authenticated user does not have access modify the default
reviewers
content:
application/json:
schema:
$ref: '#/components/schemas/error'
'404':
description: If the specified user does not exist
content:
application/json:
schema:
$ref: '#/components/schemas/error'
security:
- oauth2:
- repository:admin
- basic: []
- api_key: []
x-atlassian-oauth2-scopes:
- state: Current
scheme: oauth2
scopes:
- admin:repository:bitbucket
operationId: atlassianRemoveAUserFromTheDefaultReviewers
get:
tags:
- Pullrequests
description: >-
Returns the specified reviewer.
This can be used to test whether
a user is among the repository's
default reviewers list. A 404
indicates that that specified user is not
a default reviewer.
summary: Atlassian Get A Default Reviewer
responses:
'200':
description: The specified user is a default reviewer
content:
application/json:
schema:
$ref: '#/components/schemas/account'
'403':
description: >-
If the authenticated user does not have access to check if the
specified user is a default reviewer
content:
application/json:
schema:
$ref: '#/components/schemas/error'
'404':
description: If the specified user does not exist or is not a default reviewer
content:
application/json:
schema:
$ref: '#/components/schemas/error'
security:
- oauth2:
- pullrequest
- basic: []
- api_key: []
x-atlassian-oauth2-scopes:
- state: Current
scheme: oauth2
scopes:
- read:pullrequest:bitbucket
operationId: atlassianGetADefaultReviewer
put:
tags:
- Pullrequests
description: >-
Adds the specified user to the repository's list of
default
reviewers.
This method is idempotent. Adding a user a
second time has no effect.
summary: Atlassian Add A User To The Default Reviewers
responses:
'200':
description: The specified user was successfully added to the default reviewers
content:
application/json:
schema:
$ref: '#/components/schemas/account'
'400':
description: >-
If the authenticated user tried to add a team, bot user, or user
without access to the repository to the default reviewers
content:
application/json:
schema:
$ref: '#/components/schemas/error'
'403':
description: >-
If the authenticated user does not have permission to modify the
default reviewers
content:
application/json:
schema:
$ref: '#/components/schemas/error'
'404':
description: If the specified user does not exist
content:
application/json:
schema:
$ref: '#/components/schemas/error'
security:
- oauth2:
- repository:admin
- basic: []
- api_key: []
x-atlassian-oauth2-scopes:
- state: Current
scheme: oauth2
scopes:
- admin:repository:bitbucket
operationId: atlassianAddAUserToTheDefaultReviewers
parameters:
- name: repo_slug
in: path
description: |
This can either be the repository slug or the UUID of the repository,
surrounded by curly-braces, for example: `{repository UUID}`.
required: true
schema:
type: string
- name: target_username
in: path
description: |
This can either be the username or the UUID of the default reviewer,
surrounded by curly-braces, for example: `{account UUID}`.
required: true
schema:
type: string
- name: workspace
in: path
description: |
This can either be the workspace ID (slug) or the workspace UUID
surrounded by curly-braces, for example: `{workspace UUID}`.
required: true
schema:
type: string
/repositories/{workspace}/{repo_slug}/deploy-keys:
get:
tags:
- Deployments
description: Returns all deploy-keys belonging to a repository.
summary: Atlassian List Repository Deploy Keys
responses:
'200':
description: Deploy keys matching the repository
content:
application/json:
schema:
$ref: '#/components/schemas/paginated_deploy_keys'
examples:
response:
value:
pagelen: 10
values:
- id: 123
key: >-
ssh-rsa
AAAAB3NzaC1yc2EAAAADAQABAAABAQDAK/b1cHHDr/TEV1JGQl+WjCwStKG6Bhrv0rFpEsYlyTBm1fzN0VOJJYn4ZOPCPJwqse6fGbXntEs+BbXiptR+++HycVgl65TMR0b5ul5AgwrVdZdT7qjCOCgaSV74/9xlHDK8oqgGnfA7ZoBBU+qpVyaloSjBdJfLtPY/xqj4yHnXKYzrtn/uFc4Kp9Tb7PUg9Io3qohSTGJGVHnsVblq/rToJG7L5xIo0OxK0SJSQ5vuId93ZuFZrCNMXj8JDHZeSEtjJzpRCBEXHxpOPhAcbm4MzULgkFHhAVgp4JbkrT99/wpvZ7r9AdkTg7HGqL3rlaDrEcWfL7Lu6TnhBdq5
label: mykey
type: deploy_key
created_on: '2018-08-15T23:50:59.993890+00:00'
repository:
full_name: mleu/test
name: test
type: repository
uuid: '{85d08b4e-571d-44e9-a507-fa476535aa98}'
links:
self:
href: >-
https://api.bitbucket.org/2.0/repositories/mleu/test/deploy-keys/123
last_used:
comment: mleu@C02W454JHTD8
page: 1
size: 1
'403':
description: >-
If the specified user or repository is not accessible to the current
user
'404':
description: If the specified user or repository does not exist
content:
application/json:
schema:
$ref: '#/components/schemas/error'
security:
- oauth2:
- repository
- repository:admin
- basic: []
- api_key: []
operationId: atlassianListRepositoryDeployKeys
post:
tags:
- Deployments
description: >-
Create a new deploy key in a repository. Note: If authenticating a
deploy key
with an OAuth consumer, any changes to the OAuth consumer
will subsequently
invalidate the deploy
key.
Example:
```
$ curl -X POST \
-H "Authorization
" \
-H "Content-type: application/json"
\
https://api.bitbucket.org/2.0/repositories/mleu/test/deploy-keys -d
\
'{
"key": "ssh-rsa
AAAAB3NzaC1yc2EAAAADAQABAAABAQDAK/b1cHHDr/TEV1JGQl+WjCwStKG6Bhrv0rFpEsYlyTBm1fzN0VOJJYn4ZOPCPJwqse6fGbXntEs+BbXiptR+++HycVgl65TMR0b5ul5AgwrVdZdT7qjCOCgaSV74/9xlHDK8oqgGnfA7ZoBBU+qpVyaloSjBdJfLtPY/xqj4yHnXKYzrtn/uFc4Kp9Tb7PUg9Io3qohSTGJGVHnsVblq/rToJG7L5xIo0OxK0SJSQ5vuId93ZuFZrCNMXj8JDHZeSEtjJzpRCBEXHxpOPhAcbm4MzULgkFHhAVgp4JbkrT99/wpvZ7r9AdkTg7HGqL3rlaDrEcWfL7Lu6TnhBdq5
mleu@C02W454JHTD8",
"label": "mydeploykey"
}'
```
summary: Atlassian Add A Repository Deploy Key
responses:
'200':
description: The deploy key that was created
content:
application/json:
schema:
$ref: '#/components/schemas/deploy_key'
examples:
response:
value:
id: 123
key: >-
ssh-rsa
AAAAB3NzaC1yc2EAAAADAQABAAABAQDAK/b1cHHDr/TEV1JGQl+WjCwStKG6Bhrv0rFpEsYlyTBm1fzN0VOJJYn4ZOPCPJwqse6fGbXntEs+BbXiptR+++HycVgl65TMR0b5ul5AgwrVdZdT7qjCOCgaSV74/9xlHDK8oqgGnfA7ZoBBU+qpVyaloSjBdJfLtPY/xqj4yHnXKYzrtn/uFc4Kp9Tb7PUg9Io3qohSTGJGVHnsVblq/rToJG7L5xIo0OxK0SJSQ5vuId93ZuFZrCNMXj8JDHZeSEtjJzpRCBEXHxpOPhAcbm4MzULgkFHhAVgp4JbkrT99/wpvZ7r9AdkTg7HGqL3rlaDrEcWfL7Lu6TnhBdq5
label: mydeploykey
type: deploy_key
created_on: '2018-08-15T23:50:59.993890+00:00'
repository:
full_name: mleu/test
name: test
type: repository
uuid: '{85d08b4e-571d-44e9-a507-fa476535aa98}'
links:
self:
href: >-
https://api.bitbucket.org/2.0/repositories/mleu/test/deploy-keys/123
last_used:
comment: mleu@C02W454JHTD8
'400':
description: Invalid deploy key inputs
'403':
description: >-
If the specified user or repository is not accessible to the current
user
'404':
description: If the specified user or repository does not exist
content:
application/json:
schema:
$ref: '#/components/schemas/error'
security:
- oauth2:
- repository
- repository:admin
- basic: []
- api_key: []
operationId: atlassianAddARepositoryDeployKey
parameters:
- name: repo_slug
in: path
description: |
This can either be the repository slug or the UUID of the repository,
surrounded by curly-braces, for example: `{repository UUID}`.
required: true
schema:
type: string
- name: workspace
in: path
description: |
This can either be the workspace ID (slug) or the workspace UUID
surrounded by curly-braces, for example: `{workspace UUID}`.
required: true
schema:
type: string
/repositories/{workspace}/{repo_slug}/deploy-keys/{key_id}:
delete:
tags:
- Deployments
description: This deletes a deploy key from a repository.
summary: Atlassian Delete A Repository Deploy Key
responses:
'204':
description: The key has been deleted
'403':
description: >-
If the current user does not have permission to delete a key for the
specified user
'404':
description: If the specified user, repository, or deploy key does not exist
content:
application/json:
schema:
$ref: '#/components/schemas/error'
security:
- oauth2:
- repository
- repository:admin
- basic: []
- api_key: []
operationId: atlassianDeleteARepositoryDeployKey
get:
tags:
- Deployments
description: Returns the deploy key belonging to a specific key.
summary: Atlassian Get A Repository Deploy Key
responses:
'200':
description: Deploy key matching the key ID
content:
application/json:
schema:
$ref: '#/components/schemas/deploy_key'
examples:
response:
value:
comment: mleu@C02W454JHTD8
last_used:
links:
self:
href: >-
https://api.bitbucket.org/2.0/repositories/mleu/test/deploy-key/1234
repository:
full_name: mleu/test
name: test
type: repository
uuid: '{85d08b4e-571d-44e9-a507-fa476535aa98}'
label: mykey
created_on: '2018-08-15T23:50:59.993890+00:00'
key: >-
ssh-rsa
AAAAB3NzaC1yc2EAAAADAQABAAABAQDAK/b1cHHDr/TEV1JGQl+WjCwStKG6Bhrv0rFpEsYlyTBm1fzN0VOJJYn4ZOPCPJwqse6fGbXntEs+BbXiptR+++HycVgl65TMR0b5ul5AgwrVdZdT7qjCOCgaSV74/9xlHDK8oqgGnfA7ZoBBU+qpVyaloSjBdJfLtPY/xqj4yHnXKYzrtn/uFc4Kp9Tb7PUg9Io3qohSTGJGVHnsVblq/rToJG7L5xIo0OxK0SJSQ5vuId93ZuFZrCNMXj8JDHZeSEtjJzpRCBEXHxpOPhAcbm4MzULgkFHhAVgp4JbkrT99/wpvZ7r9AdkTg7HGqL3rlaDrEcWfL7Lu6TnhBdq5
id: 1234
type: deploy_key
'403':
description: >-
If the specified user or repository is not accessible to the current
user
'404':
description: If the specified user or repository does not exist
content:
application/json:
schema:
$ref: '#/components/schemas/error'
security:
- oauth2:
- repository
- repository:admin
- basic: []
- api_key: []
operationId: atlassianGetARepositoryDeployKey
put:
tags:
- Deployments
description: >-
Create a new deploy key in a repository.
The same key needs to be
passed in but the comment and label can
change.
Example:
```
$ curl -X PUT \
-H "Authorization "
\
-H "Content-type: application/json"
\
https://api.bitbucket.org/2.0/repositories/mleu/test/deploy-keys/1234
-d \
'{
"label": "newlabel",
"key": "ssh-rsa
AAAAB3NzaC1yc2EAAAADAQABAAABAQDAK/b1cHHDr/TEV1JGQl+WjCwStKG6Bhrv0rFpEsYlyTBm1fzN0VOJJYn4ZOPCPJwqse6fGbXntEs+BbXiptR+++HycVgl65TMR0b5ul5AgwrVdZdT7qjCOCgaSV74/9xlHDK8oqgGnfA7ZoBBU+qpVyaloSjBdJfLtPY/xqj4yHnXKYzrtn/uFc4Kp9Tb7PUg9Io3qohSTGJGVHnsVblq/rToJG7L5xIo0OxK0SJSQ5vuId93ZuFZrCNMXj8JDHZeSEtjJzpRCBEXHxpOPhAcbm4MzULgkFHhAVgp4JbkrT99/wpvZ7r9AdkTg7HGqL3rlaDrEcWfL7Lu6TnhBdq5
newcomment",
}'
```
summary: Atlassian Update A Repository Deploy Key
responses:
'200':
description: The newly updated deploy key.
content:
application/json:
schema:
$ref: '#/components/schemas/deploy_key'
examples:
response:
value:
comment: newcomment
last_used:
links:
self:
href: >-
https://api.bitbucket.org/2.0/repositories/mleu/test/deploy-keys/1234
repository:
full_name: mleu/test
name: test
type: repository
uuid: '{85d08b4e-571d-44e9-a507-fa476535aa98}'
label: newlabel
created_on: '2018-08-15T23:50:59.993890+00:00'
key: >-
ssh-rsa
AAAAB3NzaC1yc2EAAAADAQABAAABAQDAK/b1cHHDr/TEV1JGQl+WjCwStKG6Bhrv0rFpEsYlyTBm1fzN0VOJJYn4ZOPCPJwqse6fGbXntEs+BbXiptR+++HycVgl65TMR0b5ul5AgwrVdZdT7qjCOCgaSV74/9xlHDK8oqgGnfA7ZoBBU+qpVyaloSjBdJfLtPY/xqj4yHnXKYzrtn/uFc4Kp9Tb7PUg9Io3qohSTGJGVHnsVblq/rToJG7L5xIo0OxK0SJSQ5vuId93ZuFZrCNMXj8JDHZeSEtjJzpRCBEXHxpOPhAcbm4MzULgkFHhAVgp4JbkrT99/wpvZ7r9AdkTg7HGqL3rlaDrEcWfL7Lu6TnhBdq5
id: 1234
type: deploy_key
'400':
description: If the submitted key or related value is invalid
content:
application/json:
schema:
$ref: '#/components/schemas/error'
'403':
description: >-
If the current user does not have permission to add a key for the
specified user
'404':
description: If the specified user, repository, or deploy key does not exist
content:
application/json:
schema:
$ref: '#/components/schemas/error'
security:
- oauth2:
- repository
- repository:admin
- basic: []
- api_key: []
operationId: atlassianUpdateARepositoryDeployKey
parameters:
- name: key_id
in: path
description: The key ID matching the deploy key.
required: true
schema:
type: string
- name: repo_slug
in: path
description: |
This can either be the repository slug or the UUID of the repository,
surrounded by curly-braces, for example: `{repository UUID}`.
required: true
schema:
type: string
- name: workspace
in: path
description: |
This can either be the workspace ID (slug) or the workspace UUID
surrounded by curly-braces, for example: `{workspace UUID}`.
required: true
schema:
type: string
/repositories/{workspace}/{repo_slug}/deployments:
get:
tags:
- Deployments
description: Find deployments
summary: Atlassian List Deployments
operationId: atlassianGetdeploymentsforrepository
parameters:
- name: workspace
description: >-
This can either be the workspace ID (slug) or the workspace UUID
surrounded by curly-braces, for example `{workspace UUID}`.
required: true
in: path
schema:
type: string
- name: repo_slug
description: The repository.
required: true
in: path
schema:
type: string
responses:
'200':
description: The matching deployments.
content:
application/json:
schema:
$ref: '#/components/schemas/paginated_deployments'
security:
- oauth2:
- pipeline
- basic: []
- api_key: []
/repositories/{workspace}/{repo_slug}/deployments/{deployment_uuid}:
get:
tags:
- Deployments
description: Retrieve a deployment
summary: Atlassian Get A Deployment
operationId: atlassianGetdeploymentforrepository
parameters:
- name: workspace
description: >-
This can either be the workspace ID (slug) or the workspace UUID
surrounded by curly-braces, for example `{workspace UUID}`.
required: true
in: path
schema:
type: string
- name: repo_slug
description: The repository.
required: true
in: path
schema:
type: string
- name: deployment_uuid
description: The deployment UUID.
required: true
in: path
schema:
type: string
responses:
'200':
description: The deployment.
content:
application/json:
schema:
$ref: '#/components/schemas/deployment'
'404':
description: No account, repository or deployment with the UUID provided exists.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
security:
- oauth2:
- pipeline
- basic: []
- api_key: []
/repositories/{workspace}/{repo_slug}/deployments_config/environments/{environment_uuid}/variables:
get:
tags:
- Pipelines
description: Find deployment environment level variables.
summary: Atlassian List Variables For An Environment
operationId: atlassianGetdeploymentvariables
parameters:
- name: workspace
description: >-
This can either be the workspace ID (slug) or the workspace UUID
surrounded by curly-braces, for example `{workspace UUID}`.
required: true
in: path
schema:
type: string
- name: repo_slug
description: The repository.
required: true
in: path
schema:
type: string
- name: environment_uuid
description: The environment.
required: true
in: path
schema:
type: string
responses:
'200':
description: The retrieved deployment variables.
content:
application/json:
schema:
$ref: '#/components/schemas/paginated_deployment_variable'
security:
- oauth2:
- pipeline
- basic: []
- api_key: []
post:
tags:
- Pipelines
description: Create a deployment environment level variable.
summary: Atlassian Create A Variable For An Environment
operationId: atlassianCreatedeploymentvariable
parameters:
- name: workspace
description: >-
This can either be the workspace ID (slug) or the workspace UUID
surrounded by curly-braces, for example `{workspace UUID}`.
required: true
in: path
schema:
type: string
- name: repo_slug
description: The repository.
required: true
in: path
schema:
type: string
- name: environment_uuid
description: The environment.
required: true
in: path
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/deployment_variable'
description: The variable to create
required: true
responses:
'201':
description: The variable was created.
headers:
Location:
description: The URL of the newly created variable.
schema:
type: string
content:
application/json:
schema:
$ref: '#/components/schemas/deployment_variable'
'404':
description: >-
The account, repository, environment or variable with the given UUID
was not found.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
'409':
description: A variable with the provided key already exists.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
security:
- oauth2:
- pipeline:variable
- basic: []
- api_key: []
/repositories/{workspace}/{repo_slug}/deployments_config/environments/{environment_uuid}/variables/{variable_uuid}:
put:
tags:
- Pipelines
description: Update a deployment environment level variable.
summary: Atlassian Update A Variable For An Environment
operationId: atlassianUpdatedeploymentvariable
parameters:
- name: workspace
description: >-
This can either be the workspace ID (slug) or the workspace UUID
surrounded by curly-braces, for example `{workspace UUID}`.
required: true
in: path
schema:
type: string
- name: repo_slug
description: The repository.
required: true
in: path
schema:
type: string
- name: environment_uuid
description: The environment.
required: true
in: path
schema:
type: string
- name: variable_uuid
description: The UUID of the variable to update.
required: true
in: path
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/deployment_variable'
description: The updated deployment variable.
required: true
responses:
'200':
description: The deployment variable was updated.
content:
application/json:
schema:
$ref: '#/components/schemas/deployment_variable'
'404':
description: >-
The account, repository, environment or variable with the given UUID
was not found.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
security:
- oauth2:
- pipeline:variable
- basic: []
- api_key: []
delete:
tags:
- Pipelines
description: Delete a deployment environment level variable.
summary: Atlassian Delete A Variable For An Environment
operationId: atlassianDeletedeploymentvariable
parameters:
- name: workspace
description: >-
This can either be the workspace ID (slug) or the workspace UUID
surrounded by curly-braces, for example `{workspace UUID}`.
required: true
in: path
schema:
type: string
- name: repo_slug
description: The repository.
required: true
in: path
schema:
type: string
- name: environment_uuid
description: The environment.
required: true
in: path
schema:
type: string
- name: variable_uuid
description: The UUID of the variable to delete.
required: true
in: path
schema:
type: string
responses:
'204':
description: The variable was deleted.
'404':
description: >-
The account, repository, environment or variable with given UUID was
not found.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
security:
- oauth2:
- pipeline:variable
- basic: []
- api_key: []
/repositories/{workspace}/{repo_slug}/diff/{spec}:
get:
tags:
- Commits
description: >-
Produces a raw git-style diff.
#### Single commit spec
If
the `spec` argument to this API is a single commit, the diff
is
produced against the first parent of the specified
commit.
#### Two commit spec
Two commits separated by `..`
may be provided as the `spec`, e.g.,
`3a8b42..9ff173`. When two
commits are provided and the `topic` query
parameter is true, this
API produces a 2-way three dot diff.
This is the diff between source
commit and the merge base of the source
commit and the destination
commit. When the `topic` query param is false,
a simple git-style
diff is produced.
The two commits are interpreted as
follows:
* First commit: the commit containing the changes we
wish to preview
* Second commit: the commit representing the state to
which we want to
compare the first commit
* **Note**: This is
the opposite of the order used in `git diff`.
#### Comparison to
patches
While similar to patches, diffs:
* Don't have a
commit header (username, commit message, etc)
* Support the optional
`path=foo/bar.py` query param to filter
the diff to just that one
file diff
#### Response
The raw diff is returned as-is, in
whatever encoding the files in the
repository use. It is not decoded
into unicode. As such, the
content-type is `text/plain`.
summary: Atlassian Compare Two Commits
responses:
'200':
description: The raw diff
'555':
description: |-
If the diff was too large and timed out.
Since this endpoint does not employ any form of pagination, but
instead returns the diff as a single document, it can run into
trouble on very large diffs. If Bitbucket times out in cases
like these, a 555 status code is returned.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
parameters:
- name: context
in: query
description: Generate diffs with lines of context instead of the usual three.
required: false
schema:
type: integer
- name: path
in: query
description: |-
Limit the diff to a particular file (this parameter
can be repeated for multiple paths).
required: false
schema:
type: string
- name: ignore_whitespace
in: query
description: Generate diffs that ignore whitespace.
required: false
schema:
type: boolean
- name: binary
in: query
description: Generate diffs that include binary files, true if omitted.
required: false
schema:
type: boolean
- name: renames
in: query
description: Whether to perform rename detection, true if omitted.
required: false
schema:
type: boolean
- name: merge
in: query
description: |-
This parameter is deprecated. The 'topic' parameter should be used
instead. The 'merge' and 'topic' parameters cannot be both used at
the same time.
If true, the source commit is merged into the
destination commit, and then a diff from the
destination to the merge result is returned. If false,
a simple 'two dot' diff between the source and
destination is returned. True if omitted.
required: false
schema:
type: boolean
- name: topic
in: query
description: |-
If true, returns 2-way 'three-dot' diff.
This is a diff between the source commit and the merge base
of the source commit and the destination commit.
If false, a simple 'two dot' diff between the source and
destination is returned.
required: false
schema:
type: boolean
security:
- oauth2:
- repository
- basic: []
- api_key: []
x-atlassian-oauth2-scopes:
- state: Current
scheme: oauth2
scopes:
- read:repository:bitbucket
operationId: atlassianCompareTwoCommits
parameters:
- name: repo_slug
in: path
description: |
This can either be the repository slug or the UUID of the repository,
surrounded by curly-braces, for example: `{repository UUID}`.
required: true
schema:
type: string
- name: spec
in: path
description: |
A commit SHA (e.g. `3a8b42`) or a commit range using double dot
notation (e.g. `3a8b42..9ff173`).
required: true
schema:
type: string
- name: workspace
in: path
description: |
This can either be the workspace ID (slug) or the workspace UUID
surrounded by curly-braces, for example: `{workspace UUID}`.
required: true
schema:
type: string
/repositories/{workspace}/{repo_slug}/diffstat/{spec}:
get:
tags:
- Commits
description: >-
Produces a response in JSON format with a record for every
path
modified, including information on the type of the change and
the
number of lines added and removed.
#### Single commit
spec
If the `spec` argument to this API is a single commit, the
diff is
produced against the first parent of the specified
commit.
#### Two commit spec
Two commits separated by `..`
may be provided as the `spec`, e.g.,
`3a8b42..9ff173`. When two
commits are provided and the `topic` query
parameter is true, this
API produces a 2-way three dot diff.
This is the diff between source
commit and the merge base of the source
commit and the destination
commit. When the `topic` query param is false,
a simple git-style
diff is produced.
The two commits are interpreted as
follows:
* First commit: the commit containing the changes we
wish to preview
* Second commit: the commit representing the state to
which we want to
compare the first commit
* **Note**: This is
the opposite of the order used in `git diff`.
summary: Atlassian Compare Two Commit Diff Stats
responses:
'200':
description: The diff stats
content:
application/json:
schema:
$ref: '#/components/schemas/paginated_diffstats'
examples:
response:
value:
pagelen: 500
values:
- type: diffstat
status: modified
lines_removed: 1
lines_added: 2
old:
path: setup.py
escaped_path: setup.py
type: commit_file
links:
self:
href: >-
https://api.bitbucket.org/2.0/repositories/bitbucket/geordi/src/e1749643d655d7c7014001a6c0f58abaf42ad850/setup.py
new:
path: setup.py
escaped_path: setup.py
type: commit_file
links:
self:
href: >-
https://api.bitbucket.org/2.0/repositories/bitbucket/geordi/src/d222fa235229c55dad20b190b0b571adf737d5a6/setup.py
page: 1
size: 1
'555':
description: If generating the diffstat timed out.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
security:
- oauth2:
- repository
- basic: []
- api_key: []
x-atlassian-oauth2-scopes:
- state: Current
scheme: oauth2
scopes:
- read:repository:bitbucket
operationId: atlassianCompareTwoCommitDiffStats
parameters:
- name: ignore_whitespace
in: query
description: Generate diffs that ignore whitespace
required: false
schema:
type: boolean
- name: merge
in: query
description: |-
This parameter is deprecated. The 'topic' parameter should be used
instead. The 'merge' and 'topic' parameters cannot be both used at
the same time.
If true, the source commit is merged into the
destination commit, and then a diffstat from the
destination to the merge result is returned. If false,
a simple 'two dot' diffstat between the source and
destination is returned. True if omitted.
required: false
schema:
type: boolean
- name: path
in: query
description: |-
Limit the diffstat to a particular file (this parameter
can be repeated for multiple paths).
required: false
schema:
type: string
- name: renames
in: query
description: Whether to perform rename detection, true if omitted.
required: false
schema:
type: boolean
- name: repo_slug
in: path
description: |
This can either be the repository slug or the UUID of the repository,
surrounded by curly-braces, for example: `{repository UUID}`.
required: true
schema:
type: string
- name: spec
in: path
description: |
A commit SHA (e.g. `3a8b42`) or a commit range using double dot
notation (e.g. `3a8b42..9ff173`).
required: true
schema:
type: string
- name: topic
in: query
description: |-
If true, returns 2-way 'three-dot' diff.
This is a diff between the source commit and the merge base
of the source commit and the destination commit.
If false, a simple 'two dot' diff between the source and
destination is returned.
required: false
schema:
type: boolean
- name: workspace
in: path
description: |
This can either be the workspace ID (slug) or the workspace UUID
surrounded by curly-braces, for example: `{workspace UUID}`.
required: true
schema:
type: string
/repositories/{workspace}/{repo_slug}/downloads:
get:
tags:
- Downloads
description: Returns a list of download links associated with the repository.
summary: Atlassian List Download Artifacts
responses:
'200':
description: >-
Returns a paginated list of the downloads associated with the
repository.
'403':
description: User is not authorized to read from the repository.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
security:
- oauth2:
- repository
- basic: []
- api_key: []
x-atlassian-oauth2-scopes:
- state: Current
scheme: oauth2
scopes:
- read:repository:bitbucket
operationId: atlassianListDownloadArtifacts
post:
tags:
- Downloads
description: >-
Upload new download artifacts.
To upload files, perform a
`multipart/form-data` POST containing one
or more `files`
fields:
$ echo Hello World > hello.txt
$ curl -s -u
evzijst -X POST
https://api.bitbucket.org/2.0/repositories/evzijst/git-tests/downloads
-F files=@hello.txt
When a file is uploaded with the same name as
an existing artifact,
then the existing file will be replaced.
summary: Atlassian Upload A Download Artifact
responses:
'201':
description: The artifact was uploaded sucessfully.
'400':
description: Bad Request.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
'403':
description: User is not authorized to write to the repository.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
'406':
description: Unsupported Content-Type. Use multiplart/form-data.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
security:
- oauth2:
- repository:write
- basic: []
- api_key: []
operationId: atlassianUploadADownloadArtifact
parameters:
- name: repo_slug
in: path
description: |
This can either be the repository slug or the UUID of the repository,
surrounded by curly-braces, for example: `{repository UUID}`.
required: true
schema:
type: string
- name: workspace
in: path
description: |
This can either be the workspace ID (slug) or the workspace UUID
surrounded by curly-braces, for example: `{workspace UUID}`.
required: true
schema:
type: string
/repositories/{workspace}/{repo_slug}/downloads/{filename}:
delete:
tags:
- Downloads
description: Deletes the specified download artifact from the repository.
summary: Atlassian Delete A Download Artifact
responses:
'204':
description: The specified download artifact was deleted.
'403':
description: User is not authorized to write to the repository.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
'404':
description: The specified download does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
security:
- oauth2:
- repository:write
- basic: []
- api_key: []
x-atlassian-oauth2-scopes:
- state: Current
scheme: oauth2
scopes:
- write:repository:bitbucket
operationId: atlassianDeleteADownloadArtifact
get:
tags:
- Downloads
description: >-
Return a redirect to the contents of a download artifact.
This
endpoint returns the actual file contents and not the
artifact's
metadata.
$ curl -s -L
https://api.bitbucket.org/2.0/repositories/evzijst/git-tests/downloads/hello.txt
Hello World
summary: Atlassian Get A Download Artifact Link
responses:
'302':
description: Redirects to the url of the specified download artifact.
'403':
description: User is not authorized to read from the repository.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
'404':
description: The specified download artifact does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
security:
- oauth2:
- repository
- basic: []
- api_key: []
operationId: atlassianGetADownloadArtifactLink
parameters:
- name: filename
in: path
description: Name of the file.
required: true
schema:
type: string
- name: repo_slug
in: path
description: |
This can either be the repository slug or the UUID of the repository,
surrounded by curly-braces, for example: `{repository UUID}`.
required: true
schema:
type: string
- name: workspace
in: path
description: |
This can either be the workspace ID (slug) or the workspace UUID
surrounded by curly-braces, for example: `{workspace UUID}`.
required: true
schema:
type: string
/repositories/{workspace}/{repo_slug}/effective-branching-model:
get:
tags:
- Branching Model
description: Needs a more full description created.
summary: >-
Atlassian Get The Effective, Or Currently Applied, Branching Model For A Repository
responses:
'200':
description: The effective branching model object
content:
application/json:
schema:
$ref: '#/components/schemas/effective_repo_branching_model'
'401':
description: If the request was not authenticated
content:
application/json:
schema:
$ref: '#/components/schemas/error'
'403':
description: >-
If the authenticated user does not have read access to the
repository
content:
application/json:
schema:
$ref: '#/components/schemas/error'
'404':
description: If the repository does not exist
content:
application/json:
schema:
$ref: '#/components/schemas/error'
security:
- oauth2:
- repository
- basic: []
- api_key: []
x-atlassian-oauth2-scopes:
- state: Current
scheme: oauth2
scopes:
- read:repository:bitbucket
operationId: atlassianGetTheEffective,OrCurrentlyApplied,BranchingModelForARepository
parameters:
- name: repo_slug
in: path
description: |
This can either be the repository slug or the UUID of the repository,
surrounded by curly-braces, for example: `{repository UUID}`.
required: true
schema:
type: string
- name: workspace
in: path
description: |
This can either be the workspace ID (slug) or the workspace UUID
surrounded by curly-braces, for example: `{workspace UUID}`.
required: true
schema:
type: string
/repositories/{workspace}/{repo_slug}/effective-default-reviewers:
get:
tags:
- Pullrequests
description: >-
Returns the repository's effective default reviewers. This includes both
default
reviewers defined at the repository level as well as those
inherited from its project.
These are the users that are
automatically added as reviewers on every
new pull request that is
created.
summary: Atlassian List Effective Default Reviewers
responses:
'200':
description: The paginated list of effective default reviewers
content:
application/json:
schema:
$ref: '#/components/schemas/paginated_default_reviewer_and_type'
examples:
response:
value:
pagelen: 20
values:
- user:
display_name: Patrick Wolf
uuid: '{9565301a-a3cf-4b5d-88f4-dd6af8078d7e}'
reviewer_type: project
type: default_reviewer
- user:
display_name: Davis Lee
uuid: '{f0e0e8e9-66c1-4b85-a784-44a9eb9ef1a6}'
reviewer_type: repository
type: default_reviewer
page: 1
size: 2
'403':
description: >-
If the authenticated user does not have access to view the default
reviewers
content:
application/json:
schema:
$ref: '#/components/schemas/error'
security:
- oauth2:
- pullrequest
- basic: []
- api_key: []
x-atlassian-oauth2-scopes:
- state: Current
scheme: oauth2
scopes:
- read:pullrequest:bitbucket
operationId: atlassianListEffectiveDefaultReviewers
parameters:
- name: repo_slug
in: path
description: |
This can either be the repository slug or the UUID of the repository,
surrounded by curly-braces, for example: `{repository UUID}`.
required: true
schema:
type: string
- name: workspace
in: path
description: |
This can either be the workspace ID (slug) or the workspace UUID
surrounded by curly-braces, for example: `{workspace UUID}`.
required: true
schema:
type: string
/repositories/{workspace}/{repo_slug}/environments:
get:
tags:
- Deployments
description: Find environments
summary: Atlassian List Environments
operationId: atlassianGetenvironmentsforrepository
parameters:
- name: workspace
description: >-
This can either be the workspace ID (slug) or the workspace UUID
surrounded by curly-braces, for example `{workspace UUID}`.
required: true
in: path
schema:
type: string
- name: repo_slug
description: The repository.
required: true
in: path
schema:
type: string
responses:
'200':
description: The matching environments.
content:
application/json:
schema:
$ref: '#/components/schemas/paginated_environments'
security:
- oauth2:
- pipeline
- basic: []
- api_key: []
post:
tags:
- Deployments
description: Create an environment.
summary: Atlassian Create An Environment
operationId: atlassianCreateenvironment
parameters:
- name: workspace
description: >-
This can either be the workspace ID (slug) or the workspace UUID
surrounded by curly-braces, for example `{workspace UUID}`.
required: true
in: path
schema:
type: string
- name: repo_slug
description: The repository.
required: true
in: path
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/deployment_environment'
description: The environment to create.
required: true
responses:
'201':
description: The environment was created.
headers:
Location:
description: The URL of the newly created environment.
schema:
type: string
content:
application/json:
schema:
$ref: '#/components/schemas/deployment_environment'
'404':
description: The account or repository does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
'409':
description: An environment host with the provided name already exists.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
security:
- oauth2:
- pipeline
- basic: []
- api_key: []
/repositories/{workspace}/{repo_slug}/environments/{environment_uuid}:
get:
tags:
- Deployments
summary: Atlassian Get An Environment
description: Retrieve an environment
operationId: atlassianGetenvironmentforrepository
parameters:
- name: workspace
description: >-
This can either be the workspace ID (slug) or the workspace UUID
surrounded by curly-braces, for example `{workspace UUID}`.
required: true
in: path
schema:
type: string
- name: repo_slug
description: The repository.
required: true
in: path
schema:
type: string
- name: environment_uuid
description: The environment UUID.
required: true
in: path
schema:
type: string
responses:
'200':
description: The environment.
content:
application/json:
schema:
$ref: '#/components/schemas/deployment_environment'
'404':
description: No account, repository or environment with the UUID provided exists.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
security:
- oauth2:
- pipeline
- basic: []
- api_key: []
delete:
tags:
- Deployments
description: Delete an environment
summary: Atlassian Delete An Environment
operationId: atlassianDeleteenvironmentforrepository
parameters:
- name: workspace
description: >-
This can either be the workspace ID (slug) or the workspace UUID
surrounded by curly-braces, for example `{workspace UUID}`.
required: true
in: path
schema:
type: string
- name: repo_slug
description: The repository.
required: true
in: path
schema:
type: string
- name: environment_uuid
description: The environment UUID.
required: true
in: path
schema:
type: string
responses:
'204':
description: The environment was deleted.
'404':
description: No account or repository with the UUID provided exists.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
security:
- oauth2:
- pipeline
- basic: []
- api_key: []
/repositories/{workspace}/{repo_slug}/environments/{environment_uuid}/changes:
post:
tags:
- Deployments
description: Update an environment
summary: Atlassian Update An Environment
operationId: atlassianUpdateenvironmentforrepository
parameters:
- name: workspace
description: >-
This can either be the workspace ID (slug) or the workspace UUID
surrounded by curly-braces, for example `{workspace UUID}`.
required: true
in: path
schema:
type: string
- name: repo_slug
description: The repository.
required: true
in: path
schema:
type: string
- name: environment_uuid
description: The environment UUID.
required: true
in: path
schema:
type: string
responses:
'202':
description: The environment update request was accepted.
'404':
description: No account, repository or environment with the UUID provided exists.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
security:
- oauth2:
- pipeline
- basic: []
- api_key: []
/repositories/{workspace}/{repo_slug}/filehistory/{commit}/{path}:
get:
tags:
- Source - Repositories
description: >-
Returns a paginated list of commits that modified the specified
file.
Commits are returned in reverse chronological order. This
is roughly
equivalent to the following commands:
$ git log
--follow --date-order
By default, Bitbucket will follow renames
and the path name in the
returned entries reflects that. This can be
turned off using the
`?renames=false` query parameter.
Results
are returned in descending chronological order by default, and
like
most endpoints you can
[filter and
sort](/cloud/bitbucket/rest/intro/#filtering) the response to
only
provide exactly the data you want.
The example response returns
commits made before 2011-05-18 against a file
named `README.rst`. The
results are filtered to only return the path and
date. This request
can be made using:
```
$ curl
'https://api.bitbucket.org/2.0/repositories/evzijst/dogslow/filehistory/master/README.rst'\
'?fields=values.next,values.path,values.commit.date&q=commit.date
summary: Atlassian List Commits That Modified A File
responses:
'200':
description: A paginated list of commits that modified the specified file
content:
application/json:
schema:
$ref: '#/components/schemas/paginated_files'
examples:
response:
value:
values:
- commit:
date: '2011-05-17T07:32:09+00:00'
path: README.rst
- commit:
date: '2011-05-16T06:33:28+00:00'
path: README.txt
- commit:
date: '2011-05-16T06:15:39+00:00'
path: README.txt
'404':
description: If the repository does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
parameters:
- name: renames
in: query
description: |2-
When `true`, Bitbucket will follow the history of the file across
renames (this is the default behavior). This can be turned off by
specifying `false`.
required: false
schema:
type: string
- name: q
in: query
description: |2-
Query string to narrow down the response as per
[filtering and sorting](/cloud/bitbucket/rest/intro/#filtering).
required: false
schema:
type: string
- name: sort
in: query
description: >2
Name of a response property sort the result by as per
[filtering and
sorting](/cloud/bitbucket/rest/intro/#sorting-query-results).
required: false
schema:
type: string
security:
- oauth2:
- repository
- basic: []
- api_key: []
x-atlassian-oauth2-scopes:
- state: Current
scheme: oauth2
scopes:
- read:repository:bitbucket
operationId: atlassianListCommitsThatModifiedAFile
parameters:
- name: commit
in: path
description: The commit's SHA1.
required: true
schema:
type: string
- name: path
in: path
description: Path to the file.
required: true
schema:
type: string
- name: repo_slug
in: path
description: |
This can either be the repository slug or the UUID of the repository,
surrounded by curly-braces, for example: `{repository UUID}`.
required: true
schema:
type: string
- name: workspace
in: path
description: |
This can either be the workspace ID (slug) or the workspace UUID
surrounded by curly-braces, for example: `{workspace UUID}`.
required: true
schema:
type: string
/repositories/{workspace}/{repo_slug}/forks:
get:
tags:
- Repositories
description: >-
Returns a paginated list of all the forks of the
specified
repository.
summary: Atlassian List Repository Forks
responses:
'200':
description: All forks.
content:
application/json:
schema:
$ref: '#/components/schemas/paginated_repositories'
parameters:
- name: role
in: query
description: >
Filters the result based on the authenticated user's role on each
repository.
* **member**: returns repositories to which the user has explicit
read access
* **contributor**: returns repositories to which the user has
explicit write access
* **admin**: returns repositories to which the user has explicit
administrator access
* **owner**: returns all repositories owned by the current user
required: false
schema:
type: string
enum:
- admin
- contributor
- member
- owner
- name: q
in: query
description: >
Query string to narrow down the response as per [filtering and
sorting](/cloud/bitbucket/rest/intro/#filtering).
required: false
schema:
type: string
- name: sort
in: query
description: >
Field by which the results should be sorted as per [filtering and
sorting](/cloud/bitbucket/rest/intro/#filtering).
required: false
schema:
type: string
security:
- oauth2:
- repository
- basic: []
- api_key: []
x-atlassian-oauth2-scopes:
- state: Current
scheme: oauth2
scopes:
- read:repository:bitbucket
operationId: atlassianListRepositoryForks
post:
tags:
- Repositories
description: >-
Creates a new fork of the specified repository.
#### Forking a
repository
To create a fork, specify the workspace explicitly as
part of the
request body:
```
$ curl -X POST -u jdoe
https://api.bitbucket.org/2.0/repositories/atlassian/bbql/forks \
-H 'Content-Type: application/json' -d '{
"name":
"bbql_fork",
"workspace": {
"slug": "atlassian"
}
}'
```
To fork a repository into the same workspace, also
specify a new `name`.
When you specify a value for `name`, it
will also affect the `slug`.
The `slug` is reflected in the
repository URL of the new fork. It is
derived from `name` by
substituting non-ASCII characters, removes
whitespace, and changes
characters to lower case. For example,
`My repo` would turn into
`my_repo`.
You need contributor access to create new forks within
a workspace.
#### Change the properties of a new
fork
By default the fork inherits most of its properties from the
parent.
However, since the optional POST body document follows the
normal
`repository` JSON schema and you can override the new
fork's
properties.
Properties that can be overridden
include:
* description
* fork_policy
* language
*
mainbranch
* is_private (note that a private repo's fork_policy might
prohibit
the creation of public forks, in which `is_private=False`
would fail)
* has_issues (to initialize or disable the new repo's
issue tracker --
note that the actual contents of the parent
repository's issue
tracker are not copied during forking)
*
has_wiki (to initialize or disable the new repo's wiki --
note that
the actual contents of the parent repository's wiki are not
copied
during forking)
* project (when forking into a private project, the
fork's `is_private`
must be `true`)
Properties that cannot
be modified include:
* scm
* parent
* full_name
summary: Atlassian Fork A Repository
responses:
'201':
description: The newly created fork.
headers:
Location:
description: The URL of the newly created fork
schema:
type: string
content:
application/json:
schema:
$ref: '#/components/schemas/repository'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/repository'
description: A repository object. This can be left blank.
security:
- oauth2:
- repository:write
- basic: []
- api_key: []
x-atlassian-oauth2-scopes:
- state: Current
scheme: oauth2
scopes:
- read:repository:bitbucket
- write:repository:bitbucket
operationId: atlassianForkARepository
parameters:
- name: repo_slug
in: path
description: |
This can either be the repository slug or the UUID of the repository,
surrounded by curly-braces, for example: `{repository UUID}`.
required: true
schema:
type: string
- name: workspace
in: path
description: |
This can either be the workspace ID (slug) or the workspace UUID
surrounded by curly-braces, for example: `{workspace UUID}`.
required: true
schema:
type: string
/repositories/{workspace}/{repo_slug}/hooks:
get:
tags:
- Repositories - Webhooks
description: Returns a paginated list of webhooks installed on this repository.
summary: Atlassian List Webhooks For A Repository
responses:
'200':
description: The paginated list of installed webhooks.
content:
application/json:
schema:
$ref: '#/components/schemas/paginated_webhook_subscriptions'
'403':
description: >-
If the authenticated user does not have permission to access the
webhooks.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
'404':
description: If the repository does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
security:
- oauth2:
- webhook
- basic: []
- api_key: []
operationId: atlassianListWebhooksForARepository
post:
tags:
- Repositories - Webhooks
description: >-
Creates a new webhook on the specified
repository.
Example:
```
$ curl -X POST -u credentials
-H 'Content-Type: application/json'
https://api.bitbucket.org/2.0/repositories/my-workspace/my-repo-slug/hooks
-d '
{
"description": "Webhook Description",
"url": "https://example.com/",
"active": true,
"secret": "this is a really bad secret",
"events": [
"repo:push",
"issue:created",
"issue:updated"
]
}'
```
When the `secret` is
provided it will be used as the key to generate a HMAC
digest value
sent in the `X-Hub-Signature` header at delivery time. Passing
a
`null` or empty `secret` or not passing a `secret` will leave the
webhook's
secret unset. Bitbucket only generates the
`X-Hub-Signature` when the webhook's
secret is set.
Note that
this call requires the webhook scope, as well as any scope
that
applies to the events that the webhook subscribes to. In the
example
above that means: `webhook`, `repository` and `issue`.
Also note
that the `url` must properly resolve and cannot be an
internal,
non-routed address.
summary: Atlassian Create A Webhook For A Repository
responses:
'201':
description: If the webhook was registered successfully.
headers:
Location:
description: The URL of new newly created webhook.
schema:
type: string
content:
application/json:
schema:
$ref: '#/components/schemas/webhook_subscription'
'403':
description: >-
If the authenticated user does not have permission to install
webhooks on the specified repository.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
'404':
description: If the repository does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
security:
- oauth2:
- webhook
- basic: []
- api_key: []
operationId: atlassianCreateAWebhookForARepository
parameters:
- name: repo_slug
in: path
description: |
This can either be the repository slug or the UUID of the repository,
surrounded by curly-braces, for example: `{repository UUID}`.
required: true
schema:
type: string
- name: workspace
in: path
description: |
This can either be the workspace ID (slug) or the workspace UUID
surrounded by curly-braces, for example: `{workspace UUID}`.
required: true
schema:
type: string
/repositories/{workspace}/{repo_slug}/hooks/{uid}:
delete:
tags:
- Repositories - Webhooks
description: Deletes the specified webhook subscription from the given
repository.
summary: Atlassian Delete A Webhook For A Repository
responses:
'204':
description: When the webhook was deleted successfully
'403':
description: >-
If the authenticated user does not have permission to delete the
webhook.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
'404':
description: If the webhook or repository does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
security:
- oauth2:
- webhook
- basic: []
- api_key: []
operationId: atlassianDeleteAWebhookForARepository
get:
tags:
- Repositories - Webhooks
description: >-
Returns the webhook with the specified id installed on the
specified
repository.
summary: Atlassian Get A Webhook For A Repository
responses:
'200':
description: The webhook subscription object.
content:
application/json:
schema:
$ref: '#/components/schemas/webhook_subscription'
'404':
description: If the webhook or repository does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
security:
- oauth2:
- webhook
- basic: []
- api_key: []
operationId: atlassianGetAWebhookForARepository
put:
tags:
- Repositories - Webhooks
description: >-
Updates the specified webhook subscription.
The following
properties can be mutated:
* `description`
* `url`
*
`secret`
* `active`
* `events`
The hook's secret is used as
a key to generate the HMAC hex digest sent in the
`X-Hub-Signature`
header at delivery time. This signature is only generated
when the
hook has a secret.
Set the hook's secret by passing the new value
in the `secret` field. Passing a
`null` value in the `secret` field
will remove the secret from the hook. The
hook's secret can be left
unchanged by not passing the `secret` field in the
request.
summary: Atlassian Update A Webhook For A Repository
responses:
'200':
description: The webhook subscription object.
content:
application/json:
schema:
$ref: '#/components/schemas/webhook_subscription'
'403':
description: >-
If the authenticated user does not have permission to update the
webhook.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
'404':
description: If the webhook or repository does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
security:
- oauth2:
- webhook
- basic: []
- api_key: []
operationId: atlassianUpdateAWebhookForARepository
parameters:
- name: repo_slug
in: path
description: |
This can either be the repository slug or the UUID of the repository,
surrounded by curly-braces, for example: `{repository UUID}`.
required: true
schema:
type: string
- name: uid
in: path
description: Installed webhook's ID
required: true
schema:
type: string
- name: workspace
in: path
description: |
This can either be the workspace ID (slug) or the workspace UUID
surrounded by curly-braces, for example: `{workspace UUID}`.
required: true
schema:
type: string
/repositories/{workspace}/{repo_slug}/issues:
get:
tags:
- Issue Tracker
description: Returns the issues in the issue tracker.
summary: Atlassian List Issues
responses:
'200':
description: >-
A paginated list of the issues matching any filter criteria that
were provided.
content:
application/json:
schema:
$ref: '#/components/schemas/paginated_issues'
'404':
description: >-
The specified repository does not exist or does not have the issue
tracker enabled.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
security:
- oauth2:
- issue
- basic: []
- api_key: []
operationId: atlassianListIssues
post:
tags:
- Issue Tracker
description: >-
Creates a new issue.
This call requires authentication. Private
repositories or private
issue trackers require the caller to
authenticate with an account that
has appropriate
authorization.
The authenticated user is used for the issue's
`reporter` field.
summary: Atlassian Create An Issue
responses:
'201':
description: The newly created issue.
headers:
Location:
description: The (absolute) URL of the newly created issue.
schema:
type: string
content:
application/json:
schema:
$ref: '#/components/schemas/issue'
'401':
description: When the request wasn't authenticated.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
'403':
description: When the authenticated user isn't authorized to create the issue.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
'404':
description: >-
The specified repository does not exist or does not have the issue
tracker enabled.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/issue'
description: >-
The new issue. The only required element is `title`. All other
elements can be omitted from the body.
required: true
security:
- oauth2:
- issue:write
- basic: []
- api_key: []
operationId: atlassianCreateAnIssue
parameters:
- name: repo_slug
in: path
description: |
This can either be the repository slug or the UUID of the repository,
surrounded by curly-braces, for example: `{repository UUID}`.
required: true
schema:
type: string
- name: workspace
in: path
description: |
This can either be the workspace ID (slug) or the workspace UUID
surrounded by curly-braces, for example: `{workspace UUID}`.
required: true
schema:
type: string
/repositories/{workspace}/{repo_slug}/issues/export:
post:
tags:
- Issue Tracker
description: >-
A POST request to this endpoint initiates a new background celery task
that archives the repo's issues.
When the job has been accepted,
it will return a 202 (Accepted) along with a unique url to this job in
the
'Location' response header. This url is the endpoint for where
the user can obtain their zip files."
summary: Atlassian Export Issues
responses:
'202':
description: The export job has been accepted
'401':
description: The request wasn't authenticated properly
content:
application/json:
schema:
$ref: '#/components/schemas/error'
'403':
description: >-
When the authenticated user does not have admin permission on the
repo
content:
application/json:
schema:
$ref: '#/components/schemas/error'
'404':
description: The repo does not exist or does not have an issue tracker
content:
application/json:
schema:
$ref: '#/components/schemas/error'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/export_options'
description: >-
The options to apply to the export. Available options include
`project_key` and `project_name` which, if specified, are used as the
project key and name in the exported Jira json format. Option
`send_email` specifies whether an email should be sent upon export
result. Option `include_attachments` specifies whether attachments are
included in the export.
security:
- oauth2:
- issue
- repository:admin
- basic: []
- api_key: []
operationId: atlassianExportIssues
parameters:
- name: repo_slug
in: path
description: |
This can either be the repository slug or the UUID of the repository,
surrounded by curly-braces, for example: `{repository UUID}`.
required: true
schema:
type: string
- name: workspace
in: path
description: |
This can either be the workspace ID (slug) or the workspace UUID
surrounded by curly-braces, for example: `{workspace UUID}`.
required: true
schema:
type: string
/repositories/{workspace}/{repo_slug}/issues/export/{repo_name}-issues-{task_id}.zip:
get:
tags:
- Issue Tracker
description: >-
This endpoint is used to poll for the progress of an issue export
job
and return the zip file after the job is complete.
As long as the job
is running, this will return a 202 response
with in the response body
a description of the current status.
After the job has been
scheduled, but before it starts executing, the endpoint
returns a 202
response with status `ACCEPTED`.
Once it starts running, it is a
202 response with status `STARTED` and progress filled.
After it
is finished, it becomes a 200 response with status `SUCCESS` or
`FAILURE`.
summary: Atlassian Check Issue Export Status
responses:
'202':
description: Export job accepted
content:
application/json:
schema:
$ref: '#/components/schemas/issue_job_status'
examples:
response:
value:
type: issue_job_status
status: ACCEPTED
phase: Initializing
total: 0
count: 0
pct: 0
'401':
description: The request wasn't authenticated properly
content:
application/json:
schema:
$ref: '#/components/schemas/error'
'403':
description: >-
When the authenticated user does not have admin permission on the
repo
content:
application/json:
schema:
$ref: '#/components/schemas/error'
'404':
description: No export job has begun
content:
application/json:
schema:
$ref: '#/components/schemas/error'
security:
- oauth2:
- issue
- repository:admin
- basic: []
- api_key: []
operationId: atlassianCheckIssueExportStatus
parameters:
- name: repo_name
in: path
description: The name of the repo
required: true
schema:
type: string
- name: repo_slug
in: path
description: |
This can either be the repository slug or the UUID of the repository,
surrounded by curly-braces, for example: `{repository UUID}`.
required: true
schema:
type: string
- name: task_id
in: path
description: The ID of the export task
required: true
schema:
type: string
- name: workspace
in: path
description: |
This can either be the workspace ID (slug) or the workspace UUID
surrounded by curly-braces, for example: `{workspace UUID}`.
required: true
schema:
type: string
/repositories/{workspace}/{repo_slug}/issues/import:
get:
tags:
- Issue Tracker
description: >-
When using GET, this endpoint reports the status of the current import
task.
After the job has been scheduled, but before it starts
executing, the endpoint
returns a 202 response with status
`ACCEPTED`.
Once it starts running, it is a 202 response with
status `STARTED` and progress filled.
After it is finished, it
becomes a 200 response with status `SUCCESS` or `FAILURE`.
summary: Atlassian Check Issue Import Status
responses:
'200':
description: Import job complete with either FAILURE or SUCCESS status
content:
application/json:
schema:
$ref: '#/components/schemas/issue_job_status'
'202':
description: Import job started
content:
application/json:
schema:
$ref: '#/components/schemas/issue_job_status'
examples:
response:
value:
type: issue_job_status
status: ACCEPTED
phase: Attachments
total: 15
count: 0
percent: 0
'401':
description: The request wasn't authenticated properly
content:
application/json:
schema:
$ref: '#/components/schemas/error'
'403':
description: >-
When the authenticated user does not have admin permission on the
repo
content:
application/json:
schema:
$ref: '#/components/schemas/error'
'404':
description: No export job has begun
content:
application/json:
schema:
$ref: '#/components/schemas/error'
security:
- oauth2:
- issue:write
- repository:admin
- basic: []
- api_key: []
operationId: atlassianCheckIssueImportStatus
post:
tags:
- Issue Tracker
description: >-
A POST request to this endpoint will import the zip file given by the
archive parameter into the repository. All
existing issues will be
deleted and replaced by the contents of the imported zip
file.
Imports are done through a multipart/form-data POST. There
is one valid and required form field, with the name
"archive," which
needs to be a file field:
```
$ curl -u -X POST -F
archive=@/path/to/file.zip
https://api.bitbucket.org/2.0/repositories///issues/import
```
summary: Atlassian Import Issues
responses:
'202':
description: Import job accepted
content:
application/json:
schema:
$ref: '#/components/schemas/issue_job_status'
examples:
response:
value:
type: issue_job_status
status: ACCEPTED
phase: Attachments
total: 15
count: 0
percent: 0
'401':
description: The request wasn't authenticated properly
content:
application/json:
schema:
$ref: '#/components/schemas/error'
'403':
description: >-
When the authenticated user does not have admin permission on the
repo
content:
application/json:
schema:
$ref: '#/components/schemas/error'
'404':
description: No export job has begun
content:
application/json:
schema:
$ref: '#/components/schemas/error'
'409':
description: Import already running
content:
application/json:
schema:
$ref: '#/components/schemas/error'
security:
- oauth2:
- issue:write
- repository:admin
- basic: []
- api_key: []
operationId: atlassianImportIssues
parameters:
- name: repo_slug
in: path
description: |
This can either be the repository slug or the UUID of the repository,
surrounded by curly-braces, for example: `{repository UUID}`.
required: true
schema:
type: string
- name: workspace
in: path
description: |
This can either be the workspace ID (slug) or the workspace UUID
surrounded by curly-braces, for example: `{workspace UUID}`.
required: true
schema:
type: string
/repositories/{workspace}/{repo_slug}/issues/{issue_id}:
delete:
tags:
- Issue Tracker
description: >-
Deletes the specified issue. This requires write access to
the
repository.
summary: Atlassian Delete An Issue
responses:
'200':
description: The issue object.
content:
application/json:
schema:
$ref: '#/components/schemas/issue'
'403':
description: When the authenticated user isn't authorized to delete the issue.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
'404':
description: >-
The specified repository or issue does not exist or does not have
the issue tracker enabled.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
security:
- oauth2:
- issue:write
- basic: []
- api_key: []
operationId: atlassianDeleteAnIssue
get:
tags:
- Issue Tracker
description: Returns the specified issue.
summary: Atlassian Get An Issue
responses:
'200':
description: The issue object.
content:
application/json:
schema:
$ref: '#/components/schemas/issue'
'403':
description: When the authenticated user isn't authorized to access the issue.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
'404':
description: >-
The specified repository or issue does not exist or does not have
the issue tracker enabled.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
'410':
description: The specified issue is unavailable.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
security:
- oauth2:
- issue
- basic: []
- api_key: []
operationId: atlassianGetAnIssue
put:
tags:
- Issue Tracker
description: >-
Modifies the issue.
```
$ curl
https://api.bitbucket.org/2.0/repostories/evzijst/dogslow/issues/123
\
-u evzijst -s -X PUT -H 'Content-Type: application/json' \
-d '{
"title": "Updated title",
"assignee": {
"account_id": "5d5355e8c6b9320d9ea5b28d"
},
"priority":
"minor",
"version": {
"name": "1.0"
},
"component": null
}'
```
This example changes the `title`,
`assignee`, `priority` and the
`version`. It also removes the value
of the `component` from the issue
by setting the field to `null`. Any
field not present keeps its existing
value.
Each time an issue
is edited in the UI or through the API, an immutable
change record is
created under the `/issues/123/changes` endpoint. It
also has a
comment associated with the change.
summary: Atlassian Update An Issue
responses:
'200':
description: The updated issue object.
content:
application/json:
schema:
$ref: '#/components/schemas/issue'
'403':
description: When the authenticated user isn't authorized to access the issue.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
'404':
description: >-
The specified repository or issue does not exist or does not have
the issue tracker enabled.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
security:
- oauth2:
- issue:write
- basic: []
- api_key: []
operationId: atlassianUpdateAnIssue
parameters:
- name: issue_id
in: path
description: The issue id
required: true
schema:
type: string
- name: repo_slug
in: path
description: |
This can either be the repository slug or the UUID of the repository,
surrounded by curly-braces, for example: `{repository UUID}`.
required: true
schema:
type: string
- name: workspace
in: path
description: |
This can either be the workspace ID (slug) or the workspace UUID
surrounded by curly-braces, for example: `{workspace UUID}`.
required: true
schema:
type: string
/repositories/{workspace}/{repo_slug}/issues/{issue_id}/attachments:
get:
tags:
- Issue Tracker
description: >-
Returns all attachments for this issue.
This returns the files'
meta data. This does not return the files'
actual
contents.
The files are always ordered by their upload date.
summary: Atlassian List Attachments For An Issue
responses:
'200':
description: A paginated list of all attachments for this issue.
content:
application/json:
schema:
$ref: '#/components/schemas/paginated_issue_attachments'
'401':
description: >-
If the issue tracker is private and the request was not
authenticated.
'404':
description: >-
The specified repository or issue does not exist or does not have
the issue tracker enabled.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
security:
- oauth2:
- issue
- basic: []
- api_key: []
operationId: atlassianListAttachmentsForAnIssue
post:
tags:
- Issue Tracker
description: >-
Upload new issue attachments.
To upload files, perform a
`multipart/form-data` POST containing one
or more file
fields.
When a file is uploaded with the same name as an existing
attachment,
then the existing file will be replaced.
summary: Atlassian Upload An Attachment To An Issue
responses:
'201':
description: An empty response document.
headers:
Location:
description: The URL to the issue's collection of attachments.
schema:
type: string
'400':
description: If no files were uploaded, or if the wrong `Content-Type` was used.
'401':
description: >-
If the issue tracker is private and the request was not
authenticated.
'404':
description: >-
The specified repository or issue does not exist or does not have
the issue tracker enabled.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
security:
- oauth2:
- issue:write
- basic: []
- api_key: []
operationId: atlassianUploadAnAttachmentToAnIssue
parameters:
- name: issue_id
in: path
description: The issue id
required: true
schema:
type: string
- name: repo_slug
in: path
description: |
This can either be the repository slug or the UUID of the repository,
surrounded by curly-braces, for example: `{repository UUID}`.
required: true
schema:
type: string
- name: workspace
in: path
description: |
This can either be the workspace ID (slug) or the workspace UUID
surrounded by curly-braces, for example: `{workspace UUID}`.
required: true
schema:
type: string
/repositories/{workspace}/{repo_slug}/issues/{issue_id}/attachments/{path}:
delete:
tags:
- Issue Tracker
description: Deletes an attachment.
summary: Atlassian Delete An Attachment For An Issue
responses:
'204':
description: Indicates that the deletion was successful
'401':
description: >-
If the issue tracker is private and the request was not
authenticated.
'404':
description: >-
The specified repository or issue does not exist or does not have
the issue tracker enabled.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
security:
- oauth2:
- issue:write
- basic: []
- api_key: []
operationId: atlassianDeleteAnAttachmentForAnIssue
get:
tags:
- Issue Tracker
description: >-
Returns the contents of the specified file attachment.
Note that
this endpoint does not return a JSON response, but instead
returns a
redirect pointing to the actual file that in turn will return
the raw
contents.
The redirect URL contains a one-time token that has a
limited lifetime.
As a result, the link should not be persisted,
stored, or shared.
summary: Atlassian Get Attachment For An Issue
responses:
'302':
description: A redirect to the file's contents
headers:
Location:
schema:
type: string
'401':
description: >-
If the issue tracker is private and the request was not
authenticated.
'404':
description: >-
The specified repository or issue does not exist or does not have
the issue tracker enabled.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
security:
- oauth2:
- issue
- basic: []
- api_key: []
operationId: atlassianGetAttachmentForAnIssue
parameters:
- name: issue_id
in: path
description: The issue id
required: true
schema:
type: string
- name: path
in: path
description: Path to the file.
required: true
schema:
type: string
- name: repo_slug
in: path
description: |
This can either be the repository slug or the UUID of the repository,
surrounded by curly-braces, for example: `{repository UUID}`.
required: true
schema:
type: string
- name: workspace
in: path
description: |
This can either be the workspace ID (slug) or the workspace UUID
surrounded by curly-braces, for example: `{workspace UUID}`.
required: true
schema:
type: string
/repositories/{workspace}/{repo_slug}/issues/{issue_id}/changes:
get:
tags:
- Issue Tracker
description: >-
Returns the list of all changes that have been made to the
specified
issue. Changes are returned in chronological order with the
oldest
change first.
Each time an issue is edited in the UI or
through the API, an immutable
change record is created under the
`/issues/123/changes` endpoint. It
also has a comment associated with
the change.
Note that this operation is changing significantly,
due to privacy changes.
See the
[announcement](https://developer.atlassian.com/cloud/bitbucket/bitbucket-api-changes-gdpr/#changes-to-the-issue-changes-api)
for
details.
Changes support [filtering and
sorting](/cloud/bitbucket/rest/intro/#filtering) that
can be used to
search for specific changes. For instance, to see
when an issue
transitioned to "resolved":
```
$ curl -s
https://api.bitbucket.org/2.0/repositories/site/master/issues/1/changes
\
-G --data-urlencode='q=changes.state.new =
"resolved"'
```
This resource is only available on
repositories that have the issue
tracker
enabled.
N.B.
The `changes.assignee` and
`changes.assignee_account_id` fields are not
a `user` object.
Instead, they contain the raw `username` and
`account_id` of the
user. This is to protect the integrity of the audit
log even after a
user account gets deleted.
The `changes.assignee` field is
deprecated will disappear in the
future. Use
`changes.assignee_account_id` instead.
summary: Atlassian List Changes On An Issue
responses:
'200':
description: Returns all the issue changes that were made on the specified issue.
content:
application/json:
schema:
$ref: '#/components/schemas/paginated_log_entries'
examples:
response:
value:
pagelen: 20
values:
- changes:
priority:
new: trivial
old: major
assignee:
new: ''
old: evzijst
assignee_account_id:
new: ''
old: 557058:c0b72ad0-1cb5-4018-9cdc-0cde8492c443
kind:
new: enhancement
old: bug
links:
self:
href: >-
https://api.bitbucket.org/2.0/repositories/evzijst/dogslow/issues/1/changes/2
html:
href: >-
https://bitbucket.org/evzijst/dogslow/issues/1#comment-2
issue:
links:
self:
href: >-
https://api.bitbucket.org/2.0/repositories/evzijst/dogslow/issues/1
type: issue
id: 1
repository:
links:
self:
href: >-
https://api.bitbucket.org/2.0/repositories/evzijst/dogslow
html:
href: https://bitbucket.org/evzijst/dogslow
avatar:
href: >-
https://bitbucket.org/evzijst/dogslow/avatar/32/
type: repository
name: dogslow
full_name: evzijst/dogslow
uuid: '{988b17c6-1a47-4e70-84ee-854d5f012bf6}'
title: Updated title
created_on: '2018-03-03T00:35:28.353630+00:00'
user:
username: evzijst
nickname: evzijst
display_name: evzijst
type: user
uuid: '{aaa7972b-38af-4fb1-802d-6e3854c95778}'
links:
self:
href: https://api.bitbucket.org/2.0/users/evzijst
html:
href: https://bitbucket.org/evzijst/
avatar:
href: https://bitbucket.org/account/evzijst/avatar/32/
message:
raw: Removed assignee, changed kind and priority.
markup: markdown
html: Removed assignee, changed kind and priority.
type: rendered
type: issue_change
id: 2
page: 1
'404':
description: >-
The specified repository or issue does not exist or does not have
the issue tracker enabled.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
parameters:
- name: q
in: query
description: >2-
Query string to narrow down the response. See
[filtering and sorting](/cloud/bitbucket/rest/intro/#filtering) for
details.
required: false
schema:
type: string
- name: sort
in: query
description: >2
Name of a response property to sort results. See
[filtering and
sorting](/cloud/bitbucket/rest/intro/#sorting-query-results)
for details.
required: false
schema:
type: string
security:
- oauth2:
- issue
- basic: []
- api_key: []
operationId: atlassianListChangesOnAnIssue
post:
tags:
- Issue Tracker
description: >-
Makes a change to the specified issue.
For example, to change an
issue's state and assignee, create a new
change object that modifies
these fields:
```
curl
https://api.bitbucket.org/2.0/site/master/issues/1234/changes \
-s
-u evzijst -X POST -H "Content-Type: application/json" \
-d
'{
"changes": {
"assignee_account_id": {
"new": "557058:c0b72ad0-1cb5-4018-9cdc-0cde8492c443"
},
"state": {
"new": 'resolved"
}
}
"message": {
"raw": "This is now resolved."
}
}'
```
The above example also includes a custom comment
to go alongside the
change. This comment will also be visible on the
issue page in the UI.
The fields of the `changes` object are
strings, not objects. This
allows for immutable change log records,
even after user accounts,
milestones, or other objects recorded in a
change entry, get renamed or
deleted.
The
`assignee_account_id` field stores the account id. When POSTing a
new
change and changing the assignee, the client should therefore use
the
user's account_id in the `changes.assignee_account_id.new`
field.
This call requires authentication. Private repositories or
private
issue trackers require the caller to authenticate with an
account that
has appropriate authorization.
summary: Atlassian Modify The State Of An Issue
responses:
'201':
description: The newly created issue change.
headers:
Location:
description: The (absolute) URL of the newly created issue change.
schema:
type: string
content:
application/json:
schema:
$ref: '#/components/schemas/issue_change'
'401':
description: When the request wasn't authenticated.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
'403':
description: When the authenticated user isn't authorized to modify the issue.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
'404':
description: >-
The specified repository or issue does not exist or does not have
the issue tracker enabled.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/issue_change'
description: >-
The new issue state change. The only required elements are
`changes.[].new`. All other elements can be omitted from the body.
required: true
security:
- oauth2:
- issue:write
- basic: []
- api_key: []
operationId: atlassianModifyTheStateOfAnIssue
parameters:
- name: issue_id
in: path
description: The issue id
required: true
schema:
type: string
- name: repo_slug
in: path
description: |
This can either be the repository slug or the UUID of the repository,
surrounded by curly-braces, for example: `{repository UUID}`.
required: true
schema:
type: string
- name: workspace
in: path
description: |
This can either be the workspace ID (slug) or the workspace UUID
surrounded by curly-braces, for example: `{workspace UUID}`.
required: true
schema:
type: string
/repositories/{workspace}/{repo_slug}/issues/{issue_id}/changes/{change_id}:
get:
tags:
- Issue Tracker
description: >-
Returns the specified issue change object.
This resource is only
available on repositories that have the issue
tracker enabled.
summary: Atlassian Get Issue Change Object
responses:
'200':
description: The specified issue change object.
content:
application/json:
schema:
$ref: '#/components/schemas/issue_change'
'404':
description: >-
The specified repository or issue change does not exist or does not
have the issue tracker enabled.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
security:
- oauth2:
- issue
- basic: []
- api_key: []
operationId: atlassianGetIssueChangeObject
parameters:
- name: change_id
in: path
description: The issue change id
required: true
schema:
type: string
- name: issue_id
in: path
description: The issue id
required: true
schema:
type: string
- name: repo_slug
in: path
description: |
This can either be the repository slug or the UUID of the repository,
surrounded by curly-braces, for example: `{repository UUID}`.
required: true
schema:
type: string
- name: workspace
in: path
description: |
This can either be the workspace ID (slug) or the workspace UUID
surrounded by curly-braces, for example: `{workspace UUID}`.
required: true
schema:
type: string
/repositories/{workspace}/{repo_slug}/issues/{issue_id}/comments:
get:
tags:
- Issue Tracker
description: >-
Returns a paginated list of all comments that were made on
the
specified issue.
The default sorting is oldest to newest
and can be overridden with
the `sort` query parameter.
This
endpoint also supports filtering and sorting of the results.
See
[filtering and sorting](/cloud/bitbucket/rest/intro/#filtering)
for more details.
summary: Atlassian List Comments On An Issue
responses:
'200':
description: A paginated list of issue comments.
content:
application/json:
schema:
$ref: '#/components/schemas/paginated_issue_comments'
parameters:
- name: q
in: query
description: |2-
Query string to narrow down the response as per
[filtering and sorting](/cloud/bitbucket/rest/intro/#filtering).
required: false
schema:
type: string
security:
- oauth2:
- issue
- basic: []
- api_key: []
operationId: atlassianListCommentsOnAnIssue
post:
tags:
- Issue Tracker
description: >-
Creates a new issue comment.
```
$ curl
https://api.bitbucket.org/2.0/repositories/atlassian/prlinks/issues/42/comments/
\
-X POST -u evzijst \
-H 'Content-Type: application/json'
\
-d '{"content": {"raw": "Lorem ipsum."}}'
```
summary: Atlassian Create A Comment On An Issue
responses:
'201':
description: The newly created comment.
headers:
Location:
description: The location of the newly issue comment.
schema:
type: string
'400':
description: >-
If the input was invalid, or if the comment being created is
detected as spam
content:
application/json:
schema:
$ref: '#/components/schemas/error'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/issue_comment'
description: The new issue comment object.
required: true
security:
- oauth2:
- issue:write
- basic: []
- api_key: []
operationId: atlassianCreateACommentOnAnIssue
parameters:
- name: issue_id
in: path
description: The issue id
required: true
schema:
type: string
- name: repo_slug
in: path
description: |
This can either be the repository slug or the UUID of the repository,
surrounded by curly-braces, for example: `{repository UUID}`.
required: true
schema:
type: string
- name: workspace
in: path
description: |
This can either be the workspace ID (slug) or the workspace UUID
surrounded by curly-braces, for example: `{workspace UUID}`.
required: true
schema:
type: string
/repositories/{workspace}/{repo_slug}/issues/{issue_id}/comments/{comment_id}:
delete:
tags:
- Issue Tracker
description: Deletes the specified comment.
summary: Atlassian Delete A Comment On An Issue
responses:
'204':
description: Indicates successful deletion.
security:
- oauth2:
- issue:write
- basic: []
- api_key: []
operationId: atlassianDeleteACommentOnAnIssue
get:
tags:
- Issue Tracker
description: Returns the specified issue comment object.
summary: Atlassian Get A Comment On An Issue
responses:
'200':
description: The issue comment.
content:
application/json:
schema:
$ref: '#/components/schemas/issue_comment'
security:
- oauth2:
- issue
- basic: []
- api_key: []
operationId: atlassianGetACommentOnAnIssue
put:
tags:
- Issue Tracker
description: >-
Updates the content of the specified issue comment. Note that
only
the `content.raw` field can be modified.
```
$ curl
https://api.bitbucket.org/2.0/repositories/atlassian/prlinks/issues/42/comments/5728901
\
-X PUT -u evzijst \
-H 'Content-Type: application/json'
\
-d '{"content": {"raw": "Lorem ipsum."}'
```
summary: Atlassian Update A Comment On An Issue
responses:
'200':
description: The updated issue comment.
content:
application/json:
schema:
$ref: '#/components/schemas/issue_comment'
'400':
description: >-
If the input was invalid, or if the update to the comment is
detected as spam
content:
application/json:
schema:
$ref: '#/components/schemas/error'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/issue_comment'
description: The updated comment.
required: true
security:
- oauth2:
- issue:write
- basic: []
- api_key: []
operationId: atlassianUpdateACommentOnAnIssue
parameters:
- name: comment_id
in: path
description: The id of the comment.
required: true
schema:
type: integer
- name: issue_id
in: path
description: The issue id
required: true
schema:
type: string
- name: repo_slug
in: path
description: |
This can either be the repository slug or the UUID of the repository,
surrounded by curly-braces, for example: `{repository UUID}`.
required: true
schema:
type: string
- name: workspace
in: path
description: |
This can either be the workspace ID (slug) or the workspace UUID
surrounded by curly-braces, for example: `{workspace UUID}`.
required: true
schema:
type: string
/repositories/{workspace}/{repo_slug}/issues/{issue_id}/vote:
delete:
tags:
- Issue Tracker
description: Retract your vote.
summary: Atlassian Remove Vote For An Issue
responses:
default:
description: Unexpected error.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
security:
- oauth2:
- account:write
- issue:write
- basic: []
- api_key: []
operationId: atlassianRemoveVoteForAnIssue
get:
tags:
- Issue Tracker
description: >-
Check whether the authenticated user has voted for this issue.
A 204
status code indicates that the user has voted, while a 404
implies
they haven't.
summary: Atlassian Check If Current User Voted For An Issue
responses:
'204':
description: If the authenticated user has not voted for this issue.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
'401':
description: When the request wasn't authenticated.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
'404':
description: >-
If the authenticated user has not voted for this issue, or when the
repo does not exist, or does not have an issue tracker.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
security:
- oauth2:
- account
- issue
- basic: []
- api_key: []
operationId: atlassianCheckIfCurrentUserVotedForAnIssue
put:
tags:
- Issue Tracker
description: >-
Vote for this issue.
To cast your vote, do an empty PUT. The 204
status code indicates that
the operation was successful.
summary: Atlassian Vote For An Issue
responses:
'204':
description: Indicating the authenticated user has cast their vote successfully.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
'401':
description: When the request wasn't authenticated.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
'404':
description: >-
The specified repository or issue does not exist or does not have
the issue tracker enabled.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
security:
- oauth2:
- account:write
- issue
- basic: []
- api_key: []
operationId: atlassianVoteForAnIssue
parameters:
- name: issue_id
in: path
description: The issue id
required: true
schema:
type: string
- name: repo_slug
in: path
description: |
This can either be the repository slug or the UUID of the repository,
surrounded by curly-braces, for example: `{repository UUID}`.
required: true
schema:
type: string
- name: workspace
in: path
description: |
This can either be the workspace ID (slug) or the workspace UUID
surrounded by curly-braces, for example: `{workspace UUID}`.
required: true
schema:
type: string
/repositories/{workspace}/{repo_slug}/issues/{issue_id}/watch:
delete:
tags:
- Issue Tracker
description: Stop watching this issue.
summary: Atlassian Stop Watching An Issue
responses:
'204':
description: >-
Indicates that the authenticated user successfully stopped watching
this issue.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
'401':
description: When the request wasn't authenticated.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
'404':
description: >-
The specified repository or issue does not exist or does not have
the issue tracker enabled.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
security:
- oauth2:
- account:write
- issue:write
- basic: []
- api_key: []
operationId: atlassianStopWatchingAnIssue
get:
tags:
- Issue Tracker
description: >-
Indicated whether or not the authenticated user is watching
this
issue.
summary: Atlassian Check If Current User Is Watching A Issue
responses:
'204':
description: If the authenticated user is watching this issue.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
'401':
description: When the request wasn't authenticated.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
'404':
description: >-
If the authenticated user is not watching this issue, or when the
repo does not exist, or does not have an issue tracker.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
security:
- oauth2:
- account
- issue
- basic: []
- api_key: []
operationId: atlassianCheckIfCurrentUserIsWatchingAIssue
put:
tags:
- Issue Tracker
description: >-
Start watching this issue.
To start watching this issue, do an
empty PUT. The 204 status code
indicates that the operation was
successful.
summary: Atlassian Watch An Issue
responses:
'204':
description: >-
Indicates that the authenticated user successfully started watching
this issue.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
'401':
description: When the request wasn't authenticated.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
'404':
description: >-
If the authenticated user is not watching this issue, or when the
repo does not exist, or does not have an issue tracker.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
security:
- oauth2:
- account:write
- issue
- basic: []
- api_key: []
operationId: atlassianWatchAnIssue
parameters:
- name: issue_id
in: path
description: The issue id
required: true
schema:
type: string
- name: repo_slug
in: path
description: |
This can either be the repository slug or the UUID of the repository,
surrounded by curly-braces, for example: `{repository UUID}`.
required: true
schema:
type: string
- name: workspace
in: path
description: |
This can either be the workspace ID (slug) or the workspace UUID
surrounded by curly-braces, for example: `{workspace UUID}`.
required: true
schema:
type: string
/repositories/{workspace}/{repo_slug}/merge-base/{revspec}:
get:
tags:
- Commits
description: >-
Returns the best common ancestor between two commits, specified in a
revspec
of 2 commits (e.g. 3a8b42..9ff173).
If more than one
best common ancestor exists, only one will be returned. It
is
unspecified which will be returned.
summary: Atlassian Get The Common Ancestor Between Two Commits
responses:
'200':
description: The merge base of the provided spec.
content:
application/json:
schema:
$ref: '#/components/schemas/commit'
'401':
description: If the request was not authenticated.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
'403':
description: >-
If the authenticated user does not have access to any of the
repositories specified.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
'404':
description: If the repository or ref in the spec does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
security:
- oauth2:
- repository
- basic: []
- api_key: []
x-atlassian-oauth2-scopes:
- state: Current
scheme: oauth2
scopes:
- read:repository:bitbucket
operationId: atlassianGetTheCommonAncestorBetweenTwoCommits
parameters:
- name: repo_slug
in: path
description: |
This can either be the repository slug or the UUID of the repository,
surrounded by curly-braces, for example: `{repository UUID}`.
required: true
schema:
type: string
- name: revspec
in: path
description: |
A commit range using double dot notation (e.g. `3a8b42..9ff173`).
required: true
schema:
type: string
- name: workspace
in: path
description: |
This can either be the workspace ID (slug) or the workspace UUID
surrounded by curly-braces, for example: `{workspace UUID}`.
required: true
schema:
type: string
/repositories/{workspace}/{repo_slug}/milestones:
get:
tags:
- Issue Tracker
description: >-
Returns the milestones that have been defined in the issue
tracker.
This resource is only available on repositories that
have the issue
tracker enabled.
summary: Atlassian List Milestones
responses:
'200':
description: The milestones that have been defined in the issue tracker.
content:
application/json:
schema:
$ref: '#/components/schemas/paginated_milestones'
'404':
description: >-
The specified repository does not exist or does not have the issue
tracker enabled.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
security:
- oauth2:
- issue
- basic: []
- api_key: []
operationId: atlassianListMilestones
parameters:
- name: repo_slug
in: path
description: |
This can either be the repository slug or the UUID of the repository,
surrounded by curly-braces, for example: `{repository UUID}`.
required: true
schema:
type: string
- name: workspace
in: path
description: |
This can either be the workspace ID (slug) or the workspace UUID
surrounded by curly-braces, for example: `{workspace UUID}`.
required: true
schema:
type: string
/repositories/{workspace}/{repo_slug}/milestones/{milestone_id}:
get:
tags:
- Issue Tracker
description: Returns the specified issue tracker milestone object.
summary: Atlassian Get A Milestone
responses:
'200':
description: The specified milestone object.
content:
application/json:
schema:
$ref: '#/components/schemas/milestone'
'404':
description: >-
The specified repository or milestone does not exist or does not
have the issue tracker enabled.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
security:
- oauth2:
- issue
- basic: []
- api_key: []
operationId: atlassianGetAMilestone
parameters:
- name: milestone_id
in: path
description: The milestone's id
required: true
schema:
type: integer
- name: repo_slug
in: path
description: |
This can either be the repository slug or the UUID of the repository,
surrounded by curly-braces, for example: `{repository UUID}`.
required: true
schema:
type: string
- name: workspace
in: path
description: |
This can either be the workspace ID (slug) or the workspace UUID
surrounded by curly-braces, for example: `{workspace UUID}`.
required: true
schema:
type: string
/repositories/{workspace}/{repo_slug}/override-settings:
get:
tags:
- Repositories
description: Needs a more full description created.
summary: Atlassian Retrieve The Inheritance State For Repository Settings
responses:
'200':
description: The repository setting inheritance state
content:
application/json:
schema:
$ref: '#/components/schemas/repository_inheritance_state'
'404':
description: If no repository exists at this location
content:
application/json:
schema:
$ref: '#/components/schemas/error'
security:
- oauth2:
- repository:admin
- basic: []
- api_key: []
x-atlassian-oauth2-scopes:
- state: Current
scheme: oauth2
scopes:
- admin:repository:bitbucket
operationId: atlassianRetrieveTheInheritanceStateForRepositorySettings
put:
tags:
- Repositories
description: Needs a more full description created.
summary: |-
Atlassian Set The Inheritance State For Repository Settings
responses:
'204':
description: >-
The repository setting inheritance state was set and no content
returned
'404':
description: If no repository exists at this location
content:
application/json:
schema:
$ref: '#/components/schemas/error'
security:
- oauth2:
- repository:admin
- basic: []
- api_key: []
x-atlassian-oauth2-scopes:
- state: Current
scheme: oauth2
scopes:
- admin:repository:bitbucket
operationId: atlassianSetTheInheritanceStateForRepositorySettings
parameters:
- name: repo_slug
in: path
description: |
This can either be the repository slug or the UUID of the repository,
surrounded by curly-braces, for example: `{repository UUID}`.
required: true
schema:
type: string
- name: workspace
in: path
description: |
This can either be the workspace ID (slug) or the workspace UUID
surrounded by curly-braces, for example: `{workspace UUID}`.
required: true
schema:
type: string
/repositories/{workspace}/{repo_slug}/patch/{spec}:
get:
tags:
- Commits
description: >-
Produces a raw patch for a single commit (diffed against its
first
parent), or a patch-series for a revspec of 2 commits
(e.g.
`3a8b42..9ff173` where the first commit represents the source
and the
second commit the destination).
In case of the latter
(diffing a revspec), a patch series is returned
for the commits on
the source branch (`3a8b42` and its ancestors in
our
example).
While similar to diffs, patches:
* Have a commit
header (username, commit message, etc)
* Do not support the
`path=foo/bar.py` query parameter
The raw patch is returned
as-is, in whatever encoding the files in the
repository use. It is
not decoded into unicode. As such, the
content-type is `text/plain`.
summary: Atlassian Get A Patch For Two Commits
responses:
'200':
description: The raw patches
'555':
description: |-
If the diff was too large and timed out.
Since this endpoint does not employ any form of pagination, but
instead returns the diff as a single document, it can run into
trouble on very large diffs. If Bitbucket times out in cases
like these, a 555 status code is returned.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
security:
- oauth2:
- repository
- basic: []
- api_key: []
x-atlassian-oauth2-scopes:
- state: Current
scheme: oauth2
scopes:
- read:repository:bitbucket
operationId: atlassianGetAPatchForTwoCommits
parameters:
- name: repo_slug
in: path
description: |
This can either be the repository slug or the UUID of the repository,
surrounded by curly-braces, for example: `{repository UUID}`.
required: true
schema:
type: string
- name: spec
in: path
description: |
A commit SHA (e.g. `3a8b42`) or a commit range using double dot
notation (e.g. `3a8b42..9ff173`).
required: true
schema:
type: string
- name: workspace
in: path
description: |
This can either be the workspace ID (slug) or the workspace UUID
surrounded by curly-braces, for example: `{workspace UUID}`.
required: true
schema:
type: string
/repositories/{workspace}/{repo_slug}/permissions-config/groups:
get:
tags:
- Repositories
description: >-
Returns a paginated list of explicit group permissions for the given
repository.
This endpoint does not support BBQL features.
summary: Atlassian List Explicit Group Permissions For A Repository
responses:
'200':
description: Paginated of explicit group permissions on the repository.
content:
application/json:
schema:
$ref: '#/components/schemas/paginated_repository_group_permissions'
examples:
response:
value:
pagelen: 10
values:
- type: repository_group_permission
group:
type: group
name: Administrators
slug: administrators
permission: admin
links:
self:
href: >-
https://api.bitbucket.org/2.0/repositories/atlassian_tutorial/geordi/permissions-config/groups/administrators
- type: repository_group_permission
group:
type: group
name: Developers
slug: developers
permission: read
links:
self:
href: >-
https://api.bitbucket.org/2.0/repositories/atlassian_tutorial/geordi/permissions-config/groups/developers
page: 1
size: 2
'401':
description: The user couldn't be authenticated.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
'403':
description: The requesting user isn't an admin of the repository.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
'404':
description: >-
One or both of the workspace and repository doesn't exist for the
given identifiers.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
security:
- oauth2:
- repository:admin
- basic: []
- api_key: []
x-atlassian-oauth2-scopes:
- state: Current
scheme: oauth2
scopes:
- read:repository:bitbucket
- read:user:bitbucket
operationId: atlassianListExplicitGroupPermissionsForARepository
parameters:
- name: repo_slug
in: path
description: |
This can either be the repository slug or the UUID of the repository,
surrounded by curly-braces, for example: `{repository UUID}`.
required: true
schema:
type: string
- name: workspace
in: path
description: |
This can either be the workspace ID (slug) or the workspace UUID
surrounded by curly-braces, for example: `{workspace UUID}`.
required: true
schema:
type: string
/repositories/{workspace}/{repo_slug}/permissions-config/groups/{group_slug}:
delete:
tags:
- Repositories
description: >-
Deletes the repository group permission between the requested repository
and group, if one exists.
Only users with admin permission for
the repository may access this resource.
summary: Atlassian Delete An Explicit Group Permission For A Repository
responses:
'204':
description: Group permission deleted
'401':
description: The user couldn't be authenticated.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
'403':
description: >-
The requesting user isn't an admin of the repository, or the
authentication method was not via app password.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
'404':
description: >-
The workspace does not exist, the repository does not exist, or the
group does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
security:
- oauth2:
- repository:admin
- basic: []
- api_key: []
operationId: atlassianDeleteAnExplicitGroupPermissionForARepository
get:
tags:
- Repositories
description: >-
Returns the group permission for a given group slug and
repository
Only users with admin permission for the repository
may access this resource.
Permissions can be:
*
`admin`
* `write`
* `read`
* `none`
summary: Atlassian Get An Explicit Group Permission For A Repository
responses:
'200':
description: Group permission for group slug and repository
content:
application/json:
schema:
$ref: '#/components/schemas/repository_group_permission'
examples:
response:
value:
type: repository_group_permission
group:
type: group
name: Developers
slug: developers
full_slug: atlassian_tutorial:developers
permission: read
links:
self:
href: >-
https://api.bitbucket.org/2.0/repositories/atlassian_tutorial/geordi/permissions-config/groups/developers
'401':
description: The user couldn't be authenticated.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
'403':
description: The requesting user isn't an admin of the repository.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
'404':
description: The given user, workspace, and/or repository could not be found
content:
application/json:
schema:
$ref: '#/components/schemas/error'
security:
- oauth2:
- repository:admin
- basic: []
- api_key: []
x-atlassian-oauth2-scopes:
- state: Current
scheme: oauth2
scopes:
- read:repository:bitbucket
- read:user:bitbucket
operationId: atlassianGetAnExplicitGroupPermissionForARepository
put:
tags:
- Repositories
description: >-
Updates the group permission, or grants a new permission if one does not
already exist.
Only users with admin permission for the
repository may access this resource.
The only authentication
method supported for this endpoint is via app
passwords.
Permissions can be:
* `admin`
* `write`
*
`read`
summary: Atlassian Update An Explicit Group Permission For A Repository
responses:
'200':
description: Group permission updated
content:
application/json:
schema:
$ref: '#/components/schemas/repository_group_permission'
examples:
response:
value:
type: repository_group_permission
group:
type: group
name: Developers
slug: developers
full_slug: atlassian_tutorial:developers
permission: write
links:
self:
href: >-
https://api.bitbucket.org/2.0/repositories/atlassian_tutorial/geordi/permissions-config/groups/developers
'400':
description: >-
No permission value was provided or the value is invalid(not one of
read, write, or admin)
content:
application/json:
schema:
$ref: '#/components/schemas/error'
'401':
description: The user couldn't be authenticated.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
'402':
description: >-
You have reached your plan's user limit and must upgrade before
giving access to additional users.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
'403':
description: >-
The requesting user isn't an admin of the repository, or the
authentication method was not via app password.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
'404':
description: >-
The workspace does not exist, the repository does not exist, or the
group does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
requestBody:
$ref: >-
#/components/requestBodies/bitbucket.apps.permissions.serializers.RepoPermissionUpdateSchema
security:
- oauth2:
- repository:admin
- basic: []
- api_key: []
operationId: atlassianUpdateAnExplicitGroupPermissionForARepository
parameters:
- name: group_slug
in: path
description: Slug of the requested group.
required: true
schema:
type: string
- name: repo_slug
in: path
description: |
This can either be the repository slug or the UUID of the repository,
surrounded by curly-braces, for example: `{repository UUID}`.
required: true
schema:
type: string
- name: workspace
in: path
description: |
This can either be the workspace ID (slug) or the workspace UUID
surrounded by curly-braces, for example: `{workspace UUID}`.
required: true
schema:
type: string
/repositories/{workspace}/{repo_slug}/permissions-config/users:
get:
tags:
- Repositories
description: >-
Returns a paginated list of explicit user permissions for the given
repository.
This endpoint does not support BBQL features.
summary: Atlassian List Explicit User Permissions For A Repository
responses:
'200':
description: Paginated of explicit user permissions on the repository.
content:
application/json:
schema:
$ref: '#/components/schemas/paginated_repository_user_permissions'
examples:
response:
value:
pagelen: 10
values:
- type: repository_user_permission
user:
type: user
display_name: Colin Cameron
uuid: '{d301aafa-d676-4ee0-88be-962be7417567}'
account_id: 557058:ba8948b2-49da-43a9-9e8b-e7249b8e324a
permission: admin
links:
self:
href: >-
https://api.bitbucket.org/2.0/repositories/atlassian_tutorial/geordi/permissions-config/users/557058:ba8948b2-49da-43a9-9e8b-e7249b8e324a
- type: repository_user_permission
user:
type: user
display_name: Sean Conaty
uuid: '{504c3b62-8120-4f0c-a7bc-87800b9d6f70}'
account_id: 557058:ba8948b2-49da-43a9-9e8b-e7249b8e324c
permission: write
links:
self:
href: >-
https://api.bitbucket.org/2.0//repositories/atlassian_tutorial/geordi/permissions-config/users/557058:ba8948b2-49da-43a9-9e8b-e7249b8e324c
page: 1
size: 2
'401':
description: The user couldn't be authenticated.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
'403':
description: The requesting user isn't an admin of the repository.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
'404':
description: No repository exists for the given repository slug and workspace.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
security:
- oauth2:
- repository:admin
- basic: []
- api_key: []
x-atlassian-oauth2-scopes:
- state: Current
scheme: oauth2
scopes:
- read:repository:bitbucket
- read:user:bitbucket
operationId: atlassianListExplicitUserPermissionsForARepository
parameters:
- name: repo_slug
in: path
description: |
This can either be the repository slug or the UUID of the repository,
surrounded by curly-braces, for example: `{repository UUID}`.
required: true
schema:
type: string
- name: workspace
in: path
description: |
This can either be the workspace ID (slug) or the workspace UUID
surrounded by curly-braces, for example: `{workspace UUID}`.
required: true
schema:
type: string
/repositories/{workspace}/{repo_slug}/permissions-config/users/{selected_user_id}:
delete:
tags:
- Repositories
description: >-
Deletes the repository user permission between the requested repository
and user, if one exists.
Only users with admin permission for the
repository may access this resource.
The only authentication
method for this endpoint is via app passwords.
summary: Atlassian Delete An Explicit User Permission For A Repository
responses:
'204':
description: The repository user permission was deleted and no content returned.
'401':
description: The user couldn't be authenticated.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
'403':
description: >-
The requesting user isn't an admin of the repository, or the
authentication method was not via app password.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
'404':
description: >-
One or more of the workspace, repository, and user doesn't exist for
the given identifiers.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
security:
- oauth2:
- repository:admin
- basic: []
- api_key: []
operationId: atlassianDeleteAnExplicitUserPermissionForARepository
get:
tags:
- Repositories
description: >-
Returns the explicit user permission for a given user and
repository.
Only users with admin permission for the repository
may access this resource.
Permissions can be:
*
`admin`
* `write`
* `read`
* `none`
summary: Atlassian Get An Explicit User Permission For A Repository
responses:
'200':
description: Explicit user permission for user and repository
content:
application/json:
schema:
$ref: '#/components/schemas/repository_user_permission'
examples:
response:
value:
type: repository_user_permission
user:
type: user
display_name: Colin Cameron
uuid: '{d301aafa-d676-4ee0-88be-962be7417567}'
account_id: 557058:ba8948b2-49da-43a9-9e8b-e7249b8e324a
nickname: Colin Cameron
permission: admin
links:
self:
href: >-
https://api.bitbucket.org/2.0/repositories/atlassian_tutorial/geordi/permissions-config/users/557058:ba8948b2-49da-43a9-9e8b-e7249b8e324a
'401':
description: The user couldn't be authenticated.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
'403':
description: The requesting user isn't an admin of the repository.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
'404':
description: >-
One or both of the workspace and repository doesn't exist for the
given identifiers.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
security:
- oauth2:
- repository:admin
- basic: []
- api_key: []
x-atlassian-oauth2-scopes:
- state: Current
scheme: oauth2
scopes:
- read:repository:bitbucket
- read:user:bitbucket
operationId: atlassianGetAnExplicitUserPermissionForARepository
put:
tags:
- Repositories
description: >-
Updates the explicit user permission for a given user and repository.
The selected user must be a member of
the workspace, and cannot be
the workspace owner.
Only users with admin permission for the
repository may access this resource.
The only authentication
method for this endpoint is via app passwords.
Permissions can
be:
* `admin`
* `write`
* `read`
summary: Atlassian Update An Explicit User Permission For A Repository
responses:
'200':
description: Explicit user permission updated
content:
application/json:
schema:
$ref: '#/components/schemas/repository_user_permission'
examples:
response:
value:
type: repository_user_permission
user:
type: user
display_name: Colin Cameron
uuid: '{d301aafa-d676-4ee0-88be-962be7417567}'
account_id: 557058:ba8948b2-49da-43a9-9e8b-e7249b8e324a
nickname: Colin Cameron
permission: write
links:
self:
href: >-
https://api.bitbucket.org/2.0/repositories/atlassian_tutorial/geordi/permissions-config/users/557058:ba8948b2-49da-43a9-9e8b-e7249b8e324a
'400':
description: >-
No permission value was provided or the value is invalid (not one of
read, write, or admin), or the selected user is not a valid user to
update.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
'401':
description: The user couldn't be authenticated.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
'402':
description: >-
You have reached your plan's user limit and must upgrade before
giving access to additional users.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
'403':
description: >-
The requesting user isn't an admin of the repository, or the
authentication method was not via app password.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
'404':
description: >-
One or more of the workspace, repository, and selected user doesn't
exist for the given identifiers.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
requestBody:
$ref: >-
#/components/requestBodies/bitbucket.apps.permissions.serializers.RepoPermissionUpdateSchema
security:
- oauth2:
- repository:admin
- basic: []
- api_key: []
operationId: atlassianUpdateAnExplicitUserPermissionForARepository
parameters:
- name: repo_slug
in: path
description: |
This can either be the repository slug or the UUID of the repository,
surrounded by curly-braces, for example: `{repository UUID}`.
required: true
schema:
type: string
- name: selected_user_id
in: path
description: >
This can either be the UUID of the account, surrounded by
curly-braces, for
example: `{account UUID}`, OR an Atlassian Account ID.
required: true
schema:
type: string
- name: workspace
in: path
description: |
This can either be the workspace ID (slug) or the workspace UUID
surrounded by curly-braces, for example: `{workspace UUID}`.
required: true
schema:
type: string
/repositories/{workspace}/{repo_slug}/pipelines:
get:
tags:
- Pipelines
summary: Atlassian List Pipelines
description: Find pipelines
operationId: atlassianGetpipelinesforrepository
parameters:
- name: workspace
description: >-
This can either be the workspace ID (slug) or the workspace UUID
surrounded by curly-braces, for example `{workspace UUID}`.
required: true
in: path
schema:
type: string
- name: repo_slug
description: The repository.
required: true
in: path
schema:
type: string
responses:
'200':
description: The matching pipelines.
content:
application/json:
schema:
$ref: '#/components/schemas/paginated_pipelines'
x-atlassian-oauth2-scopes:
- state: Current
scheme: oauth2
scopes:
- read:pipeline:bitbucket
security:
- oauth2:
- pipeline
- basic: []
- api_key: []
post:
tags:
- Pipelines
summary: Atlassian Run A Pipeline
description: >-
Endpoint to create and initiate a pipeline.
There are a couple of
different options to initiate a pipeline, where the payload of the
request will determine which type of pipeline will be instantiated.
#
Trigger a Pipeline for a branch
One way to trigger pipelines is by
specifying the branch for which you want to trigger a pipeline.
The
specified branch will be used to determine which pipeline definition
from the `bitbucket-pipelines.yml` file will be applied to initiate the
pipeline. The pipeline will then do a clone of the repository and
checkout the latest revision of the specified branch.
###
Example
```
$ curl -X POST -is -u username:password \
-H
'Content-Type: application/json' \
https://api.bitbucket.org/2.0/repositories/jeroendr/meat-demo2/pipelines/
\
-d '
{
"target": {
"ref_type":
"branch",
"type": "pipeline_ref_target",
"ref_name":
"master"
}
}'
```
# Trigger a Pipeline for a commit on
a branch or tag
You can initiate a pipeline for a specific commit and
in the context of a specified reference (e.g. a branch, tag or
bookmark).
The specified reference will be used to determine which
pipeline definition from the bitbucket-pipelines.yml file will be
applied to initiate the pipeline. The pipeline will clone the repository
and then do a checkout the specified reference.
The following
reference types are supported:
* `branch`
*
`named_branch`
* `bookmark`
* `tag`
###
Example
```
$ curl -X POST -is -u username:password \
-H
'Content-Type: application/json' \
https://api.bitbucket.org/2.0/repositories/jeroendr/meat-demo2/pipelines/
\
-d '
{
"target": {
"commit": {
"type": "commit",
"hash":
"ce5b7431602f7cbba007062eeb55225c6e18e956"
},
"ref_type": "branch",
"type": "pipeline_ref_target",
"ref_name": "master"
}
}'
```
# Trigger a specific
pipeline definition for a commit
You can trigger a specific pipeline
that is defined in your `bitbucket-pipelines.yml` file for a specific
commit.
In addition to the commit revision, you specify the type and
pattern of the selector that identifies the pipeline definition. The
resulting pipeline will then clone the repository and checkout the
specified revision.
### Example
```
$ curl -X POST -is
-u username:password \
-H 'Content-Type: application/json' \
https://api.bitbucket.org/2.0/repositories/jeroendr/meat-demo2/pipelines/
\
-d '
{
"target": {
"commit": {
"hash":"a3c4e02c9a3755eccdc3764e6ea13facdf30f923",
"type":"commit"
},
"selector": {
"type":"custom",
"pattern":"Deploy to
production"
},
"type":"pipeline_commit_target"
}
}'
```
# Trigger a
specific pipeline definition for a commit on a branch or tag
You can
trigger a specific pipeline that is defined in your
`bitbucket-pipelines.yml` file for a specific commit in the context of a
specified reference.
In addition to the commit revision, you specify
the type and pattern of the selector that identifies the pipeline
definition, as well as the reference information. The resulting pipeline
will then clone the repository a checkout the specified
reference.
### Example
```
$ curl -X POST -is -u
username:password \
-H 'Content-Type: application/json' \
https://api.bitbucket.org/2.0/repositories/jeroendr/meat-demo2/pipelines/
\
-d '
{
"target": {
"commit": {
"hash":"a3c4e02c9a3755eccdc3764e6ea13facdf30f923",
"type":"commit"
},
"selector": {
"type": "custom",
"pattern": "Deploy to
production"
},
"type":
"pipeline_ref_target",
"ref_name": "master",
"ref_type": "branch"
}
}'
```
# Trigger a
custom pipeline with variables
In addition to triggering a custom
pipeline that is defined in your `bitbucket-pipelines.yml` file as shown
in the examples above, you can specify variables that will be available
for your build. In the request, provide a list of variables, specifying
the following for each variable: key, value, and whether it should be
secured or not (this field is optional and defaults to not
secured).
### Example
```
$ curl -X POST -is -u
username:password \
-H 'Content-Type: application/json' \
https://api.bitbucket.org/2.0/repositories/{workspace}/{repo_slug}/pipelines/
\
-d '
{
"target": {
"type":
"pipeline_ref_target",
"ref_type": "branch",
"ref_name": "master",
"selector": {
"type":
"custom",
"pattern": "Deploy to production"
}
},
"variables": [
{
"key":
"var1key",
"value": "var1value",
"secured":
true
},
{
"key": "var2key",
"value": "var2value"
}
]
}'
```
# Trigger
a pull request pipeline
You can also initiate a pipeline for a
specific pull request.
### Example
```
$ curl -X POST
-is -u username:password \
-H 'Content-Type: application/json'
\
https://api.bitbucket.org/2.0/repositories/{workspace}/{repo_slug}/pipelines/
\
-d '
{
"target": {
"type":
"pipeline_pullrequest_target",
"source":
"pull-request-branch",
"destination": "master",
"destination_commit": {
"hash": "9f848b7"
},
"commit": {
"hash": "1a372fc"
},
"pullrequest": {
"id": "3"
},
"selector": {
"type": "pull-requests",
"pattern":
"**"
}
}
}'
```
operationId: atlassianCreatepipelineforrepository
parameters:
- name: workspace
description: >-
This can either be the workspace ID (slug) or the workspace UUID
surrounded by curly-braces, for example `{workspace UUID}`.
required: true
in: path
schema:
type: string
- name: repo_slug
description: The repository.
required: true
in: path
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/pipeline'
description: The pipeline to initiate.
required: true
responses:
'201':
description: The initiated pipeline.
headers:
Location:
description: The URL of the newly created pipeline.
schema:
type: string
content:
application/json:
schema:
$ref: '#/components/schemas/pipeline'
'400':
description: >-
The account or repository is not enabled, the yml file does not
exist in the repository for the given revision, or the request body
contained invalid properties.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
'404':
description: The account or repository was not found.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
x-atlassian-oauth2-scopes:
- state: Current
scheme: oauth2
scopes:
- read:pipeline:bitbucket
- write:pipeline:bitbucket
security:
- oauth2:
- pipeline
- basic: []
- api_key: []
/repositories/{workspace}/{repo_slug}/pipelines-config/caches:
get:
tags:
- Pipelines
summary: Atlassian List Caches
description: Retrieve the repository pipelines caches.
operationId: atlassianGetrepositorypipelinecaches
parameters:
- name: workspace
description: The account.
required: true
in: path
schema:
type: string
- name: repo_slug
description: The repository.
required: true
in: path
schema:
type: string
responses:
'200':
description: The list of caches for the given repository.
content:
application/json:
schema:
$ref: '#/components/schemas/paginated_pipeline_caches'
'404':
description: The account or repository was not found.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
x-atlassian-oauth2-scopes:
- state: Current
scheme: oauth2
scopes:
- read:pipeline:bitbucket
security:
- oauth2:
- pipeline
- basic: []
- api_key: []
delete:
tags:
- Pipelines
summary: Atlassian Delete Caches
description: Delete repository cache versions by name.
operationId: atlassianDeleterepositorypipelinecaches
parameters:
- name: workspace
description: The account.
required: true
in: path
schema:
type: string
- name: repo_slug
description: The repository.
required: true
in: path
schema:
type: string
- name: name
description: The cache name.
required: true
in: query
schema:
type: string
responses:
'204':
description: The caches were deleted.
'404':
description: The workspace, repository or cache name was not found.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
x-atlassian-oauth2-scopes:
- state: Current
scheme: oauth2
scopes:
- write:pipeline:bitbucket
security:
- oauth2:
- pipeline:write
- basic: []
- api_key: []
/repositories/{workspace}/{repo_slug}/pipelines-config/caches/{cache_uuid}:
delete:
tags:
- Pipelines
summary: Atlassian Delete A Cache
description: Delete a repository cache.
operationId: atlassianDeleterepositorypipelinecache
parameters:
- name: workspace
description: The account.
required: true
in: path
schema:
type: string
- name: repo_slug
description: The repository.
required: true
in: path
schema:
type: string
- name: cache_uuid
description: The UUID of the cache to delete.
required: true
in: path
schema:
type: string
responses:
'204':
description: The cache was deleted.
'404':
description: >-
The workspace, repository or cache_uuid with given UUID was not
found.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
x-atlassian-oauth2-scopes:
- state: Current
scheme: oauth2
scopes:
- write:pipeline:bitbucket
security:
- oauth2:
- pipeline:write
- basic: []
- api_key: []
/repositories/{workspace}/{repo_slug}/pipelines-config/caches/{cache_uuid}/content-uri:
get:
tags:
- Pipelines
summary: Atlassian Get Cache Content Uri
description: Retrieve the URI of the content of the specified cache.
operationId: atlassianGetrepositorypipelinecachecontenturi
parameters:
- name: workspace
description: The account.
required: true
in: path
schema:
type: string
- name: repo_slug
description: The repository.
required: true
in: path
schema:
type: string
- name: cache_uuid
description: The UUID of the cache.
required: true
in: path
schema:
type: string
responses:
'200':
description: The cache content uri.
content:
application/json:
schema:
$ref: '#/components/schemas/pipeline_cache_content_uri'
'404':
description: >-
The workspace, repository or cache_uuid with given UUID was not
found.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
x-atlassian-oauth2-scopes:
- state: Current
scheme: oauth2
scopes:
- read:pipeline:bitbucket
security:
- oauth2:
- pipeline
- basic: []
- api_key: []
/repositories/{workspace}/{repo_slug}/pipelines/{pipeline_uuid}:
get:
tags:
- Pipelines
summary: Atlassian Get A Pipeline
description: Retrieve a specified pipeline
operationId: atlassianGetpipelineforrepository
parameters:
- name: workspace
description: >-
This can either be the workspace ID (slug) or the workspace UUID
surrounded by curly-braces, for example `{workspace UUID}`.
required: true
in: path
schema:
type: string
- name: repo_slug
description: The repository.
required: true
in: path
schema:
type: string
- name: pipeline_uuid
description: The pipeline UUID.
required: true
in: path
schema:
type: string
responses:
'200':
description: The pipeline.
content:
application/json:
schema:
$ref: '#/components/schemas/pipeline'
'404':
description: No account, repository or pipeline with the UUID provided exists.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
x-atlassian-oauth2-scopes:
- state: Current
scheme: oauth2
scopes:
- read:pipeline:bitbucket
security:
- oauth2:
- pipeline
- basic: []
- api_key: []
/repositories/{workspace}/{repo_slug}/pipelines/{pipeline_uuid}/steps:
get:
tags:
- Pipelines
summary: Atlassian List Steps For A Pipeline
description: Find steps for the given pipeline.
operationId: atlassianGetpipelinestepsforrepository
parameters:
- name: workspace
description: >-
This can either be the workspace ID (slug) or the workspace UUID
surrounded by curly-braces, for example `{workspace UUID}`.
required: true
in: path
schema:
type: string
- name: repo_slug
description: The repository.
required: true
in: path
schema:
type: string
- name: pipeline_uuid
description: The UUID of the pipeline.
required: true
in: path
schema:
type: string
responses:
'200':
description: The steps.
content:
application/json:
schema:
$ref: '#/components/schemas/paginated_pipeline_steps'
x-atlassian-oauth2-scopes:
- state: Current
scheme: oauth2
scopes:
- read:pipeline:bitbucket
security:
- oauth2:
- pipeline
- basic: []
- api_key: []
/repositories/{workspace}/{repo_slug}/pipelines/{pipeline_uuid}/steps/{step_uuid}:
get:
tags:
- Pipelines
summary: Atlassian Get A Step Of A Pipeline
description: Retrieve a given step of a pipeline.
operationId: atlassianGetpipelinestepforrepository
parameters:
- name: workspace
description: >-
This can either be the workspace ID (slug) or the workspace UUID
surrounded by curly-braces, for example `{workspace UUID}`.
required: true
in: path
schema:
type: string
- name: repo_slug
description: The repository.
required: true
in: path
schema:
type: string
- name: pipeline_uuid
description: The UUID of the pipeline.
required: true
in: path
schema:
type: string
- name: step_uuid
description: The UUID of the step.
required: true
in: path
schema:
type: string
responses:
'200':
description: The step.
content:
application/json:
schema:
$ref: '#/components/schemas/pipeline_step'
'404':
description: >-
No account, repository, pipeline or step with the UUID provided
exists for the pipeline with the UUID provided.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
x-atlassian-oauth2-scopes:
- state: Current
scheme: oauth2
scopes:
- read:pipeline:bitbucket
security:
- oauth2:
- pipeline
- basic: []
- api_key: []
/repositories/{workspace}/{repo_slug}/pipelines/{pipeline_uuid}/steps/{step_uuid}/log:
get:
tags:
- Pipelines
summary: Atlassian Get Log File For A Step
description: >-
Retrieve the log file for a given step of a pipeline.
This
endpoint supports (and encourages!) the use of [HTTP Range
requests](https://tools.ietf.org/html/rfc7233) to deal with potentially
very large log files.
operationId: atlassianGetpipelinesteplogforrepository
parameters:
- name: workspace
description: >-
This can either be the workspace ID (slug) or the workspace UUID
surrounded by curly-braces, for example `{workspace UUID}`.
required: true
in: path
schema:
type: string
- name: repo_slug
description: The repository.
required: true
in: path
schema:
type: string
- name: pipeline_uuid
description: The UUID of the pipeline.
required: true
in: path
schema:
type: string
- name: step_uuid
description: The UUID of the step.
required: true
in: path
schema:
type: string
responses:
'200':
description: The raw log file for this pipeline step.
'304':
description: The log has the same etag as the provided If-None-Match header.
content:
application/octet-stream:
schema:
$ref: '#/components/schemas/error'
'404':
description: >-
A pipeline with the given UUID does not exist, a step with the given
UUID does not exist in the pipeline or a log file does not exist for
the given step.
content:
application/octet-stream:
schema:
$ref: '#/components/schemas/error'
'416':
description: >-
The requested range does not exist for requests that specified the
[HTTP Range
header](https://tools.ietf.org/html/rfc7233#section-3.1).
content:
application/octet-stream:
schema:
$ref: '#/components/schemas/error'
x-atlassian-oauth2-scopes:
- state: Current
scheme: oauth2
scopes:
- read:pipeline:bitbucket
security:
- oauth2:
- pipeline
- basic: []
- api_key: []
/repositories/{workspace}/{repo_slug}/pipelines/{pipeline_uuid}/steps/{step_uuid}/logs/{log_uuid}:
get:
tags:
- Pipelines
summary: >-
Atlassian Get The Logs For The Build Container Or A Service Container For A Given Step Of A Pipeline
description: >-
Retrieve the log file for a build container or service
container.
This endpoint supports (and encourages!) the use of
[HTTP Range requests](https://tools.ietf.org/html/rfc7233) to deal with
potentially very large log files.
operationId: atlassianGetpipelinecontainerlog
parameters:
- name: workspace
description: >-
This can either be the workspace ID (slug) or the workspace UUID
surrounded by curly-braces, for example `{workspace UUID}`.
required: true
in: path
schema:
type: string
- name: repo_slug
description: The repository.
required: true
in: path
schema:
type: string
- name: pipeline_uuid
description: The UUID of the pipeline.
required: true
in: path
schema:
type: string
- name: step_uuid
description: The UUID of the step.
required: true
in: path
schema:
type: string
- name: log_uuid
description: >-
For the main build container specify the step UUID; for a service
container specify the service container UUID
required: true
in: path
schema:
type: string
responses:
'200':
description: The raw log file for the build container or service container.
'404':
description: >-
No account, repository, pipeline, step or log exist for the provided
path.
content:
application/octet-stream:
schema:
$ref: '#/components/schemas/error'
x-atlassian-oauth2-scopes:
- state: Current
scheme: oauth2
scopes:
- read:pipeline:bitbucket
security:
- oauth2:
- pipeline
- basic: []
- api_key: []
/repositories/{workspace}/{repo_slug}/pipelines/{pipeline_uuid}/steps/{step_uuid}/test_reports:
get:
tags:
- Pipelines
summary: 'Atlassian Get A Summary Of Test Reports For A Given Step Of A Pipeline'
operationId: atlassianGetpipelinetestreports
parameters:
- name: workspace
description: >-
This can either be the workspace ID (slug) or the workspace UUID
surrounded by curly-braces, for example `{workspace UUID}`.
required: true
in: path
schema:
type: string
- name: repo_slug
description: The repository.
required: true
in: path
schema:
type: string
- name: pipeline_uuid
description: The UUID of the pipeline.
required: true
in: path
schema:
type: string
- name: step_uuid
description: The UUID of the step.
required: true
in: path
schema:
type: string
responses:
'200':
description: A summary of test reports for this pipeline step.
'404':
description: >-
No account, repository, pipeline, step or test reports exist for the
provided path.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
x-atlassian-oauth2-scopes:
- state: Current
scheme: oauth2
scopes:
- read:pipeline:bitbucket
security:
- oauth2:
- pipeline
- basic: []
- api_key: []
description: Needs a more full description created.
/repositories/{workspace}/{repo_slug}/pipelines/{pipeline_uuid}/steps/{step_uuid}/test_reports/test_cases:
get:
tags:
- Pipelines
summary: 'Atlassian Get Test Cases For A Given Step Of A Pipeline'
operationId: atlassianGetpipelinetestreporttestcases
parameters:
- name: workspace
description: >-
This can either be the workspace ID (slug) or the workspace UUID
surrounded by curly-braces, for example `{workspace UUID}`.
required: true
in: path
schema:
type: string
- name: repo_slug
description: The repository.
required: true
in: path
schema:
type: string
- name: pipeline_uuid
description: The UUID of the pipeline.
required: true
in: path
schema:
type: string
- name: step_uuid
description: The UUID of the step.
required: true
in: path
schema:
type: string
responses:
'200':
description: Test cases for this pipeline step.
'404':
description: >-
No account, repository, pipeline, step or test reports exist for the
provided path.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
x-atlassian-oauth2-scopes:
- state: Current
scheme: oauth2
scopes:
- read:pipeline:bitbucket
security:
- oauth2:
- pipeline
- basic: []
- api_key: []
description: Needs a more full description created.
? /repositories/{workspace}/{repo_slug}/pipelines/{pipeline_uuid}/steps/{step_uuid}/test_reports/test_cases/{test_case_uuid}/test_case_reasons
: get:
tags:
- Pipelines
summary: >-
Atlassian Get Test Case Reasons Output For A Given Test Case In A Step Of A Pipeline
operationId: atlassianGetpipelinetestreporttestcasereasons
parameters:
- name: workspace
description: >-
This can either be the workspace ID (slug) or the workspace UUID
surrounded by curly-braces, for example `{workspace UUID}`.
required: true
in: path
schema:
type: string
- name: repo_slug
description: The repository.
required: true
in: path
schema:
type: string
- name: pipeline_uuid
description: The UUID of the pipeline.
required: true
in: path
schema:
type: string
- name: step_uuid
description: The UUID of the step.
required: true
in: path
schema:
type: string
- name: test_case_uuid
description: The UUID of the test case.
required: true
in: path
schema:
type: string
responses:
'200':
description: Test case reasons (output).
'404':
description: >-
No account, repository, pipeline, step or test case with the UUID
provided exists for the pipeline with the UUID provided.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
x-atlassian-oauth2-scopes:
- state: Current
scheme: oauth2
scopes:
- read:pipeline:bitbucket
security:
- oauth2:
- pipeline
- basic: []
- api_key: []
description: Needs a more full description created.
/repositories/{workspace}/{repo_slug}/pipelines/{pipeline_uuid}/stopPipeline:
post:
tags:
- Pipelines
summary: Atlassian Stop A Pipeline
description: >-
Signal the stop of a pipeline and all of its steps that not have
completed yet.
operationId: atlassianStoppipeline
parameters:
- name: workspace
description: >-
This can either be the workspace ID (slug) or the workspace UUID
surrounded by curly-braces, for example `{workspace UUID}`.
required: true
in: path
schema:
type: string
- name: repo_slug
description: The repository.
required: true
in: path
schema:
type: string
- name: pipeline_uuid
description: The UUID of the pipeline.
required: true
in: path
schema:
type: string
responses:
'204':
description: The pipeline has been signaled to stop.
'400':
description: The specified pipeline has already completed.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
'404':
description: >-
Either the account, repository or pipeline with the given UUID does
not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
x-atlassian-oauth2-scopes:
- state: Current
scheme: oauth2
scopes:
- write:pipeline:bitbucket
security:
- oauth2:
- pipeline:write
- basic: []
- api_key: []
/repositories/{workspace}/{repo_slug}/pipelines_config:
get:
tags:
- Pipelines
summary: Atlassian Get Configuration
description: Retrieve the repository pipelines configuration.
operationId: atlassianGetrepositorypipelineconfig
parameters:
- name: workspace
description: The account.
required: true
in: path
schema:
type: string
- name: repo_slug
description: The repository.
required: true
in: path
schema:
type: string
responses:
'200':
description: The repository pipelines configuration.
content:
application/json:
schema:
$ref: '#/components/schemas/pipelines_config'
x-atlassian-oauth2-scopes:
- state: Current
scheme: oauth2
scopes:
- admin:repository:bitbucket
security:
- oauth2:
- repository:admin
- basic: []
- api_key: []
put:
tags:
- Pipelines
summary: Atlassian Update Configuration
description: Update the pipelines configuration for a repository.
operationId: atlassianUpdaterepositorypipelineconfig
parameters:
- name: workspace
description: >-
This can either be the workspace ID (slug) or the workspace UUID
surrounded by curly-braces, for example `{workspace UUID}`.
required: true
in: path
schema:
type: string
- name: repo_slug
description: The repository.
required: true
in: path
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/pipelines_config'
description: The updated repository pipelines configuration.
required: true
responses:
'200':
description: The repository pipelines configuration was updated.
content:
application/json:
schema:
$ref: '#/components/schemas/pipelines_config'
x-atlassian-oauth2-scopes:
- state: Current
scheme: oauth2
scopes:
- admin:repository:bitbucket
security:
- oauth2:
- repository:admin
- basic: []
- api_key: []
/repositories/{workspace}/{repo_slug}/pipelines_config/build_number:
put:
tags:
- Pipelines
summary: Atlassian Update The Next Build Number
description: >-
Update the next build number that should be assigned to a pipeline. The
next build number that will be configured has to be strictly higher than
the current latest build number for this repository.
operationId: atlassianUpdaterepositorybuildnumber
parameters:
- name: workspace
description: >-
This can either be the workspace ID (slug) or the workspace UUID
surrounded by curly-braces, for example `{workspace UUID}`.
required: true
in: path
schema:
type: string
- name: repo_slug
description: The repository.
required: true
in: path
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/pipeline_build_number'
description: The build number to update.
required: true
responses:
'200':
description: The build number has been configured.
content:
application/json:
schema:
$ref: '#/components/schemas/pipeline_build_number'
'400':
description: >-
The update failed because the next number was invalid (it should be
higher than the current number).
content:
application/json:
schema:
$ref: '#/components/schemas/error'
'404':
description: The account or repository was not found.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
x-atlassian-oauth2-scopes:
- state: Current
scheme: oauth2
scopes:
- admin:pipeline:bitbucket
security:
- oauth2:
- pipeline:variable
- basic: []
- api_key: []
/repositories/{workspace}/{repo_slug}/pipelines_config/schedules:
post:
tags:
- Pipelines
summary: Atlassian Create A Schedule
description: Create a schedule for the given repository.
operationId: atlassianCreaterepositorypipelineschedule
parameters:
- name: workspace
description: >-
This can either be the workspace ID (slug) or the workspace UUID
surrounded by curly-braces, for example `{workspace UUID}`.
required: true
in: path
schema:
type: string
- name: repo_slug
description: The repository.
required: true
in: path
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/pipeline_schedule_post_request_body'
description: The schedule to create.
required: true
responses:
'201':
description: The created schedule.
content:
application/json:
schema:
$ref: '#/components/schemas/pipeline_schedule'
'400':
description: There were errors validating the request.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
'401':
description: The maximum limit of schedules for this repository was reached.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
'404':
description: The account or repository was not found.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
x-atlassian-oauth2-scopes:
- state: Current
scheme: oauth2
scopes:
- read:pipeline:bitbucket
- write:pipeline:bitbucket
security:
- oauth2:
- pipeline:write
- basic: []
- api_key: []
get:
tags:
- Pipelines
summary: Atlassian List Schedules
description: Retrieve the configured schedules for the given repository.
operationId: atlassianGetrepositorypipelineschedules
parameters:
- name: workspace
description: >-
This can either be the workspace ID (slug) or the workspace UUID
surrounded by curly-braces, for example `{workspace UUID}`.
required: true
in: path
schema:
type: string
- name: repo_slug
description: The repository.
required: true
in: path
schema:
type: string
responses:
'200':
description: The list of schedules.
content:
application/json:
schema:
$ref: '#/components/schemas/paginated_pipeline_schedules'
'404':
description: The account or repository was not found.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
x-atlassian-oauth2-scopes:
- state: Current
scheme: oauth2
scopes:
- read:pipeline:bitbucket
security:
- oauth2:
- pipeline
- basic: []
- api_key: []
/repositories/{workspace}/{repo_slug}/pipelines_config/schedules/{schedule_uuid}:
get:
tags:
- Pipelines
summary: Atlassian Get A Schedule
description: Retrieve a schedule by its UUID.
operationId: atlassianGetrepositorypipelineschedule
parameters:
- name: workspace
description: >-
This can either be the workspace ID (slug) or the workspace UUID
surrounded by curly-braces, for example `{workspace UUID}`.
required: true
in: path
schema:
type: string
- name: repo_slug
description: The repository.
required: true
in: path
schema:
type: string
- name: schedule_uuid
description: The uuid of the schedule.
required: true
in: path
schema:
type: string
responses:
'200':
description: The requested schedule.
content:
application/json:
schema:
$ref: '#/components/schemas/pipeline_schedule'
'404':
description: The account, repository or schedule was not found.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
x-atlassian-oauth2-scopes:
- state: Current
scheme: oauth2
scopes:
- read:pipeline:bitbucket
security:
- oauth2:
- pipeline
- basic: []
- api_key: []
put:
tags:
- Pipelines
summary: Atlassian Update A Schedule
description: Update a schedule.
operationId: atlassianUpdaterepositorypipelineschedule
parameters:
- name: workspace
description: >-
This can either be the workspace ID (slug) or the workspace UUID
surrounded by curly-braces, for example `{workspace UUID}`.
required: true
in: path
schema:
type: string
- name: repo_slug
description: The repository.
required: true
in: path
schema:
type: string
- name: schedule_uuid
description: The uuid of the schedule.
required: true
in: path
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/pipeline_schedule_put_request_body'
description: The schedule to update.
required: true
responses:
'200':
description: The schedule is updated.
content:
application/json:
schema:
$ref: '#/components/schemas/pipeline_schedule'
'404':
description: The account, repository or schedule was not found.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
x-atlassian-oauth2-scopes:
- state: Current
scheme: oauth2
scopes:
- read:pipeline:bitbucket
- write:pipeline:bitbucket
security:
- oauth2:
- pipeline:write
- basic: []
- api_key: []
delete:
tags:
- Pipelines
summary: Atlassian Delete A Schedule
description: Delete a schedule.
operationId: atlassianDeleterepositorypipelineschedule
parameters:
- name: workspace
description: >-
This can either be the workspace ID (slug) or the workspace UUID
surrounded by curly-braces, for example `{workspace UUID}`.
required: true
in: path
schema:
type: string
- name: repo_slug
description: The repository.
required: true
in: path
schema:
type: string
- name: schedule_uuid
description: The uuid of the schedule.
required: true
in: path
schema:
type: string
responses:
'204':
description: The schedule was deleted.
'404':
description: The account, repository or schedule was not found.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
x-atlassian-oauth2-scopes:
- state: Current
scheme: oauth2
scopes:
- write:pipeline:bitbucket
security:
- oauth2:
- pipeline:write
- basic: []
- api_key: []
/repositories/{workspace}/{repo_slug}/pipelines_config/schedules/{schedule_uuid}/executions:
get:
tags:
- Pipelines
summary: Atlassian List Executions Of A Schedule
description: Retrieve the executions of a given schedule.
operationId: atlassianGetrepositorypipelinescheduleexecutions
parameters:
- name: workspace
description: >-
This can either be the workspace ID (slug) or the workspace UUID
surrounded by curly-braces, for example `{workspace UUID}`.
required: true
in: path
schema:
type: string
- name: repo_slug
description: The repository.
required: true
in: path
schema:
type: string
- name: schedule_uuid
description: The uuid of the schedule.
required: true
in: path
schema:
type: string
responses:
'200':
description: The list of executions of a schedule.
content:
application/json:
schema:
$ref: '#/components/schemas/paginated_pipeline_schedule_executions'
'404':
description: The account or repository was not found.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
x-atlassian-oauth2-scopes:
- state: Current
scheme: oauth2
scopes:
- read:pipeline:bitbucket
security:
- oauth2:
- pipeline
- basic: []
- api_key: []
/repositories/{workspace}/{repo_slug}/pipelines_config/ssh/key_pair:
get:
tags:
- Pipelines
summary: Atlassian Get Ssh Key Pair
description: >-
Retrieve the repository SSH key pair excluding the SSH private key. The
private key is a write only field and will never be exposed in the logs
or the REST API.
operationId: atlassianGetrepositorypipelinesshkeypair
parameters:
- name: workspace
description: >-
This can either be the workspace ID (slug) or the workspace UUID
surrounded by curly-braces, for example `{workspace UUID}`.
required: true
in: path
schema:
type: string
- name: repo_slug
description: The repository.
required: true
in: path
schema:
type: string
responses:
'200':
description: The SSH key pair.
content:
application/json:
schema:
$ref: '#/components/schemas/pipeline_ssh_key_pair'
'404':
description: The account, repository or SSH key pair was not found.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
x-atlassian-oauth2-scopes:
- state: Current
scheme: oauth2
scopes:
- read:pipeline:bitbucket
security:
- oauth2:
- pipeline
- basic: []
- api_key: []
put:
tags:
- Pipelines
summary: Atlassian Update Ssh Key Pair
description: >-
Create or update the repository SSH key pair. The private key will be
set as a default SSH identity in your build container.
operationId: atlassianUpdaterepositorypipelinekeypair
parameters:
- name: workspace
description: >-
This can either be the workspace ID (slug) or the workspace UUID
surrounded by curly-braces, for example `{workspace UUID}`.
required: true
in: path
schema:
type: string
- name: repo_slug
description: The repository.
required: true
in: path
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/pipeline_ssh_key_pair'
description: The created or updated SSH key pair.
required: true
responses:
'200':
description: The SSH key pair was created or updated.
content:
application/json:
schema:
$ref: '#/components/schemas/pipeline_ssh_key_pair'
'404':
description: The account, repository or SSH key pair was not found.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
x-atlassian-oauth2-scopes:
- state: Current
scheme: oauth2
scopes:
- admin:pipeline:bitbucket
security:
- oauth2:
- pipeline:variable
- basic: []
- api_key: []
delete:
tags:
- Pipelines
summary: Atlassian Delete Ssh Key Pair
description: Delete the repository SSH key pair.
operationId: atlassianDeleterepositorypipelinekeypair
parameters:
- name: workspace
description: >-
This can either be the workspace ID (slug) or the workspace UUID
surrounded by curly-braces, for example `{workspace UUID}`.
required: true
in: path
schema:
type: string
- name: repo_slug
description: The repository.
required: true
in: path
schema:
type: string
responses:
'204':
description: The SSH key pair was deleted.
'404':
description: The account, repository or SSH key pair was not found.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
x-atlassian-oauth2-scopes:
- state: Current
scheme: oauth2
scopes:
- admin:pipeline:bitbucket
security:
- oauth2:
- pipeline:variable
- basic: []
- api_key: []
/repositories/{workspace}/{repo_slug}/pipelines_config/ssh/known_hosts:
get:
tags:
- Pipelines
summary: Atlassian List Known Hosts
description: Find repository level known hosts.
operationId: atlassianGetrepositorypipelineknownhosts
parameters:
- name: workspace
description: >-
This can either be the workspace ID (slug) or the workspace UUID
surrounded by curly-braces, for example `{workspace UUID}`.
required: true
in: path
schema:
type: string
- name: repo_slug
description: The repository.
required: true
in: path
schema:
type: string
responses:
'200':
description: The retrieved known hosts.
content:
application/json:
schema:
$ref: '#/components/schemas/paginated_pipeline_known_hosts'
x-atlassian-oauth2-scopes:
- state: Current
scheme: oauth2
scopes:
- read:pipeline:bitbucket
security:
- oauth2:
- pipeline
- basic: []
- api_key: []
post:
tags:
- Pipelines
summary: Atlassian Create A Known Host
description: Create a repository level known host.
operationId: atlassianCreaterepositorypipelineknownhost
parameters:
- name: workspace
description: >-
This can either be the workspace ID (slug) or the workspace UUID
surrounded by curly-braces, for example `{workspace UUID}`.
required: true
in: path
schema:
type: string
- name: repo_slug
description: The repository.
required: true
in: path
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/pipeline_known_host'
description: The known host to create.
required: true
responses:
'201':
description: The known host was created.
headers:
Location:
description: The URL of the newly created pipeline known host.
schema:
type: string
content:
application/json:
schema:
$ref: '#/components/schemas/pipeline_known_host'
'404':
description: The account or repository does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
'409':
description: A known host with the provided hostname already exists.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
x-atlassian-oauth2-scopes:
- state: Current
scheme: oauth2
scopes:
- admin:pipeline:bitbucket
security:
- oauth2:
- pipeline:variable
- basic: []
- api_key: []
/repositories/{workspace}/{repo_slug}/pipelines_config/ssh/known_hosts/{known_host_uuid}:
get:
tags:
- Pipelines
summary: Atlassian Get A Known Host
description: Retrieve a repository level known host.
operationId: atlassianGetrepositorypipelineknownhost
parameters:
- name: workspace
description: >-
This can either be the workspace ID (slug) or the workspace UUID
surrounded by curly-braces, for example `{workspace UUID}`.
required: true
in: path
schema:
type: string
- name: repo_slug
description: The repository.
required: true
in: path
schema:
type: string
- name: known_host_uuid
description: The UUID of the known host to retrieve.
required: true
in: path
schema:
type: string
responses:
'200':
description: The known host.
content:
application/json:
schema:
$ref: '#/components/schemas/pipeline_known_host'
'404':
description: >-
The account, repository or known host with the specified UUID was
not found.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
x-atlassian-oauth2-scopes:
- state: Current
scheme: oauth2
scopes:
- read:pipeline:bitbucket
security:
- oauth2:
- pipeline
- basic: []
- api_key: []
put:
tags:
- Pipelines
summary: Atlassian Update A Known Host
description: Update a repository level known host.
operationId: atlassianUpdaterepositorypipelineknownhost
parameters:
- name: workspace
description: >-
This can either be the workspace ID (slug) or the workspace UUID
surrounded by curly-braces, for example `{workspace UUID}`.
required: true
in: path
schema:
type: string
- name: repo_slug
description: The repository.
required: true
in: path
schema:
type: string
- name: known_host_uuid
description: The UUID of the known host to update.
required: true
in: path
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/pipeline_known_host'
description: The updated known host.
required: true
responses:
'200':
description: The known host was updated.
content:
application/json:
schema:
$ref: '#/components/schemas/pipeline_known_host'
'404':
description: >-
The account, repository or known host with the given UUID was not
found.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
x-atlassian-oauth2-scopes:
- state: Current
scheme: oauth2
scopes:
- admin:pipeline:bitbucket
security:
- oauth2:
- pipeline:variable
- basic: []
- api_key: []
delete:
tags:
- Pipelines
summary: Atlassian Delete A Known Host
description: Delete a repository level known host.
operationId: atlassianDeleterepositorypipelineknownhost
parameters:
- name: workspace
description: >-
This can either be the workspace ID (slug) or the workspace UUID
surrounded by curly-braces, for example `{workspace UUID}`.
required: true
in: path
schema:
type: string
- name: repo_slug
description: The repository.
required: true
in: path
schema:
type: string
- name: known_host_uuid
description: The UUID of the known host to delete.
required: true
in: path
schema:
type: string
responses:
'204':
description: The known host was deleted.
'404':
description: The account, repository or known host with given UUID was not found.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
x-atlassian-oauth2-scopes:
- state: Current
scheme: oauth2
scopes:
- admin:pipeline:bitbucket
security:
- oauth2:
- pipeline:variable
- basic: []
- api_key: []
/repositories/{workspace}/{repo_slug}/pipelines_config/variables:
get:
tags:
- Pipelines
summary: Atlassian List Variables For A Repository
description: Find repository level variables.
operationId: atlassianGetrepositorypipelinevariables
parameters:
- name: workspace
description: >-
This can either be the workspace ID (slug) or the workspace UUID
surrounded by curly-braces, for example `{workspace UUID}`.
required: true
in: path
schema:
type: string
- name: repo_slug
description: The repository.
required: true
in: path
schema:
type: string
responses:
'200':
description: The retrieved variables.
content:
application/json:
schema:
$ref: '#/components/schemas/paginated_pipeline_variables'
x-atlassian-oauth2-scopes:
- state: Current
scheme: oauth2
scopes:
- read:pipeline:bitbucket
security:
- oauth2:
- pipeline
- basic: []
- api_key: []
post:
tags:
- Pipelines
summary: Atlassian Create A Variable For A Repository
description: Create a repository level variable.
operationId: atlassianCreaterepositorypipelinevariable
parameters:
- name: workspace
description: >-
This can either be the workspace ID (slug) or the workspace UUID
surrounded by curly-braces, for example `{workspace UUID}`.
required: true
in: path
schema:
type: string
- name: repo_slug
description: The repository.
required: true
in: path
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/pipeline_variable'
description: The variable to create.
required: true
responses:
'201':
description: The variable was created.
headers:
Location:
description: The URL of the newly created pipeline variable.
schema:
type: string
content:
application/json:
schema:
$ref: '#/components/schemas/pipeline_variable'
'404':
description: The account or repository does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
'409':
description: A variable with the provided key already exists.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
x-atlassian-oauth2-scopes:
- state: Current
scheme: oauth2
scopes:
- admin:pipeline:bitbucket
security:
- oauth2:
- pipeline:variable
- basic: []
- api_key: []
/repositories/{workspace}/{repo_slug}/pipelines_config/variables/{variable_uuid}:
get:
tags:
- Pipelines
summary: Atlassian Get A Variable For A Repository
description: Retrieve a repository level variable.
operationId: atlassianGetrepositorypipelinevariable
parameters:
- name: workspace
description: >-
This can either be the workspace ID (slug) or the workspace UUID
surrounded by curly-braces, for example `{workspace UUID}`.
required: true
in: path
schema:
type: string
- name: repo_slug
description: The repository.
required: true
in: path
schema:
type: string
- name: variable_uuid
description: The UUID of the variable to retrieve.
required: true
in: path
schema:
type: string
responses:
'200':
description: The variable.
content:
application/json:
schema:
$ref: '#/components/schemas/pipeline_variable'
'404':
description: >-
The account, repository or variable with the specified UUID was not
found.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
x-atlassian-oauth2-scopes:
- state: Current
scheme: oauth2
scopes:
- read:pipeline:bitbucket
security:
- oauth2:
- pipeline
- basic: []
- api_key: []
put:
tags:
- Pipelines
summary: Atlassian Update A Variable For A Repository
description: Update a repository level variable.
operationId: atlassianUpdaterepositorypipelinevariable
parameters:
- name: workspace
description: >-
This can either be the workspace ID (slug) or the workspace UUID
surrounded by curly-braces, for example `{workspace UUID}`.
required: true
in: path
schema:
type: string
- name: repo_slug
description: The repository.
required: true
in: path
schema:
type: string
- name: variable_uuid
description: The UUID of the variable to update.
required: true
in: path
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/pipeline_variable'
description: The updated variable
required: true
responses:
'200':
description: The variable was updated.
content:
application/json:
schema:
$ref: '#/components/schemas/pipeline_variable'
'404':
description: >-
The account, repository or variable with the given UUID was not
found.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
x-atlassian-oauth2-scopes:
- state: Current
scheme: oauth2
scopes:
- admin:pipeline:bitbucket
security:
- oauth2:
- pipeline:variable
- basic: []
- api_key: []
delete:
tags:
- Pipelines
summary: Atlassian Delete A Variable For A Repository
description: Delete a repository level variable.
operationId: atlassianDeleterepositorypipelinevariable
parameters:
- name: workspace
description: >-
This can either be the workspace ID (slug) or the workspace UUID
surrounded by curly-braces, for example `{workspace UUID}`.
required: true
in: path
schema:
type: string
- name: repo_slug
description: The repository.
required: true
in: path
schema:
type: string
- name: variable_uuid
description: The UUID of the variable to delete.
required: true
in: path
schema:
type: string
responses:
'204':
description: The variable was deleted.
'404':
description: The account, repository or variable with given UUID was not found.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
x-atlassian-oauth2-scopes:
- state: Current
scheme: oauth2
scopes:
- admin:pipeline:bitbucket
security:
- oauth2:
- pipeline:variable
- basic: []
- api_key: []
/repositories/{workspace}/{repo_slug}/properties/{app_key}/{property_name}:
put:
responses:
'204':
description: An empty response.
operationId: atlassianUpdaterepositoryhostedpropertyvalue
summary: Atlassian Update A Repository Application Property
description: >-
Update an [application
property](/cloud/bitbucket/application-properties/) value stored against
a repository.
parameters:
- required: true
in: path
name: workspace
description: >-
The repository container; either the workspace slug or the UUID in
curly braces.
schema:
type: string
- required: true
in: path
name: repo_slug
description: The repository.
schema:
type: string
- required: true
in: path
name: app_key
description: The key of the Connect app.
schema:
type: string
- required: true
in: path
name: property_name
description: The name of the property.
schema:
type: string
requestBody:
$ref: '#/components/requestBodies/application_property'
tags:
- Properties
security:
- oauth2: []
- basic: []
- api_key: []
delete:
responses:
'204':
description: An empty response.
operationId: atlassianDeleterepositoryhostedpropertyvalue
summary: Atlassian Delete A Repository Application Property
description: >-
Delete an [application
property](/cloud/bitbucket/application-properties/) value stored against
a repository.
parameters:
- required: true
in: path
name: workspace
description: >-
The repository container; either the workspace slug or the UUID in
curly braces.
schema:
type: string
- required: true
in: path
name: repo_slug
description: The repository.
schema:
type: string
- required: true
in: path
name: app_key
description: The key of the Connect app.
schema:
type: string
- required: true
in: path
name: property_name
description: The name of the property.
schema:
type: string
tags:
- Properties
security:
- oauth2: []
- basic: []
- api_key: []
get:
responses:
'200':
description: The value of the property.
content:
application/json:
schema:
$ref: '#/components/schemas/application_property'
operationId: atlassianGetrepositoryhostedpropertyvalue
summary: Atlassian Get A Repository Application Property
description: >-
Retrieve an [application
property](/cloud/bitbucket/application-properties/) value stored against
a repository.
parameters:
- required: true
in: path
name: workspace
description: >-
The repository container; either the workspace slug or the UUID in
curly braces.
schema:
type: string
- required: true
in: path
name: repo_slug
description: The repository.
schema:
type: string
- required: true
in: path
name: app_key
description: The key of the Connect app.
schema:
type: string
- required: true
in: path
name: property_name
description: The name of the property.
schema:
type: string
tags:
- Properties
security:
- oauth2: []
- basic: []
- api_key: []
/repositories/{workspace}/{repo_slug}/pullrequests:
get:
tags:
- Pullrequests
description: >-
Returns all pull requests on the specified repository.
By default
only open pull requests are returned. This can be controlled
using
the `state` query parameter. To retrieve pull requests that are
in
one of multiple states, repeat the `state` parameter for
each
individual state.
This endpoint also supports filtering
and sorting of the results. See
[filtering and
sorting](/cloud/bitbucket/rest/intro/#filtering) for more details.
summary: Atlassian List Pull Requests
responses:
'200':
description: All pull requests on the specified repository.
content:
application/json:
schema:
$ref: '#/components/schemas/paginated_pullrequests'
'401':
description: If the repository is private and the request was not authenticated.
'404':
description: If the specified repository does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
parameters:
- name: state
in: query
description: >-
Only return pull requests that are in this state. This parameter can
be repeated.
schema:
type: string
enum:
- OPEN
- MERGED
- DECLINED
- SUPERSEDED
security:
- oauth2:
- pullrequest
- basic: []
- api_key: []
x-atlassian-oauth2-scopes:
- state: Current
scheme: oauth2
scopes:
- read:pullrequest:bitbucket
operationId: atlassianListPullRequests
post:
tags:
- Pullrequests
description: >-
Creates a new pull request where the destination repository is
this
repository and the author is the authenticated user.
The minimum
required fields to create a pull request are `title` and
`source`,
specified by a branch name.
```
curl
https://api.bitbucket.org/2.0/repositories/my-workspace/my-repository/pullrequests
\
-u my-username:my-password \
--request POST \
--header 'Content-Type: application/json' \
--data '{
"title": "My Title",
"source": {
"branch":
{
"name": "staging"
}
}
}'
```
If the pull request's `destination` is not
specified, it will default
to the `repository.mainbranch`. To open a
pull request to a
different branch, say from a feature branch to a
staging branch,
specify a `destination` (same format as the
`source`):
```
{
"title": "My Title",
"source":
{
"branch": {
"name":
"my-feature-branch"
}
},
"destination":
{
"branch": {
"name": "staging"
}
}
}
```
Reviewers can be specified by adding an
array of user objects as the
`reviewers`
property.
```
{
"title": "My Title",
"source":
{
"branch": {
"name":
"my-feature-branch"
}
},
"reviewers":
[
{
"uuid":
"{504c3b62-8120-4f0c-a7bc-87800b9d6f70}"
}
]
}
```
Other fields:
* `description` - a
string
* `close_source_branch` - boolean that specifies if the source
branch should be closed upon merging
summary: Atlassian Create A Pull Request
responses:
'201':
description: The newly created pull request.
headers:
Location:
description: The URL of new newly created pull request.
schema:
type: string
content:
application/json:
schema:
$ref: '#/components/schemas/pullrequest'
'400':
description: >-
If the input document was invalid, or if the caller lacks the
privilege to create repositories under the targeted account.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
'401':
description: If the request was not authenticated.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/pullrequest'
description: >-
The new pull request.
The request URL you POST to becomes the destination repository URL.
For this reason, you must specify an explicit source repository in the
request object if you want to pull from a different repository (fork).
Since not all elements are required or even mutable, you only need to
include the elements you want to initialize, such as the source branch
and the title.
security:
- oauth2:
- pullrequest:write
- basic: []
- api_key: []
x-atlassian-oauth2-scopes:
- state: Current
scheme: oauth2
scopes:
- read:pullrequest:bitbucket
- write:pullrequest:bitbucket
operationId: atlassianCreateAPullRequest
parameters:
- name: repo_slug
in: path
description: |
This can either be the repository slug or the UUID of the repository,
surrounded by curly-braces, for example: `{repository UUID}`.
required: true
schema:
type: string
- name: workspace
in: path
description: |
This can either be the workspace ID (slug) or the workspace UUID
surrounded by curly-braces, for example: `{workspace UUID}`.
required: true
schema:
type: string
/repositories/{workspace}/{repo_slug}/pullrequests/activity:
get:
tags:
- Pullrequests
description: >-
Returns a paginated list of the pull request's activity log.
This
handler serves both a v20 and internal endpoint. The v20
endpoint
returns reviewer comments, updates, approvals and request
changes. The internal
endpoint includes those plus tasks and
attachments.
Comments created on a file or a line of code have an
inline property.
Comment example:
```
{
"pagelen":
20,
"values": [
{
"comment":
{
"links": {
"self":
{
"href":
"https://api.bitbucket.org/2.0/repositories/atlassian/atlaskit-mk-2/pullrequests/5695/comments/118571088"
},
"html": {
"href":
"https://bitbucket.org/atlassian/atlaskit-mk-2/pull-requests/5695/_/diff#comment-118571088"
}
},
"deleted":
false,
"pullrequest": {
"type": "pullrequest",
"id":
5695,
"links": {
"self": {
"href":
"https://api.bitbucket.org/2.0/repositories/atlassian/atlaskit-mk-2/pullrequests/5695"
},
"html": {
"href":
"https://bitbucket.org/atlassian/atlaskit-mk-2/pull-requests/5695"
}
},
"title":
"username/NONE: small change from onFocus to onClick to handle tabbing
through the page and not expand the editor unless a click event triggers
it"
},
"content":
{
"raw": "inline with to a dn from
lines",
"markup":
"markdown",
"html": "inline with to a dn from
lines",
"type": "rendered"
},
"created_on":
"2019-09-27T00:33:46.039178+00:00",
"user":
{
"display_name": "Name
Lastname",
"uuid": "{}",
"links": {
"self":
{
"href":
"https://api.bitbucket.org/2.0/users/%7B%7D"
},
"html": {
"href": "https://bitbucket.org/%7B%7D/"
},
"avatar": {
"href":
"https://avatar-management--avatars.us-west-2.prod.public.atl-paas.net/:/128"
}
},
"type":
"user",
"nickname":
"Name",
"account_id": ""
},
"created_on":
"2019-09-27T00:33:46.039178+00:00",
"user":
{
"display_name": "Name
Lastname",
"uuid": "{}",
"links": {
"self":
{
"href":
"https://api.bitbucket.org/2.0/users/%7B%7D"
},
"html": {
"href": "https://bitbucket.org/%7B%7D/"
},
"avatar": {
"href":
"https://avatar-management--avatars.us-west-2.prod.public.atl-paas.net/:/128"
}
},
"type":
"user",
"nickname":
"Name",
"account_id": ""
},
"updated_on":
"2019-09-27T00:33:46.055384+00:00",
"inline":
{
"context_lines": "",
"to": null,
"path": "",
"outdated": false,
"from": 211
},
"type": "pullrequest_comment",
"id": 118571088
},
"pull_request":
{
"type": "pullrequest",
"id":
5695,
"links": {
"self":
{
"href":
"https://api.bitbucket.org/2.0/repositories/atlassian/atlaskit-mk-2/pullrequests/5695"
},
"html": {
"href":
"https://bitbucket.org/atlassian/atlaskit-mk-2/pull-requests/5695"
}
},
"title": "username/NONE:
small change from onFocus to onClick to handle tabbing through the page
and not expand the editor unless a click event triggers
it"
}
}
]
}
```
Updates
include a state property of OPEN, MERGED, or DECLINED.
Update
example:
```
{
"pagelen": 20,
"values": [
{
"update": {
"description":
"",
"title": "username/NONE: small change from
onFocus to onClick to handle tabbing through the page and not expand the
editor unless a click event triggers it",
"destination": {
"commit":
{
"type":
"commit",
"hash":
"6a2c16e4a152",
"links":
{
"self":
{
"href":
"https://api.bitbucket.org/2.0/repositories/atlassian/atlaskit-mk-2/commit/6a2c16e4a152"
},
"html":
{
"href":
"https://bitbucket.org/atlassian/atlaskit-mk-2/commits/6a2c16e4a152"
}
}
},
"branch": {
"name":
"master"
},
"repository":
{
"name":
"Atlaskit-MK-2",
"type":
"repository",
"full_name":
"atlassian/atlaskit-mk-2",
"links":
{
"self":
{
"href":
"https://api.bitbucket.org/2.0/repositories/atlassian/atlaskit-mk-2"
},
"html":
{
"href":
"https://bitbucket.org/atlassian/atlaskit-mk-2"
},
"avatar":
{
"href":
"https://bytebucket.org/ravatar/%7B%7D?ts=js"
}
},
"uuid":
"{}"
}
},
"reason": "",
"source": {
"commit": {
"type":
"commit",
"hash":
"728c8bad1813",
"links":
{
"self":
{
"href":
"https://api.bitbucket.org/2.0/repositories/atlassian/atlaskit-mk-2/commit/728c8bad1813"
},
"html":
{
"href":
"https://bitbucket.org/atlassian/atlaskit-mk-2/commits/728c8bad1813"
}
}
},
"branch": {
"name":
"username/NONE-add-onClick-prop-for-accessibility"
},
"repository": {
"name": "Atlaskit-MK-2",
"type":
"repository",
"full_name":
"atlassian/atlaskit-mk-2",
"links":
{
"self":
{
"href":
"https://api.bitbucket.org/2.0/repositories/atlassian/atlaskit-mk-2"
},
"html":
{
"href":
"https://bitbucket.org/atlassian/atlaskit-mk-2"
},
"avatar":
{
"href":
"https://bytebucket.org/ravatar/%7B%7D?ts=js"
}
},
"uuid":
"{}"
}
},
"state": "OPEN",
"author": {
"display_name": "Name Lastname",
"uuid":
"{}",
"links": {
"self": {
"href":
"https://api.bitbucket.org/2.0/users/%7B%7D"
},
"html": {
"href": "https://bitbucket.org/%7B%7D/"
},
"avatar": {
"href":
"https://avatar-management--avatars.us-west-2.prod.public.atl-paas.net/:/128"
}
},
"type":
"user",
"nickname":
"Name",
"account_id": ""
},
"date":
"2019-05-10T06:48:25.305565+00:00"
},
"pull_request": {
"type":
"pullrequest",
"id": 5695,
"links": {
"self": {
"href":
"https://api.bitbucket.org/2.0/repositories/atlassian/atlaskit-mk-2/pullrequests/5695"
},
"html": {
"href":
"https://bitbucket.org/atlassian/atlaskit-mk-2/pull-requests/5695"
}
},
"title": "username/NONE:
small change from onFocus to onClick to handle tabbing through the page
and not expand the editor unless a click event triggers
it"
}
}
]
}
```
Approval
example:
```
{
"pagelen": 20,
"values": [
{
"approval": {
"date":
"2019-09-27T00:37:19.849534+00:00",
"pullrequest":
{
"type": "pullrequest",
"id": 5695,
"links": {
"self": {
"href":
"https://api.bitbucket.org/2.0/repositories/atlassian/atlaskit-mk-2/pullrequests/5695"
},
"html": {
"href":
"https://bitbucket.org/atlassian/atlaskit-mk-2/pull-requests/5695"
}
},
"title":
"username/NONE: small change from onFocus to onClick to handle tabbing
through the page and not expand the editor unless a click event triggers
it"
},
"user":
{
"display_name": "Name
Lastname",
"uuid": "{}",
"links": {
"self":
{
"href":
"https://api.bitbucket.org/2.0/users/%7B%7D"
},
"html": {
"href": "https://bitbucket.org/%7B%7D/"
},
"avatar": {
"href":
"https://avatar-management--avatars.us-west-2.prod.public.atl-paas.net/:/128"
}
},
"type":
"user",
"nickname":
"Name",
"account_id": ""
}
},
"pull_request": {
"type": "pullrequest",
"id": 5695,
"links": {
"self": {
"href":
"https://api.bitbucket.org/2.0/repositories/atlassian/atlaskit-mk-2/pullrequests/5695"
},
"html": {
"href":
"https://bitbucket.org/atlassian/atlaskit-mk-2/pull-requests/5695"
}
},
"title": "username/NONE:
small change from onFocus to onClick to handle tabbing through the page
and not expand the editor unless a click event triggers
it"
}
}
]
}
```
summary: Atlassian List A Pull Request Activity Log
responses:
'200':
description: The pull request activity log
'401':
description: If the repository is private and the request was not authenticated.
'404':
description: If the specified repository does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
security:
- oauth2:
- pullrequest
- basic: []
- api_key: []
x-atlassian-oauth2-scopes:
- state: Current
scheme: oauth2
scopes:
- read:pullrequest:bitbucket
operationId: atlassianListAPullRequestActivityLog
parameters:
- name: repo_slug
in: path
description: |
This can either be the repository slug or the UUID of the repository,
surrounded by curly-braces, for example: `{repository UUID}`.
required: true
schema:
type: string
- name: workspace
in: path
description: |
This can either be the workspace ID (slug) or the workspace UUID
surrounded by curly-braces, for example: `{workspace UUID}`.
required: true
schema:
type: string
/repositories/{workspace}/{repo_slug}/pullrequests/{pull_request_id}:
get:
tags:
- Pullrequests
description: Returns the specified pull request.
summary: Atlassian Get A Pull Request
responses:
'200':
description: The pull request object
content:
application/json:
schema:
$ref: '#/components/schemas/pullrequest'
'401':
description: If the repository is private and the request was not authenticated.
'404':
description: If the repository or pull request does not exist
content:
application/json:
schema:
$ref: '#/components/schemas/error'
security:
- oauth2:
- pullrequest
- basic: []
- api_key: []
x-atlassian-oauth2-scopes:
- state: Current
scheme: oauth2
scopes:
- read:pullrequest:bitbucket
operationId: atlassianGetAPullRequest
put:
tags:
- Pullrequests
description: >-
Mutates the specified pull request.
This can be used to change
the pull request's branches or description.
Only open pull
requests can be mutated.
summary: Atlassian Update A Pull Request
responses:
'200':
description: The updated pull request
content:
application/json:
schema:
$ref: '#/components/schemas/pullrequest'
'400':
description: If the input document was invalid.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
'401':
description: If the request was not authenticated.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
'404':
description: If the repository or pull request id does not exist
content:
application/json:
schema:
$ref: '#/components/schemas/error'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/pullrequest'
description: The pull request that is to be updated.
security:
- oauth2:
- pullrequest:write
- basic: []
- api_key: []
x-atlassian-oauth2-scopes:
- state: Current
scheme: oauth2
scopes:
- read:pullrequest:bitbucket
- write:pullrequest:bitbucket
operationId: atlassianUpdateAPullRequest
parameters:
- name: pull_request_id
in: path
description: The id of the pull request.
required: true
schema:
type: integer
- name: repo_slug
in: path
description: |
This can either be the repository slug or the UUID of the repository,
surrounded by curly-braces, for example: `{repository UUID}`.
required: true
schema:
type: string
- name: workspace
in: path
description: |
This can either be the workspace ID (slug) or the workspace UUID
surrounded by curly-braces, for example: `{workspace UUID}`.
required: true
schema:
type: string
/repositories/{workspace}/{repo_slug}/pullrequests/{pull_request_id}/activity:
get:
tags:
- Pullrequests
description: >-
Returns a paginated list of the pull request's activity log.
This
handler serves both a v20 and internal endpoint. The v20
endpoint
returns reviewer comments, updates, approvals and request
changes. The internal
endpoint includes those plus tasks and
attachments.
Comments created on a file or a line of code have an
inline property.
Comment example:
```
{
"pagelen":
20,
"values": [
{
"comment":
{
"links": {
"self":
{
"href":
"https://api.bitbucket.org/2.0/repositories/atlassian/atlaskit-mk-2/pullrequests/5695/comments/118571088"
},
"html": {
"href":
"https://bitbucket.org/atlassian/atlaskit-mk-2/pull-requests/5695/_/diff#comment-118571088"
}
},
"deleted":
false,
"pullrequest": {
"type": "pullrequest",
"id":
5695,
"links": {
"self": {
"href":
"https://api.bitbucket.org/2.0/repositories/atlassian/atlaskit-mk-2/pullrequests/5695"
},
"html": {
"href":
"https://bitbucket.org/atlassian/atlaskit-mk-2/pull-requests/5695"
}
},
"title":
"username/NONE: small change from onFocus to onClick to handle tabbing
through the page and not expand the editor unless a click event triggers
it"
},
"content":
{
"raw": "inline with to a dn from
lines",
"markup":
"markdown",
"html": "inline with to a dn from
lines",
"type": "rendered"
},
"created_on":
"2019-09-27T00:33:46.039178+00:00",
"user":
{
"display_name": "Name
Lastname",
"uuid": "{}",
"links": {
"self":
{
"href":
"https://api.bitbucket.org/2.0/users/%7B%7D"
},
"html": {
"href": "https://bitbucket.org/%7B%7D/"
},
"avatar": {
"href":
"https://avatar-management--avatars.us-west-2.prod.public.atl-paas.net/:/128"
}
},
"type":
"user",
"nickname":
"Name",
"account_id": ""
},
"created_on":
"2019-09-27T00:33:46.039178+00:00",
"user":
{
"display_name": "Name
Lastname",
"uuid": "{}",
"links": {
"self":
{
"href":
"https://api.bitbucket.org/2.0/users/%7B%7D"
},
"html": {
"href": "https://bitbucket.org/%7B%7D/"
},
"avatar": {
"href":
"https://avatar-management--avatars.us-west-2.prod.public.atl-paas.net/:/128"
}
},
"type":
"user",
"nickname":
"Name",
"account_id": ""
},
"updated_on":
"2019-09-27T00:33:46.055384+00:00",
"inline":
{
"context_lines": "",
"to": null,
"path": "",
"outdated": false,
"from": 211
},
"type": "pullrequest_comment",
"id": 118571088
},
"pull_request":
{
"type": "pullrequest",
"id":
5695,
"links": {
"self":
{
"href":
"https://api.bitbucket.org/2.0/repositories/atlassian/atlaskit-mk-2/pullrequests/5695"
},
"html": {
"href":
"https://bitbucket.org/atlassian/atlaskit-mk-2/pull-requests/5695"
}
},
"title": "username/NONE:
small change from onFocus to onClick to handle tabbing through the page
and not expand the editor unless a click event triggers
it"
}
}
]
}
```
Updates
include a state property of OPEN, MERGED, or DECLINED.
Update
example:
```
{
"pagelen": 20,
"values": [
{
"update": {
"description":
"",
"title": "username/NONE: small change from
onFocus to onClick to handle tabbing through the page and not expand the
editor unless a click event triggers it",
"destination": {
"commit":
{
"type":
"commit",
"hash":
"6a2c16e4a152",
"links":
{
"self":
{
"href":
"https://api.bitbucket.org/2.0/repositories/atlassian/atlaskit-mk-2/commit/6a2c16e4a152"
},
"html":
{
"href":
"https://bitbucket.org/atlassian/atlaskit-mk-2/commits/6a2c16e4a152"
}
}
},
"branch": {
"name":
"master"
},
"repository":
{
"name":
"Atlaskit-MK-2",
"type":
"repository",
"full_name":
"atlassian/atlaskit-mk-2",
"links":
{
"self":
{
"href":
"https://api.bitbucket.org/2.0/repositories/atlassian/atlaskit-mk-2"
},
"html":
{
"href":
"https://bitbucket.org/atlassian/atlaskit-mk-2"
},
"avatar":
{
"href":
"https://bytebucket.org/ravatar/%7B%7D?ts=js"
}
},
"uuid":
"{}"
}
},
"reason": "",
"source": {
"commit": {
"type":
"commit",
"hash":
"728c8bad1813",
"links":
{
"self":
{
"href":
"https://api.bitbucket.org/2.0/repositories/atlassian/atlaskit-mk-2/commit/728c8bad1813"
},
"html":
{
"href":
"https://bitbucket.org/atlassian/atlaskit-mk-2/commits/728c8bad1813"
}
}
},
"branch": {
"name":
"username/NONE-add-onClick-prop-for-accessibility"
},
"repository": {
"name": "Atlaskit-MK-2",
"type":
"repository",
"full_name":
"atlassian/atlaskit-mk-2",
"links":
{
"self":
{
"href":
"https://api.bitbucket.org/2.0/repositories/atlassian/atlaskit-mk-2"
},
"html":
{
"href":
"https://bitbucket.org/atlassian/atlaskit-mk-2"
},
"avatar":
{
"href":
"https://bytebucket.org/ravatar/%7B%7D?ts=js"
}
},
"uuid":
"{}"
}
},
"state": "OPEN",
"author": {
"display_name": "Name Lastname",
"uuid":
"{}",
"links": {
"self": {
"href":
"https://api.bitbucket.org/2.0/users/%7B%7D"
},
"html": {
"href": "https://bitbucket.org/%7B%7D/"
},
"avatar": {
"href":
"https://avatar-management--avatars.us-west-2.prod.public.atl-paas.net/:/128"
}
},
"type":
"user",
"nickname":
"Name",
"account_id": ""
},
"date":
"2019-05-10T06:48:25.305565+00:00"
},
"pull_request": {
"type":
"pullrequest",
"id": 5695,
"links": {
"self": {
"href":
"https://api.bitbucket.org/2.0/repositories/atlassian/atlaskit-mk-2/pullrequests/5695"
},
"html": {
"href":
"https://bitbucket.org/atlassian/atlaskit-mk-2/pull-requests/5695"
}
},
"title": "username/NONE:
small change from onFocus to onClick to handle tabbing through the page
and not expand the editor unless a click event triggers
it"
}
}
]
}
```
Approval
example:
```
{
"pagelen": 20,
"values": [
{
"approval": {
"date":
"2019-09-27T00:37:19.849534+00:00",
"pullrequest":
{
"type": "pullrequest",
"id": 5695,
"links": {
"self": {
"href":
"https://api.bitbucket.org/2.0/repositories/atlassian/atlaskit-mk-2/pullrequests/5695"
},
"html": {
"href":
"https://bitbucket.org/atlassian/atlaskit-mk-2/pull-requests/5695"
}
},
"title":
"username/NONE: small change from onFocus to onClick to handle tabbing
through the page and not expand the editor unless a click event triggers
it"
},
"user":
{
"display_name": "Name
Lastname",
"uuid": "{}",
"links": {
"self":
{
"href":
"https://api.bitbucket.org/2.0/users/%7B%7D"
},
"html": {
"href": "https://bitbucket.org/%7B%7D/"
},
"avatar": {
"href":
"https://avatar-management--avatars.us-west-2.prod.public.atl-paas.net/:/128"
}
},
"type":
"user",
"nickname":
"Name",
"account_id": ""
}
},
"pull_request": {
"type": "pullrequest",
"id": 5695,
"links": {
"self": {
"href":
"https://api.bitbucket.org/2.0/repositories/atlassian/atlaskit-mk-2/pullrequests/5695"
},
"html": {
"href":
"https://bitbucket.org/atlassian/atlaskit-mk-2/pull-requests/5695"
}
},
"title": "username/NONE:
small change from onFocus to onClick to handle tabbing through the page
and not expand the editor unless a click event triggers
it"
}
}
]
}
```
summary: Atlassian List A Pull Request Activity Log
responses:
'200':
description: The pull request activity log
'401':
description: If the repository is private and the request was not authenticated.
'404':
description: If the specified repository does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
security:
- oauth2:
- pullrequest
- basic: []
- api_key: []
x-atlassian-oauth2-scopes:
- state: Current
scheme: oauth2
scopes:
- read:pullrequest:bitbucket
operationId: atlassianListAPullRequestActivityLog
parameters:
- name: pull_request_id
in: path
description: The id of the pull request.
required: true
schema:
type: integer
- name: repo_slug
in: path
description: |
This can either be the repository slug or the UUID of the repository,
surrounded by curly-braces, for example: `{repository UUID}`.
required: true
schema:
type: string
- name: workspace
in: path
description: |
This can either be the workspace ID (slug) or the workspace UUID
surrounded by curly-braces, for example: `{workspace UUID}`.
required: true
schema:
type: string
/repositories/{workspace}/{repo_slug}/pullrequests/{pull_request_id}/approve:
delete:
tags:
- Pullrequests
description: >-
Redact the authenticated user's approval of the specified
pull
request.
summary: Atlassian Unapprove A Pull Request
responses:
'204':
description: >-
An empty response indicating the authenticated user's approval has
been withdrawn.
'400':
description: >-
Pull request cannot be unapproved because the pull request has
already been merged.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
'401':
description: The request wasn't authenticated.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
'404':
description: The specified pull request or the repository does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
security:
- oauth2:
- pullrequest:write
- basic: []
- api_key: []
x-atlassian-oauth2-scopes:
- state: Current
scheme: oauth2
scopes:
- write:pullrequest:bitbucket
operationId: atlassianUnapproveAPullRequest
post:
tags:
- Pullrequests
description: Approve the specified pull request as the authenticated user.
summary: Atlassian Approve A Pull Request
responses:
'200':
description: >-
The `participant` object recording that the authenticated user
approved the pull request.
content:
application/json:
schema:
$ref: '#/components/schemas/participant'
'401':
description: The request wasn't authenticated.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
'404':
description: The specified pull request or the repository does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
security:
- oauth2:
- pullrequest:write
- basic: []
- api_key: []
x-atlassian-oauth2-scopes:
- state: Current
scheme: oauth2
scopes:
- read:pullrequest:bitbucket
- write:pullrequest:bitbucket
operationId: atlassianApproveAPullRequest
parameters:
- name: pull_request_id
in: path
description: The id of the pull request.
required: true
schema:
type: integer
- name: repo_slug
in: path
description: |
This can either be the repository slug or the UUID of the repository,
surrounded by curly-braces, for example: `{repository UUID}`.
required: true
schema:
type: string
- name: workspace
in: path
description: |
This can either be the workspace ID (slug) or the workspace UUID
surrounded by curly-braces, for example: `{workspace UUID}`.
required: true
schema:
type: string
/repositories/{workspace}/{repo_slug}/pullrequests/{pull_request_id}/comments:
get:
tags:
- Pullrequests
description: >-
Returns a paginated list of the pull request's comments.
This
includes both global, inline comments and replies.
The default
sorting is oldest to newest and can be overridden with
the `sort`
query parameter.
This endpoint also supports filtering and
sorting of the results. See
[filtering and
sorting](/cloud/bitbucket/rest/intro/#filtering) for more
details.
summary: Atlassian List Comments On A Pull Request
responses:
'200':
description: >-
A paginated list of comments made on the given pull request, in
chronological order.
content:
application/json:
schema:
$ref: '#/components/schemas/paginated_pullrequest_comments'
'403':
description: If the authenticated user does not have access to the pull request.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
'404':
description: If the pull request does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
security:
- oauth2:
- pullrequest
- basic: []
- api_key: []
x-atlassian-oauth2-scopes:
- state: Current
scheme: oauth2
scopes:
- read:pullrequest:bitbucket
operationId: atlassianListCommentsOnAPullRequest
post:
tags:
- Pullrequests
description: >-
Creates a new pull request comment.
Returns the newly created
pull request comment.
summary: Atlassian Create A Comment On A Pull Request
responses:
'201':
description: The newly created comment.
headers:
Location:
description: The URL of the new comment
schema:
type: string
content:
application/json:
schema:
$ref: '#/components/schemas/pullrequest_comment'
'403':
description: If the authenticated user does not have access to the pull request.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
'404':
description: If the pull request does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/pullrequest_comment'
description: The comment object.
required: true
security:
- oauth2:
- pullrequest
- basic: []
- api_key: []
x-atlassian-oauth2-scopes:
- state: Current
scheme: oauth2
scopes:
- read:pullrequest:bitbucket
operationId: atlassianCreateACommentOnAPullRequest
parameters:
- name: pull_request_id
in: path
description: The id of the pull request.
required: true
schema:
type: integer
- name: repo_slug
in: path
description: |
This can either be the repository slug or the UUID of the repository,
surrounded by curly-braces, for example: `{repository UUID}`.
required: true
schema:
type: string
- name: workspace
in: path
description: |
This can either be the workspace ID (slug) or the workspace UUID
surrounded by curly-braces, for example: `{workspace UUID}`.
required: true
schema:
type: string
/repositories/{workspace}/{repo_slug}/pullrequests/{pull_request_id}/comments/{comment_id}:
delete:
tags:
- Pullrequests
description: Deletes a specific pull request comment.
summary: Atlassian Delete A Comment On A Pull Request
responses:
'204':
description: Successful deletion.
'403':
description: >-
If the authenticated user does not have access to delete the
comment.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
'404':
description: If the comment does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
security:
- oauth2:
- pullrequest
- basic: []
- api_key: []
x-atlassian-oauth2-scopes:
- state: Current
scheme: oauth2
scopes:
- read:pullrequest:bitbucket
operationId: atlassianDeleteACommentOnAPullRequest
get:
tags:
- Pullrequests
description: Returns a specific pull request comment.
summary: Atlassian Get A Comment On A Pull Request
responses:
'200':
description: The comment.
content:
application/json:
schema:
$ref: '#/components/schemas/pullrequest_comment'
'403':
description: If the authenticated user does not have access to the pull request.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
'404':
description: If the comment does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
security:
- oauth2:
- pullrequest
- basic: []
- api_key: []
x-atlassian-oauth2-scopes:
- state: Current
scheme: oauth2
scopes:
- read:pullrequest:bitbucket
operationId: atlassianGetACommentOnAPullRequest
put:
tags:
- Pullrequests
description: Updates a specific pull request comment.
summary: Atlassian Update A Comment On A Pull Request
responses:
'200':
description: The updated comment.
content:
application/json:
schema:
$ref: '#/components/schemas/pullrequest_comment'
'403':
description: If the authenticated user does not have access to the comment.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
'404':
description: If the comment does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/pullrequest_comment'
description: The contents of the updated comment.
required: true
security:
- oauth2:
- pullrequest
- basic: []
- api_key: []
x-atlassian-oauth2-scopes:
- state: Current
scheme: oauth2
scopes:
- read:pullrequest:bitbucket
operationId: atlassianUpdateACommentOnAPullRequest
parameters:
- name: comment_id
in: path
description: The id of the comment.
required: true
schema:
type: integer
- name: pull_request_id
in: path
description: The id of the pull request.
required: true
schema:
type: integer
- name: repo_slug
in: path
description: |
This can either be the repository slug or the UUID of the repository,
surrounded by curly-braces, for example: `{repository UUID}`.
required: true
schema:
type: string
- name: workspace
in: path
description: |
This can either be the workspace ID (slug) or the workspace UUID
surrounded by curly-braces, for example: `{workspace UUID}`.
required: true
schema:
type: string
/repositories/{workspace}/{repo_slug}/pullrequests/{pull_request_id}/comments/{comment_id}/resolve:
delete:
tags:
- Pullrequests
description: Needs a more full description created.
summary: Atlassian Reopen A Comment Thread
responses:
'204':
description: The comment is reopened.
'403':
description: |-
If the authenticated user does not have access to the pull request,
or if the provided comment is not a top-level comment.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
'404':
description: >-
If the comment does not exist, or if the comment has not been
resolved
content:
application/json:
schema:
$ref: '#/components/schemas/error'
security:
- oauth2:
- pullrequest
- basic: []
- api_key: []
x-atlassian-oauth2-scopes:
- state: Current
scheme: oauth2
scopes:
- read:pullrequest:bitbucket
operationId: atlassianReopenACommentThread
post:
tags:
- Pullrequests
description: Needs a more full description created.
summary: Atlassian Resolve A Comment Thread
responses:
'200':
description: The comment resolution details.
content:
application/json:
schema:
$ref: '#/components/schemas/comment_resolution'
'403':
description: |-
If the authenticated user does not have access to the pull request,
if the provided comment is not a top-level comment,
or if the comment is not on the diff.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
'404':
description: If the comment does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
'409':
description: If the comment has already been resolved.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
security:
- oauth2:
- pullrequest
- basic: []
- api_key: []
x-atlassian-oauth2-scopes:
- state: Current
scheme: oauth2
scopes:
- read:pullrequest:bitbucket
operationId: atlassianResolveACommentThread
parameters:
- name: comment_id
in: path
description: The id of the comment.
required: true
schema:
type: integer
- name: pull_request_id
in: path
description: The id of the pull request.
required: true
schema:
type: integer
- name: repo_slug
in: path
description: |
This can either be the repository slug or the UUID of the repository,
surrounded by curly-braces, for example: `{repository UUID}`.
required: true
schema:
type: string
- name: workspace
in: path
description: |
This can either be the workspace ID (slug) or the workspace UUID
surrounded by curly-braces, for example: `{workspace UUID}`.
required: true
schema:
type: string
/repositories/{workspace}/{repo_slug}/pullrequests/{pull_request_id}/commits:
get:
tags:
- Pullrequests
description: >-
Returns a paginated list of the pull request's commits.
These are
the commits that are being merged into the destination
branch when
the pull requests gets accepted.
summary: Atlassian List Commits On A Pull Request
responses:
'200':
description: >-
A paginated list of commits made on the given pull request, in
chronological order. This list will be empty if the source branch no
longer exists.
'403':
description: If the authenticated user does not have access to the pull request.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
'404':
description: >-
If the pull request does not exist or the source branch is from a
forked repository which no longer exists.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
security:
- oauth2:
- pullrequest
- basic: []
- api_key: []
x-atlassian-oauth2-scopes:
- state: Current
scheme: oauth2
scopes:
- read:pullrequest:bitbucket
operationId: atlassianListCommitsOnAPullRequest
parameters:
- name: pull_request_id
in: path
description: The id of the pull request.
required: true
schema:
type: integer
- name: repo_slug
in: path
description: |
This can either be the repository slug or the UUID of the repository,
surrounded by curly-braces, for example: `{repository UUID}`.
required: true
schema:
type: string
- name: workspace
in: path
description: |
This can either be the workspace ID (slug) or the workspace UUID
surrounded by curly-braces, for example: `{workspace UUID}`.
required: true
schema:
type: string
/repositories/{workspace}/{repo_slug}/pullrequests/{pull_request_id}/decline:
post:
tags:
- Pullrequests
description: Declines the pull request.
summary: Atlassian Decline A Pull Request
responses:
'200':
description: The pull request was successfully declined.
content:
application/json:
schema:
$ref: '#/components/schemas/pullrequest'
'555':
description: |-
If the decline took too long and timed out.
In this case the caller should retry the request later.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
security:
- oauth2:
- pullrequest:write
- basic: []
- api_key: []
x-atlassian-oauth2-scopes:
- state: Current
scheme: oauth2
scopes:
- read:pullrequest:bitbucket
- write:pullrequest:bitbucket
operationId: atlassianDeclineAPullRequest
parameters:
- name: pull_request_id
in: path
description: The id of the pull request.
required: true
schema:
type: integer
- name: repo_slug
in: path
description: |
This can either be the repository slug or the UUID of the repository,
surrounded by curly-braces, for example: `{repository UUID}`.
required: true
schema:
type: string
- name: workspace
in: path
description: |
This can either be the workspace ID (slug) or the workspace UUID
surrounded by curly-braces, for example: `{workspace UUID}`.
required: true
schema:
type: string
/repositories/{workspace}/{repo_slug}/pullrequests/{pull_request_id}/diff:
get:
tags:
- Pullrequests
description: >-
Redirects to the [repository
diff](/cloud/bitbucket/rest/api-group-commits/#api-repositories-workspace-repo-slug-diff-spec-get)
with
the revspec that corresponds to the pull request.
summary: Atlassian List Changes In A Pull Request
responses:
'302':
description: >
Redirects to the [repository
diff](/cloud/bitbucket/rest/api-group-commits/#api-repositories-workspace-repo-slug-diff-spec-get)
with the
revspec that corresponds to the pull request.
security:
- oauth2:
- pullrequest
- basic: []
- api_key: []
x-atlassian-oauth2-scopes:
- state: Current
scheme: oauth2
scopes:
- read:pullrequest:bitbucket
operationId: atlassianListChangesInAPullRequest
parameters:
- name: pull_request_id
in: path
description: The id of the pull request.
required: true
schema:
type: integer
- name: repo_slug
in: path
description: |
This can either be the repository slug or the UUID of the repository,
surrounded by curly-braces, for example: `{repository UUID}`.
required: true
schema:
type: string
- name: workspace
in: path
description: |
This can either be the workspace ID (slug) or the workspace UUID
surrounded by curly-braces, for example: `{workspace UUID}`.
required: true
schema:
type: string
/repositories/{workspace}/{repo_slug}/pullrequests/{pull_request_id}/diffstat:
get:
tags:
- Pullrequests
description: >-
Redirects to the [repository
diffstat](/cloud/bitbucket/rest/api-group-commits/#api-repositories-workspace-repo-slug-diffstat-spec-get)
with
the revspec that corresponds to the pull request.
summary: Atlassian Get The Diff Stat For A Pull Request
responses:
'302':
description: >
Redirects to the [repository
diffstat](/cloud/bitbucket/rest/api-group-commits/#api-repositories-workspace-repo-slug-diffstat-spec-get)
with
the revspec that corresponds to pull request.
security:
- oauth2:
- pullrequest
- basic: []
- api_key: []
x-atlassian-oauth2-scopes:
- state: Current
scheme: oauth2
scopes:
- read:pullrequest:bitbucket
operationId: atlassianGetTheDiffStatForAPullRequest
parameters:
- name: pull_request_id
in: path
description: The id of the pull request.
required: true
schema:
type: integer
- name: repo_slug
in: path
description: |
This can either be the repository slug or the UUID of the repository,
surrounded by curly-braces, for example: `{repository UUID}`.
required: true
schema:
type: string
- name: workspace
in: path
description: |
This can either be the workspace ID (slug) or the workspace UUID
surrounded by curly-braces, for example: `{workspace UUID}`.
required: true
schema:
type: string
/repositories/{workspace}/{repo_slug}/pullrequests/{pull_request_id}/merge:
post:
tags:
- Pullrequests
description: Merges the pull request.
summary: Atlassian Merge A Pull Request
responses:
'200':
description: The pull request object.
content:
application/json:
schema:
$ref: '#/components/schemas/pullrequest'
'202':
description: >-
In the Location header, the URL to poll for the pull request merge
status
'555':
description: |-
If the merge took too long and timed out.
In this case the caller should retry the request later
content:
application/json:
schema:
$ref: '#/components/schemas/error'
parameters:
- name: async
in: query
description: |-
Default value is false.
When set to true, runs merge asynchronously and
immediately returns a 202 with polling link to
the task-status API in the Location header.
When set to false, runs merge and waits for it to
complete, returning 200 when it succeeds. If the
duration of the merge exceeds a timeout threshold,
the API returns a 202 with polling link to the
task-status API in the Location header.
required: false
schema:
type: boolean
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/pullrequest_merge_parameters'
security:
- oauth2:
- pullrequest:write
- basic: []
- api_key: []
x-atlassian-oauth2-scopes:
- state: Current
scheme: oauth2
scopes:
- read:pullrequest:bitbucket
- write:pullrequest:bitbucket
operationId: atlassianMergeAPullRequest
parameters:
- name: pull_request_id
in: path
description: The id of the pull request.
required: true
schema:
type: integer
- name: repo_slug
in: path
description: |
This can either be the repository slug or the UUID of the repository,
surrounded by curly-braces, for example: `{repository UUID}`.
required: true
schema:
type: string
- name: workspace
in: path
description: |
This can either be the workspace ID (slug) or the workspace UUID
surrounded by curly-braces, for example: `{workspace UUID}`.
required: true
schema:
type: string
/repositories/{workspace}/{repo_slug}/pullrequests/{pull_request_id}/merge/task-status/{task_id}:
get:
tags:
- Pullrequests
description: >-
When merging a pull request takes too long, the client receives
a
task ID along with a 202 status code. The task ID can be used in a
call
to this endpoint to check the status of a merge
task.
```
curl -X GET
https://api.bitbucket.org/2.0/repositories/atlassian/bitbucket/pullrequests/2286/merge/task-status/
```
If
the merge task is not yet finished, a PENDING status will be
returned.
```
HTTP/2 200
{
"task_status":
"PENDING",
"links": {
"self": {
"href":
"https://api.bitbucket.org/2.0/repositories/atlassian/bitbucket/pullrequests/2286/merge/task-status/"
}
}
}
```
If the merge was successful, a SUCCESS
status will be returned.
```
HTTP/2 200
{
"task_status": "SUCCESS",
"links": {
"self":
{
"href":
"https://api.bitbucket.org/2.0/repositories/atlassian/bitbucket/pullrequests/2286/merge/task-status/"
}
},
"merge_result":
}
```
If the merge task
failed, an error will be returned.
```
{
"type":
"error",
"error": {
"message": ""
}
}
```
summary: Atlassian Get The Merge Task Status For A Pull Request
responses:
'200':
description: >-
Returns a task status if the merge is either pending or successful,
and if it is successful, a pull request
'400':
description: >-
If the provided task ID does not relate to this pull request, or if
something went wrong during the merge operation
'403':
description: >-
The user making the request does not have permission to the repo and
is different from the user who queued the task
security:
- oauth2:
- pullrequest
- basic: []
- api_key: []
x-atlassian-oauth2-scopes:
- state: Current
scheme: oauth2
scopes:
- read:pullrequest:bitbucket
operationId: atlassianGetTheMergeTaskStatusForAPullRequest
parameters:
- name: pull_request_id
in: path
description: The id of the pull request.
required: true
schema:
type: integer
- name: repo_slug
in: path
description: |
This can either be the repository slug or the UUID of the repository,
surrounded by curly-braces, for example: `{repository UUID}`.
required: true
schema:
type: string
- name: task_id
in: path
description: ID of the merge task
required: true
schema:
type: string
- name: workspace
in: path
description: |
This can either be the workspace ID (slug) or the workspace UUID
surrounded by curly-braces, for example: `{workspace UUID}`.
required: true
schema:
type: string
/repositories/{workspace}/{repo_slug}/pullrequests/{pull_request_id}/patch:
get:
tags:
- Pullrequests
description: >-
Redirects to the [repository
patch](/cloud/bitbucket/rest/api-group-commits/#api-repositories-workspace-repo-slug-patch-spec-get)
with
the revspec that corresponds to pull request.
summary: Atlassian Get The Patch For A Pull Request
responses:
'302':
description: >
Redirects to the [repository
patch](/cloud/bitbucket/rest/api-group-commits/#api-repositories-workspace-repo-slug-patch-spec-get)
with
the revspec that corresponds to pull request.
security:
- oauth2:
- pullrequest
- basic: []
- api_key: []
x-atlassian-oauth2-scopes:
- state: Current
scheme: oauth2
scopes:
- read:pullrequest:bitbucket
operationId: atlassianGetThePatchForAPullRequest
parameters:
- name: pull_request_id
in: path
description: The id of the pull request.
required: true
schema:
type: integer
- name: repo_slug
in: path
description: |
This can either be the repository slug or the UUID of the repository,
surrounded by curly-braces, for example: `{repository UUID}`.
required: true
schema:
type: string
- name: workspace
in: path
description: |
This can either be the workspace ID (slug) or the workspace UUID
surrounded by curly-braces, for example: `{workspace UUID}`.
required: true
schema:
type: string
/repositories/{workspace}/{repo_slug}/pullrequests/{pull_request_id}/request-changes:
delete:
tags:
- Pullrequests
description: Needs a more full description created.
summary: Atlassian Remove Change Request For A Pull Request
responses:
'204':
description: >-
An empty response indicating the authenticated user's request for
change has been withdrawn.
'400':
description: >-
Pull request requested changes cannot be removed because the pull
request has already been merged.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
'401':
description: The request wasn't authenticated.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
'404':
description: The specified pull request or the repository does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
security:
- oauth2:
- pullrequest:write
- basic: []
- api_key: []
x-atlassian-oauth2-scopes:
- state: Current
scheme: oauth2
scopes:
- write:pullrequest:bitbucket
operationId: atlassianRemoveChangeRequestForAPullRequest
post:
tags:
- Pullrequests
description: Needs a more full description created.
summary: Atlassian Request Changes For A Pull Request
responses:
'200':
description: >-
The `participant` object recording that the authenticated user
requested changes on the pull request.
content:
application/json:
schema:
$ref: '#/components/schemas/participant'
'400':
description: >-
Pull request changes cannot be requested because the pull request
has already been merged.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
'401':
description: The request wasn't authenticated.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
'404':
description: The specified pull request or the repository does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
security:
- oauth2:
- pullrequest:write
- basic: []
- api_key: []
x-atlassian-oauth2-scopes:
- state: Current
scheme: oauth2
scopes:
- read:pullrequest:bitbucket
- write:pullrequest:bitbucket
operationId: atlassianRequestChangesForAPullRequest
parameters:
- name: pull_request_id
in: path
description: The id of the pull request.
required: true
schema:
type: integer
- name: repo_slug
in: path
description: |
This can either be the repository slug or the UUID of the repository,
surrounded by curly-braces, for example: `{repository UUID}`.
required: true
schema:
type: string
- name: workspace
in: path
description: |
This can either be the workspace ID (slug) or the workspace UUID
surrounded by curly-braces, for example: `{workspace UUID}`.
required: true
schema:
type: string
/repositories/{workspace}/{repo_slug}/pullrequests/{pull_request_id}/statuses:
get:
tags:
- Pullrequests - Commit Statuses
description: Returns all statuses (e.g. build results) for the given pull
request.
summary: Atlassian List Commit Statuses For A Pull Request
responses:
'200':
description: A paginated list of all commit statuses for this pull request.
content:
application/json:
schema:
$ref: '#/components/schemas/paginated_commitstatuses'
'401':
description: If the repository is private and the request was not authenticated.
'404':
description: If the specified repository or pull request does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
parameters:
- name: q
in: query
description: |
Query string to narrow down the response as per
[filtering and sorting](/cloud/bitbucket/rest/intro/#filtering).
required: false
schema:
type: string
- name: sort
in: query
description: |
Field by which the results should be sorted as per
[filtering and sorting](/cloud/bitbucket/rest/intro/#filtering).
Defaults to `created_on`.
required: false
schema:
type: string
security:
- oauth2:
- pullrequest
- basic: []
- api_key: []
x-atlassian-oauth2-scopes:
- state: Current
scheme: oauth2
scopes:
- read:pullrequest:bitbucket
operationId: atlassianListCommitStatusesForAPullRequest
parameters:
- name: pull_request_id
in: path
description: The id of the pull request.
required: true
schema:
type: integer
- name: repo_slug
in: path
description: |
This can either be the repository slug or the UUID of the repository,
surrounded by curly-braces, for example: `{repository UUID}`.
required: true
schema:
type: string
- name: workspace
in: path
description: |
This can either be the workspace ID (slug) or the workspace UUID
surrounded by curly-braces, for example: `{workspace UUID}`.
required: true
schema:
type: string
/repositories/{workspace}/{repo_slug}/pullrequests/{pull_request_id}/tasks:
get:
tags:
- Pullrequests
description: >-
Returns a paginated list of the pull request's tasks.
This
endpoint supports filtering and sorting of the results by the 'task'
field.
See [filtering and
sorting](/cloud/bitbucket/rest/intro/#filtering) for more details.
summary: Atlassian List Tasks On A Pull Request
responses:
'200':
description: A paginated list of pull request tasks for the given pull request.
content:
application/json:
schema:
$ref: '#/components/schemas/paginated_tasks'
'400':
description: >-
If the user provides an invalid filter, sort, or fields query
parameter.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
'403':
description: If the authenticated user does not have access to the pull request.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
'404':
description: If the pull request does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
parameters:
- name: q
in: query
description: >2-
Query string to narrow down the response. See
[filtering and sorting](/cloud/bitbucket/rest/intro/#filtering) for
details.
required: false
schema:
type: string
- name: sort
in: query
description: |2
Field by which the results should be sorted as per
[filtering and sorting](/cloud/bitbucket/rest/intro/#filtering).
Defaults to `created_on`.
required: false
schema:
type: string
- name: pagelen
in: query
description: |2
Current number of objects on the existing page.
The default value is 10 with 100 being the maximum allowed value.
Individual APIs may enforce different values.
required: false
schema:
type: integer
security:
- oauth2:
- pullrequest
- basic: []
- api_key: []
x-atlassian-oauth2-scopes:
- state: Current
scheme: oauth2
scopes:
- read:pullrequest:bitbucket
operationId: atlassianListTasksOnAPullRequest
post:
tags:
- Pullrequests
description: >-
Creates a new pull request task.
Returns the newly created pull
request task.
Tasks can optionally be created in relation to a
comment specified by the comment's ID which
will cause the task to
appear below the comment on a pull request when viewed in Bitbucket.
summary: Atlassian Create A Task On A Pull Request
responses:
'201':
description: The newly created task.
headers:
Location:
description: The URL of the new task
schema:
type: string
content:
application/json:
schema:
$ref: '#/components/schemas/A_pullrequest_comment_task'
'400':
description: >-
There is a missing required field in the request or the task content
is blank.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
'403':
description: If the authenticated user does not have access to the pull request.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
'404':
description: If the pull request does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/A_pullrequest_task_create'
description: The contents of the task
required: true
security:
- oauth2:
- pullrequest
- basic: []
- api_key: []
x-atlassian-oauth2-scopes:
- state: Current
scheme: oauth2
scopes:
- read:pullrequest:bitbucket
operationId: atlassianCreateATaskOnAPullRequest
parameters:
- name: pull_request_id
in: path
description: The id of the pull request.
required: true
schema:
type: integer
- name: repo_slug
in: path
description: |
This can either be the repository slug or the UUID of the repository,
surrounded by curly-braces, for example: `{repository UUID}`.
required: true
schema:
type: string
- name: workspace
in: path
description: |
This can either be the workspace ID (slug) or the workspace UUID
surrounded by curly-braces, for example: `{workspace UUID}`.
required: true
schema:
type: string
/repositories/{workspace}/{repo_slug}/pullrequests/{pull_request_id}/tasks/{task_id}:
delete:
tags:
- Pullrequests
description: Deletes a specific pull request task.
summary: Atlassian Delete A Task On A Pull Request
responses:
'204':
description: Successful deletion.
'403':
description: If the authenticated user does not have access to delete the task.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
'404':
description: If the task does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
security:
- oauth2:
- pullrequest
- basic: []
- api_key: []
x-atlassian-oauth2-scopes:
- state: Current
scheme: oauth2
scopes:
- read:pullrequest:bitbucket
operationId: atlassianDeleteATaskOnAPullRequest
get:
tags:
- Pullrequests
description: Returns a specific pull request task.
summary: Atlassian Get A Task On A Pull Request
responses:
'200':
description: The task.
content:
application/json:
schema:
$ref: '#/components/schemas/A_pullrequest_comment_task'
'403':
description: If the authenticated user does not have access to the pull request.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
'404':
description: If the task does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
security:
- oauth2:
- pullrequest
- basic: []
- api_key: []
x-atlassian-oauth2-scopes:
- state: Current
scheme: oauth2
scopes:
- read:pullrequest:bitbucket
operationId: atlassianGetATaskOnAPullRequest
put:
tags:
- Pullrequests
description: Updates a specific pull request task.
summary: Atlassian Update A Task On A Pull Request
responses:
'200':
description: The updated task.
content:
application/json:
schema:
$ref: '#/components/schemas/A_pullrequest_comment_task'
'400':
description: >-
There is a missing required field in the request or the task content
is blank.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
'403':
description: If the authenticated user does not have access to the pull request.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
'404':
description: If the task does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/A_pullrequest_task_update'
description: The updated state and content of the task.
required: true
security:
- oauth2:
- pullrequest
- basic: []
- api_key: []
x-atlassian-oauth2-scopes:
- state: Current
scheme: oauth2
scopes:
- read:pullrequest:bitbucket
operationId: atlassianUpdateATaskOnAPullRequest
parameters:
- name: pull_request_id
in: path
description: The id of the pull request.
required: true
schema:
type: integer
- name: repo_slug
in: path
description: |
This can either be the repository slug or the UUID of the repository,
surrounded by curly-braces, for example: `{repository UUID}`.
required: true
schema:
type: string
- name: task_id
in: path
description: The ID of the task.
required: true
schema:
type: integer
- name: workspace
in: path
description: |
This can either be the workspace ID (slug) or the workspace UUID
surrounded by curly-braces, for example: `{workspace UUID}`.
required: true
schema:
type: string
/repositories/{workspace}/{repo_slug}/pullrequests/{pullrequest_id}/properties/{app_key}/{property_name}:
put:
responses:
'204':
description: An empty response.
operationId: atlassianUpdatepullrequesthostedpropertyvalue
summary: Atlassian Update A Pull Request Application Property
description: >-
Update an [application
property](/cloud/bitbucket/application-properties/) value stored against
a pull request.
parameters:
- required: true
in: path
name: workspace
description: >-
The repository container; either the workspace slug or the UUID in
curly braces.
schema:
type: string
- required: true
in: path
name: repo_slug
description: The repository.
schema:
type: string
- required: true
in: path
name: pullrequest_id
description: The pull request ID.
schema:
type: string
- required: true
in: path
name: app_key
description: The key of the Connect app.
schema:
type: string
- required: true
in: path
name: property_name
description: The name of the property.
schema:
type: string
requestBody:
$ref: '#/components/requestBodies/application_property'
tags:
- Properties
security:
- oauth2: []
- basic: []
- api_key: []
delete:
responses:
'204':
description: An empty response.
operationId: atlassianDeletepullrequesthostedpropertyvalue
summary: Atlassian Delete A Pull Request Application Property
description: >-
Delete an [application
property](/cloud/bitbucket/application-properties/) value stored against
a pull request.
parameters:
- required: true
in: path
name: workspace
description: >-
The repository container; either the workspace slug or the UUID in
curly braces.
schema:
type: string
- required: true
in: path
name: repo_slug
description: The repository.
schema:
type: string
- required: true
in: path
name: pullrequest_id
description: The pull request ID.
schema:
type: string
- required: true
in: path
name: app_key
description: The key of the Connect app.
schema:
type: string
- required: true
in: path
name: property_name
description: The name of the property.
schema:
type: string
tags:
- Properties
security:
- oauth2: []
- basic: []
- api_key: []
get:
responses:
'200':
description: The value of the property.
content:
application/json:
schema:
$ref: '#/components/schemas/application_property'
operationId: atlassianGetpullrequesthostedpropertyvalue
summary: Atlassian Get A Pull Request Application Property
description: >-
Retrieve an [application
property](/cloud/bitbucket/application-properties/) value stored against
a pull request.
parameters:
- required: true
in: path
name: workspace
description: >-
The repository container; either the workspace slug or the UUID in
curly braces.
schema:
type: string
- required: true
in: path
name: repo_slug
description: The repository.
schema:
type: string
- required: true
in: path
name: pullrequest_id
description: The pull request ID.
schema:
type: string
- required: true
in: path
name: app_key
description: The key of the Connect app.
schema:
type: string
- required: true
in: path
name: property_name
description: The name of the property.
schema:
type: string
tags:
- Properties
security:
- oauth2: []
- basic: []
- api_key: []
/repositories/{workspace}/{repo_slug}/refs:
get:
tags:
- Refs
description: >-
Returns the branches and tags in the repository.
By default,
results will be in the order the underlying source control system
returns them and identical to
the ordering one sees when running "$
git show-ref". Note that this follows simple
lexical ordering of the
ref names.
This can be undesirable as it does apply any natural
sorting semantics, meaning for instance that refs are
sorted
["branch1", "branch10", "branch2", "v10", "v11", "v9"] instead of
["branch1", "branch2",
"branch10", "v9", "v10",
"v11"].
Sorting can be changed using the ?sort= query parameter.
When using ?sort=name to explicitly sort on ref name,
Bitbucket will
apply natural sorting and interpret numerical values as numbers instead
of strings.
summary: Atlassian List Branches And Tags
responses:
'200':
description: >-
A paginated list of refs matching any filter criteria that were
provided.
content:
application/json:
schema:
$ref: '#/components/schemas/paginated_refs'
'403':
description: >
If the repository is private and the authenticated user does not
have
access to it.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
'404':
description: The specified repository does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
parameters:
- name: q
in: query
description: |2-
Query string to narrow down the response as per
[filtering and sorting](/cloud/bitbucket/rest/intro/#filtering).
schema:
type: string
- name: sort
in: query
description: >2-
Field by which the results should be sorted as per
[filtering and sorting](/cloud/bitbucket/rest/intro/#filtering). The
`name`
field is handled specially for refs in that, if specified as the
sort field, it
uses a natural sort order instead of the default lexicographical
sort order. For example,
it will return ['1.1', '1.2', '1.10'] instead of ['1.1', '1.10',
'1.2'].
schema:
type: string
security:
- oauth2:
- repository
- basic: []
- api_key: []
x-atlassian-oauth2-scopes:
- state: Current
scheme: oauth2
scopes:
- read:repository:bitbucket
operationId: atlassianListBranchesAndTags
parameters:
- name: repo_slug
in: path
description: |
This can either be the repository slug or the UUID of the repository,
surrounded by curly-braces, for example: `{repository UUID}`.
required: true
schema:
type: string
- name: workspace
in: path
description: |
This can either be the workspace ID (slug) or the workspace UUID
surrounded by curly-braces, for example: `{workspace UUID}`.
required: true
schema:
type: string
/repositories/{workspace}/{repo_slug}/refs/branches:
get:
tags:
- Refs
description: >-
Returns a list of all open branches within the specified
repository.
Results will be in the order the source control manager
returns them.
Branches support [filtering and
sorting](/cloud/bitbucket/rest/intro/#filtering)
that can be used to
search for specific branches. For instance, to find
all branches that
have "stab" in their name:
```
curl -s
https://api.bitbucket.org/2.0/repositories/atlassian/aui/refs/branches
-G --data-urlencode 'q=name ~ "stab"'
```
By default, results
will be in the order the underlying source control system returns them
and identical to
the ordering one sees when running "$ git branch
--list". Note that this follows simple
lexical ordering of the ref
names.
This can be undesirable as it does apply any natural
sorting semantics, meaning for instance that tags are
sorted ["v10",
"v11", "v9"] instead of ["v9", "v10", "v11"].
Sorting can be
changed using the ?q= query parameter. When using ?q=name to explicitly
sort on ref name,
Bitbucket will apply natural sorting and interpret
numerical values as numbers instead of strings.
summary: Atlassian List Open Branches
responses:
'200':
description: >-
A paginated list of branches matching any filter criteria that were
provided.
content:
application/json:
schema:
$ref: '#/components/schemas/paginated_branches'
examples:
response:
value:
pagelen: 1
size: 187
values:
- name: issue-9.3/AUI-5343-assistive-class
links:
commits:
href: >-
https://api.bitbucket.org/2.0/repositories/atlassian/aui/commits/issue-9.3/AUI-5343-assistive-class
self:
href: >-
https://api.bitbucket.org/2.0/repositories/atlassian/aui/refs/branches/issue-9.3/AUI-5343-assistive-class
html:
href: >-
https://bitbucket.org/atlassian/aui/branch/issue-9.3/AUI-5343-assistive-class
default_merge_strategy: squash
merge_strategies:
- merge_commit
- squash
- fast_forward
type: branch
target:
hash: e5d1cde9069fcb9f0af90403a4de2150c125a148
repository:
links:
self:
href: >-
https://api.bitbucket.org/2.0/repositories/atlassian/aui
html:
href: https://bitbucket.org/atlassian/aui
avatar:
href: >-
https://bytebucket.org/ravatar/%7B585074de-7b60-4fd1-81ed-e0bc7fafbda5%7D?ts=86317
type: repository
name: aui
full_name: atlassian/aui
uuid: '{585074de-7b60-4fd1-81ed-e0bc7fafbda5}'
links:
self:
href: >-
https://api.bitbucket.org/2.0/repositories/atlassian/aui/commit/e5d1cde9069fcb9f0af90403a4de2150c125a148
comments:
href: >-
https://api.bitbucket.org/2.0/repositories/atlassian/aui/commit/e5d1cde9069fcb9f0af90403a4de2150c125a148/comments
patch:
href: >-
https://api.bitbucket.org/2.0/repositories/atlassian/aui/patch/e5d1cde9069fcb9f0af90403a4de2150c125a148
html:
href: >-
https://bitbucket.org/atlassian/aui/commits/e5d1cde9069fcb9f0af90403a4de2150c125a148
diff:
href: >-
https://api.bitbucket.org/2.0/repositories/atlassian/aui/diff/e5d1cde9069fcb9f0af90403a4de2150c125a148
approve:
href: >-
https://api.bitbucket.org/2.0/repositories/atlassian/aui/commit/e5d1cde9069fcb9f0af90403a4de2150c125a148/approve
statuses:
href: >-
https://api.bitbucket.org/2.0/repositories/atlassian/aui/commit/e5d1cde9069fcb9f0af90403a4de2150c125a148/statuses
author:
raw: Marcin Konopka
type: author
user:
display_name: Marcin Konopka
uuid: '{47cc24f4-2a05-4420-88fe-0417535a110a}'
links:
self:
href: >-
https://api.bitbucket.org/2.0/users/%7B47cc24f4-2a05-4420-88fe-0417535a110a%7D
html:
href: >-
https://bitbucket.org/%7B47cc24f4-2a05-4420-88fe-0417535a110a%7D/
avatar:
href: >-
https://avatar-management--avatars.us-west-2.prod.public.atl-paas.net/initials/MK-1.png
nickname: Marcin Konopka
type: user
account_id: 60113d2b47a9540069f4de03
parents:
- hash: 87f7fc92b00464ae47b13ef65c91884e4ac9be51
type: commit
links:
self:
href: >-
https://api.bitbucket.org/2.0/repositories/atlassian/aui/commit/87f7fc92b00464ae47b13ef65c91884e4ac9be51
html:
href: >-
https://bitbucket.org/atlassian/aui/commits/87f7fc92b00464ae47b13ef65c91884e4ac9be51
date: '2021-04-13T13:44:49+00:00'
message: |
wip
type: commit
page: 1
next: >-
https://api.bitbucket.org/2.0/repositories/atlassian/aui/refs/branches?pagelen=1&page=2
'403':
description: >
If the repository is private and the authenticated user does not
have
access to it.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
'404':
description: The specified repository does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
parameters:
- name: q
in: query
description: |2-
Query string to narrow down the response as per
[filtering and sorting](/cloud/bitbucket/rest/intro/#filtering).
schema:
type: string
- name: sort
in: query
description: >2-
Field by which the results should be sorted as per
[filtering and sorting](/cloud/bitbucket/rest/intro/#filtering). The
`name`
field is handled specially for branches in that, if specified as the
sort field, it
uses a natural sort order instead of the default lexicographical
sort order. For example,
it will return ['branch1', 'branch2', 'branch10'] instead of
['branch1', 'branch10', 'branch2'].
schema:
type: string
security:
- oauth2:
- repository
- basic: []
- api_key: []
x-atlassian-oauth2-scopes:
- state: Current
scheme: oauth2
scopes:
- read:repository:bitbucket
operationId: atlassianListOpenBranches
post:
tags:
- Refs
description: >-
Creates a new branch in the specified repository.
The payload of
the POST should consist of a JSON document that
contains the name of
the tag and the target hash.
```
curl
https://api.bitbucket.org/2.0/repositories/seanfarley/hg/refs/branches
\
-s -u seanfarley -X POST -H "Content-Type: application/json"
\
-d '{
"name" : "smf/create-feature",
"target" :
{
"hash" : "default",
}
}'
```
This call
requires authentication. Private repositories require the
caller to
authenticate with an account that has
appropriate
authorization.
The branch name should not include
any prefixes (e.g.
refs/heads). This endpoint does support using
short hash prefixes for
the commit hash, but it may return a 400
response if the provided
prefix is ambiguous. Using a full commit
hash is the preferred
approach.
summary: Atlassian Create A Branch
responses:
'201':
description: The newly created branch object.
content:
application/json:
schema:
$ref: '#/components/schemas/branch'
'403':
description: >
If the repository is private and the authenticated user does not
have
access to it.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
'404':
description: The specified repository or branch does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
security:
- oauth2:
- repository:write
- basic: []
- api_key: []
x-atlassian-oauth2-scopes:
- state: Current
scheme: oauth2
scopes:
- write:repository:bitbucket
- read:repository:bitbucket
operationId: atlassianCreateABranch
parameters:
- name: repo_slug
in: path
description: |
This can either be the repository slug or the UUID of the repository,
surrounded by curly-braces, for example: `{repository UUID}`.
required: true
schema:
type: string
- name: workspace
in: path
description: |
This can either be the workspace ID (slug) or the workspace UUID
surrounded by curly-braces, for example: `{workspace UUID}`.
required: true
schema:
type: string
/repositories/{workspace}/{repo_slug}/refs/branches/{name}:
delete:
tags:
- Refs
description: >-
Delete a branch in the specified repository.
The main branch is
not allowed to be deleted and will return a 400
response.
The
branch name should not include any prefixes (e.g.
refs/heads).
summary: Atlassian Delete A Branch
responses:
'204':
description: Indicates that the specified branch was successfully deleted.
'403':
description: >
If the repository is private and the authenticated user does not
have
access to it.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
'404':
description: The specified repository or branch does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
security:
- oauth2:
- repository:write
- basic: []
- api_key: []
x-atlassian-oauth2-scopes:
- state: Current
scheme: oauth2
scopes:
- write:repository:bitbucket
operationId: atlassianDeleteABranch
get:
tags:
- Refs
description: >-
Returns a branch object within the specified repository.
This
call requires authentication. Private repositories require the
caller
to authenticate with an account that has
appropriate
authorization.
For Git, the branch name should not
include any prefixes (e.g.
refs/heads).
summary: Atlassian Get A Branch
responses:
'200':
description: The branch object.
content:
application/json:
schema:
$ref: '#/components/schemas/branch'
examples:
response:
value:
name: master
links:
commits:
href: >-
https://api.bitbucket.org/2.0/repositories/atlassian/aui/commits/master
self:
href: >-
https://api.bitbucket.org/2.0/repositories/atlassian/aui/refs/branches/master
html:
href: https://bitbucket.org/atlassian/aui/branch/master
default_merge_strategy: squash
merge_strategies:
- merge_commit
- squash
- fast_forward
type: branch
target:
hash: e7d158ff7ed5538c28f94cd97a9ad569680fc94e
repository:
links:
self:
href: >-
https://api.bitbucket.org/2.0/repositories/atlassian/aui
html:
href: https://bitbucket.org/atlassian/aui
avatar:
href: >-
https://bytebucket.org/ravatar/%7B585074de-7b60-4fd1-81ed-e0bc7fafbda5%7D?ts=86317
type: repository
name: aui
full_name: atlassian/aui
uuid: '{585074de-7b60-4fd1-81ed-e0bc7fafbda5}'
links:
self:
href: >-
https://api.bitbucket.org/2.0/repositories/atlassian/aui/commit/e7d158ff7ed5538c28f94cd97a9ad569680fc94e
comments:
href: >-
https://api.bitbucket.org/2.0/repositories/atlassian/aui/commit/e7d158ff7ed5538c28f94cd97a9ad569680fc94e/comments
patch:
href: >-
https://api.bitbucket.org/2.0/repositories/atlassian/aui/patch/e7d158ff7ed5538c28f94cd97a9ad569680fc94e
html:
href: >-
https://bitbucket.org/atlassian/aui/commits/e7d158ff7ed5538c28f94cd97a9ad569680fc94e
diff:
href: >-
https://api.bitbucket.org/2.0/repositories/atlassian/aui/diff/e7d158ff7ed5538c28f94cd97a9ad569680fc94e
approve:
href: >-
https://api.bitbucket.org/2.0/repositories/atlassian/aui/commit/e7d158ff7ed5538c28f94cd97a9ad569680fc94e/approve
statuses:
href: >-
https://api.bitbucket.org/2.0/repositories/atlassian/aui/commit/e7d158ff7ed5538c28f94cd97a9ad569680fc94e/statuses
author:
raw: psre-renovate-bot
type: author
user:
display_name: psre-renovate-bot
uuid: '{250a442a-3ab3-4fcb-87c3-3c8f3df65ec7}'
links:
self:
href: >-
https://api.bitbucket.org/2.0/users/%7B250a442a-3ab3-4fcb-87c3-3c8f3df65ec7%7D
html:
href: >-
https://bitbucket.org/%7B250a442a-3ab3-4fcb-87c3-3c8f3df65ec7%7D/
avatar:
href: >-
https://secure.gravatar.com/avatar/6972ee037c9f36360170a86f544071a2?d=https%3A%2F%2Favatar-management--avatars.us-west-2.prod.public.atl-paas.net%2Finitials%2FP-3.png
nickname: Renovate Bot
type: user
account_id: 5d5355e8c6b9320d9ea5b28d
parents:
- hash: eab868a309e75733de80969a7bed1ec6d4651e06
type: commit
links:
self:
href: >-
https://api.bitbucket.org/2.0/repositories/atlassian/aui/commit/eab868a309e75733de80969a7bed1ec6d4651e06
html:
href: >-
https://bitbucket.org/atlassian/aui/commits/eab868a309e75733de80969a7bed1ec6d4651e06
date: '2021-04-12T06:44:38+00:00'
message: >
Merged in issue/NONE-renovate-master-babel-monorepo
(pull request #2883)
chore(deps): update babel monorepo to v7.13.15 (master)
Approved-by: Chris "Daz" Darroch
type: commit
'403':
description: >
If the repository is private and the authenticated user does not
have
access to it.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
'404':
description: The specified repository or branch does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
security:
- oauth2:
- repository
- basic: []
- api_key: []
x-atlassian-oauth2-scopes:
- state: Current
scheme: oauth2
scopes:
- read:repository:bitbucket
operationId: atlassianGetABranch
parameters:
- name: name
in: path
description: The name of the branch.
required: true
schema:
type: string
- name: repo_slug
in: path
description: |
This can either be the repository slug or the UUID of the repository,
surrounded by curly-braces, for example: `{repository UUID}`.
required: true
schema:
type: string
- name: workspace
in: path
description: |
This can either be the workspace ID (slug) or the workspace UUID
surrounded by curly-braces, for example: `{workspace UUID}`.
required: true
schema:
type: string
/repositories/{workspace}/{repo_slug}/refs/tags:
get:
tags:
- Refs
description: >-
Returns the tags in the repository.
By default, results will be
in the order the underlying source control system returns them and
identical to
the ordering one sees when running "$ git tag --list".
Note that this follows simple
lexical ordering of the ref
names.
This can be undesirable as it does apply any natural
sorting semantics, meaning for instance that tags are
sorted ["v10",
"v11", "v9"] instead of ["v9", "v10", "v11"].
Sorting can be
changed using the ?sort= query parameter. When using ?sort=name to
explicitly sort on ref name,
Bitbucket will apply natural sorting and
interpret numerical values as numbers instead of strings.
summary: Atlassian List Tags
responses:
'200':
description: >-
A paginated list of tags matching any filter criteria that were
provided.
content:
application/json:
schema:
$ref: '#/components/schemas/paginated_tags'
'403':
description: >
If the repository is private and the authenticated user does not
have
access to it.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
'404':
description: The specified repository does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
parameters:
- name: q
in: query
description: |2-
Query string to narrow down the response as per
[filtering and sorting](/cloud/bitbucket/rest/intro/#filtering).
schema:
type: string
- name: sort
in: query
description: >2-
Field by which the results should be sorted as per
[filtering and sorting](/cloud/bitbucket/rest/intro/#filtering). The
`name`
field is handled specially for tags in that, if specified as the
sort field, it
uses a natural sort order instead of the default lexicographical
sort order. For example,
it will return ['1.1', '1.2', '1.10'] instead of ['1.1', '1.10',
'1.2'].
schema:
type: string
security:
- oauth2:
- repository
- basic: []
- api_key: []
x-atlassian-oauth2-scopes:
- state: Current
scheme: oauth2
scopes:
- read:repository:bitbucket
operationId: atlassianListTags
post:
tags:
- Refs
description: >-
Creates a new tag in the specified repository.
The payload of the
POST should consist of a JSON document that
contains the name of the
tag and the target hash.
```
curl
https://api.bitbucket.org/2.0/repositories/jdoe/myrepo/refs/tags \
-s
-u jdoe -X POST -H "Content-Type: application/json" \
-d '{
"name" : "new-tag-name",
"target" : {
"hash" :
"a1b2c3d4e5f6",
}
}'
```
This endpoint does support
using short hash prefixes for the commit
hash, but it may return a
400 response if the provided prefix is
ambiguous. Using a full commit
hash is the preferred approach.
summary: Atlassian Create A Tag
responses:
'201':
description: The newly created tag.
content:
application/json:
schema:
$ref: '#/components/schemas/tag'
'400':
description: >-
If the target hash is missing, ambiguous, or invalid, or if the name
is not provided.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/tag'
required: true
security:
- oauth2:
- repository:write
- basic: []
- api_key: []
x-atlassian-oauth2-scopes:
- state: Current
scheme: oauth2
scopes:
- write:repository:bitbucket
- read:repository:bitbucket
operationId: atlassianCreateATag
parameters:
- name: repo_slug
in: path
description: |
This can either be the repository slug or the UUID of the repository,
surrounded by curly-braces, for example: `{repository UUID}`.
required: true
schema:
type: string
- name: workspace
in: path
description: |
This can either be the workspace ID (slug) or the workspace UUID
surrounded by curly-braces, for example: `{workspace UUID}`.
required: true
schema:
type: string
/repositories/{workspace}/{repo_slug}/refs/tags/{name}:
delete:
tags:
- Refs
description: >-
Delete a tag in the specified repository.
The tag name should not
include any prefixes (e.g. refs/tags).
summary: Atlassian Delete A Tag
responses:
'204':
description: Indicates the specified tag was successfully deleted.
'403':
description: >
If the repository is private and the authenticated user does not
have
access to it.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
'404':
description: The specified repository or tag does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
security:
- oauth2:
- repository:write
- basic: []
- api_key: []
x-atlassian-oauth2-scopes:
- state: Current
scheme: oauth2
scopes:
- write:repository:bitbucket
operationId: atlassianDeleteATag
get:
tags:
- Refs
description: >-
Returns the specified tag.
```
$ curl -s
https://api.bitbucket.org/2.0/repositories/seanfarley/hg/refs/tags/3.8
-G | jq .
{
"name": "3.8",
"links": {
"commits":
{
"href":
"https://api.bitbucket.org/2.0/repositories/seanfarley/hg/commits/3.8"
},
"self": {
"href":
"https://api.bitbucket.org/2.0/repositories/seanfarley/hg/refs/tags/3.8"
},
"html": {
"href":
"https://bitbucket.org/seanfarley/hg/commits/tag/3.8"
}
},
"tagger": {
"raw": "Matt Mackall ",
"type":
"author",
"user": {
"username": "mpmselenic",
"nickname": "mpmselenic",
"display_name": "Matt
Mackall",
"type": "user",
"uuid":
"{a4934530-db4c-419c-a478-9ab4964c2ee7}",
"links": {
"self": {
"href":
"https://api.bitbucket.org/2.0/users/mpmselenic"
},
"html": {
"href":
"https://bitbucket.org/mpmselenic/"
},
"avatar":
{
"href":
"https://bitbucket.org/account/mpmselenic/avatar/32/"
}
}
}
},
"date":
"2016-05-01T18:52:25+00:00",
"message": "Added tag 3.8 for
changeset f85de28eae32",
"type": "tag",
"target": {
"hash": "f85de28eae32e7d3064b1a1321309071bbaaa069",
"repository":
{
"links": {
"self": {
"href":
"https://api.bitbucket.org/2.0/repositories/seanfarley/hg"
},
"html": {
"href":
"https://bitbucket.org/seanfarley/hg"
},
"avatar":
{
"href":
"https://bitbucket.org/seanfarley/hg/avatar/32/"
}
},
"type": "repository",
"name": "hg",
"full_name": "seanfarley/hg",
"uuid":
"{c75687fb-e99d-4579-9087-190dbd406d30}"
},
"links":
{
"self": {
"href":
"https://api.bitbucket.org/2.0/repositories/seanfarley/hg/commit/f85de28eae32e7d3064b1a1321309071bbaaa069"
},
"comments": {
"href":
"https://api.bitbucket.org/2.0/repositories/seanfarley/hg/commit/f85de28eae32e7d3064b1a1321309071bbaaa069/comments"
},
"patch": {
"href":
"https://api.bitbucket.org/2.0/repositories/seanfarley/hg/patch/f85de28eae32e7d3064b1a1321309071bbaaa069"
},
"html": {
"href":
"https://bitbucket.org/seanfarley/hg/commits/f85de28eae32e7d3064b1a1321309071bbaaa069"
},
"diff": {
"href":
"https://api.bitbucket.org/2.0/repositories/seanfarley/hg/diff/f85de28eae32e7d3064b1a1321309071bbaaa069"
},
"approve": {
"href":
"https://api.bitbucket.org/2.0/repositories/seanfarley/hg/commit/f85de28eae32e7d3064b1a1321309071bbaaa069/approve"
},
"statuses": {
"href":
"https://api.bitbucket.org/2.0/repositories/seanfarley/hg/commit/f85de28eae32e7d3064b1a1321309071bbaaa069/statuses"
}
},
"author": {
"raw": "Sean Farley ",
"type": "author",
"user": {
"username":
"seanfarley",
"nickname": "seanfarley",
"display_name": "Sean Farley",
"type": "user",
"uuid": "{a295f8a8-5876-4d43-89b5-3ad8c6c3c51d}",
"links":
{
"self": {
"href":
"https://api.bitbucket.org/2.0/users/seanfarley"
},
"html": {
"href":
"https://bitbucket.org/seanfarley/"
},
"avatar": {
"href":
"https://bitbucket.org/account/seanfarley/avatar/32/"
}
}
}
},
"parents": [
{
"hash":
"9a98d0e5b07fc60887f9d3d34d9ac7d536f470d2",
"type":
"commit",
"links": {
"self": {
"href":
"https://api.bitbucket.org/2.0/repositories/seanfarley/hg/commit/9a98d0e5b07fc60887f9d3d34d9ac7d536f470d2"
},
"html": {
"href":
"https://bitbucket.org/seanfarley/hg/commits/9a98d0e5b07fc60887f9d3d34d9ac7d536f470d2"
}
}
}
],
"date":
"2016-05-01T04:21:17+00:00",
"message": "debian: alphabetize
build deps",
"type": "commit"
}
}
```
summary: Atlassian Get A Tag
responses:
'200':
description: The tag object.
content:
application/json:
schema:
$ref: '#/components/schemas/tag'
'403':
description: >
If the repository is private and the authenticated user does not
have
access to it.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
'404':
description: The specified repository or tag does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
security:
- oauth2:
- repository
- basic: []
- api_key: []
x-atlassian-oauth2-scopes:
- state: Current
scheme: oauth2
scopes:
- read:repository:bitbucket
operationId: atlassianGetATag
parameters:
- name: name
in: path
description: The name of the tag.
required: true
schema:
type: string
- name: repo_slug
in: path
description: |
This can either be the repository slug or the UUID of the repository,
surrounded by curly-braces, for example: `{repository UUID}`.
required: true
schema:
type: string
- name: workspace
in: path
description: |
This can either be the workspace ID (slug) or the workspace UUID
surrounded by curly-braces, for example: `{workspace UUID}`.
required: true
schema:
type: string
/repositories/{workspace}/{repo_slug}/src:
get:
tags:
- Source - Repositories
description: >-
This endpoint redirects the client to the directory listing of
the
root directory on the main branch.
This is equivalent to
directly
hitting
[/2.0/repositories/{username}/{repo_slug}/src/{commit}/{path}](src/%7Bcommit%7D/%7Bpath%7D)
without
having to know the name or SHA1 of the repo's main branch.
To
create new commits, [POST to this endpoint](#post)
summary: Atlassian Get The Root Directory Of The Main Branch
responses:
'200':
description: |
If the path matches a file, then the raw contents of the file are
returned (unless the `format=meta` query parameter was provided,
in which case a json document containing the file's meta data is
returned). If the path matches a directory, then a paginated
list of file and directory entries is returned (if the
`format=meta` query parameter was provided, then the json document
containing the directory's meta data is returned).
content:
application/json:
schema:
$ref: '#/components/schemas/paginated_treeentries'
'404':
description: If the path or commit in the URL does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
parameters:
- name: format
in: query
description: >-
Instead of returning the file's contents, return the (json) meta
data for it.
required: false
schema:
type: string
enum:
- meta
security:
- oauth2:
- repository
- basic: []
- api_key: []
x-atlassian-oauth2-scopes:
- state: Current
scheme: oauth2
scopes:
- read:repository:bitbucket
operationId: atlassianGetTheRootDirectoryOfTheMainBranch
post:
tags:
- Source - Repositories
description: >-
This endpoint is used to create new commits in the repository
by
uploading files.
To add a new file to a
repository:
```
$ curl
https://api.bitbucket.org/2.0/repositories/username/slug/src \
-F
/repo/path/to/image.png=@image.png
```
This will create a new
commit on top of the main branch, inheriting the
contents of the main
branch, but adding (or overwriting) the
`image.png` file to the
repository in the `/repo/path/to` directory.
To create a commit
that deletes files, use the `files` parameter:
```
$ curl
https://api.bitbucket.org/2.0/repositories/username/slug/src \
-F
files=/file/to/delete/1.txt \
-F
files=/file/to/delete/2.txt
```
You can add/modify/delete
multiple files in a request. Rename/move a
file by deleting the old
path and adding the content at the new path.
This endpoint
accepts `multipart/form-data` (as in the examples above),
as well as
`application/x-www-form-urlencoded`.
Note: `multipart/form-data`
is currently not supported by Forge apps
for this API.
####
multipart/form-data
A `multipart/form-data` post contains a
series of "form fields" that
identify both the individual files that
are being uploaded, as well as
additional, optional meta
data.
Files are uploaded in file form fields (those that have
a
`Content-Disposition` parameter) whose field names point to the
remote
path in the repository where the file should be stored. Path
field
names are always interpreted to be absolute from the root of
the
repository, regardless whether the client uses a leading slash
(as the
above `curl` example did).
File contents are treated
as bytes and are not decoded as text.
The commit message, as well
as other non-file meta data for the
request, is sent along as normal
form field elements. Meta data fields
share the same namespace as the
file objects. For `multipart/form-data`
bodies that should not lead
to any ambiguity, as the
`Content-Disposition` header will contain
the `filename` parameter to
distinguish between a file named
"message" and the commit message field.
####
application/x-www-form-urlencoded
It is also possible to upload
new files using a simple
`application/x-www-form-urlencoded` POST.
This can be convenient when
uploading pure text
files:
```
$ curl
https://api.bitbucket.org/2.0/repositories/atlassian/bbql/src \
--data-urlencode "/path/to/me.txt=Lorem ipsum." \
--data-urlencode
"message=Initial commit" \
--data-urlencode "author=Erik van Zijst
"
```
There could be a field name clash if a client were to
upload a file
named "message", as this filename clashes with the meta
data property
for the commit message. To avoid this and to upload
files whose names
clash with the meta data properties, use a leading
slash for the files,
e.g. `curl --data-urlencode "/message=file
contents"`.
When an explicit slash is omitted for a file whose
path matches that of
a meta data parameter, then it is interpreted as
meta data, not as a
file.
#### Executables and
links
While this API aims to facilitate the most common use
cases, it is
possible to perform some more advanced operations like
creating a new
symlink in the repository, or creating an executable
file.
Files can be supplied with a `x-attributes` value in
the
`Content-Disposition` header. For example, to upload an
executable
file, as well as create a symlink from `README.txt` to
`README`:
```
--===============1438169132528273974==
Content-Type:
text/plain; charset="us-ascii"
MIME-Version:
1.0
Content-Transfer-Encoding: 7bit
Content-ID:
"bin/shutdown.sh"
Content-Disposition: attachment;
filename="shutdown.sh";
x-attributes:"executable"
#!/bin/sh
halt
--===============1438169132528273974==
Content-Type:
text/plain; charset="us-ascii"
MIME-Version:
1.0
Content-Transfer-Encoding: 7bit
Content-ID:
"/README.txt"
Content-Disposition: attachment; filename="README.txt";
x-attributes:"link"
README
--===============1438169132528273974==--
```
Links
are files that contain the target path and have
`x-attributes:"link"`
set.
When overwriting links with files, or vice versa, the newly
uploaded
file determines both the new contents, as well as the
attributes. That
means uploading a file without specifying
`x-attributes="link"` will
create a regular file, even if the parent
commit hosted a symlink at
the same path.
The same applies to
executables. When modifying an existing executable
file, the
form-data file element must include
`x-attributes="executable"` in
order to preserve the executable status
of the file.
Note that
this API does not support the creation or manipulation of
subrepos /
submodules.
summary: Atlassian Create A Commit By Uploading A File
responses:
'201':
description: |2+
'403':
description: If the authenticated user does not have write or admin access
content:
application/json:
schema:
$ref: '#/components/schemas/error'
'404':
description: If the repository does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
parameters:
- name: message
in: query
description: The commit message. When omitted, Bitbucket uses a canned string.
required: false
schema:
type: string
- name: author
in: query
description: |2-
The raw string to be used as the new commit's author.
This string follows the format
`Erik van Zijst `.
When omitted, Bitbucket uses the authenticated user's
full/display name and primary email address. Commits cannot
be created anonymously.
required: false
schema:
type: string
- name: parents
in: query
description: |2-
A comma-separated list of SHA1s of the commits that should
be the parents of the newly created commit.
When omitted, the new commit will inherit from and become
a child of the main branch's tip/HEAD commit.
When more than one SHA1 is provided, the first SHA1
identifies the commit from which the content will be
inherited.".
required: false
schema:
type: string
- name: files
in: query
description: |2
Optional field that declares the files that the request is
manipulating. When adding a new file to a repo, or when
overwriting an existing file, the client can just upload
the full contents of the file in a normal form field and
the use of this `files` meta data field is redundant.
However, when the `files` field contains a file path that
does not have a corresponding, identically-named form
field, then Bitbucket interprets that as the client wanting
to replace the named file with the null set and the file is
deleted instead.
Paths in the repo that are referenced in neither files nor
an individual file field, remain unchanged and carry over
from the parent to the new commit.
This API does not support renaming as an explicit feature.
To rename a file, simply delete it and recreate it under
the new name in the same commit.
required: false
schema:
type: string
- name: branch
in: query
description: |2
The name of the branch that the new commit should be
created on. When omitted, the commit will be created on top
of the main branch and will become the main branch's new
head.
When a branch name is provided that already exists in the
repo, then the commit will be created on top of that
branch. In this case, *if* a parent SHA1 was also provided,
then it is asserted that the parent is the branch's
tip/HEAD at the time the request is made. When this is not
the case, a 409 is returned.
When a new branch name is specified (that does not already
exist in the repo), and no parent SHA1s are provided, then
the new commit will inherit from the current main branch's
tip/HEAD commit, but not advance the main branch. The new
commit will be the new branch. When the request *also*
specifies a parent SHA1, then the new commit and branch
are created directly on top of the parent commit,
regardless of the state of the main branch.
When a branch name is not specified, but a parent SHA1 is
provided, then Bitbucket asserts that it represents the
main branch's current HEAD/tip, or a 409 is returned.
When a branch name is not specified and the repo is empty,
the new commit will become the repo's root commit and will
be on the main branch.
When a branch name is specified and the repo is empty, the
new commit will become the repo's root commit and also
define the repo's main branch going forward.
This API cannot be used to create additional root commits
in non-empty repos.
The branch field cannot be repeated.
As a side effect, this API can be used to create a new
branch without modifying any files, by specifying a new
branch name in this field, together with `parents`, but
omitting the `files` fields, while not sending any files.
This will create a new commit and branch with the same
contents as the first parent. The diff of this commit
against its first parent will be empty.
required: false
schema:
type: string
security:
- oauth2:
- repository:write
- basic: []
- api_key: []
x-atlassian-oauth2-scopes:
- state: Current
scheme: oauth2
scopes:
- write:repository:bitbucket
operationId: atlassianCreateACommitByUploadingAFile
parameters:
- name: repo_slug
in: path
description: |
This can either be the repository slug or the UUID of the repository,
surrounded by curly-braces, for example: `{repository UUID}`.
required: true
schema:
type: string
- name: workspace
in: path
description: |
This can either be the workspace ID (slug) or the workspace UUID
surrounded by curly-braces, for example: `{workspace UUID}`.
required: true
schema:
type: string
/repositories/{workspace}/{repo_slug}/src/{commit}/{path}:
get:
tags:
- Source - Repositories
description: >-
This endpoints is used to retrieve the contents of a single file,
or
the contents of a directory at a specified revision.
#### Raw
file contents
When `path` points to a file, this endpoint returns
the raw contents.
The response's Content-Type is derived from the
filename
extension (not from the contents). The file contents are not
processed
and no character encoding/recoding is performed and as a
result no
character encoding is included as part of the
Content-Type.
The `Content-Disposition` header will be
"attachment" to prevent
browsers from running executable
files.
If the file is managed by LFS, then a 301 redirect
pointing to
Atlassian's media services platform is
returned.
The response includes an ETag that is based on the
contents of the file
and its attributes. This means that an empty
`__init__.py` always
returns the same ETag, regardless on the
directory it lives in, or the
commit it is on.
#### File meta
data
When the request for a file path includes the query
parameter
`?format=meta`, instead of returning the file's raw
contents, Bitbucket
instead returns the JSON object describing the
file's properties:
```javascript
$ curl
https://api.bitbucket.org/2.0/repositories/atlassian/bbql/src/eefd5ef/tests/__init__.py?format=meta
{
"links": {
"self": {
"href":
"https://api.bitbucket.org/2.0/repositories/atlassian/bbql/src/eefd5ef5d3df01aed629f650959d6706d54cd335/tests/__init__.py"
},
"meta": {
"href":
"https://api.bitbucket.org/2.0/repositories/atlassian/bbql/src/eefd5ef5d3df01aed629f650959d6706d54cd335/tests/__init__.py?format=meta"
}
},
"path": "tests/__init__.py",
"commit": {
"type": "commit",
"hash":
"eefd5ef5d3df01aed629f650959d6706d54cd335",
"links": {
"self": {
"href":
"https://api.bitbucket.org/2.0/repositories/atlassian/bbql/commit/eefd5ef5d3df01aed629f650959d6706d54cd335"
},
"html": {
"href":
"https://bitbucket.org/atlassian/bbql/commits/eefd5ef5d3df01aed629f650959d6706d54cd335"
}
}
},
"attributes": [],
"type":
"commit_file",
"size": 0
}
```
File objects contain an
`attributes` element that contains a list of
possible modifiers.
Currently defined values are:
* `link` -- indicates that the
entry is a symbolic link. The contents
of the file represent the
path the link points to.
* `executable` -- indicates that the file
has the executable bit set.
* `subrepository` -- indicates that the
entry points to a submodule or
subrepo. The contents of the file
is the SHA1 of the repository
pointed to.
* `binary` --
indicates whether Bitbucket thinks the file is binary.
This
endpoint can provide an alternative to how a HEAD request can be
used
to check for the existence of a file, or a file's size
without
incurring the overhead of receiving its full
contents.
#### Directory listings
When `path` points
to a directory instead of a file, the response is a
paginated list of
directory and file objects in the same order as the
underlying SCM
system would return them.
For example:
```javascript
$
curl
https://api.bitbucket.org/2.0/repositories/atlassian/bbql/src/eefd5ef/tests
{
"pagelen": 10,
"values": [
{
"path":
"tests/test_project",
"type": "commit_directory",
"links": {
"self": {
"href":
"https://api.bitbucket.org/2.0/repositories/atlassian/bbql/src/eefd5ef5d3df01aed629f650959d6706d54cd335/tests/test_project/"
},
"meta": {
"href":
"https://api.bitbucket.org/2.0/repositories/atlassian/bbql/src/eefd5ef5d3df01aed629f650959d6706d54cd335/tests/test_project/?format=meta"
}
},
"commit": {
"type":
"commit",
"hash":
"eefd5ef5d3df01aed629f650959d6706d54cd335",
"links":
{
"self": {
"href":
"https://api.bitbucket.org/2.0/repositories/atlassian/bbql/commit/eefd5ef5d3df01aed629f650959d6706d54cd335"
},
"html": {
"href":
"https://bitbucket.org/atlassian/bbql/commits/eefd5ef5d3df01aed629f650959d6706d54cd335"
}
}
}
},
{
"links":
{
"self": {
"href":
"https://api.bitbucket.org/2.0/repositories/atlassian/bbql/src/eefd5ef5d3df01aed629f650959d6706d54cd335/tests/__init__.py"
},
"meta": {
"href":
"https://api.bitbucket.org/2.0/repositories/atlassian/bbql/src/eefd5ef5d3df01aed629f650959d6706d54cd335/tests/__init__.py?format=meta"
}
},
"path": "tests/__init__.py",
"commit":
{
"type": "commit",
"hash":
"eefd5ef5d3df01aed629f650959d6706d54cd335",
"links":
{
"self": {
"href":
"https://api.bitbucket.org/2.0/repositories/atlassian/bbql/commit/eefd5ef5d3df01aed629f650959d6706d54cd335"
},
"html": {
"href":
"https://bitbucket.org/atlassian/bbql/commits/eefd5ef5d3df01aed629f650959d6706d54cd335"
}
}
},
"attributes": [],
"type":
"commit_file",
"size": 0
}
],
"page": 1,
"size": 2
}
```
When listing the contents of the repo's
root directory, the use of a
trailing slash at the end of the URL is
required.
The response by default is not recursive, meaning that
only the direct contents of
a path are returned. The response does
not recurse down into
subdirectories. In order to "walk" the entire
directory tree, the
client can either parse each response and follow
the `self` links of each
`commit_directory` object, or can specify a
`max_depth` to recurse to.
The max_depth parameter will do a
breadth-first search to return the contents of the subdirectories
up
to the depth specified. Breadth-first search was chosen as it leads to
the least amount of
file system operations for git. If the
`max_depth` parameter is specified to be too
large, the call will
time out and return a 555.
Each returned object is either a
`commit_file`, or a `commit_directory`,
both of which contain a
`path` element. This path is the absolute path
from the root of the
repository. Each object also contains a `commit`
object which embeds
the commit the file is on. Note that this is merely
the commit that
was used in the URL. It is *not* the commit that last
modified the
file.
Directory objects have 2 representations. Their `self` link
returns the
paginated contents of the directory. The `meta` link on
the other hand
returns the actual `directory` object itself,
e.g.:
```javascript
{
"path": "tests/test_project",
"type": "commit_directory",
"links": {
"self": {
"href":
"https://api.bitbucket.org/2.0/repositories/atlassian/bbql/src/eefd5ef5d3df01aed629f650959d6706d54cd335/tests/test_project/"
},
"meta": {
"href":
"https://api.bitbucket.org/2.0/repositories/atlassian/bbql/src/eefd5ef5d3df01aed629f650959d6706d54cd335/tests/test_project/?format=meta"
}
},
"commit": { ... }
}
```
#### Querying,
filtering and sorting
Like most API endpoints, this API supports
the Bitbucket
querying/filtering syntax and so you could filter a
directory listing
to only include entries that match certain
criteria. For instance, to
list all binary files over 1kb use the
expression:
`size > 1024 and attributes = "binary"`
which
after urlencoding yields the query
string:
`?q=size%3E1024+and+attributes%3D%22binary%22`
To
change the ordering of the response, use the `?sort`
parameter:
`.../src/eefd5ef/?sort=-size`
See [filtering
and sorting](/cloud/bitbucket/rest/intro/#filtering) for
more
details.
summary: Atlassian Get File Or Directory Contents
responses:
'200':
description: >
If the path matches a file, then the raw contents of the file are
returned. If the `format=meta` query parameter is provided,
a json document containing the file's meta data is
returned. If the `format=rendered` query parameter is provided,
the contents of the file in HTML-formated rendered markup is
returned.
If the path matches a directory, then a paginated
list of file and directory entries is returned (if the
`format=meta` query parameter was provided, then the json document
containing the directory's meta data is returned.)
content:
application/json:
schema:
$ref: '#/components/schemas/paginated_treeentries'
'404':
description: If the path or commit in the URL does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
'555':
description: >-
If the call times out, possibly because the specified recursion
depth is too large.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
parameters:
- name: format
in: query
description: >-
If 'meta' is provided, returns the (json) meta data for the contents
of the file. If 'rendered' is provided, returns the contents of a
non-binary file in HTML-formatted rendered markup. The 'rendered'
option only supports these filetypes: `.md`, `.markdown`, `.mkd`,
`.mkdn`, `.mdown`, `.text`, `.rst`, and `.textile`. Since Git does
not generally track what text encoding scheme is used, this endpoint
attempts to detect the most appropriate character encoding. While
usually correct, determining the character encoding can be ambiguous
which in exceptional cases can lead to misinterpretation of the
characters. As such, the raw element in the response object should
not be treated as equivalent to the file's actual contents.
required: false
schema:
type: string
enum:
- meta
- rendered
- name: q
in: query
description: >-
Optional filter expression as per [filtering and
sorting](/cloud/bitbucket/rest/intro/#filtering).
required: false
schema:
type: string
- name: sort
in: query
description: >-
Optional sorting parameter as per [filtering and
sorting](/cloud/bitbucket/rest/intro/#sorting-query-results).
required: false
schema:
type: string
- name: max_depth
in: query
description: >-
If provided, returns the contents of the repository and its
subdirectories recursively until the specified max_depth of nested
directories. When omitted, this defaults to 1.
required: false
schema:
type: integer
security:
- oauth2:
- repository
- basic: []
- api_key: []
x-atlassian-oauth2-scopes:
- state: Current
scheme: oauth2
scopes:
- read:repository:bitbucket
operationId: atlassianGetFileOrDirectoryContents
parameters:
- name: commit
in: path
description: The commit's SHA1.
required: true
schema:
type: string
- name: path
in: path
description: Path to the file.
required: true
schema:
type: string
- name: repo_slug
in: path
description: |
This can either be the repository slug or the UUID of the repository,
surrounded by curly-braces, for example: `{repository UUID}`.
required: true
schema:
type: string
- name: workspace
in: path
description: |
This can either be the workspace ID (slug) or the workspace UUID
surrounded by curly-braces, for example: `{workspace UUID}`.
required: true
schema:
type: string
/repositories/{workspace}/{repo_slug}/versions:
get:
tags:
- Issue Tracker
description: >-
Returns the versions that have been defined in the issue
tracker.
This resource is only available on repositories that
have the issue
tracker enabled.
summary: Atlassian List Defined Versions For Issues
responses:
'200':
description: The versions that have been defined in the issue tracker.
content:
application/json:
schema:
$ref: '#/components/schemas/paginated_versions'
'404':
description: >-
The specified repository does not exist or does not have the issue
tracker enabled.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
security:
- oauth2:
- issue
- basic: []
- api_key: []
operationId: atlassianListDefinedVersionsForIssues
parameters:
- name: repo_slug
in: path
description: |
This can either be the repository slug or the UUID of the repository,
surrounded by curly-braces, for example: `{repository UUID}`.
required: true
schema:
type: string
- name: workspace
in: path
description: |
This can either be the workspace ID (slug) or the workspace UUID
surrounded by curly-braces, for example: `{workspace UUID}`.
required: true
schema:
type: string
/repositories/{workspace}/{repo_slug}/versions/{version_id}:
get:
tags:
- Issue Tracker
description: Returns the specified issue tracker version object.
summary: Atlassian Get A Defined Version For Issues
responses:
'200':
description: The specified version object.
content:
application/json:
schema:
$ref: '#/components/schemas/version'
'404':
description: >-
The specified repository or version does not exist or does not have
the issue tracker enabled.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
security:
- oauth2:
- issue
- basic: []
- api_key: []
operationId: atlassianGetADefinedVersionForIssues
parameters:
- name: repo_slug
in: path
description: |
This can either be the repository slug or the UUID of the repository,
surrounded by curly-braces, for example: `{repository UUID}`.
required: true
schema:
type: string
- name: version_id
in: path
description: The version's id
required: true
schema:
type: integer
- name: workspace
in: path
description: |
This can either be the workspace ID (slug) or the workspace UUID
surrounded by curly-braces, for example: `{workspace UUID}`.
required: true
schema:
type: string
/repositories/{workspace}/{repo_slug}/watchers:
get:
tags:
- Repositories
description: >-
Returns a paginated list of all the watchers on the
specified
repository.
summary: Atlassian List Repositories Watchers
responses:
'200':
description: A paginated list of all the watchers on the specified repository.
content:
application/json:
schema:
$ref: '#/components/schemas/paginated_accounts'
security:
- oauth2:
- repository
- basic: []
- api_key: []
x-atlassian-oauth2-scopes:
- state: Current
scheme: oauth2
scopes:
- read:repository:bitbucket
operationId: atlassianListRepositoriesWatchers
parameters:
- name: repo_slug
in: path
description: |
This can either be the repository slug or the UUID of the repository,
surrounded by curly-braces, for example: `{repository UUID}`.
required: true
schema:
type: string
- name: workspace
in: path
description: |
This can either be the workspace ID (slug) or the workspace UUID
surrounded by curly-braces, for example: `{workspace UUID}`.
required: true
schema:
type: string
/workspaces/{workspace}/permissions/repositories/{repo_slug}:
get:
tags:
- Workspaces
description: >-
Returns an object for the repository permission of each user in
the
requested repository.
Permissions returned are effective
permissions: the highest level of
permission the user has. This does
not distinguish between direct and
indirect (group)
privileges.
Only users with admin permission for the repository
may access this resource.
Permissions can be:
*
`admin`
* `write`
* `read`
Results may be further [filtered
or sorted](/cloud/bitbucket/rest/intro/#filtering)
by user, or
permission by adding the following query string parameters:
*
`q=permission>"read"`
* `sort=user.display_name`
Note that the
query parameter values need to be URL escaped so that `=`
would
become `%3D`.
summary: Atlassian List A Repository Permissions For A Workspace
responses:
'200':
description: The repository permission for all users in this repository.
content:
application/json:
schema:
$ref: '#/components/schemas/paginated_repository_permissions'
examples:
response:
value:
pagelen: 10
values:
- type: repository_permission
user:
type: user
display_name: Erik van Zijst
uuid: '{d301aafa-d676-4ee0-88be-962be7417567}'
repository:
type: repository
name: geordi
full_name: atlassian_tutorial/geordi
uuid: '{85d08b4e-571d-44e9-a507-fa476535aa98}'
permission: admin
- type: repository_permission
user:
type: user
display_name: Sean Conaty
uuid: '{504c3b62-8120-4f0c-a7bc-87800b9d6f70}'
repository:
type: repository
name: geordi
full_name: atlassian_tutorial/geordi
uuid: '{85d08b4e-571d-44e9-a507-fa476535aa98}'
permission: write
page: 1
size: 2
'403':
description: The requesting user isn't an admin of the repository.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
parameters:
- name: q
in: query
description: |2-
Query string to narrow down the response as per
[filtering and sorting](/cloud/bitbucket/rest/intro/#filtering).
required: false
schema:
type: string
- name: sort
in: query
description: >2
Name of a response property sort the result by as per
[filtering and
sorting](/cloud/bitbucket/rest/intro/#sorting-query-results).
required: false
schema:
type: string
security:
- oauth2:
- repository
- basic: []
- api_key: []
x-atlassian-oauth2-scopes:
- state: Current
scheme: oauth2
scopes:
- read:repository:bitbucket
- read:user:bitbucket
operationId: atlassianListARepositoryPermissionsForAWorkspace
parameters:
- name: repo_slug
in: path
description: |
This can either be the repository slug or the UUID of the repository,
surrounded by curly-braces, for example: `{repository UUID}`.
required: true
schema:
type: string
- name: workspace
in: path
description: |
This can either be the workspace ID (slug) or the workspace UUID
surrounded by curly-braces, for example: `{workspace UUID}`.
required: true
schema:
type: string
tags:
- name: Branch Restrictions
- name: Branching Model
- name: Commit Statuses
- name: Commits
- name: Deployments
- name: Downloads
- name: Issue Tracker
- name: Pipelines
- name: Properties
- name: Pullrequests
- name: Pullrequests - Commit Statuses
- name: Refs
- name: Reports - Commits
- name: Repositories
- name: Repositories - Webhooks
- name: Source - Repositories
- name: Workspaces
x-revision: 3c039d08312e
x-atlassian-narrative:
documents:
- anchor: authentication
title: Authentication methods
description: How to authenticate API actions
icon: >-
data:image/svg+xml;base64,b'PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxOTcuNjQ3MyAxODYuODEzOCI+CiAgPGRlZnM+CiAgICA8c3R5bGU+CiAgICAgIC5jbHMtMSB7CiAgICAgICAgaXNvbGF0aW9uOiBpc29sYXRlOwogICAgICB9CgogICAgICAuY2xzLTIgewogICAgICAgIGZpbGw6ICNkZTM1MGI7CiAgICAgIH0KCiAgICAgIC5jbHMtMyB7CiAgICAgICAgZmlsbDogI2ZmNTYzMDsKICAgICAgfQoKICAgICAgLmNscy00IHsKICAgICAgICBmaWxsOiAjZGZlMWU1OwogICAgICAgIG1peC1ibGVuZC1tb2RlOiBtdWx0aXBseTsKICAgICAgfQoKICAgICAgLmNscy01IHsKICAgICAgICBmaWxsOiAjZmFmYmZjOwogICAgICB9CgogICAgICAuY2xzLTYgewogICAgICAgIGZpbGw6ICNlYmVjZjA7CiAgICAgIH0KCiAgICAgIC5jbHMtNyB7CiAgICAgICAgZmlsbDogbm9uZTsKICAgICAgICBzdHJva2U6ICMwMDY1ZmY7CiAgICAgICAgc3Ryb2tlLW1pdGVybGltaXQ6IDEwOwogICAgICAgIHN0cm9rZS13aWR0aDogMnB4OwogICAgICB9CgogICAgICAuY2xzLTggewogICAgICAgIGZpbGw6ICM1ZTZjODQ7CiAgICAgIH0KCiAgICAgIC5jbHMtOSB7CiAgICAgICAgZmlsbDogIzI1Mzg1ODsKICAgICAgfQoKICAgICAgLmNscy0xMCB7CiAgICAgICAgZmlsbDogIzI2ODRmZjsKICAgICAgfQoKICAgICAgLmNscy0xMSB7CiAgICAgICAgZmlsbDogIzAwNjVmZjsKICAgICAgfQogICAgPC9zdHlsZT4KICA8L2RlZnM+CiAgPHRpdGxlPlNlY3VyaXR5IHdpdGggS2V5PC90aXRsZT4KICA8ZyBjbGFzcz0iY2xzLTEiPgogICAgPGcgaWQ9IkxheWVyXzIiIGRhdGEtbmFtZT0iTGF5ZXIgMiI+CiAgICAgIDxnIGlkPSJPYmplY3RzIj4KICAgICAgICA8cGF0aCBjbGFzcz0iY2xzLTIiIGQ9Ik00Mi4wNjcyLDBoLjYxMTRhOCw4LDAsMCwxLDgsOFYyMy4yMzM4YTAsMCwwLDAsMSwwLDBIMzQuMDY3MmEwLDAsMCwwLDEsMCwwVjhBOCw4LDAsMCwxLDQyLjA2NzIsMFoiLz4KICAgICAgICA8cGF0aCBjbGFzcz0iY2xzLTIiIGQ9Ik0xMDguMjIsMGguNjExNGE4LDgsMCwwLDEsOCw4VjIzLjIzMzhhMCwwLDAsMCwxLDAsMEgxMDAuMjJhMCwwLDAsMCwxLDAsMFY4QTgsOCwwLDAsMSwxMDguMjIsMFoiLz4KICAgICAgICA8cGF0aCBjbGFzcz0iY2xzLTIiIGQ9Ik0xNzQuMzcyMiwwaC42MTE0YTgsOCwwLDAsMSw4LDhWMjMuMjMzOGEwLDAsMCwwLDEsMCwwSDE2Ni4zNzIyYTAsMCwwLDAsMSwwLDBWOEE4LDgsMCwwLDEsMTc0LjM3MjIsMFoiLz4KICAgICAgICA8cmVjdCBjbGFzcz0iY2xzLTIiIHg9IjM0LjA2NzIiIHk9IjIzLjIzMzgiIHdpZHRoPSIxNjMuNTgiIGhlaWdodD0iMTYzLjU4Ii8+CiAgICAgICAgPHBhdGggY2xhc3M9ImNscy0yIiBkPSJNNDIuMDY3MiwwSDU5LjI5YTgsOCwwLDAsMSw4LDhWMjMuMjIyOGEwLDAsMCwwLDEsMCwwSDM0LjA2NzJhMCwwLDAsMCwxLDAsMFY4YTgsOCwwLDAsMSw4LThaIi8+CiAgICAgICAgPHBhdGggY2xhc3M9ImNscy0yIiBkPSJNMTA3LjI0NTgsMGgxNy4yMjI4YTgsOCwwLDAsMSw4LDhWMjMuMjIyOGEwLDAsMCwwLDEsMCwwSDk5LjI0NThhMCwwLDAsMCwxLDAsMFY4YTgsOCwwLDAsMSw4LThaIi8+CiAgICAgICAgPHBhdGggY2xhc3M9ImNscy0yIiBkPSJNMTcyLjQyNDQsMGgxNy4yMjI4YTgsOCwwLDAsMSw4LDhWMjMuMjIyOGEwLDAsMCwwLDEsMCwwSDE2NC40MjQ0YTAsMCwwLDAsMSwwLDBWOGE4LDgsMCwwLDEsOC04WiIvPgogICAgICAgIDxyZWN0IGNsYXNzPSJjbHMtMyIgeD0iMTcuNDU1OCIgeT0iMjMuMjMzOCIgd2lkdGg9IjE2My41OCIgaGVpZ2h0PSIxNjMuNTgiLz4KICAgICAgICA8cGF0aCBjbGFzcz0iY2xzLTMiIGQ9Ik0yNS40NTU4LDBINDIuNjc4NmE4LDgsMCwwLDEsOCw4VjIzLjIyMjhhMCwwLDAsMCwxLDAsMEgxNy40NTU4YTAsMCwwLDAsMSwwLDBWOEE4LDgsMCwwLDEsMjUuNDU1OCwwWiIvPgogICAgICAgIDxwYXRoIGNsYXNzPSJjbHMtMyIgZD0iTTkwLjYzNDQsMGgxNy4yMjI4YTgsOCwwLDAsMSw4LDhWMjMuMjIyOGEwLDAsMCwwLDEsMCwwSDgyLjYzNDRhMCwwLDAsMCwxLDAsMFY4QTgsOCwwLDAsMSw5MC42MzQ0LDBaIi8+CiAgICAgICAgPHBhdGggY2xhc3M9ImNscy0zIiBkPSJNMTU1LjgxMywwaDE3LjIyMjhhOCw4LDAsMCwxLDgsOFYyMy4yMjI4YTAsMCwwLDAsMSwwLDBIMTQ3LjgxM2EwLDAsMCwwLDEsMCwwVjhBOCw4LDAsMCwxLDE1NS44MTMsMFoiLz4KICAgICAgICA8cGF0aCBjbGFzcz0iY2xzLTMiIGQ9Ik0yNS40NTU4LDBINDIuNjc4NmE4LDgsMCwwLDEsOCw4VjIzLjIyMjhhMCwwLDAsMCwxLDAsMEgxNy40NTU4YTAsMCwwLDAsMSwwLDBWOEE4LDgsMCwwLDEsMjUuNDU1OCwwWiIvPgogICAgICAgIDxwYXRoIGNsYXNzPSJjbHMtMyIgZD0iTTkwLjYzNDQsMGgxNy4yMjI4YTgsOCwwLDAsMSw4LDhWMjMuMjIyOGEwLDAsMCwwLDEsMCwwSDgyLjYzNDRhMCwwLDAsMCwxLDAsMFY4QTgsOCwwLDAsMSw5MC42MzQ0LDBaIi8+CiAgICAgICAgPHBhdGggY2xhc3M9ImNscy0zIiBkPSJNMTU1LjgxMywwaDE3LjIyMjhhOCw4LDAsMCwxLDgsOFYyMy4yMjI4YTAsMCwwLDAsMSwwLDBIMTQ3LjgxM2EwLDAsMCwwLDEsMCwwVjhBOCw4LDAsMCwxLDE1NS44MTMsMFoiLz4KICAgICAgICA8cmVjdCBjbGFzcz0iY2xzLTIiIHg9IjM1Ljc1OTYiIHk9IjU2LjgwNjUiIHdpZHRoPSIzMy4yMjI4IiBoZWlnaHQ9IjE1LjYwMzgiLz4KICAgICAgICA8cmVjdCBjbGFzcz0iY2xzLTIiIHg9IjEzMS4yMDE2IiB5PSIxMzYuOTYxNSIgd2lkdGg9IjMzLjIyMjgiIGhlaWdodD0iMTUuNjAzOCIvPgogICAgICAgIDxwYXRoIGNsYXNzPSJjbHMtNCIgZD0iTTU3LjM3MDksNzEuNjAzNmg3MC43NWE5LDksMCwwLDEsOSw5djM1LjM3NDlhNDQuMzc0OCw0NC4zNzQ4LDAsMCwxLTQ0LjM3NDgsNDQuMzc0OGgwYTQ0LjM3NDgsNDQuMzc0OCwwLDAsMS00NC4zNzQ4LTQ0LjM3NDhWODAuNjAzNkE5LDksMCwwLDEsNTcuMzcwOSw3MS42MDM2WiIvPgogICAgICAgIDxwYXRoIGNsYXNzPSJjbHMtNSIgZD0iTTY2LjM3MSw2Ni42NjE3aDcwLjc1YTksOSwwLDAsMSw5LDl2MzUuMzc0OWE0NC4zNzQ4LDQ0LjM3NDgsMCwwLDEtNDQuMzc0OCw0NC4zNzQ4aDBBNDQuMzc0OCw0NC4zNzQ4LDAsMCwxLDU3LjM3MSwxMTEuMDM2NlY3NS42NjE3YTksOSwwLDAsMSw5LTlaIi8+CiAgICAgICAgPHBhdGggaWQ9Il9SZWN0YW5nbGVfIiBkYXRhLW5hbWU9IiZsdDtSZWN0YW5nbGUmZ3Q7IiBjbGFzcz0iY2xzLTYiIGQ9Ik02MS4zNzEsNjYuNjYxN2g3MC43NWE5LDksMCwwLDEsOSw5djM1LjM3NDlhNDQuMzc0OCw0NC4zNzQ4LDAsMCwxLTQ0LjM3NDgsNDQuMzc0OGgwQTQ0LjM3NDgsNDQuMzc0OCwwLDAsMSw1Mi4zNzEsMTExLjAzNjZWNzUuNjYxN0E5LDksMCwwLDEsNjEuMzcxLDY2LjY2MTdaIi8+CiAgICAgICAgPHBhdGggY2xhc3M9ImNscy03IiBkPSJNOTYuNzQ1OSwxNDcuNzQ0MWEzNi43NDg3LDM2Ljc0ODcsMCwwLDEtMzYuNzA3NC0zNi43MDc0Vjc4LjA1ODRhMy43MzMzLDMuNzMzMywwLDAsMSwzLjcyOS0zLjcyOWg2NS45NTYzYTMuNzMzMywzLjczMzMsMCwwLDEsMy43MjksMy43Mjl2MzIuOTc4NEEzNi43NDg2LDM2Ljc0ODYsMCwwLDEsOTYuNzQ1OSwxNDcuNzQ0MVoiLz4KICAgICAgICA8cGF0aCBjbGFzcz0iY2xzLTQiIGQ9Ik0xMDAuNjg5MywxNjMuMzE2N1YxMTEuMDk3M2EzLjk0NDMsMy45NDQzLDAsMCwwLTcuODg4NywwdjUyLjIyYTIyLjUyNTIsMjIuNTI1MiwwLDAsMC0xOC41NDc5LDIyLjE0YzAsLjQ1Ni4wMTc4LjkwNzguMDQ0NywxLjM1NzFIODIuMjFjLS4wNDE0LS40NDc0LS4wNjg4LS44OTktLjA2ODgtMS4zNTcxYTE0LjYyLDE0LjYyLDAsMCwxLDE0LjU5NzQtMTQuNjA0MWwuMDA2MS4wMDA2LjAwNjgtLjAwMDdBMTQuNjIxMSwxNC42MjExLDAsMCwxLDExMS4zNSwxODUuNDU2NmMwLC40NTgxLS4wMjczLjkxLS4wNjg4LDEuMzU3MWg3LjkxMjhjLjAyNjktLjQ0OTMuMDQ0Ny0uOTAxMS4wNDQ3LTEuMzU3MUEyMi41MjU5LDIyLjUyNTksMCwwLDAsMTAwLjY4OTMsMTYzLjMxNjdaIi8+CiAgICAgICAgPHJlY3QgY2xhc3M9ImNscy0yIiB4PSIxNy40NTU4IiB5PSIzNi40NzAyIiB3aWR0aD0iMzMuMjIyOCIgaGVpZ2h0PSIxNS42MDM4Ii8+CiAgICAgICAgPHJlY3QgY2xhc3M9ImNscy0yIiB4PSIxNy40NTU4IiB5PSIxNTguMTIxNyIgd2lkdGg9IjMzLjIyMjgiIGhlaWdodD0iMTUuNjAzOCIvPgogICAgICAgIDxyZWN0IGNsYXNzPSJjbHMtMiIgeD0iMTQ3LjgxMyIgeT0iMzYuNDcwMiIgd2lkdGg9IjMzLjIyMjgiIGhlaWdodD0iMTUuNjAzOCIvPgogICAgICAgIDxyZWN0IGNsYXNzPSJjbHMtMiIgeD0iMTUwLjA2NDMiIHk9IjE1Ny41NTEzIiB3aWR0aD0iMzMuMjIyOCIgaGVpZ2h0PSIxNS42MDM4Ii8+CiAgICAgICAgPHBhdGggaWQ9Il9QYXRoXyIgZGF0YS1uYW1lPSImbHQ7UGF0aCZndDsiIGNsYXNzPSJjbHMtOCIgZD0iTTEwNy41MjU0LDEwMS4wMDI3YTExLjc3OTQsMTEuNzc5NCwwLDEsMC0xOS44Niw4LjU1NDhBNC4wNDE3LDQuMDQxNywwLDAsMSw4OC44NSwxMTMuNjJsLTIuMTA0LDcuMjY4MWEzLDMsMCwwLDAsMi44ODE3LDMuODM0MmgxMi4yMzcxYTMsMywwLDAsMCwyLjg4MTctMy44MzQybC0yLjA5NTktNy4yNGE0LjA3NDMsNC4wNzQzLDAsMCwxLDEuMTgwOC00LjA5NDVBMTEuNzE3MiwxMS43MTcyLDAsMCwwLDEwNy41MjU0LDEwMS4wMDI3WiIvPgogICAgICAgIDxwYXRoIGNsYXNzPSJjbHMtOSIgZD0iTTEwNC43NDYxLDEyMC44ODc3bC0yLjA5NTktNy4yNGE0LjA3NDQsNC4wNzQ0LDAsMCwxLDEuMTgwOC00LjA5NDUsMTEuNzYyOSwxMS43NjI5LDAsMCwwLTUuMDYtMTkuOTMxMywxMS45MSwxMS45MSwwLDAsMC04Ljc5OCwxMC45OTQ5LDExLjcxODUsMTEuNzE4NSwwLDAsMCwzLjY5MjksOC45NDFBNC4wNDE2LDQuMDQxNiwwLDAsMSw5NC44NSwxMTMuNjJsLTMuMjE0LDExLjEwMjNoMTAuMjI4OEEzLDMsMCwwLDAsMTA0Ljc0NjEsMTIwLjg4NzdaIi8+CiAgICAgICAgPHBhdGggY2xhc3M9ImNscy0xMCIgZD0iTTgxLjc5NzUsMTAwLjMxYTMuOTQzOSwzLjk0MzksMCwwLDAtMy45NDQzLTMuOTQ0M0g0MS4wNDE3YTMuOTQ0MywzLjk0NDMsMCwwLDAsMCw3Ljg4ODdINzcuODUzMkEzLjk0MzksMy45NDM5LDAsMCwwLDgxLjc5NzUsMTAwLjMxWiIvPgogICAgICAgIDxwYXRoIGlkPSJfUGF0aF8yIiBkYXRhLW5hbWU9IiZsdDtQYXRoJmd0OyIgY2xhc3M9ImNscy0xMSIgZD0iTTQxLjA0MTYsMTA0LjI1MzlIOTYuODUzMmEzLjk0NDMsMy45NDQzLDAsMCwwLDAtNy44ODg3SDQxLjA0MTZhMy45NDQzLDMuOTQ0MywwLDAsMCwwLDcuODg4N1oiLz4KICAgICAgICA8cGF0aCBjbGFzcz0iY2xzLTEwIiBkPSJNODEuNzk3NSwxMDAuMzFhMy45NDM5LDMuOTQzOSwwLDAsMC0zLjk0NDMtMy45NDQzSDQxLjA0MTdhMy45NDQzLDMuOTQ0MywwLDAsMCwwLDcuODg4N0g3Ny44NTMyQTMuOTQzOSwzLjk0MzksMCwwLDAsODEuNzk3NSwxMDAuMzFaIi8+CiAgICAgICAgPHBhdGggY2xhc3M9ImNscy0xMCIgZD0iTTIyLjQ5MzIsMTIyLjgwMjlBMjIuNDkyOSwyMi40OTI5LDAsMSwxLDQ0Ljk4NTgsMTAwLjMxLDIyLjUxODUsMjIuNTE4NSwwLDAsMSwyMi40OTMyLDEyMi44MDI5Wm0wLTM3LjA5NzJBMTQuNjA0MiwxNC42MDQyLDAsMSwwLDM3LjA5NzIsMTAwLjMxLDE0LjYyMDcsMTQuNjIwNywwLDAsMCwyMi40OTMyLDg1LjcwNTdaIi8+CiAgICAgIDwvZz4KICAgIDwvZz4KICA8L2c+Cjwvc3ZnPgo='
body: >2
The purpose of this section is to describe how to authenticate when
making API calls using the Bitbucket REST API.
--
* [Basic auth](#basic-auth)
* [Access Tokens](#access-tokens)
* [Repository Access Tokens](#repository-access-tokens)
* [Project Access Tokens](#project-access-tokens)
* [Workspace Access Tokens](#workspace-access-tokens)
* [App passwords](#app-passwords)
* [OAuth 2.0](#oauth-2-0)
* [Making requests](#making-requests)
* [Repository cloning](#repository-cloning)
* [Refresh tokens](#refresh-tokens)
* [Bitbucket OAuth 2.0 Scopes](#bitbucket-oauth-2-0-scopes)
* [Forge App Scopes](#forge-app-scopes)
### Basic auth
Basic HTTP Authentication as per
[RFC-2617](https://tools.ietf.org/html/rfc2617) (Digest not supported).
Note that Basic Auth is available only with username and [app
password](https://bitbucket.org/account/settings/app-passwords/) as
credentials.
### Access Tokens
Access Tokens are passwords (or tokens) that provide access to a
_single_ repository, project or workspace.
These tokens can authenticate with Bitbucket APIs for scripting, CI/CD
tools, Bitbucket Cloud-connected apps,
and Bitbucket Cloud integrations.
Access Tokens are linked to a repository, project, or workspace, not a
user account.
The level of access provided by the token is set when a repository, or
workspace admin creates it,
by setting permission scopes.
There are three types of Access Token:
* **Repository Access Tokens** can connect to a single repository,
preventing them from accessing any other repositories or workspaces.
* **Project Access Tokens** can connect to a single project, providing
access to any repositories within the project.
* **Workspace Access Tokens** can connect to a single workspace and have
access to any projects and repositories within that workspace.
When using Bitbucket APIs with an Access Token, the token will be
treated as the "user" in the
Bitbucket UI and Bitbucket logs. This includes when using the Access
Token to leave a comment on a pull request,
push a commit, or merge a pull request. The Bitbucket UI and API
responses will show the
Repository/Project/Workspace Access Token as a user. The username shown
in the Bitbucket UI is the Access
Token _name_, and a custom icon is used to differentiate it from a
regular user in the UI.
#### Considerations for using Access Tokens
* After creation, an Access Token can't be viewed or modified. The
token's name, created date,
last accessed date, and scopes are visible on the repository, project,
or workspace **Access Tokens** page.
* Access Tokens can access a limited set of Bitbucket's permission
scopes.
* Provided you set the correct permission scopes, you can use an Access
Token to clone (`repository`)
and push (`repository:write`) code to the token's repository or the
repositories the token can access.
* You can't use an Access Token to log into the Bitbucket website.
* Access Tokens don't require two-step verification.
* You can set permission scopes (specific access rights) for each Access
Token.
* You can't use an Access Token to manipulate or query repository,
project, or workspace permissions.
* Access Tokens are not listed in any repository or workspace permission
API response.
* Access Tokens are deactivated when deleting the resource tied to it (a
repository, project, or workspace).
Repository Access Tokens are also revoked when transferring the
repository to another workspace.
* Any content created by the Access Token will persist after the Access
Token has been revoked.
* Access Tokens can interact with branch restriction APIs, but the token
can't be configured as a user with merge access when using branch
restrictions.
There are some APIs which are inaccessible for Access Tokens, these are:
* [Add a repository deploy
key](/cloud/bitbucket/rest/api-group-deployments/#api-repositories-workspace-repo-slug-deploy-keys-post)
* [Update a repository deploy
key](/cloud/bitbucket/rest/api-group-deployments/#api-repositories-workspace-repo-slug-deploy-keys-key-id-put)
* [Delete a repository deploy
key](/cloud/bitbucket/rest/api-group-deployments/#api-repositories-workspace-repo-slug-deploy-keys-key-id-delete)
#### Repository Access Tokens
For details on creating, managing, and using Repository Access Tokens,
visit
[Repository Access
Tokens](https://support.atlassian.com/bitbucket-cloud/docs/repository-access-tokens/).
The available scopes for Repository Access Tokens are:
- [`repository`](#repository)
- [`repository:write`](#repository-write)
- [`repository:admin`](#repository-admin)
- [`repository:delete`](#repository-delete)
- [`pullrequest`](#pullrequest)
- [`pullrequest:write`](#pullrequest-write)
- [`webhook`](#webhook)
- [`pipeline`](#pipeline)
- [`pipeline:write`](#pipeline-write)
- [`pipeline:variable`](#pipeline-variable)
- [`runner`](#runner)
- [`runner:write`](#runner-write)
#### Project Access Tokens
For details on creating, managing, and using Project Access Tokens,
visit
[Project Access
Tokens](https://support.atlassian.com/bitbucket-cloud/docs/project-access-tokens/).
The available scopes for Project Access Tokens are:
- [`project`](#project)
- [`repository`](#repository)
- [`repository:write`](#repository-write)
- [`repository:admin`](#repository-admin)
- [`repository:delete`](#repository-delete)
- [`pullrequest`](#pullrequest)
- [`pullrequest:write`](#pullrequest-write)
- [`webhook`](#webhook)
- [`pipeline`](#pipeline)
- [`pipeline:write`](#pipeline-write)
- [`pipeline:variable`](#pipeline-variable)
- [`runner`](#runner)
- [`runner:write`](#runner-write)
#### Workspace Access Tokens
For details on creating, managing, and using Workspace Access Tokens,
visit
[Workspace Access
Tokens](https://support.atlassian.com/bitbucket-cloud/docs/workspace-access-tokens/).
The available scopes for Workspace Access Tokens are:
- [`project`](#project)
- [`project:admin`](#project-admin)
- [`repository`](#repository)
- [`repository:write`](#repository-write)
- [`repository:admin`](#repository-admin)
- [`repository:delete`](#repository-delete)
- [`pullrequest`](#pullrequest)
- [`pullrequest:write`](#pullrequest-write)
- [`webhook`](#webhook)
- [`account`](#account)
- [`pipeline`](#pipeline)
- [`pipeline:write`](#pipeline-write)
- [`pipeline:variable`](#pipeline-variable)
- [`runner`](#runner)
- [`runner:write`](#runner-write)
### App passwords
App passwords allow users to make API calls to their Bitbucket account
through apps such as Sourcetree.
Some important points about app passwords:
* You cannot view an app password or adjust permissions after you create
the app password. Because app passwords are encrypted on our database
and cannot be viewed by anyone. They are essentially designed to be
disposable. If you need to change the scopes or lost the password just
create a new one.
* You cannot use them to log into your Bitbucket account.
* You cannot use app passwords to manage team actions.
App passwords are tied to an individual account's credentials and should not be shared. If you're sharing your app password you're essentially giving direct, authenticated, access to everything that password has been scoped to do with the Bitbucket API's.
* You can use them for API call authentication, even if you don't have
two-step verification enabled.
* You can set permission scopes (specific access rights) for each app
password.
For details on creating, managing, and using App passwords, visit
[App
passwords](https://support.atlassian.com/bitbucket-cloud/docs/app-passwords/).
### OAuth 2.0
Our OAuth 2 implementation is merged in with our existing OAuth 1 in
such a way that existing OAuth 1 consumers automatically become
valid OAuth 2 clients. The only thing you need to do is edit your
existing consumer and configure a callback URL.
Once that is in place, you'll have the following 2 URLs:
https://bitbucket.org/site/oauth2/authorize
https://bitbucket.org/site/oauth2/access_token
For obtaining access/bearer tokens, we support three of RFC-6749's grant
flows, plus a custom Bitbucket flow for exchanging JWT tokens for access
tokens.
Note that Resource Owner Password Credentials Grant (4.3) is no longer
supported.
#### 1. Authorization Code Grant (4.1)
The full-blown 3-LO flow. Request authorization from the end user by
sending their browser to:
https://bitbucket.org/site/oauth2/authorize?client_id={client_id}&response_type=code
The callback includes the `?code={}` query parameter that you can swap
for an access token:
$ curl -X POST -u "client_id:secret" \
https://bitbucket.org/site/oauth2/access_token \
-d grant_type=authorization_code -d code={code}
#### 2. Implicit Grant (4.2)
This flow is useful for browser-based add-ons that operate without
server-side backends.
Request the end user for authorization by directing the browser to:
https://bitbucket.org/site/oauth2/authorize?client_id={client_id}&response_type=token
That will redirect to your preconfigured callback URL with a fragment
containing the access token
(`#access_token={token}&token_type=bearer`) where your page's js can
pull it out of the URL.
#### 3. Client Credentials Grant (4.4)
Somewhat like our existing "2-LO" flow for OAuth 1. Obtain an access
token that represents not an end user, but the owner of the
client/consumer:
$ curl -X POST -u "client_id:secret" \
https://bitbucket.org/site/oauth2/access_token \
-d grant_type=client_credentials
#### 4. Bitbucket Cloud JWT Grant (urn:bitbucket:oauth2:jwt)
If your Atlassian Connect add-on uses JWT authentication, you can swap a
JWT for an OAuth access token. The resulting access token represents the
account for which the add-on is installed.
Make sure you send the JWT token in the Authorization request header
using the "JWT" scheme (case sensitive). Note that this custom scheme
makes this different from HTTP Basic Auth (and so you cannot use "curl
-u").
$ curl -X POST -H "Authorization: JWT {jwt_token}" \
https://bitbucket.org/site/oauth2/access_token \
-d grant_type=urn:bitbucket:oauth2:jwt
#### Making Requests
Once you have an access token, as per RFC-6750, you can use it in a
request in any of
the following ways (in decreasing order of desirability):
1. Send it in a request header: `Authorization: Bearer {access_token}`
2. Include it in a (application/x-www-form-urlencoded) POST body as
`access_token={access_token}`
3. Put it in the query string of a non-POST:
`?access_token={access_token}`
#### Repository Cloning
Since add-ons will not be able to upload their own SSH keys to clone
with, access tokens can be used as Basic HTTP Auth credentials to
clone securely over HTTPS. This is much like GitHub, yet slightly
different:
$ git clone https://x-token-auth:{access_token}@bitbucket.org/user/repo.git
The literal string `x-token-auth` as a substitute for username is
required (note the difference with GitHub where the actual token is in
the username field).
#### Refresh Tokens
Our access tokens expire in one hour. When this happens you'll get 401
responses.
Most access tokens grant responses (Implicit and JWT excluded).
Therefore, you should include a
refresh token that can then be used to generate a new access token,
without the need for end user participation:
$ curl -X POST -u "client_id:secret" \
https://bitbucket.org/site/oauth2/access_token \
-d grant_type=refresh_token -d refresh_token={refresh_token}
### Bitbucket OAuth 2.0 scopes
Bitbucket's API applies a number of privilege scopes to endpoints. In
order to access an endpoint, a request will need to have the necessary
scopes.
OAuth 2.0 Scopes are applicable for OAuth 2, Access Tokens, and App
passwords auth mechanisms as well as Bitbucket Connect apps.
Scopes are declared in the descriptor as a list of strings, with each
string being the name of a unique scope.
A descriptor lacking the `scopes` element is implicitly assumed to
require all scopes and as a result, Bitbucket will require end users
authorizing/installing the add-on
to explicitly accept all scopes.
Our best practice suggests you add only the scopes your add-on needs,
but no more than it needs.
Invalid scope strings will cause the descriptor to be rejected and the
installation to fail.
The available scopes are:
- [project](#project)
- [project:write](#project-write)
- [project:admin](#project-admin)
- [repository](#repository)
- [repository:write](#repository-write)
- [repository:admin](#repository-admin)
- [repository:delete](#repository-delete)
- [pullrequest](#pullrequest)
- [pullrequest:write](#pullrequest-write)
- [issue](#issue)
- [issue:write](#issue-write)
- [wiki](#wiki)
- [webhook](#webhook)
- [snippet](#snippet)
- [snippet:write](#snippet-write)
- [email](#email)
- [account](#account)
- [account:write](#account-write)
- [pipeline](#pipeline)
- [pipeline:write](#pipeline-write)
- [pipeline:variable](#pipeline-variable)
- [runner](#runner)
- [runner:write](#runner-write)
#### project
Provides access to view the project or projects.
This scope implies the [`repository`](#repository) scope, giving read
access to all the repositories in a project or projects.
#### project:write
This scope is deprecated, and has been made obsolete by `project:admin`.
Please see the deprecation notice
[here](/cloud/bitbucket/deprecation-notice-project-write-scope).
#### project:admin
Provides admin access to a project or projects. No distinction is made
between public and private projects. This scope doesn't implicitly grant
the [`project`](#project) scope or the
[`repository:write`](#repository-write) scope on any repositories under
the project. It gives access to the admin features of a project only,
not direct access to its repositories' contents.
* ability to create the project
* ability to update the project
* ability to delete the project
#### repository
Provides read access to a repository or repositories.
Note that this scope does not give access to a repository's pull
requests.
* access to the repo's source code
* clone over HTTPS
* access the file browsing API
* download zip archives of the repo's contents
* the ability to view and use the issue tracker on any repo (created
issues, comment, vote, etc)
* the ability to view and use the wiki on any repo (create/edit pages)
#### repository:write
Provides write (not admin) access to a repository or repositories. No
distinction is made between public and private repositories. This scope
implicitly grants the [`repository`](#repository) scope, which does not
need to be requested separately.
This scope alone does not give access to the pull requests API.
* push access over HTTPS
* fork repos
#### repository:admin
Provides admin access to a repository or repositories. No distinction is
made between public and private repositories. This scope doesn't
implicitly grant the [`repository`](#repository) or the
[`repository:write`](#repository-write) scopes. It gives access to the
admin features of a repo only, not direct access to its contents. This
scope can be used or misused to grant read access to other users, who
can then clone the repo, but users that need to read and write source
code would also request explicit read or write.
This scope comes with access to the following functionality:
* View and manipulate committer mappings
* List and edit deploy keys
* Ability to delete the repo
* View and edit repo permissions
* View and edit branch permissions
* Import and export the issue tracker
* Enable and disable the issue tracker
* List and edit issue tracker version, milestones and components
* Enable and disable the wiki
* List and edit default reviewers
* List and edit repo links (Jira/Bamboo/Custom)
* List and edit the repository webhooks
* Initiate a repo ownership transfer
#### repository:delete
Provides access to delete a repository or repositories.
#### pullrequest
Provides read access to pull requests.
This scope implies the [`repository`](#repository) scope, giving read
access to the pull request's destination repository.
* see and list pull requests
* create and resolve tasks
* comment on pull requests
#### pullrequest:write
Implicitly grants the [`pullrequest`](#pullrequest) scope and adds the
ability to create, merge and decline pull requests.
This scope also implicitly grants the
[`repository:write`](#repository-write) scope, giving write access to
the pull request's destination repository. This is necessary to allow
merging.
* merge pull requests
* decline pull requests
* create pull requests
* approve pull requests
#### issue
Ability to interact with issue trackers the way non-repo members can.
This scope doesn't implicitly grant any other scopes and doesn't give
implicit access to the repository.
* view, list and search issues
* create new issues
* comment on issues
* watch issues
* vote for issues
#### issue:write
This scope implicitly grants the [`issue`](#issue) scope and adds the
ability to transition and delete issues.
This scope doesn't implicitly grant any other scopes and doesn't give
implicit access to the repository.
* transition issues
* delete issues
#### wiki
Provides access to wikis. This scope provides both read and write access
(wikis are always editable by anyone with access to them).
This scope doesn't implicitly grant any other scopes and doesn't give
implicit access to the repository.
* view wikis
* create pages
* edit pages
* push to wikis
* clone wikis
#### webhook
Gives access to webhooks. This scope is required for any webhook-related
operation.
This scope gives read access to existing webhook subscriptions on all
resources the authorization mechanism can access, without needing
further scopes.
For example:
- A client can list all existing webhook subscriptions on a repository.
The [`repository`](#repository) scope is not required.
- Existing webhook subscriptions for the issue tracker on a repo can be
retrieved without the [`issue`](#issue) scope. All that is required is
the `webhook` scope.
To create webhooks, the client will need read access to the resource.
Such as: for [`issue:created`](#issue-created), the client will need to
have both the `webhook` and the [`issue`](#issue) scope.
* list webhook subscriptions on any accessible repository, user, team,
or snippet
* create/update/delete webhook subscriptions.
#### snippet
Provides read access to snippets.
No distinction is made between public and private snippets (public
snippets are accessible without any form of authentication).
* view any snippet
* create snippet comments
#### snippet:write
Provides write access to snippets.
No distinction is made between public and private snippets (public
snippets are accessible without any form of authentication).
This scope implicitly grants the [`snippet`](#snippet) scope which does
not need to be requested separately.
* create snippets
* edit snippets
* delete snippets
#### email
Ability to see the user's primary email address. This should make it
easier to use Bitbucket Cloud as a login provider for apps or external
applications.
#### account
When used for:
* **user-related APIs** — Gives read-only access to the user's account
information.
Note that this doesn't include any ability to change any of the data.
This scope allows you to view the user's:
* email addresses
* language
* location
* website
* full name
* SSH keys
* user groups
* **workspace-related APIs** — Grants access to view the workspace's:
* users
* user permissions
* projects
#### account:write
Ability to change properties on the user's account.
* delete the authorizing user's account
* manage the user's groups
* change a user's email addresses
* change username, display name and avatar
#### pipeline
Gives read-only access to pipelines, steps, deployment environments and
variables.
#### pipeline:write
Gives write access to pipelines. This scope allows a user to:
* Stop pipelines
* Rerun failed pipelines
* Resume halted pipelines
* Trigger manual pipelines.
This scope is not needed to trigger a build using a push. Performing a
`git push` (or equivalent actions) will trigger the build. The token
doing the push only needs the [`repository:write`](#repository-write)
scope.
This doesn't give write access to create variables.
#### pipeline:variable
Gives write access to create variables in pipelines at the various
levels:
* Workspace
* Repository
* Deployment
#### runner
Gives read-only access to pipelines runners setup against a workspace or
repository.
#### runner:write
Gives write access to create/edit/disable/delete pipelines runners setup
against a workspace or repository.
### Forge app scopes
In order for a Forge app integration to access Bitbucket API endpoints,
it needs to include certain privilege scopes in the app manifest. These
are different from Bitbucket OAuth 2.0 scopes.
Unlike OAuth 2.0 scopes, Forge app scopes do not implicitly grant other
scopes, for example, `write:repository:bitbucket` does not implicitly
grant `read:repository:bitbucket`.
Only a subset of Bitbucket API endpoints are currently available for
Forge app integrations. These will be labeled with Forge app scopes.
Our best practice suggests you only add the scopes your app needs, but
no more than it needs.
The available scopes are:
- [`read:repository:bitbucket`](#read-repository-bitbucket)
- [`write:repository:bitbucket`](#write-repository-bitbucket)
- [`admin:repository:bitbucket`](#admin-repository-bitbucket)
- [`delete:repository:bitbucket`](#delete-repository-bitbucket)
- [`read:pullrequest:bitbucket`](#read-pullrequest-bitbucket)
- [`write:pullrequest:bitbucket`](#write-pullrequest-bitbucket)
- [`read:project:bitbucket`](#read-project-bitbucket)
- [`admin:project:bitbucket`](#admin-project-bitbucket)
- [`read:workspace:bitbucket`](#read-workspace-bitbucket)
- [`read:user:bitbucket`](#read-user-bitbucket)
- [`read:pipeline:bitbucket`](#read-pipeline-bitbucket)
- [`write:pipeline:bitbucket`](#write-pipeline-bitbucket)
- [`admin:pipeline:bitbucket`](#admin-pipeline-bitbucket)
- [`read:runner:bitbucket`](#read-runner-bitbucket)
- [`write:runner:bitbucket`](#write-runner-bitbucket)
#### read:repository:bitbucket
Allows viewing of repository data. Note that this scope does not give
access to a repository's pull requests.
* access to the repository's source code
* access the file browsing API
* access to certain repository configurations such as branching model,
default reviewers, etc.
#### write:repository:bitbucket
Allows modification of repository data. No distinction is made between
public and private repositories. This scope does not imply the
`read:repository:bitbucket` scope, so you need to request that
separately if required. This scope alone does not give access to the
pull request API.
* update/delete source, branches, tags, etc.
* fork repositories
#### admin:repository:bitbucket
Allows admin activities on repositories. No distinction is made between
public and private repositories. This scope does not implicitly grant
the `read:repository:bitbucket` or the `write:repository:bitbucket`
scopes. It gives access to the admin features of a repository only, not
direct access to its contents. This scope does not allow modification of
repository permissions. This scope comes with access to the following
functionality:
* create repository
* view repository permissions
* view and edit branch restrictions
* edit branching model settings
* edit default reviewers
* view and edit inheritance state for repository settings
#### delete:repository:bitbucket
Allows deletion of repositories.
#### read:pullrequest:bitbucket
Allows viewing of pull requests, plus the ability to comment on pull
requests.
This scope does not imply the `read:repository:bitbucket` scope. With
this scope, you could retrieve some data specific to the
source/destination repositories of a pull request using pull request
endpoints, but it does not give access to repository API endpoints.
#### write:pullrequest:bitbucket
Allows the ability to create, update, approve, decline, and merge pull
requests.
This scope does not imply the `write:repository:bitbucket` scope.
#### read:project:bitbucket
Allows viewing of project and project permission data.
#### admin:project:bitbucket
Allows the ability to create, update, and delete project. No distinction
is made between public and private projects.
This scope does not implicitly grant the `read:project:bitbucket` scope
or any repository scopes. It gives access to the admin features of a
project only, not direct access to its repositories' contents.
#### read:workspace:bitbucket
Allows viewing of workspace and workspace permission data.
#### read:user:bitbucket
Allows viewing of user data. This scope is typically required for
permission related endpoints.
#### read:pipeline:bitbucket
Allows read access to all pipeline information (pipelines, steps,
caches, artifacts, logs, tests, code-insights).
#### write:pipeline:bitbucket
Allows running pipelines (i.e., start/stop/create pipeline) and
uploading tests/code-insights.
This scope does not imply the `read:pipeline:bitbucket` scope.
#### admin:pipeline:bitbucket
Allows admin activities, such as creating pipeline variables.
This scope does not implicitly grant the `read:pipeline:bitbucket` or
the `write:pipeline:bitbucket` scopes.
#### read:runner:bitbucket
Allows viewing of runners information.
#### write:runner:bitbucket
Allows runners management.
This scope does not imply the `read:runners:bitbucket` scope.
- anchor: filtering
title: Filter and sort API objects
description: Query the 2.0 API for specific objects
icon: >-
data:image/svg+xml;base64,b'PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB2aWV3Qm94PSIwIDAgMTk0LjE5MTkgMTQ3LjYwOTIiPgogIDxkZWZzPgogICAgPHN0eWxlPgogICAgICAuY2xzLTEgewogICAgICAgIGlzb2xhdGlvbjogaXNvbGF0ZTsKICAgICAgfQoKICAgICAgLmNscy0yIHsKICAgICAgICBmaWxsOiAjY2ZkNGRiOwogICAgICB9CgogICAgICAuY2xzLTMsIC5jbHMtNCB7CiAgICAgICAgZmlsbDogIzg3NzdkOTsKICAgICAgfQoKICAgICAgLmNscy00IHsKICAgICAgICBtaXgtYmxlbmQtbW9kZTogbXVsdGlwbHk7CiAgICAgIH0KCiAgICAgIC5jbHMtNSB7CiAgICAgICAgZmlsbDogIzAwNjVmZjsKICAgICAgfQoKICAgICAgLmNscy02IHsKICAgICAgICBmaWxsOiAjY2NlMGZmOwogICAgICB9CgogICAgICAuY2xzLTcgewogICAgICAgIGZpbGw6IHVybCgjbGluZWFyLWdyYWRpZW50KTsKICAgICAgfQogICAgPC9zdHlsZT4KICAgIDxsaW5lYXJHcmFkaWVudCBpZD0ibGluZWFyLWdyYWRpZW50IiB4MT0iNDE2LjMwODIiIHkxPSI3NS4wNDc5IiB4Mj0iNTg0Ljg1NTYiIHkyPSI3NS4wNDc5IiBncmFkaWVudFRyYW5zZm9ybT0idHJhbnNsYXRlKC00NDMuOTQ2NyAxMjMuMDY4Nikgcm90YXRlKC0xMy43OTc2KSIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPgogICAgICA8c3RvcCBvZmZzZXQ9IjAiIHN0b3AtY29sb3I9IiNmZmYiLz4KICAgICAgPHN0b3Agb2Zmc2V0PSIwLjY5MDgiIHN0b3AtY29sb3I9IiNmZmYiIHN0b3Atb3BhY2l0eT0iMC4xIi8+CiAgICA8L2xpbmVhckdyYWRpZW50PgogIDwvZGVmcz4KICA8dGl0bGU+TWFnbmlmeWluZyBHbGFzczwvdGl0bGU+CiAgPGcgY2xhc3M9ImNscy0xIj4KICAgIDxnIGlkPSJMYXllcl8yIiBkYXRhLW5hbWU9IkxheWVyIDIiPgogICAgICA8ZyBpZD0iT2JqZWN0cyI+CiAgICAgICAgPHBhdGggY2xhc3M9ImNscy0yIiBkPSJNMTMxLjExMjUsOTQuOTMwN2wtOS44ODc4LTUuOTg4OC04LjMyOTIsMTMuNzUxOSw5Ljg4NzgsNS45ODg4YTE1LjYwMywxNS42MDMsMCwwLDEsNS44OCw2LjM4MzVoMGExNS42MDMsMTUuNjAzLDAsMCwwLDUuODgsNi4zODM1bDQwLjExNDMsMjQuMjk2NGExMi44NjY0LDEyLjg2NjQsMCwwLDAsMTcuNjcwOS00LjM0aDBhMTIuODY2NCwxMi44NjY0LDAsMCwwLTQuMzQtMTcuNjcwOUwxNDcuODc0OSw5OS40MzkyYTE1LjYwMywxNS42MDMsMCwwLDAtOC4zODEyLTIuMjU0MmgwQTE1LjYwMywxNS42MDMsMCwwLDEsMTMxLjExMjUsOTQuOTMwN1oiLz4KICAgICAgICA8cGF0aCBpZD0iX1BhdGhfIiBkYXRhLW5hbWU9IiZsdDtQYXRoJmd0OyIgY2xhc3M9ImNscy0zIiBkPSJNMTMxLjExMjUsOTQuOTMwN2wtMy4wMTE4LTEuODI0MkE4LjAzODgsOC4wMzg4LDAsMCwwLDExNy4wNiw5NS44MTc4aDBhOC4wMzg4LDguMDM4OCwwLDAsMCwyLjcxMTMsMTEuMDQwNWwzLjAxMTgsMS44MjQyYTE1LjYwMywxNS42MDMsMCwwLDEsNS44OCw2LjM4MzVoMGExNS42MDMsMTUuNjAzLDAsMCwwLDUuODgsNi4zODM1bDQwLjExNDMsMjQuMjk2NGExMi44NjY0LDEyLjg2NjQsMCwwLDAsMTcuNjcwOS00LjM0aDBhMTIuODY2NCwxMi44NjY0LDAsMCwwLTQuMzQtMTcuNjcwOUwxNDcuODc0OSw5OS40MzkyYTE1LjYwMywxNS42MDMsMCwwLDAtOC4zODEyLTIuMjU0M2gwQTE1LjYwMywxNS42MDMsMCwwLDEsMTMxLjExMjUsOTQuOTMwN1oiLz4KICAgICAgICA8cGF0aCBjbGFzcz0iY2xzLTQiIGQ9Ik0xMzkuMTQzNyw5Ny4xNzkyYTE1LjU5NzMsMTUuNTk3MywwLDAsMS04LjAzMTItMi4yNDg1bC0zLjAxMTgtMS44MjQyQTguMDM4OCw4LjAzODgsMCwwLDAsMTE3LjA2LDk1LjgxNzhoMGE4LjAzODgsOC4wMzg4LDAsMCwwLDIuNzExMywxMS4wNDA1bDMuMDExOCwxLjgyNDJhMTUuNTk3LDE1LjU5NywwLDAsMSw1LjcwNjksNi4wNjQ4LDY3Ljg0ODEsNjcuODQ4MSwwLDAsMCwxMC42NTM2LTE3LjU2ODFaIi8+CiAgICAgICAgPHBhdGggY2xhc3M9ImNscy01IiBkPSJNODMuMjUzNywxMzIuNTU2QTY3LjIzNDgsNjcuMjM0OCwwLDAsMSw5LjcxLDMyLjQyOTUsNjYuNzk3NCw2Ni43OTc0LDAsMCwxLDUxLjE4MzcsMS45NjY2bC4wMDA3LDBBNjYuNzk2Miw2Ni43OTYyLDAsMCwxLDEwMi4wNTEsOS43NTI1aDBBNjcuMjM0Niw2Ny4yMzQ2LDAsMCwxLDgzLjI1MzcsMTMyLjU1NloiLz4KICAgICAgICA8cGF0aCBpZD0iX1BhdGhfMiIgZGF0YS1uYW1lPSImbHQ7UGF0aCZndDsiIGNsYXNzPSJjbHMtNiIgZD0iTTIzLjQzOSw0MC43NDgyQTUxLjE5MDgsNTEuMTkwOCwwLDAsMCwxMTEuMDEsOTMuNzg4OSw1MS4xOTA4LDUxLjE5MDgsMCwwLDAsMjMuNDM5LDQwLjc0ODJaIi8+CiAgICAgICAgPHBhdGggY2xhc3M9ImNscy03IiBkPSJNNzkuNDMzLDExNi45ODJBNTEuMjE2Miw1MS4yMTYyLDAsMCwwLDExOC40MjQxLDY3LjAzN2E0OS4xMzkxLDQ5LjEzOTEsMCwwLDEtNS4wODY3LDIuMjc4OWMtMTUuNzAyOSw1Ljk2MDktMjkuNjg5NSwyLjExLTM2LjQ5ODcuMTMwOC0yMC40MzA3LTUuOTM5LTI0Ljc5LTE3LjM3ODUtMzkuMDQxNC0yNC41ODIzYTQ4LjMwOTIsNDguMzA5MiwwLDAsMC0xNC4wOTM5LTQuNTNjLS4wODYyLjEzOTUtLjE3OTMuMjczLS4yNjQ0LjQxMzVBNTEuMTkwNyw1MS4xOTA3LDAsMCwwLDc5LjQzMywxMTYuOTgyWiIvPgogICAgICA8L2c+CiAgICA8L2c+CiAgPC9nPgo8L3N2Zz4K'
body: "\nYou can query the 2.0 API for specific objects using a simple language which resembles SQL.\n\nNote that filtering and querying by username has been deprecated, due to privacy changes. \nSee the [announcement](https://developer.atlassian.com/cloud/bitbucket/bitbucket-api-changes-gdpr/#changes-to-querying) \nfor details.\n\n\n\n* [Supported endpoints](#supported-endpoints)\n* [Operators](#operators)\n* [Data types](#data-types)\n* [Querying](#querying)\n* [Sorting query results](#sorting-query-results)\n\n-\n\n### Supported endpoints\n\nMost 2.0 API resources that return paginated collections of objects support a single, shared, generic querying language that is used to filter down a result set.\n\nThis includes, but is in no way limited to:\n\n /2.0/repositories/{username}\n /2.0/repositories/{username}/{slug}/refs\n /2.0/repositories/{username}/{slug}/refs/branches\n /2.0/repositories/{username}/{slug}/refs/tags\n /2.0/repositories/{username}/{slug}/forks\n /2.0/repositories/{username}/{slug}/src\n /2.0/repositories/{username}/{slug}/issues\n /2.0/repositories/{username}/{slug}/pullrequests\n\nFiltering and sorting supports several distinct operators and data types as well as basic features, like logical operators (AND, OR).\nAs examples, the following queries could be used on the issue tracker endpoint (`/2.0/repositories/{workspace}/{slug}/issues/`):\n\n\t(state = \"open\" OR state = \"new\") AND assignee = null\n\treporter.nickname != \"evzijst\" AND priority >= \"major\"\n\t(title ~ \"unicode\" OR content.raw ~ \"unicode\") AND created_on > 2015-10-04T14:00:00-07:00\n\nFilter queries can be added to the URL using the q= query parameter. To sort the response, add sort=. Note that the entire query string is put in the q parameter and hence needs to be URL-encoded as shown in the following example:\n\n\t/2.0/repositories/foo/bar/issues?q=state=\"new\"&sort=-updated_on\n\n\n### Operators\n\nFiltering and sorting supports the following operators:\n\n| Operator | Definition | Example |\n|-|--|-|\n| \"=\" | test for equality | `nickname = \"evzijst\"` |\n| \"!=\" | not equal | `is_private != true` |\n| \"~\" | case-insensitive text contains | `description ~ \"beef\"` |\n| \"!~\" | case-insensitive not contains | `description !~ \"fubar\"` |\n| \">\" | greater than | `priority > \"major\"` |\n| \">=\" | greater than or equal | `priority <= \"trivial\"` |\n| \"<\" | less than | `id < 1234` |\n| \"<=\" | less than or equal | `updated_on <= 2015-03-04` |\n\n### Data types\n\nFiltering and sorting supports the following data types:\n\n| Type | Description | Example |\n|--|--||\n| **String** | any text inside double quotes | `\"foo\"` |\n| **Number** | arbitrary precision integers and floats | `1, -10.302` |\n| **Null** | to test for the absence of a value | `null` |\n| **boolean** | the unquoted strings true or false | `true, false` |\n| **datetime** | an unquoted [ISO-8601][iso-8601] date time string with the timezone offset, milliseconds and entire time component being optional | `2015-03-04T14:08:59.123+02:00`, `2015-03-04T14:08:59` Date time strings are assumed to be in UTC, unless an explicit timezone offset is provided |\n\n[https://en.wikipedia.org/wiki/ISO_8601]: /iso-8601\n\n### Querying\n\nObjects can be filtered based on their properties. In principle, every element in an object's JSON document schema can be used as a filter criterion.\n\nNote that while the array of objects in a paginated response is wrapped in an\nenvelope with a `values` element, this prefix should not be included in the\nquery fields (so use `/2.0/repositories/foo/bar/issues?q=state=\"new\"`, not\n`/2.0/repositories/foo/bar/issues?q=values.state=\"new\"`).\n\n\n### Examples\n\nFields that contain embedded instances
of other object types (e.g. owner is an embedded user object, while parent is an embedded repository) can be traversed recursively. For instance:\n\n\tparent.owner.nickname = \"bitbucket\"\n\nTo find pull requests which merge into master, come from a fork of the repo rather than a branch inside the repo, and on which I am a reviewer:\n\n```\nsource.repository.full_name != \"main/repo\" AND state = \"OPEN\" AND reviewers.nickname = \"evzijst\" AND destination.branch.name = \"master\"\n```\n```\n/2.0/repositories/main/repo/pullrequests?q=source.repository.full_name+%21%3D+%22main%2Frepo%22+AND+state+%3D+%22OPEN%22+AND+reviewers.nickname+%3D+%22evzijst%22+AND+destination.branch.name+%3D+%22master%22\n```\n\nTo find new or on-hold issues related to the UI, created or updated in the last day (SF local time), that have not yet been assigned to anyone:\n\n```\n(state = \"new\" OR state = \"on hold\") AND assignee = null AND component = \"UI\" and updated_on > 2015-11-11T00:00:00-07:00\n```\n```\n/2.0/repositories/main/repo/issues?q=%28state+%3D+%22new%22+OR+state+%3D+%22on+hold%22%29+AND+assignee+%3D+null+AND+component+%3D+%22UI%22+and+updated_on+%3E+2015-11-11T00%3A00%3A00-07%3A00\n```\n\nTo find all tags with the string \"2015\" in the name:\n\n```\nname ~ \"2015\"\n```\n```\n/2.0/repositories/{username}/{slug}/refs/tags?q=name+%7E+%222015%22\n```\nOr all my branches:\n\n```\nname ~ \"erik/\"\n```\n```\n/2.0/repositories/{username}/{slug}/refs/?q=name+%7E+%22erik%2F%22\n```\n### Sorting query results\n\nYou can sort result sets using the ?sort= query parameter, available on the same resources that support filtering:\n\n* In principle, every field that can be queried can also be used as a key for sorting.\n* By default the sort order is ascending. To reverse the order, prefix the field name with a hyphen (e.g. ?sort=-updated_on).\n* Only one field can be sorted on. Compound fields (e.g. sort on state first, followed by updated_on) are not supported.\n\n\n"
- anchor: pagination
title: Pagination
description: Learn more about pagination
icon: >-
data:image/svg+xml;base64,b'PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB2aWV3Qm94PSIwIDAgMjM4LjgyIDE1MS42Ij48ZGVmcz48c3R5bGU+LmNscy0xe2ZpbGw6I2IyZDRmZjt9LmNscy0ye2ZpbGw6IzRjOWFmZjt9LmNscy0ze2ZpbGw6IzAwNTJjYzt9LmNscy00e29wYWNpdHk6MC42O30uY2xzLTV7ZmlsbDp1cmwoI2xpbmVhci1ncmFkaWVudCk7fS5jbHMtNntmaWxsOnVybCgjbGluZWFyLWdyYWRpZW50LTIpO30uY2xzLTd7ZmlsbDp1cmwoI2xpbmVhci1ncmFkaWVudC0zKTt9LmNscy04e2ZpbGw6dXJsKCNsaW5lYXItZ3JhZGllbnQtNCk7fS5jbHMtOXtmaWxsOnVybCgjbGluZWFyLWdyYWRpZW50LTUpO30uY2xzLTEwLC5jbHMtMTEsLmNscy0xMntmaWxsOm5vbmU7fS5jbHMtMTB7c3Ryb2tlOiMzMzg0ZmY7fS5jbHMtMTAsLmNscy0xMSwuY2xzLTEyLC5jbHMtMTN7c3Ryb2tlLW1pdGVybGltaXQ6MTA7c3Ryb2tlLXdpZHRoOjJweDt9LmNscy0xMXtzdHJva2U6I2ZmYWIwMDt9LmNscy0xMntzdHJva2U6I2ZhZmJmYzt9LmNscy0xM3tmaWxsOiNmZmFiMDA7c3Ryb2tlOiMyNjg0ZmY7fTwvc3R5bGU+PGxpbmVhckdyYWRpZW50IGlkPSJsaW5lYXItZ3JhZGllbnQiIHkxPSI2NS4xNyIgeDI9Ijg2LjM4IiB5Mj0iNjUuMTciIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIj48c3RvcCBvZmZzZXQ9IjAiIHN0b3AtY29sb3I9IiM0YzlhZmYiLz48c3RvcCBvZmZzZXQ9IjAuMDgiIHN0b3AtY29sb3I9IiM0YzlhZmYiIHN0b3Atb3BhY2l0eT0iMC45NCIvPjxzdG9wIG9mZnNldD0iMC4yNCIgc3RvcC1jb2xvcj0iIzRjOWFmZiIgc3RvcC1vcGFjaXR5PSIwLjc4Ii8+PHN0b3Agb2Zmc2V0PSIwLjQ1IiBzdG9wLWNvbG9yPSIjNGM5YWZmIiBzdG9wLW9wYWNpdHk9IjAuNTMiLz48c3RvcCBvZmZzZXQ9IjAuNTUiIHN0b3AtY29sb3I9IiM0YzlhZmYiIHN0b3Atb3BhY2l0eT0iMC40Ii8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9ImxpbmVhci1ncmFkaWVudC0yIiB4MT0iMTUyLjQ0IiB5MT0iNjUuMTciIHgyPSIyMzguODIiIHkyPSI2NS4xNyIgeGxpbms6aHJlZj0iI2xpbmVhci1ncmFkaWVudCIvPjxsaW5lYXJHcmFkaWVudCBpZD0ibGluZWFyLWdyYWRpZW50LTMiIHgxPSIxOC44NSIgeTE9IjExOC43OCIgeDI9IjEyNi4wOCIgeTI9IjExLjU2IiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+PHN0b3Agb2Zmc2V0PSIwLjA2IiBzdG9wLWNvbG9yPSIjMDA2NWZmIi8+PHN0b3Agb2Zmc2V0PSIwLjE5IiBzdG9wLWNvbG9yPSIjMDA2NWZmIiBzdG9wLW9wYWNpdHk9IjAuOTQiLz48c3RvcCBvZmZzZXQ9IjAuNDYiIHN0b3AtY29sb3I9IiMwMDY1ZmYiIHN0b3Atb3BhY2l0eT0iMC43OCIvPjxzdG9wIG9mZnNldD0iMC44MiIgc3RvcC1jb2xvcj0iIzAwNjVmZiIgc3RvcC1vcGFjaXR5PSIwLjUzIi8+PHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjMDA2NWZmIiBzdG9wLW9wYWNpdHk9IjAuNCIvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPSJsaW5lYXItZ3JhZGllbnQtNCIgeDE9IjExMi43NSIgeTE9IjExOC43OCIgeDI9IjIxOS45NyIgeTI9IjExLjU2IiB4bGluazpocmVmPSIjbGluZWFyLWdyYWRpZW50LTMiLz48bGluZWFyR3JhZGllbnQgaWQ9ImxpbmVhci1ncmFkaWVudC01IiB4MT0iNTAuOTciIHkxPSIxMzMuNjEiIHgyPSIxODcuODYiIHkyPSItMy4yOCIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPjxzdG9wIG9mZnNldD0iMC42NiIgc3RvcC1jb2xvcj0iIzI1Mzg1OCIvPjxzdG9wIG9mZnNldD0iMC44OCIgc3RvcC1jb2xvcj0iIzI1Mzg1OCIgc3RvcC1vcGFjaXR5PSIwLjgzIi8+PHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjMjUzODU4IiBzdG9wLW9wYWNpdHk9IjAuNyIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjx0aXRsZT5WaWV3IFZlcnNpb25zPC90aXRsZT48ZyBpZD0iTGF5ZXJfMiIgZGF0YS1uYW1lPSJMYXllciAyIj48ZyBpZD0iU29mdHdhcmUiPjxjaXJjbGUgY2xhc3M9ImNscy0xIiBjeD0iOTQuNTMiIGN5PSIxNDcuOTMiIHI9IjMuNjciLz48Y2lyY2xlIGNsYXNzPSJjbHMtMiIgY3g9IjEwNi45NCIgY3k9IjE0Ny45MyIgcj0iMy42NyIvPjxjaXJjbGUgY2xhc3M9ImNscy0zIiBjeD0iMTE5LjM0IiBjeT0iMTQ3LjkzIiByPSIzLjY3Ii8+PGNpcmNsZSBjbGFzcz0iY2xzLTIiIGN4PSIxMzEuNzUiIGN5PSIxNDcuOTMiIHI9IjMuNjciLz48Y2lyY2xlIGNsYXNzPSJjbHMtMSIgY3g9IjE0NC4xNiIgY3k9IjE0Ny45MyIgcj0iMy42NyIvPjxnIGNsYXNzPSJjbHMtNCI+PHJlY3QgaWQ9Il9SZWN0YW5nbGVfIiBkYXRhLW5hbWU9IiZsdDtSZWN0YW5nbGUmZ3Q7IiBjbGFzcz0iY2xzLTUiIHk9IjI1LjkyIiB3aWR0aD0iODYuMzgiIGhlaWdodD0iNzguNDkiLz48L2c+PGcgY2xhc3M9ImNscy00Ij48cmVjdCBpZD0iX1JlY3RhbmdsZV8yIiBkYXRhLW5hbWU9IiZsdDtSZWN0YW5nbGUmZ3Q7IiBjbGFzcz0iY2xzLTYiIHg9IjE1Mi40NCIgeT0iMjUuOTIiIHdpZHRoPSI4Ni4zOCIgaGVpZ2h0PSI3OC40OSIvPjwvZz48cmVjdCBpZD0iX1JlY3RhbmdsZV8zIiBkYXRhLW5hbWU9IiZsdDtSZWN0YW5nbGUmZ3Q7IiBjbGFzcz0iY2xzLTciIHg9IjE2LjI4IiB5PSIxNC4xMiIgd2lkdGg9IjExMi4zNiIgaGVpZ2h0PSIxMDIuMDkiLz48cmVjdCBpZD0iX1JlY3RhbmdsZV80IiBkYXRhLW5hbWU9IiZsdDtSZWN0YW5nbGUmZ3Q7IiBjbGFzcz0iY2xzLTgiIHg9IjExMC4xOCIgeT0iMTQuMTIiIHdpZHRoPSIxMTIuMzYiIGhlaWdodD0iMTAyLjA5Ii8+PHJlY3QgaWQ9Il9SZWN0YW5nbGVfNSIgZGF0YS1uYW1lPSImbHQ7UmVjdGFuZ2xlJmd0OyIgY2xhc3M9ImNscy05IiB4PSI0Ny42OSIgd2lkdGg9IjE0My40NSIgaGVpZ2h0PSIxMzAuMzQiLz48bGluZSBjbGFzcz0iY2xzLTEwIiB4MT0iNzkuMTYiIHkxPSIxNi4xOCIgeDI9IjExNy4yNCIgeTI9IjE2LjE4Ii8+PGxpbmUgY2xhc3M9ImNscy0xMCIgeDE9IjYyLjkzIiB5MT0iMTYuMTgiIHgyPSI3Mi42IiB5Mj0iMTYuMTgiLz48bGluZSBjbGFzcz0iY2xzLTExIiB4MT0iNzkuMTYiIHkxPSIyNi45NSIgeDI9IjExNy4yNCIgeTI9IjI2Ljk1Ii8+PGxpbmUgY2xhc3M9ImNscy0xMCIgeDE9IjYyLjkzIiB5MT0iMjYuOTUiIHgyPSI3Mi42IiB5Mj0iMjYuOTUiLz48bGluZSBjbGFzcz0iY2xzLTEwIiB4MT0iNzkuMTYiIHkxPSIzNy43MiIgeDI9IjE1MC43IiB5Mj0iMzcuNzIiLz48bGluZSBjbGFzcz0iY2xzLTEwIiB4MT0iNjIuOTMiIHkxPSIzNy43MiIgeDI9IjcyLjYiIHkyPSIzNy43MiIvPjxsaW5lIGNsYXNzPSJjbHMtMTEiIHgxPSIxNTAuNyIgeTE9IjQ4LjQ5IiB4Mj0iMTc1LjU5IiB5Mj0iNDguNDkiLz48bGluZSBjbGFzcz0iY2xzLTEyIiB4MT0iMTEwLjMyIiB5MT0iNDguNDkiIHgyPSIxNDMuMDUiIHkyPSI0OC40OSIvPjxsaW5lIGNsYXNzPSJjbHMtMTEiIHgxPSI3OS4xNiIgeTE9IjQ4LjQ5IiB4Mj0iMTAxLjM3IiB5Mj0iNDguNDkiLz48bGluZSBjbGFzcz0iY2xzLTEwIiB4MT0iNjIuOTMiIHkxPSI0OC40OSIgeDI9IjcyLjYiIHkyPSI0OC40OSIvPjxsaW5lIGNsYXNzPSJjbHMtMTAiIHgxPSI3OS4xNiIgeTE9IjU5LjI2IiB4Mj0iMTUwLjciIHkyPSI1OS4yNiIvPjxsaW5lIGNsYXNzPSJjbHMtMTAiIHgxPSI2Mi45MyIgeTE9IjU5LjI2IiB4Mj0iNzIuNiIgeTI9IjU5LjI2Ii8+PGxpbmUgY2xhc3M9ImNscy0xMCIgeDE9Ijc5LjE2IiB5MT0iNzAuMDMiIHgyPSIxNzUuNTkiIHkyPSI3MC4wMyIvPjxsaW5lIGNsYXNzPSJjbHMtMTAiIHgxPSI2Mi45MyIgeTE9IjcwLjAzIiB4Mj0iNzIuNiIgeTI9IjcwLjAzIi8+PGxpbmUgY2xhc3M9ImNscy0xMSIgeDE9Ijc5LjE2IiB5MT0iODAuNzkiIHgyPSIxMTcuMjQiIHkyPSI4MC43OSIvPjxsaW5lIGNsYXNzPSJjbHMtMTAiIHgxPSI2Mi45MyIgeTE9IjgwLjc5IiB4Mj0iNzIuNiIgeTI9IjgwLjc5Ii8+PGxpbmUgY2xhc3M9ImNscy0xMyIgeDE9Ijc5LjE2IiB5MT0iOTEuNTYiIHgyPSIxNDkuMDYiIHkyPSI5MS41NiIvPjxsaW5lIGNsYXNzPSJjbHMtMTAiIHgxPSI2Mi45MyIgeTE9IjkxLjU2IiB4Mj0iNzIuNiIgeTI9IjkxLjU2Ii8+PGxpbmUgY2xhc3M9ImNscy0xMCIgeDE9IjYyLjkzIiB5MT0iODAuNzkiIHgyPSI3Mi42IiB5Mj0iODAuNzkiLz48bGluZSBjbGFzcz0iY2xzLTEwIiB4MT0iNjIuOTMiIHkxPSI5MS41NiIgeDI9IjcyLjYiIHkyPSI5MS41NiIvPjxsaW5lIGNsYXNzPSJjbHMtMTEiIHgxPSI3OS4xNiIgeTE9IjEwMi4zMyIgeDI9IjExNy4yNCIgeTI9IjEwMi4zMyIvPjxsaW5lIGNsYXNzPSJjbHMtMTAiIHgxPSI2Mi45MyIgeTE9IjEwMi4zMyIgeDI9IjcyLjYiIHkyPSIxMDIuMzMiLz48bGluZSBjbGFzcz0iY2xzLTEwIiB4MT0iMTI1Ljk4IiB5MT0iMTEzLjEiIHgyPSIxNDkuMDYiIHkyPSIxMTMuMSIvPjxsaW5lIGNsYXNzPSJjbHMtMTIiIHgxPSI3OS4xNiIgeTE9IjExMy4xIiB4Mj0iMTE3LjI0IiB5Mj0iMTEzLjEiLz48bGluZSBjbGFzcz0iY2xzLTEwIiB4MT0iNjIuOTMiIHkxPSIxMTMuMSIgeDI9IjcyLjYiIHkyPSIxMTMuMSIvPjwvZz48L2c+PC9zdmc+'
body: >2
Endpoints that return collections of objects should always apply
pagination.
Paginated collections are always wrapped in the following wrapper
object:
```json
{
"size": 5421,
"page": 2,
"pagelen": 10,
"next": "https://api.bitbucket.org/2.0/repositories/pypy/pypy/commits?page=3",
"previous": "https://api.bitbucket.org/2.0/repositories/pypy/pypy/commits?page=1",
"values": [
...
]
}
```
Pagination is often page-bound, with a query parameter page indicating
which
page is to be returned.
However, clients are not expected to construct URLs themselves by
manipulating
the page number query parameter. Instead, the response contains a link
to the
next page. This link should be treated as an opaque location that is not
to be
constructed by clients or even assumed to be predictable. The only
contract
around the next link is that it will return the next chunk of results.
Lack of a next link in the response indicates the end of the collection.
The paginated response contains the following fields:
| Field | Value |
||-|
| `size` | Total number of objects in the response. This is an
optional element that is not provided in all responses, as it can be
expensive to compute. |
| `page` | Page number of the current results. This is an optional
element that is not provided in all responses. |
| `pagelen` | Current number of objects on the existing page. Globally,
the minimum length is 10 and the maximum is 100. Some APIs may specify a
different default. |
| `next` | Link to the next page if it exists. The last page of a
collection does not have this value. Use this link to navigate the
result set and refrain from constructing your own URLs. |
| `previous` | Link to previous page if it exists. A collections first
page does not have this value. This is an optional element that is not
provided in all responses. Some result sets strictly support forward
navigation and never provide previous links. Clients must anticipate
that backwards navigation is not always available. Use this link to
navigate the result set and refrain from constructing your own URLs. |
| `values` | The list of objects. This contains at most `pagelen`
objects. |
The link to the next page is included such that you don't have to
hardcode or construct any links. Only values and next are guaranteed
(except the last page, which lacks next). This is because the previous
and size values can be expensive for some data sets.
It is important to realize that Bitbucket support both list-based
pagination and iterator-based pagination. List-based pagination assumes
that the collection is a discrete, immutable, consistently ordered,
finite array of objects with a fixed size. Clients navigate a list-based
collection by requesting offset-based chunks. In Bitbucket Cloud,
list-based responses include the optional size, page, and previous
element. The the next and previous links typically resemble something
like /foo/bar?page=4.
However, not all result sets can be treated as immutable and finite –
much like how programming languages tend to distinguish between lists
and arrays on one hand and iterators or stream on the other. Where an
list-based pagination offers random access into any point in a
collection, iterator-based pagination can only navigate forward one
element at a time. In Bitbucket such iterator-based pagination contains
the next link and pagelen elements, but not necessarily anything else.
In these cases, the next link's value often contains an unpredictable
hash instead of an explicit page number. The commits resource uses
iterator-based pagination.
- anchor: partial-response
title: Partial responses
description: Tweak which fields are returned
icon: >-
data:image/svg+xml;base64,b'PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB2aWV3Qm94PSIwIDAgMTYyLjQ0ODcgMjEwLjExMTUiPgogIDxkZWZzPgogICAgPHN0eWxlPgogICAgICAuY2xzLTEgewogICAgICAgIGlzb2xhdGlvbjogaXNvbGF0ZTsKICAgICAgfQoKICAgICAgLmNscy0yLCAuY2xzLTYsIC5jbHMtOCB7CiAgICAgICAgZmlsbDogbm9uZTsKICAgICAgfQoKICAgICAgLmNscy0yLCAuY2xzLTggewogICAgICAgIHN0cm9rZTogIzAwNjVmZjsKICAgICAgICBzdHJva2Utd2lkdGg6IDJweDsKICAgICAgfQoKICAgICAgLmNscy0yIHsKICAgICAgICBzdHJva2UtbGluZWpvaW46IHJvdW5kOwogICAgICB9CgogICAgICAuY2xzLTMgewogICAgICAgIGZpbGw6ICNlN2U4ZWM7CiAgICAgIH0KCiAgICAgIC5jbHMtNCB7CiAgICAgICAgZmlsbDogI2ZmZTM4MDsKICAgICAgfQoKICAgICAgLmNscy01IHsKICAgICAgICBmaWxsOiAjZmZmMGIyOwogICAgICB9CgogICAgICAuY2xzLTYgewogICAgICAgIHN0cm9rZTogI2ZmOTkxZjsKICAgICAgICBzdHJva2Utd2lkdGg6IDEuODE1NnB4OwogICAgICB9CgogICAgICAuY2xzLTYsIC5jbHMtOCB7CiAgICAgICAgc3Ryb2tlLW1pdGVybGltaXQ6IDEwOwogICAgICB9CgogICAgICAuY2xzLTcgewogICAgICAgIG1peC1ibGVuZC1tb2RlOiBtdWx0aXBseTsKICAgICAgICBmaWxsOiB1cmwoI2xpbmVhci1ncmFkaWVudCk7CiAgICAgIH0KCiAgICAgIC5jbHMtOSB7CiAgICAgICAgZmlsbDogI2Y0ZjVmNzsKICAgICAgfQogICAgPC9zdHlsZT4KICAgIDxsaW5lYXJHcmFkaWVudCBpZD0ibGluZWFyLWdyYWRpZW50IiB4MT0iMTEzLjM4MTgiIHkxPSI0OS40MyIgeDI9IjE1My43ODkzIiB5Mj0iOS4wMjI1IiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+CiAgICAgIDxzdG9wIG9mZnNldD0iMCIgc3RvcC1jb2xvcj0iI2ZhZmJmYyIvPgogICAgICA8c3RvcCBvZmZzZXQ9IjAuMjc4NiIgc3RvcC1jb2xvcj0iI2VmZjFmMyIvPgogICAgICA8c3RvcCBvZmZzZXQ9IjAuNzY4OCIgc3RvcC1jb2xvcj0iI2QxZDZkZCIvPgogICAgICA8c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiNjMWM3ZDAiLz4KICAgIDwvbGluZWFyR3JhZGllbnQ+CiAgPC9kZWZzPgogIDx0aXRsZT5Eb2N1bWVudCBUYWJsZTwvdGl0bGU+CiAgPGcgY2xhc3M9ImNscy0xIj4KICAgIDxnIGlkPSJMYXllcl8yIiBkYXRhLW5hbWU9IkxheWVyIDIiPgogICAgICA8ZyBpZD0iT2JqZWN0cyI+CiAgICAgICAgPGxpbmUgY2xhc3M9ImNscy0yIiB4MT0iMTcuNDcxIiB5MT0iMTcxLjc1NzMiIHgyPSI3OS4yOTgiIHkyPSIxNzEuNzU3MyIvPgogICAgICAgIDxwb2x5Z29uIGlkPSJfUGF0aF8iIGRhdGEtbmFtZT0iJmx0O1BhdGgmZ3Q7IiBjbGFzcz0iY2xzLTMiIHBvaW50cz0iMTYyLjQ0NSAzOC43MTEgMTYyLjQ0NSAyMTAuMTExIDAgMjEwLjExMSAwIDAgMTIzLjcwNCAwIDE2Mi40MTUgMzguNzExIDE2Mi40NDUgMzguNzExIi8+CiAgICAgICAgPHJlY3QgY2xhc3M9ImNscy00IiB4PSIxOC45MTE3IiB5PSI3OC4xNTQyIiB3aWR0aD0iNDcuODQ4NSIgaGVpZ2h0PSI3OS42NTM3Ii8+CiAgICAgICAgPHJlY3QgY2xhc3M9ImNscy01IiB4PSIxOC45MTE3IiB5PSI1MS42MDMiIHdpZHRoPSIxMjMuNDUyOSIgaGVpZ2h0PSIyNi41NTEyIi8+CiAgICAgICAgPHJlY3QgY2xhc3M9ImNscy02IiB4PSIxOC45MTE3IiB5PSI1MS42MDMiIHdpZHRoPSIxMjMuNDUyOSIgaGVpZ2h0PSIxMDYuMjA0OSIvPgogICAgICAgIDxsaW5lIGNsYXNzPSJjbHMtNiIgeDE9IjY2Ljc2MDEiIHkxPSI1MS42MDMiIHgyPSI2Ni43NjAxIiB5Mj0iMTU3LjgwNzkiLz4KICAgICAgICA8bGluZSBjbGFzcz0iY2xzLTYiIHgxPSI5MS4zMjg0IiB5MT0iNTEuNjAzIiB4Mj0iOTEuMzI4NCIgeTI9IjE1Ny44MDc5Ii8+CiAgICAgICAgPGxpbmUgY2xhc3M9ImNscy02IiB4MT0iMTE1Ljg5NjciIHkxPSI1MS42MDMiIHgyPSIxMTUuODk2NyIgeTI9IjE1Ny44MDc5Ii8+CiAgICAgICAgPGxpbmUgY2xhc3M9ImNscy02IiB4MT0iMTguOTExNyIgeTE9Ijc4LjE1NDIiIHgyPSIxNDIuMzY0NiIgeTI9Ijc4LjE1NDIiLz4KICAgICAgICA8bGluZSBjbGFzcz0iY2xzLTYiIHgxPSIxOC45MTE3IiB5MT0iMTA0LjcwNTUiIHgyPSIxNDIuMzY0NiIgeTI9IjEwNC43MDU1Ii8+CiAgICAgICAgPGxpbmUgY2xhc3M9ImNscy02IiB4MT0iMTguOTExNyIgeTE9IjEzMS4yNTY3IiB4Mj0iMTQyLjM2NDYiIHkyPSIxMzEuMjU2NyIvPgogICAgICAgIDxwb2x5Z29uIGNsYXNzPSJjbHMtNyIgcG9pbnRzPSIxNjIuNDQ1IDM4LjcxMSAxNjIuNDE1IDM4LjcxMSAxMjMuODcyIDAuMTY5IDEyMy44NzIgNTkuOTIxIDE2Mi40NDUgMzkuMTM3IDE2Mi40NDUgMzguNzExIi8+CiAgICAgICAgPGxpbmUgY2xhc3M9ImNscy04IiB4MT0iMTguMzk3MyIgeTE9IjE4MS4zNDQiIHgyPSI3OS4xMTM1IiB5Mj0iMTgxLjM0NCIvPgogICAgICAgIDxsaW5lIGNsYXNzPSJjbHMtOCIgeDE9IjE4LjM5NzMiIHkxPSIxOTAuOTMwNiIgeDI9IjUxLjMwNDkiIHkyPSIxOTAuOTMwNiIvPgogICAgICAgIDxsaW5lIGNsYXNzPSJjbHMtOCIgeDE9IjE4LjM5NzMiIHkxPSIxNzEuNzU3MyIgeDI9Ijc5LjExMzUiIHkyPSIxNzEuNzU3MyIvPgogICAgICAgIDxsaW5lIGNsYXNzPSJjbHMtOCIgeDE9IjE4LjM5NzMiIHkxPSIzNi4xNzA1IiB4Mj0iNzkuMTEzNSIgeTI9IjM2LjE3MDUiLz4KICAgICAgICA8bGluZSBjbGFzcz0iY2xzLTgiIHgxPSIxOC4zOTczIiB5MT0iMjYuNTgzOCIgeDI9Ijc5LjExMzUiIHkyPSIyNi41ODM4Ii8+CiAgICAgICAgPHBvbHlnb24gY2xhc3M9ImNscy05IiBwb2ludHM9IjE2Mi40NDkgMzguNzQyIDEyMy43MDcgMzguNzQyIDEyMy43MDcgMCAxNjIuNDQ5IDM4Ljc0MiIvPgogICAgICA8L2c+CiAgICA8L2c+CiAgPC9nPgo8L3N2Zz4K'
body: >2
By default, each endpoint returns the full representation of a resource
and in
some cases that can be a lot of data. For example, retrieving a list of
pull
requests can amount to quite a large document.
For better performance, you can ask the server to only return the fields
you
really need and to omit unwanted data. To request a partial response and
to
add or remove specific fields from a response, use the `fields` query
parameter.
### Example
Most API resources embed a substantial list of links pointing to related
resources. This saves the client from constructing its own URLs, but is
somewhat wasteful when the client doesn't need them.
To significantly reduce the size of the response, use `?fields=-links`:
```json
$ curl https://api.bitbucket.org/2.0/users/evzijst?fields=-links
{
"nickname": "evzijst",
"account_status": "active",
"website": "",
"display_name": "Erik van Zijst",
"uuid": "{a288a0ab-e13b-43f0-a689-c4ef0a249875}",
"created_on": "2010-07-07T05:16:36+00:00",
"location": null,
"type": "user"
}
```
### Fields parameter syntax
The `fields` parameter supports 3 modes of operation:
1. Removal of select fields (e.g. `-links`)
2. Pulling in additional fields not normally returned by an endpoint,
while
still getting all the default fields (e.g. `+reviewers`)
3. Omitting all fields, except those specified (e.g.
`owner.display_name`)
The fields parameter can contain a list of multiple comma-separated
field names
(e.g. `fields=owner.display_name,uuid,links.self.href`). The parameter
itself is
not repeated.
As discussed at [Condensed Versus Full
Objects](serialization#representations),
most objects that are embedded inside other objects (like how `owner` is
an
embedded `user` object in `repository`) appear in "condensed" form that
omits
many fields. The `fields` parameter allows us to pull in additional
fields in
such cases.
For example, the embedded repository object in a pull request does not
normally
contain its `owner`. To add that in we can use:
`+values.destination.repository.owner`.
### Wildcards
The asterisk can be used to match all fields on a particular level. For
example, removing all entries from the `links` element can be done like
this:
```json
$ curl https://api.bitbucket.org/2.0/users/evzijst?fields=-links.*
{
"nickname": "evzijst",
"account_status": "active",
"website": "",
"display_name": "Erik van Zijst",
"uuid": "{a288a0ab-e13b-43f0-a689-c4ef0a249875}",
"links": {},
"created_on": "2010-07-07T05:16:36+00:00",
"location": null,
"type": "user"
}
```
Wildcards can be used in combination with exclusion and inclusion. For
instance, `-*,+foo,+bar` will remove all elements from the root level
and then
add in `foo` and `bar`.
### URL encoding
Be aware that when using the `+foo.bar` syntax in the query string, that
the
"+" must be URL encoded as "%2B" and so the URL will be:
```
https://api.bitbucket.org/2.0/repositories/evzijst/interruptingcow?fields=%2Bowner.created_on
```
Without URL escaping, "+" is interpreted as an encoded space which will
not
match any fields.
### Field discovery
While a resource's `self` URL, as well its "collection" URL typically
return
the full object with all its fields, there are some exceptions for
fields that
are overly verbose or costly to generate.
For instance, a pull request contains the embedded lists of reviewers
and
participants. These fields are included from the `self` URL, but not
from the
`/pullrequests` collections resource, as it would impact performance too
much.
To discover any additional fields that might not be included by default,
`fields=*` can be used.
### More examples
If we want to get a list of all reviewer nicknames on pull requests I
created,
we could combine a [filter](filtering) with a partial response. This
will omit
all other data from the response:
```
/2.0/repositories/bitbucket/bitbucket/pullrequests?fields=values.id,values.reviewers.nickname,values.state&q=author.uuid%3D%22%7Bd301aafa-d676-4ee0-88be-962be7417567%7D%22
{
"values": [
{
"reviewers": [
{
"nickname": "abhin"
},
{
"nickname": "dtao"
},
{
"nickname": "csomme"
}
],
"state": "OPEN",
"id": 11355
},
{
"reviewers": [
{
"nickname": "csomme"
},
{
"nickname": "abhin"
},
{
"nickname": "dstevens"
}
],
"state": "MERGED",
"id": 11347
},
{
"reviewers": [
{
"nickname": "csomme"
},
{
"nickname": "jmooring"
},
{
"nickname": "zdavis"
},
{
"nickname": "flexbox"
}
],
"state": "OPEN",
"id": 11344
}
]
}
```
- anchor: serialization
title: Schemas and Serialization
description: Learn more about object representations
icon: >-
data:image/svg+xml;base64,b'PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyMjAuNzYyNCAyMDUuNTg2Ij4KICA8ZGVmcz4KICAgIDxzdHlsZT4KICAgICAgLmNscy0xIHsKICAgICAgICBpc29sYXRpb246IGlzb2xhdGU7CiAgICAgIH0KCiAgICAgIC5jbHMtMiwgLmNscy02IHsKICAgICAgICBtaXgtYmxlbmQtbW9kZTogbXVsdGlwbHk7CiAgICAgIH0KCiAgICAgIC5jbHMtMTMsIC5jbHMtMywgLmNscy00LCAuY2xzLTYgewogICAgICAgIGZpbGw6IG5vbmU7CiAgICAgICAgc3Ryb2tlOiAjYzFjN2QwOwogICAgICAgIHN0cm9rZS1saW5lY2FwOiByb3VuZDsKICAgICAgICBzdHJva2UtbWl0ZXJsaW1pdDogMTA7CiAgICAgICAgc3Ryb2tlLXdpZHRoOiAycHg7CiAgICAgIH0KCiAgICAgIC5jbHMtNCB7CiAgICAgICAgc3Ryb2tlLWRhc2hhcnJheTogMy43ODE2IDUuMjk0MzsKICAgICAgfQoKICAgICAgLmNscy01IHsKICAgICAgICBmaWxsOiAjMDA2NWZmOwogICAgICB9CgogICAgICAuY2xzLTYgewogICAgICAgIHN0cm9rZS1kYXNoYXJyYXk6IDMuOTIxOSA1LjQ5MDc7CiAgICAgIH0KCiAgICAgIC5jbHMtNyB7CiAgICAgICAgZmlsbDogIzAwNTJjYzsKICAgICAgfQoKICAgICAgLmNscy04IHsKICAgICAgICBmaWxsOiAjNGM5YWZmOwogICAgICB9CgogICAgICAuY2xzLTkgewogICAgICAgIGZpbGw6ICMwMDQ5YjA7CiAgICAgIH0KCiAgICAgIC5jbHMtMTAgewogICAgICAgIGZpbGw6ICM1N2Q5YTM7CiAgICAgIH0KCiAgICAgIC5jbHMtMTEgewogICAgICAgIGZpbGw6ICM3OWYyYzA7CiAgICAgIH0KCiAgICAgIC5jbHMtMTIgewogICAgICAgIGZpbGw6ICMzNmIzN2U7CiAgICAgIH0KCiAgICAgIC5jbHMtMTMgewogICAgICAgIHN0cm9rZS1kYXNoYXJyYXk6IDMuODY4MSA1LjQxNTQ7CiAgICAgIH0KCiAgICAgIC5jbHMtMTQgewogICAgICAgIGZpbGw6ICM0MjUyNmU7CiAgICAgIH0KCiAgICAgIC5jbHMtMTUgewogICAgICAgIGZpbGw6ICMzNDQ1NjM7CiAgICAgIH0KCiAgICAgIC5jbHMtMTYgewogICAgICAgIGZpbGw6ICM1MDVmNzk7CiAgICAgIH0KICAgIDwvc3R5bGU+CiAgPC9kZWZzPgogIDx0aXRsZT5JbnRlZ3JhdGlvbnM8L3RpdGxlPgogIDxnIGNsYXNzPSJjbHMtMSI+CiAgICA8ZyBpZD0iTGF5ZXJfMiIgZGF0YS1uYW1lPSJMYXllciAyIj4KICAgICAgPGcgaWQ9Ik9iamVjdHMiPgogICAgICAgIDxnIGNsYXNzPSJjbHMtMiI+CiAgICAgICAgICA8Zz4KICAgICAgICAgICAgPGxpbmUgY2xhc3M9ImNscy0zIiB4MT0iNzUuMjExNCIgeTE9IjE4Ny44NTczIiB4Mj0iNzcuMDI0OCIgeTI9IjE4Ny4xMTA5Ii8+CiAgICAgICAgICAgIDxsaW5lIGNsYXNzPSJjbHMtNCIgeDE9IjgxLjkyMDUiIHkxPSIxODUuMDk1NiIgeDI9IjEzOC4yMjEyIiB5Mj0iMTYxLjkyMDMiLz4KICAgICAgICAgICAgPGxpbmUgY2xhc3M9ImNscy0zIiB4MT0iMTQwLjY2OSIgeTE9IjE2MC45MTI2IiB4Mj0iMTQyLjQ4MjQiIHkyPSIxNjAuMTY2MiIvPgogICAgICAgICAgPC9nPgogICAgICAgIDwvZz4KICAgICAgICA8cG9seWdvbiBjbGFzcz0iY2xzLTUiIHBvaW50cz0iMTk0LjUyNiAyNi41NTIgMTc2LjkwMSAzOC4yNDEgMTU5LjI3IDI2LjU1MiAxNzYuOTAxIDE0Ljg3IDE5NC41MjYgMjYuNTUyIi8+CiAgICAgICAgPGxpbmUgY2xhc3M9ImNscy02IiB4MT0iMTgzLjcxMzUiIHkxPSI0My4yMTg4IiB4Mj0iMTgzLjcxMzUiIHkyPSI5Ny44ODMyIi8+CiAgICAgICAgPHBvbHlnb24gY2xhc3M9ImNscy03IiBwb2ludHM9IjE3Ni45MDEgMzguMjQxIDE3Ni45MDEgNTguMTY2IDE1OS4yNyA0Ni40NzcgMTU5LjI3IDI2LjU1MiAxNzYuOTAxIDM4LjI0MSIvPgogICAgICAgIDxwb2x5Z29uIGNsYXNzPSJjbHMtOCIgcG9pbnRzPSIxOTQuNTI2IDI2LjU1MiAxOTQuNTI2IDQ2LjQ3NyAxNzYuOTAxIDU4LjE2NiAxNzYuOTAxIDM4LjI0MSAxOTQuNTI2IDI2LjU1MiIvPgogICAgICAgIDxsaW5lIGNsYXNzPSJjbHMtNiIgeDE9IjQ3Ljk0ODgiIHkxPSI0Mi4yMTg4IiB4Mj0iMTU5LjExNzIiIHkyPSI0Mi4yMTg4Ii8+CiAgICAgICAgPHBvbHlnb24gY2xhc3M9ImNscy01IiBwb2ludHM9IjIyMC43NjIgOTkuNzUyIDE2Ny44MTcgMTM0Ljg2NCAxMTQuODU0IDk5Ljc1MiAxNjcuODE3IDY0LjY1NyAyMjAuNzYyIDk5Ljc1MiIvPgogICAgICAgIDxwb2x5Z29uIGNsYXNzPSJjbHMtOSIgcG9pbnRzPSIxNjcuODE3IDEzNC44NjQgMTY3LjgxNyAxOTQuNzE4IDExNC44NTQgMTU5LjYwNiAxMTQuODU0IDk5Ljc1MiAxNjcuODE3IDEzNC44NjQiLz4KICAgICAgICA8cG9seWdvbiBjbGFzcz0iY2xzLTgiIHBvaW50cz0iMjIwLjc2MiA5OS43NTIgMjIwLjc2MiAxNTkuNjA2IDE2Ny44MTcgMTk0LjcxOCAxNjcuODE3IDEzNC44NjQgMjIwLjc2MiA5OS43NTIiLz4KICAgICAgICA8cG9seWdvbiBjbGFzcz0iY2xzLTEwIiBwb2ludHM9IjExMC41NDEgMjEuNjA0IDc3Ljk0OSA0My4yMTkgNDUuMzQ1IDIxLjYwNCA3Ny45NDkgMCAxMTAuNTQxIDIxLjYwNCIvPgogICAgICAgIDxwb2x5Z29uIGNsYXNzPSJjbHMtMTEiIHBvaW50cz0iMTEwLjU0MSAyMS42MDQgMTEwLjU0MSA1OC40NDkgNzcuOTQ5IDgwLjA2NCA3Ny45NDkgNDMuMjE5IDExMC41NDEgMjEuNjA0Ii8+CiAgICAgICAgPHBvbHlnb24gY2xhc3M9ImNscy01IiBwb2ludHM9IjE0MS4xOSAxNDguMDczIDE2Ny44MTMgMTMwLjQxNyAxOTQuNDQ0IDE0OC4wNzMgMTY3LjgxMyAxNjUuNzE5IDE0MS4xOSAxNDguMDczIi8+CiAgICAgICAgPHBvbHlnb24gY2xhc3M9ImNscy05IiBwb2ludHM9IjE2Ny44MTMgMTMwLjQxNyAxNjcuODEzIDEwMC4zMjEgMTk0LjQ0NCAxMTcuOTc2IDE5NC40NDQgMTQ4LjA3MyAxNjcuODEzIDEzMC40MTciLz4KICAgICAgICA8cG9seWdvbiBjbGFzcz0iY2xzLTgiIHBvaW50cz0iMTQxLjE5IDE0OC4wNzMgMTQxLjE5IDExNy45NzYgMTY3LjgxMyAxMDAuMzIxIDE2Ny44MTMgMTMwLjQxNyAxNDEuMTkgMTQ4LjA3MyIvPgogICAgICAgIDxwb2x5Z29uIGNsYXNzPSJjbHMtMTIiIHBvaW50cz0iNDUuMzQ1IDIxLjYwNCA0NS4zNDUgNDQuOTg0IDU3LjIzMSA1Mi44NjQgNTcuMjMxIDY2LjI5NiA3Ny45NDkgODAuMDY0IDc3Ljk0OSA0My4yMTkgNDUuMzQ1IDIxLjYwNCIvPgogICAgICAgIDxnIGNsYXNzPSJjbHMtMiI+CiAgICAgICAgICA8Zz4KICAgICAgICAgICAgPGxpbmUgY2xhc3M9ImNscy0zIiB4MT0iMjQuNjQzOCIgeTE9Ijg2Ljk1NDQiIHgyPSIyNi4wMTU3IiB5Mj0iODUuNTUzMSIvPgogICAgICAgICAgICA8bGluZSBjbGFzcz0iY2xzLTEzIiB4MT0iMjkuODA0IiB5MT0iODEuNjgzNCIgeDI9IjYwLjM4MTEiIHkyPSI1MC40NDkyIi8+CiAgICAgICAgICAgIDxsaW5lIGNsYXNzPSJjbHMtMyIgeDE9IjYyLjI3NTIiIHkxPSI0OC41MTQzIiB4Mj0iNjMuNjQ3IiB5Mj0iNDcuMTEzIi8+CiAgICAgICAgICA8L2c+CiAgICAgICAgPC9nPgogICAgICAgIDxwb2x5Z29uIGNsYXNzPSJjbHMtNSIgcG9pbnRzPSIzNS4yNTUgODkuNjQ1IDE3LjczNiAxMDEuNDkyIDAgODkuOTYyIDE3LjUyNSA3OC4xMjEgMzUuMjU1IDg5LjY0NSIvPgogICAgICAgIDxwb2x5Z29uIGNsYXNzPSJjbHMtNyIgcG9pbnRzPSIxNy43MzYgMTAxLjQ5MiAxNy45MTUgMTIxLjQxNiAwLjE3OSAxMDkuODg3IDAgODkuOTYyIDE3LjczNiAxMDEuNDkyIi8+CiAgICAgICAgPGxpbmUgY2xhc3M9ImNscy02IiB4MT0iMjAuNTg0OSIgeTE9IjEwNS41MzA1IiB4Mj0iNjUuODc0OSIgeTI9IjE3MS4zNjgxIi8+CiAgICAgICAgPHBvbHlnb24gY2xhc3M9ImNscy04IiBwb2ludHM9IjM1LjI1NSA4OS42NDUgMzUuNDM0IDEwOS41NjkgMTcuOTE1IDEyMS40MTYgMTcuNzM2IDEwMS40OTIgMzUuMjU1IDg5LjY0NSIvPgogICAgICAgIDxwb2x5Z29uIGNsYXNzPSJjbHMtMTQiIHBvaW50cz0iOTIuMzk0IDE3My44MTUgNzQuODc1IDE4NS42NjIgNTcuMTM5IDE3NC4xMzIgNzQuNjY0IDE2Mi4yOTEgOTIuMzk0IDE3My44MTUiLz4KICAgICAgICA8cG9seWdvbiBjbGFzcz0iY2xzLTE1IiBwb2ludHM9Ijc0Ljg3NSAxODUuNjYyIDc1LjA1NCAyMDUuNTg2IDU3LjMxOSAxOTQuMDU3IDU3LjEzOSAxNzQuMTMyIDc0Ljg3NSAxODUuNjYyIi8+CiAgICAgICAgPHBvbHlnb24gY2xhc3M9ImNscy0xNiIgcG9pbnRzPSI5Mi4zOTQgMTczLjgxNSA5Mi41NzQgMTkzLjczOSA3NS4wNTQgMjA1LjU4NiA3NC44NzUgMTg1LjY2MiA5Mi4zOTQgMTczLjgxNSIvPgogICAgICA8L2c+CiAgICA8L2c+CiAgPC9nPgo8L3N2Zz4K'
body: >2
-
* [Open API Specification](#open-api-specification)
* [JSON Schema](#json-schema)
* [Condensed Versus Full Objects](#condensed-versus-full-objects)
____
### Open API Specification
Bitbucket uses the [Open API Specification](https://openapis.org) (OAI,
formerly known as Swagger) to describe its APIs. Our OAI specification
schema
is hosted at
[https://api.bitbucket.org/swagger.json](https://api.bitbucket.org/swagger.json)
and serves as the canonical definition and comprehensive declaration of
all
available endpoints.
The OAI specification makes writing client applications easier by:
auto-generating boilerplate code (like data object classes) and dealing
with
authentication and error handling.
You can find a comprehensive set of open tools for the OAI specification
at:
[https://github.com/swagger-api](https://github.com/swagger-api).
### JSON Schema
Bitbucket uses JSON Schema to describe the layout of every type of
object
consumed or produced by the API. These schemas are collected under the
`#definitions` element of our swagger.json file.
When an endpoint expects an object as part of a POST or PUT, it also
expects
the object to validate against the JSON schemas. The same applies to
objects
returned by an endpoint.
### Condensed Versus Full Objects
Most objects in Bitbucket come both in "full" and "partial"
representation.
The full representation is when all elements are included. This is the
layout
returned by a resource's `self` location (e.g.
`/2.0/repositories/foo/bar`),
as well as resource collection endpoints (e.g. `/2.0/repositories`).
However, Bitbucket objects often embed other objects. For example, a
`repository`
object embeds a `user` object for its owner. Likewise, a `pullrequest`
object
embeds its `repository` object.
These related objects are embedded, or inlined, to reduce the "chatter"
when
clients make frequent followup API calls to collect information on
common,
related information.
Embedded related objects are typically limited in their fields to avoid
such
object graphs from becoming too deep and noisy. They often exclude their
own
nested objects in an attempt to strike a balance between performance and
utility.
An object's embedded or condensed representation tends to be
standardized,
meaning the fields included is the same set, regardless of where the
object
was embedded.
- anchor: uri-uuid
title: URI, UUID, and structures
description: URL's, UUID's, errors, and timestamps
icon: >-
data:image/svg+xml;base64,b'PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB2aWV3Qm94PSIwIDAgMTc5LjI2IDE3Ny42NSI+PGRlZnM+PHN0eWxlPi5jbHMtMXtmaWxsOnVybCgjbGluZWFyLWdyYWRpZW50KTt9LmNscy0ye2ZpbGw6IzA5MWU0Mjt9LmNscy0xMCwuY2xzLTExLC5jbHMtMywuY2xzLTQsLmNscy05e2ZpbGw6bm9uZTt9LmNscy0ze3N0cm9rZTojOTljMWZmO30uY2xzLTMsLmNscy00e3N0cm9rZS1saW5lY2FwOnJvdW5kO3N0cm9rZS1saW5lam9pbjpyb3VuZDtzdHJva2Utd2lkdGg6MDt9LmNscy0xMiwuY2xzLTQsLmNscy05e3N0cm9rZTojZTVlOGVjO30uY2xzLTV7ZmlsbDojMzQ0NTYzO30uY2xzLTZ7ZmlsbDojZmY4YjAwO30uY2xzLTd7ZmlsbDojZmZjNDAwO30uY2xzLTh7ZmlsbDojMDA2NWZmO30uY2xzLTEwLC5jbHMtMTEsLmNscy0xMiwuY2xzLTEzLC5jbHMtOXtzdHJva2UtbWl0ZXJsaW1pdDoxMDtzdHJva2Utd2lkdGg6MnB4O30uY2xzLTEwe3N0cm9rZTojZmZhYjAwO30uY2xzLTExLC5jbHMtMTN7c3Ryb2tlOiMwMDY1ZmY7fS5jbHMtMTJ7ZmlsbDojOTljMWZmO30uY2xzLTEze2ZpbGw6I2U1ZThlYzt9PC9zdHlsZT48bGluZWFyR3JhZGllbnQgaWQ9ImxpbmVhci1ncmFkaWVudCIgeDE9IjAuNCIgeTE9IjE3OC4wNSIgeDI9IjE3OC44NSIgeTI9Ii0wLjQiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIj48c3RvcCBvZmZzZXQ9IjAiIHN0b3AtY29sb3I9IiMwOTFlNDIiLz48c3RvcCBvZmZzZXQ9IjAuMDciIHN0b3AtY29sb3I9IiMwZDIyNDUiLz48c3RvcCBvZmZzZXQ9IjAuNDkiIHN0b3AtY29sb3I9IiMxZjMyNTMiLz48c3RvcCBvZmZzZXQ9IjAuNzkiIHN0b3AtY29sb3I9IiMyNTM4NTgiLz48L2xpbmVhckdyYWRpZW50PjwvZGVmcz48dGl0bGU+Q29kZTwvdGl0bGU+PGcgaWQ9IkxheWVyXzIiIGRhdGEtbmFtZT0iTGF5ZXIgMiI+PGcgaWQ9IlNvZnR3YXJlIj48cmVjdCBpZD0iX1JlY3RhbmdsZV8iIGRhdGEtbmFtZT0iJmx0O1JlY3RhbmdsZSZndDsiIGNsYXNzPSJjbHMtMSIgd2lkdGg9IjE3OS4yNiIgaGVpZ2h0PSIxNzcuNjUiLz48cGF0aCBjbGFzcz0iY2xzLTIiIGQ9Ik0xNzkuMjYsMjYuNjRIMFY3MS43NUExNjYuNDEsMTY2LjQxLDAsMCwwLDYzLjI0LDU5LjUxYTE4OC40MSwxODguNDEsMCwwLDAsMTcuMzktOC4zNmMxOC40NC05LjQzLDQ4LjM3LTE3LjksOTguNjItMTNabS0xNTkuNDQsMzRoMFptMC0xNC4wOGgwWiIvPjxsaW5lIGNsYXNzPSJjbHMtMyIgeDE9IjE5LjgxIiB5MT0iNDYuNTgiIHgyPSIyNS4wNyIgeTI9IjQ2LjU4Ii8+PGxpbmUgY2xhc3M9ImNscy0zIiB4MT0iMjUuMDciIHkxPSI2MC42NiIgeDI9IjE5LjgxIiB5Mj0iNjAuNjYiLz48bGluZSBjbGFzcz0iY2xzLTMiIHgxPSIxOS44MSIgeTE9Ijc0Ljc0IiB4Mj0iMjUuMDciIHkyPSI3NC43NCIvPjxsaW5lIGNsYXNzPSJjbHMtMyIgeDE9IjI1LjA3IiB5MT0iODguODIiIHgyPSIxOS44MSIgeTI9Ijg4LjgyIi8+PGxpbmUgY2xhc3M9ImNscy0zIiB4MT0iMjUuMDciIHkxPSIxMDIuODkiIHgyPSIxOS44MSIgeTI9IjEwMi44OSIvPjxsaW5lIGNsYXNzPSJjbHMtMyIgeDE9IjI1LjA3IiB5MT0iMTE2Ljk3IiB4Mj0iMTkuODEiIHkyPSIxMTYuOTciLz48bGluZSBjbGFzcz0iY2xzLTMiIHgxPSIyNS4wNyIgeTE9IjEzMS4wNSIgeDI9IjE5LjgxIiB5Mj0iMTMxLjA1Ii8+PGxpbmUgY2xhc3M9ImNscy0zIiB4MT0iMjUuMDciIHkxPSIxNDUuMTMiIHgyPSIxOS44MSIgeTI9IjE0NS4xMyIvPjxsaW5lIGNsYXNzPSJjbHMtMyIgeDE9IjI1LjA3IiB5MT0iMTU5LjIxIiB4Mj0iMTkuODEiIHkyPSIxNTkuMjEiLz48bGluZSBjbGFzcz0iY2xzLTQiIHgxPSI1NS44OSIgeTE9IjEzMS4wNSIgeDI9IjkzLjk5IiB5Mj0iMTMxLjA1Ii8+PGxpbmUgY2xhc3M9ImNscy00IiB4MT0iNTUuODkiIHkxPSIxNDUuMTMiIHgyPSIxMzkuNjciIHkyPSIxNDUuMTMiLz48cmVjdCBjbGFzcz0iY2xzLTUiIHdpZHRoPSIxNzkuMjYiIGhlaWdodD0iMjYuNjQiLz48Y2lyY2xlIGNsYXNzPSJjbHMtNiIgY3g9IjEzLjUiIGN5PSIxMi4wOCIgcj0iNS4xMSIvPjxjaXJjbGUgY2xhc3M9ImNscy03IiBjeD0iMzAuMTgiIGN5PSIxMi4wOCIgcj0iNS4xMSIvPjxjaXJjbGUgY2xhc3M9ImNscy04IiBjeD0iNDYuODYiIGN5PSIxMi4wOCIgcj0iNS4xMSIvPjxwYXRoIGNsYXNzPSJjbHMtOSIgZD0iTTc1LjQxLDg4LjgyIi8+PHBhdGggY2xhc3M9ImNscy05IiBkPSJNMzIuODksODguODIiLz48bGluZSBjbGFzcz0iY2xzLTEwIiB4MT0iMzIuODkiIHkxPSI3NC43NCIgeDI9Ijc1LjQxIiB5Mj0iNzQuNzQiLz48bGluZSBjbGFzcz0iY2xzLTExIiB4MT0iMzIuODkiIHkxPSI2MC42NiIgeDI9Ijc1LjQxIiB5Mj0iNjAuNjYiLz48bGluZSBjbGFzcz0iY2xzLTkiIHgxPSIzMi44OSIgeTE9IjQ2LjU4IiB4Mj0iNTUuODkiIHkyPSI0Ni41OCIvPjxsaW5lIGNsYXNzPSJjbHMtMTIiIHgxPSIxOS44MSIgeTE9IjQ2LjU4IiB4Mj0iMjUuMDciIHkyPSI0Ni41OCIvPjxsaW5lIGNsYXNzPSJjbHMtMTIiIHgxPSIxOS44MSIgeTE9IjYwLjY2IiB4Mj0iMjUuMDciIHkyPSI2MC42NiIvPjxsaW5lIGNsYXNzPSJjbHMtMTIiIHgxPSIxOS44MSIgeTE9Ijc0Ljc0IiB4Mj0iMjUuMDciIHkyPSI3NC43NCIvPjxsaW5lIGNsYXNzPSJjbHMtMTIiIHgxPSIxOS44MSIgeTE9Ijg4LjgyIiB4Mj0iMjUuMDciIHkyPSI4OC44MiIvPjxsaW5lIGNsYXNzPSJjbHMtMTIiIHgxPSIxOS44MSIgeTE9IjEwMi44OSIgeDI9IjI1LjA3IiB5Mj0iMTAyLjg5Ii8+PGxpbmUgY2xhc3M9ImNscy0xMiIgeDE9IjE5LjgxIiB5MT0iMTE2Ljk3IiB4Mj0iMjUuMDciIHkyPSIxMTYuOTciLz48bGluZSBjbGFzcz0iY2xzLTEyIiB4MT0iMTkuODEiIHkxPSIxMzEuMDUiIHgyPSIyNS4wNyIgeTI9IjEzMS4wNSIvPjxsaW5lIGNsYXNzPSJjbHMtMTIiIHgxPSIxOS44MSIgeTE9IjE0NS4xMyIgeDI9IjI1LjA3IiB5Mj0iMTQ1LjEzIi8+PGxpbmUgY2xhc3M9ImNscy0xMiIgeDE9IjE5LjgxIiB5MT0iMTU5LjIxIiB4Mj0iMjUuMDciIHkyPSIxNTkuMjEiLz48bGluZSBpZD0iX0xpbmVfIiBkYXRhLW5hbWU9IiZsdDtMaW5lJmd0OyIgY2xhc3M9ImNscy0xMCIgeDE9Ijg0LjI0IiB5MT0iMTE2Ljk3IiB4Mj0iMTU2LjY1IiB5Mj0iMTE2Ljk3Ii8+PHBhdGggY2xhc3M9ImNscy05IiBkPSJNMzIuODksMTE3aDBaIi8+PGxpbmUgY2xhc3M9ImNscy0xMCIgeDE9IjEwMiIgeTE9IjEzMS4wNSIgeDI9IjE2My42MiIgeTI9IjEzMS4wNSIvPjxsaW5lIGNsYXNzPSJjbHMtMTMiIHgxPSI1NS44OSIgeTE9IjEzMS4wNSIgeDI9IjkzLjk5IiB5Mj0iMTMxLjA1Ii8+PGxpbmUgY2xhc3M9ImNscy0xMyIgeDE9IjU1Ljg5IiB5MT0iMTQ1LjEzIiB4Mj0iMTM5LjY3IiB5Mj0iMTQ1LjEzIi8+PGxpbmUgY2xhc3M9ImNscy05IiB4MT0iNzguOSIgeTE9IjE1OS4yMSIgeDI9IjExMy41MSIgeTI9IjE1OS4yMSIvPjxsaW5lIGNsYXNzPSJjbHMtOSIgeDE9IjU5LjYxIiB5MT0iODguODIiIHgyPSI5OS4zMyIgeTI9Ijg4LjgyIi8+PGxpbmUgY2xhc3M9ImNscy05IiB4MT0iNTkuNjEiIHkxPSIxMDIuODkiIHgyPSI5OS4zMyIgeTI9IjEwMi44OSIvPjxjaXJjbGUgY2xhc3M9ImNscy02IiBjeD0iMTMuNSIgY3k9IjEyLjA4IiByPSI1LjExIi8+PGNpcmNsZSBjbGFzcz0iY2xzLTciIGN4PSIzMC4xOCIgY3k9IjEyLjA4IiByPSI1LjExIi8+PGNpcmNsZSBjbGFzcz0iY2xzLTgiIGN4PSI0Ni44NiIgY3k9IjEyLjA4IiByPSI1LjExIi8+PC9nPjwvZz48L3N2Zz4='
body: >2
You should be familiar with REST architecture before writing an
integration. Read this overview page to gain a good understanding of
Bitbucket's REST implementation.
-
* [URI structure](#uri-structure)
* [HTTP methods](#http-methods)
* [UUID](#universally-unique-identifier)
* [User object and UUID](#user-object-and-uuid)
* [Repository object and UUID](#repository-object-and-uuid)
* [Team object and UUID](#team-object-and-uuid)
* [Standard error responses](#standardized-error-responses)
* [Standard ISO-8601 timestamps](#standard-iso-8601-timestamps)
-
### URI structure
All Bitbucket Cloud requests start with the
`https://api.bitbucket.org/2.0` prefix (for the 2.0 API) and
`https://api.bitbucket.org/1.0` prefix (1.0 API).
The next segment of the URI path depends on the endpoint of the request.
For example, using the curl command and the repositories endpoint you
can list all the issues on Bitbucket's tutorial repository:
```
curl
https://api.bitbucket.org/2.0/repositories/tutorials/tutorials.bitbucket.org
```
Given a specific endpoint, you can then drill down to a particular
aspect or resource of that endpoint. The issues resource on a repository
is an example:
```
curl
https://api.bitbucket.org/1.0/repositories/tutorials/tutorials.bitbucket.org/issues
```
#### HTTP methods
A given endpoint or resource has a series of actions (or methods)
associated with it. The Bitbucket service supports these standard HTTP
methods:
| Call | Description |
||-|
| GET | Retrieves information. |
| PUT | Updates existing information. |
| POST | Creates new information. |
| DELETE | Removes existing information. |
For example, you can call use the POST action on the issues resource and
create an issue on the issue tracker.
**Specifying content length**
You can get a `411 Length Required` response. If this happens, the API
requires a Content-Length header but the client is not sending it. You
should add the header yourself, for example using the curl client:
```
curl -r PUT --header "Content-Length: 0" -u user:app_password
https://api.bitbucket.org/1.0/emails/rap@atlassian.com
```
### Universally Unique Identifier
UUID's provide a single point of recognition for users, teams, and
repositories. The UUID is distinct from the username, team name, and
repository name fields and remains the same even when those fields
change. For example when a user changes their username or moves a
repository you will need to modify calls which use those identifiers but
not if you are pointing to the UUID.
#### UUID examples and structure
UUID's work with both the 1.0 and 2.0 APIs for the user, team, and
repository objects. The following examples the following characters are
replacements for curly brackets: `%7B` replaces `{` and `%7D` replaces
`}`. You will see this structure in the following example sections.
#### User object and UUID
When you make a call using either the username or the UUID for that user
the response is the same.
**Call with username**:
```
curl https://api.bitbucket.org/2.0/users/tutorials
```
***Call with UUID for the user**:
```
curl
https://api.bitbucket.org/2.0/users/%7Bc788b2da-b7a2-404c-9e26-d3f077557007%7D
```
**Response**
```JSON
{
"username": "tutorials",
"nickname": "tutorials",
"account_status": "active",
"website": "https://tutorials.bitbucket.org/",
"display_name": "tutorials account",
"uuid": "{c788b2da-b7a2-404c-9e26-d3f077557007}",
"links": {
"self": {
"href": "https://api.bitbucket.org/2.0/users/tutorials"
},
"repositories": {
"href": "https://api.bitbucket.org/2.0/repositories/tutorials"
},
"html": {
"href": "https://bitbucket.org/tutorials"
},
"followers": {
"href": "https://api.bitbucket.org/2.0/users/tutorials/followers"
},
"avatar": {
"href": "https://bitbucket-assetroot.s3.amazonaws.com/c/photos/2013/Nov/25/tutorials-avatar-1563784409-6_avatar.png"
},
"following": {
"href": "https://api.bitbucket.org/2.0/users/tutorials/following"
}
},
"created_on": "2011-12-20T16:34:07.132459+00:00",
"location": "Santa Monica, CA",
"type": "user"
}
```
#### Repository object and UUID
Once you have the UUID for a repository you no longer need a username or
team name to make the API call so long as you use an empty field. This
helps you resolve repositories no matter if the username or team name
changes.
**Call with team name (1team) and repository name (moxie)**:
```
curl https://api.bitbucket.org/2.0/repositories/1team/moxie
```
**Call with UUID and empty field**:
```
curl
https://api.bitbucket.org/2.0/repositories/%7B%7D/%7B21fa9bf8-b5b2-4891-97ed-d590bad0f871%7D
```
**Call with UUID and teamname**:
```
curl
https://api.bitbucket.org/2.0/repositories/1team/%7B21fa9bf8-b5b2-4891-97ed-d590bad0f871%7D
```
**Response**
```JSON
{
"created_on": "2013-11-08T01:11:03.222520+00:00",
"description": "",
"fork_policy": "allow_forks",
"full_name": "1team/moxie",
"has_issues": false,
"has_wiki": false,
"is_private": false,
"language": "",
"links": {
"avatar": {
"href": "https://bitbucket.org/1team/moxie/avatar/32/"
},
"branches": {
"href": "https://api.bitbucket.org/2.0/repositories/1team/moxie/refs/branches"
},
"clone": [
{
"href": "https://bitbucket.org/1team/moxie.git",
"name": "https"
},
{
"href": "ssh://git@bitbucket.org/1team/moxie.git",
"name": "ssh"
}
],
"commits": {
"href": "https://api.bitbucket.org/2.0/repositories/1team/moxie/commits"
},
"downloads": {
"href": "https://api.bitbucket.org/2.0/repositories/1team/moxie/downloads"
},
"forks": {
"href": "https://api.bitbucket.org/2.0/repositories/1team/moxie/forks"
},
"hooks": {
"href": "https://api.bitbucket.org/2.0/repositories/1team/moxie/hooks"
},
"html": {
"href": "https://bitbucket.org/1team/moxie"
},
"pullrequests": {
"href": "https://api.bitbucket.org/2.0/repositories/1team/moxie/pullrequests"
},
"self": {
"href": "https://api.bitbucket.org/2.0/repositories/1team/moxie"
},
"tags": {
"href": "https://api.bitbucket.org/2.0/repositories/1team/moxie/refs/tags"
},
"watchers": {
"href": "https://api.bitbucket.org/2.0/repositories/1team/moxie/watchers"
}
},
"name": "moxie",
"owner": {
"display_name": "the team",
"links": {
"avatar": {
"href": "https://bitbucket.org/account/1team/avatar/32/"
},
"html": {
"href": "https://bitbucket.org/1team/"
},
"self": {
"href": "https://api.bitbucket.org/2.0/teams/1team"
}
},
"type": "team",
"username": "1team",
"uuid": "{aa559944-83c9-4963-a9a8-69ac8d9cf5d2}"
},
"project": {
"key": "PROJ",
"links": {
"avatar": {
"href": "https://bitbucket.org/account/user/1team/projects/PROJ/avatar/32"
},
"html": {
"href": "https://bitbucket.org/account/user/1team/projects/PROJ"
}
},
"name": "Untitled project",
"type": "project",
"uuid": "{ab52aaeb-16ad-4fb0-bb1d-47e4f00367ff}"
},
"scm": "git",
"size": 33348,
"type": "repository",
"updated_on": "2013-11-08T01:11:03.263237+00:00",
"uuid": "{21fa9bf8-b5b2-4891-97ed-d590bad0f871}",
"website": ""
}
```
#### Team object and UUID
This example shows a call for a list of team members using both the team
name and with the UUID for the team object. As the call is
unauthenticated in the following example the response object will only
show members with public profiles. The response is the same in either
case.
**Call with teamname**
```
curl https://api.bitbucket.org/2.0/teams/1team/members
```
**Call with UUID for team object**
```
curl
https://api.bitbucket.org/2.0/teams/%7Baa559944-83c9-4963-a9a8-69ac8d9cf5d2%7D/members
```
**Response**
```JSON
{
"page": 1,
"pagelen": 50,
"size": 2,
"values": [
{
"created_on": "2011-12-20T16:34:07.132459+00:00",
"display_name": "tutorials account",
"links": {
"avatar": {
"href": "https://bitbucket.org/account/tutorials/avatar/32/"
},
"followers": {
"href": "https://api.bitbucket.org/2.0/users/tutorials/followers"
},
"following": {
"href": "https://api.bitbucket.org/2.0/users/tutorials/following"
},
"hooks": {
"href": "https://api.bitbucket.org/2.0/users/tutorials/hooks"
},
"html": {
"href": "https://bitbucket.org/tutorials/"
},
"repositories": {
"href": "https://api.bitbucket.org/2.0/repositories/tutorials"
},
"self": {
"href": "https://api.bitbucket.org/2.0/users/tutorials"
},
"snippets": {
"href": "https://api.bitbucket.org/2.0/snippets/tutorials"
}
},
"location": null,
"type": "user",
"username": "tutorials",
"nickname": "tutorials",
"account_status": "active",
"uuid": "{c788b2da-b7a2-404c-9e26-d3f077557007}",
"website": "https://tutorials.bitbucket.org/"
},
{
"created_on": "2013-12-10T14:44:13+00:00",
"display_name": "Dan Stevens [Atlassian]",
"links": {
"avatar": {
"href": "https://bitbucket.org/account/dans9190/avatar/32/"
},
"followers": {
"href": "https://api.bitbucket.org/2.0/users/dans9190/followers"
},
"following": {
"href": "https://api.bitbucket.org/2.0/users/dans9190/following"
},
"hooks": {
"href": "https://api.bitbucket.org/2.0/users/dans9190/hooks"
},
"html": {
"href": "https://bitbucket.org/dans9190/"
},
"repositories": {
"href": "https://api.bitbucket.org/2.0/repositories/dans9190"
},
"self": {
"href": "https://api.bitbucket.org/2.0/users/dans9190"
},
"snippets": {
"href": "https://api.bitbucket.org/2.0/snippets/dans9190"
}
},
"location": null,
"type": "user",
"username": "dans9190",
"nickname": "dans9190",
"account_status": "active",
"uuid": "{1cd06601-cd0e-4fce-be03-e9ac226978b7}",
"website": ""
}
]
}
```
### Standardized error responses
The 2.0 API standardizes the error response layout. The 2.0 API serves a
JSON
object along with the appropriate HTTP status code. The JSON object
provides a
detailed problem description.
```json
{
"type": "error",
"error": {
"message": "Bad request",
"fields": {
"src": [
"This field is required."
]
},
"detail": "You must specify a valid source branch when creating a pull request.",
"id": "d23a1cc5178f7637f3d9bf2d13824258",
"data": {
"extra": "Optional, endpoint-specific data to further augment the error."
}
}
}
```
This object contains an error element which contains the following
nested
elements:
| Element | Description |
||-|
| message | A short description of the problem. This element is always
present. Its value may be localized. |
| fields | This optional element is used in response to POST or PUT
operations in which clients have provided invalid input. It contains a
list of one or more client-provided fields that failed validation. The
values may be localized. |
| detail | An optional detailed explanation of the failure. Its value
may be localized.
| id | An optional unique error identifier that identifies the
error in Bitbucket's logging system. If you feel you hit a bug in an API
and this field is provided, please mention it if you decide to contact
support as it will greatly help us narrow down the problem. |
### Standard ISO-8601 timestamps
All 2.0 APIs use standardized ISO-8601 timestamps. In most cases, our
APIs return UTC timestamps and for these, the timezone offset part will
be 00:00. In rare cases where the original localized timestamp has
significance, the timezone offset may identify the event's original
timezone.
- anchor: cors-hypermedia
title: Cors and hypermedia
description: Learn about resources and linking
icon: >-
data:image/svg+xml;base64,b'PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB2aWV3Qm94PSIwIDAgMjM2LjYgMjE4LjQzIj48ZGVmcz48c3R5bGU+LmNscy0xe2lzb2xhdGlvbjppc29sYXRlO30uY2xzLTIsLmNscy0zLC5jbHMtNHtmaWxsOm5vbmU7c3Ryb2tlLWxpbmVjYXA6cm91bmQ7c3Ryb2tlLW1pdGVybGltaXQ6MTA7c3Ryb2tlLXdpZHRoOjExcHg7fS5jbHMtMntzdHJva2U6dXJsKCNsaW5lYXItZ3JhZGllbnQpO30uY2xzLTN7c3Ryb2tlOnVybCgjTmV3X0dyYWRpZW50X1N3YXRjaF8xNCk7fS5jbHMtNHtzdHJva2U6dXJsKCNOZXdfR3JhZGllbnRfU3dhdGNoXzEpO30uY2xzLTV7ZmlsbDojNDI1MjZlO30uY2xzLTZ7ZmlsbDojZmY1NjMwO30uY2xzLTEwLC5jbHMtNywuY2xzLTh7bWl4LWJsZW5kLW1vZGU6bXVsdGlwbHk7fS5jbHMtN3tmaWxsOnVybCgjbGluZWFyLWdyYWRpZW50LTIpO30uY2xzLTh7ZmlsbDp1cmwoI2xpbmVhci1ncmFkaWVudC0zKTt9LmNscy05e2ZpbGw6IzAwNjVmZjt9LmNscy0xMHtmaWxsOnVybCgjbGluZWFyLWdyYWRpZW50LTQpO308L3N0eWxlPjxsaW5lYXJHcmFkaWVudCBpZD0ibGluZWFyLWdyYWRpZW50IiB5MT0iMTY3Ljg3IiB4Mj0iMTkxLjU2IiB5Mj0iMTY3Ljg3IiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+PHN0b3Agb2Zmc2V0PSIwIiBzdG9wLWNvbG9yPSIjNTA1Zjc5Ii8+PHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjMzQ0NTYzIi8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9Ik5ld19HcmFkaWVudF9Td2F0Y2hfMTQiIHgxPSIxMTIuODMiIHkxPSIxMzEuNzIiIHgyPSIyMzYuNiIgeTI9IjEzMS43MiIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPjxzdG9wIG9mZnNldD0iMCIgc3RvcC1jb2xvcj0iIzAwNTJjYyIvPjxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iIzI2ODRmZiIvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPSJOZXdfR3JhZGllbnRfU3dhdGNoXzEiIHgxPSI0NS4wNiIgeTE9Ijg2LjY5IiB4Mj0iMTY4Ljg4IiB5Mj0iODYuNjkiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIj48c3RvcCBvZmZzZXQ9IjAiIHN0b3AtY29sb3I9IiNkZTM1MGIiLz48c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiNmZjc0NTIiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD0ibGluZWFyLWdyYWRpZW50LTIiIHgxPSIzNDQ3LjkzIiB5MT0iLTkxOC43OSIgeDI9IjM0NTEuNCIgeTI9Ii0xMDMyLjc2IiBncmFkaWVudFRyYW5zZm9ybT0idHJhbnNsYXRlKC01NzIuMzggMzcwNC4yOSkgcm90YXRlKC02NC4zNCkiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIj48c3RvcCBvZmZzZXQ9IjAuMzEiIHN0b3AtY29sb3I9IiNjMWM3ZDAiIHN0b3Atb3BhY2l0eT0iMCIvPjxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iI2MxYzdkMCIvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPSJsaW5lYXItZ3JhZGllbnQtMyIgeDE9IjM1MDYuNiIgeTE9Ii03OTYuNjYiIHgyPSIzNTEwLjA3IiB5Mj0iLTkxMC42MyIgeGxpbms6aHJlZj0iI2xpbmVhci1ncmFkaWVudC0yIi8+PGxpbmVhckdyYWRpZW50IGlkPSJsaW5lYXItZ3JhZGllbnQtNCIgeDE9IjM1ODEuNjgiIHkxPSItOTA2LjgyIiB4Mj0iMzU4NS4xNiIgeTI9Ii0xMDIwLjc5IiB4bGluazpocmVmPSIjbGluZWFyLWdyYWRpZW50LTIiLz48L2RlZnM+PHRpdGxlPldlYmhvb2tzPC90aXRsZT48ZyBjbGFzcz0iY2xzLTEiPjxnIGlkPSJMYXllcl8yIiBkYXRhLW5hbWU9IkxheWVyIDIiPjxnIGlkPSJTb2Z0d2FyZSI+PHBhdGggY2xhc3M9ImNscy0yIiBkPSJNMTg2LjA2LDE2Ny44N0gxMTcuNzJBMjcuNTgsMjcuNTgsMCwwLDAsOTIuMjQsMTg1YTQ1LjA2LDQ1LjA2LDAsMSwxLTQxLjY4LTYyLjE5Ii8+PHBhdGggY2xhc3M9ImNscy0zIiBkPSJNMTE4LjMzLDUwLjUybDM0LjE1LDU5LjE4YTI3LjU5LDI3LjU5LDAsMCwwLDI3LjU4LDEzLjUxLDQ1LjA2LDQ1LjA2LDAsMSwxLTMzLDY3LjE5Ii8+PHBhdGggY2xhc3M9ImNscy00IiBkPSJNNTAuNTYsMTY3Ljg3bDM0LjE4LTU5LjE2YTI3LjU5LDI3LjU5LDAsMCwwLTIuMDktMzAuNjQsNDUuMDYsNDUuMDYsMCwxLDEsNzQuNy01Ii8+PHBhdGggY2xhc3M9ImNscy01IiBkPSJNMTg2LjA2LDE5OS42NmEzMS43OSwzMS43OSwwLDEsMSwzMS43OS0zMS43OUEzMS44MiwzMS44MiwwLDAsMSwxODYuMDYsMTk5LjY2WiIvPjxnIGlkPSJfR3JvdXBfIiBkYXRhLW5hbWU9IiZsdDtHcm91cCZndDsiPjxwYXRoIGNsYXNzPSJjbHMtNiIgZD0iTTQ5LjU2LDE5OS42NGEzMS43OSwzMS43OSwwLDEsMSwzMi43Ny0zMC43N0EzMS44MiwzMS44MiwwLDAsMSw0OS41NiwxOTkuNjRaIi8+PC9nPjxwYXRoIGNsYXNzPSJjbHMtNyIgZD0iTTU0LjEyLDE4MC4zNmE1OC45LDU4LjksMCwwLDAtMS41OS0xMS4yN3MtMi4zNS05LjQ0LTcuMzMtMTYuODNhNDMuODksNDMuODksMCwwLDAtMTEuNzMtMTEuMTcsMzEuNzcsMzEuNzcsMCwwLDAsMjkuMjgsNTYuMTNDNTguMjksMTkyLjQ0LDU0LjY4LDE4Ni45LDU0LjEyLDE4MC4zNloiLz48cGF0aCBjbGFzcz0iY2xzLTgiIGQ9Ik0xODkuNjIsMTgwLjM2QTU4LjksNTguOSwwLDAsMCwxODgsMTY5LjA4cy0yLjM1LTkuNDQtNy4zMy0xNi44M0E0My44OSw0My44OSwwLDAsMCwxNjksMTQxLjA4YTMxLjc3LDMxLjc3LDAsMCwwLDI5LjI4LDU2LjEzQzE5My43OSwxOTIuNDQsMTkwLjE4LDE4Ni45LDE4OS42MiwxODAuMzZaIi8+PGcgaWQ9Il9Hcm91cF8yIiBkYXRhLW5hbWU9IiZsdDtHcm91cCZndDsiPjxwYXRoIGNsYXNzPSJjbHMtOSIgZD0iTTg5LjksMzMuNzhhMzIuNDYsMzIuNDYsMCwxLDEsMTEuODgsNDQuMzRBMzIuNDksMzIuNDksMCwwLDEsODkuOSwzMy43OFoiLz48L2c+PHBhdGggY2xhc3M9ImNscy0xMCIgZD0iTTEyMi4yMyw2Ni4xM2E1OC45LDU4LjksMCwwLDAtMS41OS0xMS4yN3MtMi4zNS05LjQ0LTcuMzMtMTYuODNjLTMuMzctNS05LjA2LTkuNzktMTUuNDMtMTMuNDhBMzIuNDQsMzIuNDQsMCwwLDAsMTI4Ljc3LDgwLjZDMTI1LjMxLDc2LjM5LDEyMi43LDcxLjYxLDEyMi4yMyw2Ni4xM1oiLz48L2c+PC9nPjwvZz48L3N2Zz4='
body: >2
This section describes [Cross-origin resource
sharing](https://en.wikipedia.org/wiki/Cross-origin_resource_sharing)
(CORS), what content types we support in requests and responses, and
hyperlinking resources in each json responses.
-
* [CORS](#cors)
* [Supported content types](#supported-content-types)
* [Resource links](#resource-links)
-
### Cors
The Bitbucket API supports Cross-origin resource sharing to allow
requests for restricted resources across domains. For more information
you can refer to:
* [Wikipedia article on
CORS](https://en.wikipedia.org/wiki/Cross-origin_resource_sharing)
* [W3C CORS recommendation](https://www.w3.org/TR/cors/)
Sending a general request from the api to bitbucket.com:
`curl -i https://api.bitbucket.org -H "origin: http://bitbucket.com"`
Gives this result:
HTTP/1.1 302 FOUND
Server: nginx/1.6.2
Vary: Cookie
Cache-Control: max-age=900
Content-Type: text/html; charset=utf-8
Strict-Transport-Security: max-age=31536000
Date: Tue, 21 Jun 2016 17:54:37 GMT
Location: http://confluence.atlassian.com/x/IYBGDQ
X-Served-By: app-110
X-Static-Version: 2c820eb0d2b3
ETag: "d41d8cd98f00b204e9800998ecf8427e"
X-Content-Type-Options: nosniff
X-Render-Time: 0.00379920005798
Connection: Keep-Alive
X-Version: 2c820eb0d2b3
X-Frame-Options: SAMEORIGIN
X-Request-Count: 383
X-Cache-Info: cached
Content-Length: 0
Sending the same request with the CORS check -X OPTIONS in the call:
`curl -i https://api.bitbucket.org -H "origin: http://bitbucket.com" -X
OPTIONS`
Gives this result:
HTTP/1.1 302 FOUND
Server: nginx/1.6.2
Vary: Cookie
Cache-Control: max-age=900
Content-Type: text/html; charset=utf-8
Access-Control-Expose-Headers: Accept-Ranges, Content-Encoding, Content-Length, Content-Type, ETag, Last-Modified
Strict-Transport-Security: max-age=31536000
Date: Tue, 21 Jun 2016 18:04:30 GMT
Access-Control-Max-Age: 86400
Location: http://confluence.atlassian.com/x/IYBGDQ
X-Served-By: app-111
Access-Control-Allow-Origin: *
X-Static-Version: 2c820eb0d2b3
ETag: "d41d8cd98f00b204e9800998ecf8427e"
X-Content-Type-Options: nosniff
X-Render-Time: 0.00371098518372
Connection: keep-alive
X-Version: 2c820eb0d2b3
X-Frame-Options: SAMEORIGIN
X-Request-Count: 357
Access-Control-Allow-Methods: GET, POST, PUT, PATCH, DELETE, OPTIONS
Access-Control-Allow-Headers: Accept, Authorization, Content-Type, If-Match, If-Modified-Since, If-None-Match, If-Unmodified-Since, Origin, Range, X-CsrftokenX-Requested-With
X-Cache-Info: not cacheable; request wasn't a GET or HEAD
Content-Length: 0
### Supported content types
The default and primary content type for 2.0 APIs is JSON. This applies
both to responses from the server and to the request bodies provided by
the client.
Unless documented otherwise, whenever creating a new (POST) or modifying
an existing (PUT) object, your client must provide the object's normal
representation. Not every object element can be mutated. For example, a
repository's created_on date is an auto-generated, immutable field. Your
client can omit immutable fields from a request body.
In some cases, a resource might also accept regular
application/x-www-url-form-encoded POST and PUT bodies. Such bodies can
be more convenient in scripts and command line usage. Requests bodies
can contain contain nested elements or they can be flat (without nested
elements). Clients can send flat request bodies as either as
application/json or as application/x-www-url-form-encoded. Nested
objects always require JSON.
### Resource links
Every 2.0 object contains a links element that points to related
resources or alternate representations. Use links to quickly discover
and traverse to related objects. Links serve a "self-documenting"
function for each endpoint. For example, the following request for a
specific user:
`$ curl https://api.bitbucket.org/2.0/users/tutorials`
```json
{
"username": "tutorials",
"nickname": "tutorials",
"account_status": "active",
"website": "https://tutorials.bitbucket.org/",
"display_name": "tutorials account",
"uuid": "{c788b2da-b7a2-404c-9e26-d3f077557007}",
"links": {
"self": {
"href": "https://api.bitbucket.org/2.0/users/tutorials"
},
"repositories": {
"href": "https://api.bitbucket.org/2.0/repositories/tutorials"
},
"html": {
"href": "https://bitbucket.org/tutorials"
},
"followers": {
"href": "https://api.bitbucket.org/2.0/users/tutorials/followers"
},
"avatar": {
"href": "https://bitbucket-assetroot.s3.amazonaws.com/c/photos/2013/Nov/25/tutorials-avatar-1563784409-6_avatar.png"
},
"following": {
"href": "https://api.bitbucket.org/2.0/users/tutorials/following"
}
},
"created_on": "2011-12-20T16:34:07.132459+00:00",
"location": "Santa Monica, CA",
"type": "user"
}
```
Links can be actual REST API resources or they can be informational. In
this example, informative resources include the user's avatar and the
HTML URL for the user's Bitbucket account. Your client should avoid
hardcoding an API's URL and instead use the URLs returned in API
responses.
A link's key is its `rel` (relationship) attribute and it contains a
mandatory href element. For example, the following link:
```json
"self": {
"href": "https://api.bitbucket.org/api/2.0/users/tutorials"
}
```
The rel for this link is self and the href is
https://api.bitbucket.org/api/2.0/users/tutorials. A single rel key can
contain an list (array) of href objects. Your client should anticipate
that any rel key can contain one or more href objects.
Finally, links can also contain optional elements. Two common optional
elements are the name element and the title element. They are often used
to disambiguate links that share the same rel key. In the example below,
the repository object that contains a clone link with two href objects.
Each object contains the optional name element to clarify its use.
```json
"links": {
"self": {
"href": "https://api.bitbucket.org/2.0/repositories/evzijst/bitbucket"
},
"clone": [
{
"href": "https://api.bitbucket.org/evzijst/bitbucket.git",
"name": "https"
},
{
"href": "ssh://git@bitbucket.org/erik/bitbucket.git",
"name": "ssh"
}
],
...
}
```
Links can support [URI Templates](https://tools.ietf.org/html/rfc6570);
Those that do contain a `"templated": "true"` element.
- anchor: bb-connect
title: Atlassian Connect
description: Build Bitbucket add-ons with Connect
icon: >-
data:image/svg+xml;base64,b'PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB2aWV3Qm94PSIwIDAgMjU3LjMxNjMgMTYyLjU5OTQiPgogIDxkZWZzPgogICAgPHN0eWxlPgogICAgICAuY2xzLTEgewogICAgICAgIGlzb2xhdGlvbjogaXNvbGF0ZTsKICAgICAgfQoKICAgICAgLmNscy0yIHsKICAgICAgICBmaWxsOiAjMzQ0NTYzOwogICAgICB9CgogICAgICAuY2xzLTMgewogICAgICAgIGZpbGw6ICMxZGI5ZDQ7CiAgICAgIH0KCiAgICAgIC5jbHMtNCB7CiAgICAgICAgZmlsbDogIzAwNTdkODsKICAgICAgfQoKICAgICAgLmNscy01LCAuY2xzLTcsIC5jbHMtOSB7CiAgICAgICAgbWl4LWJsZW5kLW1vZGU6IG11bHRpcGx5OwogICAgICB9CgogICAgICAuY2xzLTUgewogICAgICAgIGZpbGw6IHVybCgjTjc1KTsKICAgICAgfQoKICAgICAgLmNscy02IHsKICAgICAgICBmaWxsOiAjMDA2NWZmOwogICAgICB9CgogICAgICAuY2xzLTcgewogICAgICAgIGZpbGw6IHVybCgjTjc1LTIpOwogICAgICB9CgogICAgICAuY2xzLTggewogICAgICAgIGZpbGw6IHVybCgjbGluZWFyLWdyYWRpZW50KTsKICAgICAgfQoKICAgICAgLmNscy05IHsKICAgICAgICBmaWxsOiB1cmwoI043NS0zKTsKICAgICAgfQoKICAgICAgLmNscy0xMCB7CiAgICAgICAgZmlsbDogdXJsKCNUMjAwLVQ3NSk7CiAgICAgIH0KICAgIDwvc3R5bGU+CiAgICA8bGluZWFyR3JhZGllbnQgaWQ9Ik43NSIgeDE9Ii0yMTg5LjU1NiIgeTE9IjI4MDguMjI4NCIgeDI9Ii0yMDkxLjE1NTEiIHkyPSIyODA4LjIyODQiIGdyYWRpZW50VHJhbnNmb3JtPSJtYXRyaXgoMC4xNjgxLCAwLjk4NTgsIDAuOTg1OCwgLTAuMTY4MSwgLTIzNzMuNzM2LCAyNzIyLjEyNzgpIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+CiAgICAgIDxzdG9wIG9mZnNldD0iMCIgc3RvcC1jb2xvcj0iI2U1ZThlYyIvPgogICAgICA8c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiNlNWU4ZWMiIHN0b3Atb3BhY2l0eT0iMC4xIi8+CiAgICA8L2xpbmVhckdyYWRpZW50PgogICAgPGxpbmVhckdyYWRpZW50IGlkPSJONzUtMiIgZGF0YS1uYW1lPSJONzUiIHgxPSItMjE2OC41OTQ3IiB5MT0iMjkzNS4wNTU2IiB4Mj0iLTIwNzAuMTkzNyIgeTI9IjI5MzUuMDU1NiIgeGxpbms6aHJlZj0iI043NSIvPgogICAgPGxpbmVhckdyYWRpZW50IGlkPSJsaW5lYXItZ3JhZGllbnQiIHgxPSIxOTAuMzU0NyIgeTE9IjE1OS45NjciIHgyPSIyNTkuOTQ4NyIgeTI9IjkwLjM3MyIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPgogICAgICA8c3RvcCBvZmZzZXQ9IjAiIHN0b3AtY29sb3I9IiMzNDQ1NjMiLz4KICAgICAgPHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjNWU2Yzg0Ii8+CiAgICA8L2xpbmVhckdyYWRpZW50PgogICAgPGxpbmVhckdyYWRpZW50IGlkPSJONzUtMyIgZGF0YS1uYW1lPSJONzUiIHgxPSItMjI1Ny4zOTc3IiB5MT0iMjg4NC4yMjYzIiB4Mj0iLTIxNTguOTk2NyIgeTI9IjI4ODQuMjI2MyIgeGxpbms6aHJlZj0iI043NSIvPgogICAgPGxpbmVhckdyYWRpZW50IGlkPSJUMjAwLVQ3NSIgeDE9IjEyNi4wMjU3IiB5MT0iODUuMTA4IiB4Mj0iMTk1LjYxOTciIHkyPSIxNS41MTQiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIj4KICAgICAgPHN0b3Agb2Zmc2V0PSIwIiBzdG9wLWNvbG9yPSIjM2RjN2RjIi8+CiAgICAgIDxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iIzljZTNlZSIvPgogICAgPC9saW5lYXJHcmFkaWVudD4KICA8L2RlZnM+CiAgPHRpdGxlPkFkZCBPbiBCbG9ja3MgMjwvdGl0bGU+CiAgPGcgY2xhc3M9ImNscy0xIj4KICAgIDxnIGlkPSJMYXllcl8yIiBkYXRhLW5hbWU9IkxheWVyIDIiPgogICAgICA8ZyBpZD0iT2JqZWN0cyI+CiAgICAgICAgPHJlY3QgaWQ9Il9SZWN0YW5nbGVfIiBkYXRhLW5hbWU9IiZsdDtSZWN0YW5nbGUmZ3Q7IiBjbGFzcz0iY2xzLTIiIHg9IjEyOC42NTgxIiB5PSI4Ny43NDA1IiB3aWR0aD0iNjQuMzI5MSIgaGVpZ2h0PSI3NC44NTkiLz4KICAgICAgICA8cmVjdCBpZD0iX1JlY3RhbmdsZV8yIiBkYXRhLW5hbWU9IiZsdDtSZWN0YW5nbGUmZ3Q7IiBjbGFzcz0iY2xzLTMiIHg9IjY0LjMyOTEiIHk9IjEyLjg4MTUiIHdpZHRoPSI2NC4zMjkxIiBoZWlnaHQ9Ijc0Ljg1OSIvPgogICAgICAgIDxyZWN0IGlkPSJfUmVjdGFuZ2xlXzMiIGRhdGEtbmFtZT0iJmx0O1JlY3RhbmdsZSZndDsiIGNsYXNzPSJjbHMtNCIgeT0iODcuNzQwNSIgd2lkdGg9IjY0LjMyOTEiIGhlaWdodD0iNzQuODU5Ii8+CiAgICAgICAgPHBhdGggY2xhc3M9ImNscy01IiBkPSJNNjQuMzI5MSw4Ny43NEg1OC42NTIzYTYyLjc4NzcsNjIuNzg3NywwLDAsMC0yNC41Njg0LDIwLjc2MjFjLTguMjYwNywxMi4xOTYtNC4zNDM3LDE4LjI0MTUtMTEuNjYzNywzMS42Mzk1QzE2LjUxLDE1MC45Niw4LjA1MSwxNTcuODIsMCwxNjIuNTU2di4wNDM1aDY0LjMyOVoiLz4KICAgICAgICA8cmVjdCBpZD0iX1JlY3RhbmdsZV80IiBkYXRhLW5hbWU9IiZsdDtSZWN0YW5nbGUmZ3Q7IiBjbGFzcz0iY2xzLTYiIHg9IjY0LjMyOTEiIHk9Ijg3Ljc0MDUiIHdpZHRoPSI2NC4zMjkxIiBoZWlnaHQ9Ijc0Ljg1OSIvPgogICAgICAgIDxwYXRoIGNsYXNzPSJjbHMtNyIgZD0iTTE5Mi45ODcyLDg3Ljc0SDE4My4zNDNhNjIuNzg3Nyw2Mi43ODc3LDAsMCwwLTI0LjU2ODQsMjAuNzYyMWMtOC4yNjA3LDEyLjE5Ni00LjM0MzgsMTguMjQxNS0xMS42NjM3LDMxLjYzOTVhNTYuNzI0Niw1Ni43MjQ2LDAsMCwxLTE4LjQ1MjcsMTkuOTF2Mi41NDc0aDY0LjMyOVoiLz4KICAgICAgICA8cmVjdCBjbGFzcz0iY2xzLTgiIHg9IjE5Mi45ODcyIiB5PSI4Ny43NDA1IiB3aWR0aD0iNjQuMzI5MSIgaGVpZ2h0PSI3NC44NTkiLz4KICAgICAgICA8cGF0aCBjbGFzcz0iY2xzLTkiIGQ9Ik0xMjguNjU4MiwxMi44ODE1SDExNi41OUE2MS45NjQ2LDYxLjk2NDYsMCwwLDAsMTAxLjMyMzMsMjguMjE1QzkzLjA2MjUsNDAuNDEwOSw5Ni45Nzk0LDQ2LjQ1NjUsODkuNjYsNTkuODU0NCw4My4wMzE2LDcxLjk4NTcsNzMuMTk3LDc5LjE1MTQsNjQuMzI5MSw4My45MTA4djMuODNoNjQuMzI5MVoiLz4KICAgICAgICA8cmVjdCBjbGFzcz0iY2xzLTEwIiB4PSIxMjguNjU4MSIgeT0iMTIuODgxNSIgd2lkdGg9IjY0LjMyOTEiIGhlaWdodD0iNzQuODU5Ii8+CiAgICAgICAgPHJlY3QgY2xhc3M9ImNscy00IiB4PSIxMC4xNjA1IiB5PSI3NC44NTkiIHdpZHRoPSIyNC43NTM2IiBoZWlnaHQ9IjEyLjg4MTUiLz4KICAgICAgICA8cmVjdCBjbGFzcz0iY2xzLTQiIHg9IjUxLjk1MjMiIHk9Ijc0Ljg1OSIgd2lkdGg9IjI0Ljc1MzYiIGhlaWdodD0iMTIuODgxNSIvPgogICAgICAgIDxyZWN0IGNsYXNzPSJjbHMtNCIgeD0iOTMuNzQ0MSIgeT0iNzQuODU5IiB3aWR0aD0iMjQuNzUzNiIgaGVpZ2h0PSIxMi44ODE1Ii8+CiAgICAgICAgPHJlY3QgY2xhc3M9ImNscy0yIiB4PSIxMzguODE4NiIgeT0iNzQuODU5IiB3aWR0aD0iMjQuNzUzNiIgaGVpZ2h0PSIxMi44ODE1Ii8+CiAgICAgICAgPHJlY3QgY2xhc3M9ImNscy0yIiB4PSIxODAuNjEwNCIgeT0iNzQuODU5IiB3aWR0aD0iMjQuNzUzNiIgaGVpZ2h0PSIxMi44ODE1Ii8+CiAgICAgICAgPHJlY3QgY2xhc3M9ImNscy0yIiB4PSIyMjIuNDAyMiIgeT0iNzQuODU5IiB3aWR0aD0iMjQuNzUzNiIgaGVpZ2h0PSIxMi44ODE1Ii8+CiAgICAgICAgPHJlY3QgY2xhc3M9ImNscy0zIiB4PSI3NC40ODk1IiB3aWR0aD0iMjQuNzUzNiIgaGVpZ2h0PSIxMi44ODE1Ii8+CiAgICAgICAgPHJlY3QgY2xhc3M9ImNscy0zIiB4PSIxMTYuMjgxNCIgd2lkdGg9IjI0Ljc1MzYiIGhlaWdodD0iMTIuODgxNSIvPgogICAgICAgIDxyZWN0IGNsYXNzPSJjbHMtMyIgeD0iMTU4LjA3MzIiIHdpZHRoPSIyNC43NTM2IiBoZWlnaHQ9IjEyLjg4MTUiLz4KICAgICAgPC9nPgogICAgPC9nPgogIDwvZz4KPC9zdmc+Cg=='
body: >2
You can use the Atlassian Connect for Bitbucket Cloud to build add-ons
which
can connect with the Bitbucket UI and your own application set. An
add-on could
be an integration with another existing service, new features for the
Atlassian
application, or even a new product that runs within the Atlassian
application.
For complete information see:
[Atlassian Connect for Bitbucket
Cloud](https://developer.atlassian.com/bitbucket/index.html)
servers:
- url: https://api.bitbucket.org/2.0
components:
schemas:
paginated_repositories:
type: object
title: Paginated Repositories
description: A paginated list of repositories.
properties:
size:
type: integer
description: >-
Total number of objects in the response. This is an optional element
that is not provided in all responses, as it can be expensive to
compute.
minimum: 0
page:
type: integer
description: >-
Page number of the current results. This is an optional element that
is not provided in all responses.
minimum: 1
pagelen:
type: integer
description: >-
Current number of objects on the existing page. The default value is
10 with 100 being the maximum allowed value. Individual APIs may
enforce different values.
minimum: 1
next:
type: string
description: >-
Link to the next page if it exists. The last page of a collection
does not have this value. Use this link to navigate the result set
and refrain from constructing your own URLs.
format: uri
previous:
type: string
description: >-
Link to previous page if it exists. A collections first page does
not have this value. This is an optional element that is not
provided in all responses. Some result sets strictly support forward
navigation and never provide previous links. Clients must anticipate
that backwards navigation is not always available. Use this link to
navigate the result set and refrain from constructing your own URLs.
format: uri
values:
type: array
items:
$ref: '#/components/schemas/repository'
minItems: 0
uniqueItems: true
additionalProperties: false
repository:
allOf:
- $ref: '#/components/schemas/object'
- type: object
title: Repository
description: A Bitbucket repository.
properties:
links:
type: object
properties:
self:
type: object
title: Link
description: A link to a resource related to this object.
properties:
href:
type: string
format: uri
name:
type: string
additionalProperties: false
html:
type: object
title: Link
description: A link to a resource related to this object.
properties:
href:
type: string
format: uri
name:
type: string
additionalProperties: false
avatar:
type: object
title: Link
description: A link to a resource related to this object.
properties:
href:
type: string
format: uri
name:
type: string
additionalProperties: false
pullrequests:
type: object
title: Link
description: A link to a resource related to this object.
properties:
href:
type: string
format: uri
name:
type: string
additionalProperties: false
commits:
type: object
title: Link
description: A link to a resource related to this object.
properties:
href:
type: string
format: uri
name:
type: string
additionalProperties: false
forks:
type: object
title: Link
description: A link to a resource related to this object.
properties:
href:
type: string
format: uri
name:
type: string
additionalProperties: false
watchers:
type: object
title: Link
description: A link to a resource related to this object.
properties:
href:
type: string
format: uri
name:
type: string
additionalProperties: false
downloads:
type: object
title: Link
description: A link to a resource related to this object.
properties:
href:
type: string
format: uri
name:
type: string
additionalProperties: false
clone:
type: array
items:
type: object
title: Link
description: A link to a resource related to this object.
properties:
href:
type: string
format: uri
name:
type: string
additionalProperties: false
hooks:
type: object
title: Link
description: A link to a resource related to this object.
properties:
href:
type: string
format: uri
name:
type: string
additionalProperties: false
additionalProperties: false
uuid:
type: string
description: >-
The repository's immutable id. This can be used as a substitute
for the slug segment in URLs. Doing this guarantees your URLs
will survive renaming of the repository by its owner, or even
transfer of the repository to a different user.
full_name:
type: string
description: >-
The concatenation of the repository owner's username and the
slugified name, e.g. "evzijst/interruptingcow". This is the same
string used in Bitbucket URLs.
is_private:
type: boolean
parent:
$ref: '#/components/schemas/repository'
scm:
type: string
enum:
- git
owner:
$ref: '#/components/schemas/account'
name:
type: string
description:
type: string
created_on:
type: string
format: date-time
updated_on:
type: string
format: date-time
size:
type: integer
language:
type: string
has_issues:
type: boolean
description: |2
The issue tracker for this repository is enabled. Issue Tracker
features are not supported for repositories in workspaces
administered through admin.atlassian.com.
has_wiki:
type: boolean
description: |2
The wiki for this repository is enabled. Wiki
features are not supported for repositories in workspaces
administered through admin.atlassian.com.
fork_policy:
type: string
description: >2
Controls the rules for forking this repository.
* **allow_forks**: unrestricted forking
* **no_public_forks**: restrict forking to private forks (forks
cannot
be made public later)
* **no_forks**: deny all forking
enum:
- allow_forks
- no_public_forks
- no_forks
project:
$ref: '#/components/schemas/project'
mainbranch:
$ref: '#/components/schemas/branch'
additionalProperties: true
paginated_branchrestrictions:
type: object
title: Paginated Branch Restrictions
description: A paginated list of branch restriction rules.
properties:
size:
type: integer
description: >-
Total number of objects in the response. This is an optional element
that is not provided in all responses, as it can be expensive to
compute.
minimum: 0
page:
type: integer
description: >-
Page number of the current results. This is an optional element that
is not provided in all responses.
minimum: 1
pagelen:
type: integer
description: >-
Current number of objects on the existing page. The default value is
10 with 100 being the maximum allowed value. Individual APIs may
enforce different values.
minimum: 1
next:
type: string
description: >-
Link to the next page if it exists. The last page of a collection
does not have this value. Use this link to navigate the result set
and refrain from constructing your own URLs.
format: uri
previous:
type: string
description: >-
Link to previous page if it exists. A collections first page does
not have this value. This is an optional element that is not
provided in all responses. Some result sets strictly support forward
navigation and never provide previous links. Clients must anticipate
that backwards navigation is not always available. Use this link to
navigate the result set and refrain from constructing your own URLs.
format: uri
values:
type: array
items:
$ref: '#/components/schemas/branchrestriction'
minItems: 0
uniqueItems: true
additionalProperties: false
branchrestriction:
allOf:
- $ref: '#/components/schemas/object'
- type: object
title: Branch Restriction
description: A branch restriction rule.
properties:
users:
type: array
items:
$ref: '#/components/schemas/account'
minItems: 0
groups:
type: array
items:
$ref: '#/components/schemas/group'
minItems: 0
additionalProperties: true
branching_model:
allOf:
- $ref: '#/components/schemas/object'
- type: object
title: Branching Model
description: A repository's branching model
properties:
branch_types:
type: array
description: The active branch types.
items:
type: object
properties:
kind:
type: string
description: The kind of branch.
enum:
- feature
- bugfix
- release
- hotfix
prefix:
type: string
description: >-
The prefix for this branch type. A branch with this prefix
will be classified as per `kind`. The prefix must be a
valid prefix for a branch and must always exist. It cannot
be blank, empty or `null`.
required:
- kind
- prefix
additionalProperties: false
minItems: 0
maxItems: 4
uniqueItems: true
development:
type: object
properties:
branch:
$ref: '#/components/schemas/branch'
name:
type: string
description: >-
Name of the target branch. Will be listed here even when the
target branch does not exist. Will be `null` if targeting
the main branch and the repository is empty.
use_mainbranch:
type: boolean
description: >-
Indicates if the setting points at an explicit branch
(`false`) or tracks the main branch (`true`).
required:
- name
- use_mainbranch
additionalProperties: false
production:
type: object
properties:
branch:
$ref: '#/components/schemas/branch'
name:
type: string
description: >-
Name of the target branch. Will be listed here even when the
target branch does not exist. Will be `null` if targeting
the main branch and the repository is empty.
use_mainbranch:
type: boolean
description: >-
Indicates if the setting points at an explicit branch
(`false`) or tracks the main branch (`true`).
required:
- name
- use_mainbranch
additionalProperties: false
additionalProperties: true
branching_model_settings:
allOf:
- $ref: '#/components/schemas/object'
- type: object
title: Branching Model Settings
description: A repository's branching model settings
properties:
links:
type: object
properties:
self:
type: object
title: Link
description: A link to a resource related to this object.
properties:
href:
type: string
format: uri
name:
type: string
additionalProperties: false
additionalProperties: false
branch_types:
type: array
items:
type: object
properties:
enabled:
type: boolean
description: >-
Whether the branch type is enabled or not. A disabled
branch type may contain an invalid `prefix`.
kind:
type: string
description: The kind of the branch type.
enum:
- feature
- bugfix
- release
- hotfix
prefix:
type: string
description: >-
The prefix for this branch type. A branch with this prefix
will be classified as per `kind`. The `prefix` of an
enabled branch type must be a valid branch
prefix.Additionally, it cannot be blank, empty or `null`.
The `prefix` for a disabled branch type can be empty or
invalid.
required:
- kind
additionalProperties: false
minItems: 0
maxItems: 4
uniqueItems: true
development:
type: object
properties:
is_valid:
type: boolean
description: >-
Indicates if the configured branch is valid, that is, if the
configured branch actually exists currently. Is always
`true` when `use_mainbranch` is `true` (even if the main
branch does not exist). This field is read-only. This field
is ignored when updating/creating settings.
name:
type: string
description: >-
The configured branch. It must be `null` when
`use_mainbranch` is `true`. Otherwise it must be a non-empty
value. It is possible for the configured branch to not exist
(e.g. it was deleted after the settings are set). In this
case `is_valid` will be `false`. The branch must exist when
updating/setting the `name` or an error will occur.
use_mainbranch:
type: boolean
description: >-
Indicates if the setting points at an explicit branch
(`false`) or tracks the main branch (`true`). When `true`
the `name` must be `null` or not provided. When `false` the
`name` must contain a non-empty branch name.
additionalProperties: false
production:
type: object
properties:
is_valid:
type: boolean
description: >-
Indicates if the configured branch is valid, that is, if the
configured branch actually exists currently. Is always
`true` when `use_mainbranch` is `true` (even if the main
branch does not exist). This field is read-only. This field
is ignored when updating/creating settings.
name:
type: string
description: >-
The configured branch. It must be `null` when
`use_mainbranch` is `true`. Otherwise it must be a non-empty
value. It is possible for the configured branch to not exist
(e.g. it was deleted after the settings are set). In this
case `is_valid` will be `false`. The branch must exist when
updating/setting the `name` or an error will occur.
use_mainbranch:
type: boolean
description: >-
Indicates if the setting points at an explicit branch
(`false`) or tracks the main branch (`true`). When `true`
the `name` must be `null` or not provided. When `false` the
`name` must contain a non-empty branch name.
enabled:
type: boolean
description: Indicates if branch is enabled or not.
additionalProperties: false
additionalProperties: true
commit:
allOf:
- $ref: '#/components/schemas/base_commit'
- type: object
title: Commit
description: A repository commit object.
properties:
repository:
$ref: '#/components/schemas/repository'
participants:
type: array
items:
$ref: '#/components/schemas/participant'
minItems: 0
additionalProperties: true
participant:
allOf:
- $ref: '#/components/schemas/object'
- type: object
title: Participant
description: >-
Object describing a user's role on resources like commits or pull
requests.
properties:
user:
$ref: '#/components/schemas/account'
role:
type: string
enum:
- PARTICIPANT
- REVIEWER
approved:
type: boolean
state:
type: string
enum:
- approved
- changes_requested
-
participated_on:
type: string
description: >-
The ISO8601 timestamp of the participant's action. For
approvers, this is the time of their approval. For commenters
and pull request reviewers who are not approvers, this is the
time they last commented, or null if they have not commented.
format: date-time
additionalProperties: true
paginated_commit_comments:
type: object
title: Paginated Commit Comments
description: A paginated list of commit comments.
properties:
size:
type: integer
description: >-
Total number of objects in the response. This is an optional element
that is not provided in all responses, as it can be expensive to
compute.
minimum: 0
page:
type: integer
description: >-
Page number of the current results. This is an optional element that
is not provided in all responses.
minimum: 1
pagelen:
type: integer
description: >-
Current number of objects on the existing page. The default value is
10 with 100 being the maximum allowed value. Individual APIs may
enforce different values.
minimum: 1
next:
type: string
description: >-
Link to the next page if it exists. The last page of a collection
does not have this value. Use this link to navigate the result set
and refrain from constructing your own URLs.
format: uri
previous:
type: string
description: >-
Link to previous page if it exists. A collections first page does
not have this value. This is an optional element that is not
provided in all responses. Some result sets strictly support forward
navigation and never provide previous links. Clients must anticipate
that backwards navigation is not always available. Use this link to
navigate the result set and refrain from constructing your own URLs.
format: uri
values:
type: array
items:
$ref: '#/components/schemas/commit_comment'
minItems: 0
uniqueItems: true
additionalProperties: false
commit_comment:
allOf:
- $ref: '#/components/schemas/comment'
- type: object
title: Commit Comment
description: A commit comment.
properties:
commit:
$ref: '#/components/schemas/commit'
additionalProperties: true
application_property:
additionalProperties: true
type: object
title: Application Property
description: >
An application property. It is a caller defined JSON object that
Bitbucket will store and return.
The `_attributes` field at its top level can be used to control who is
allowed to read and update the property.
The keys of the JSON object must match an allowed pattern. For details,
see [Application properties](/cloud/bitbucket/application-properties/).
properties:
_attributes:
type: array
items:
type: string
enum:
- public
- read_only
paginated_pullrequests:
type: object
title: Paginated Pull Requests
description: A paginated list of pullrequests.
properties:
size:
type: integer
description: >-
Total number of objects in the response. This is an optional element
that is not provided in all responses, as it can be expensive to
compute.
minimum: 0
page:
type: integer
description: >-
Page number of the current results. This is an optional element that
is not provided in all responses.
minimum: 1
pagelen:
type: integer
description: >-
Current number of objects on the existing page. The default value is
10 with 100 being the maximum allowed value. Individual APIs may
enforce different values.
minimum: 1
next:
type: string
description: >-
Link to the next page if it exists. The last page of a collection
does not have this value. Use this link to navigate the result set
and refrain from constructing your own URLs.
format: uri
previous:
type: string
description: >-
Link to previous page if it exists. A collections first page does
not have this value. This is an optional element that is not
provided in all responses. Some result sets strictly support forward
navigation and never provide previous links. Clients must anticipate
that backwards navigation is not always available. Use this link to
navigate the result set and refrain from constructing your own URLs.
format: uri
values:
type: array
items:
$ref: '#/components/schemas/pullrequest'
minItems: 0
uniqueItems: true
additionalProperties: false
paginated_reports:
type: object
title: Paginated Reports
description: A paginated list of reports.
properties:
page:
type: integer
description: >-
Page number of the current results. This is an optional element that
is not provided in all responses.
values:
type: array
minItems: 0
items:
$ref: '#/components/schemas/report'
description: The values of the current page.
size:
type: integer
description: >-
Total number of objects in the response. This is an optional element
that is not provided in all responses, as it can be expensive to
compute.
pagelen:
type: integer
description: >-
Current number of objects on the existing page. The default value is
10 with 100 being the maximum allowed value. Individual APIs may
enforce different values.
next:
type: string
format: uri
description: >-
Link to the next page if it exists. The last page of a collection
does not have this value. Use this link to navigate the result set
and refrain from constructing your own URLs.
previous:
type: string
format: uri
description: >-
Link to previous page if it exists. A collections first page does
not have this value. This is an optional element that is not
provided in all responses. Some result sets strictly support forward
navigation and never provide previous links. Clients must anticipate
that backwards navigation is not always available. Use this link to
navigate the result set and refrain from constructing your own URLs.
report:
allOf:
- $ref: '#/components/schemas/object'
- additionalProperties: true
type: object
title: Commit Report
description: A report for a commit.
properties:
uuid:
type: string
description: The UUID that can be used to identify the report.
title:
type: string
description: The title of the report.
details:
type: string
description: A string to describe the purpose of the report.
external_id:
type: string
description: >-
ID of the report provided by the report creator. It can be used
to identify the report as an alternative to it's generated uuid.
It is not used by Bitbucket, but only by the report creator for
updating or deleting this specific report. Needs to be unique.
reporter:
type: string
description: A string to describe the tool or company who created the report.
link:
type: string
format: uri
description: A URL linking to the results of the report in an external tool.
remote_link_enabled:
type: boolean
description: >-
If enabled, a remote link is created in Jira for the issue
associated with the commit the report belongs to.
logo_url:
type: string
format: uri
description: >-
A URL to the report logo. If none is provided, the default
insights logo will be used.
report_type:
enum:
- SECURITY
- COVERAGE
- TEST
- BUG
type: string
description: The type of the report.
result:
enum:
- PASSED
- FAILED
- PENDING
type: string
description: >-
The state of the report. May be set to PENDING and later
updated.
data:
type: array
items:
$ref: '#/components/schemas/report_data'
description: >-
An array of data fields to display information on the report.
Maximum 10.
created_on:
type: string
format: date-time
description: The timestamp when the report was created.
updated_on:
type: string
format: date-time
description: The timestamp when the report was updated.
x-bb-default-fields:
- uuid
- commitHash
x-bb-url: >-
/rest/2.0/accounts/{target_user.uuid}/repositories/{repository.uuid}/commits/{commitHash}/reports/{uuid}
paginated_annotations:
type: object
title: Paginated Annotations
description: A paginated list of annotations.
properties:
page:
type: integer
description: >-
Page number of the current results. This is an optional element that
is not provided in all responses.
values:
type: array
minItems: 0
items:
$ref: '#/components/schemas/report_annotation'
description: The values of the current page.
size:
type: integer
description: >-
Total number of objects in the response. This is an optional element
that is not provided in all responses, as it can be expensive to
compute.
pagelen:
type: integer
description: >-
Current number of objects on the existing page. The default value is
10 with 100 being the maximum allowed value. Individual APIs may
enforce different values.
next:
type: string
format: uri
description: >-
Link to the next page if it exists. The last page of a collection
does not have this value. Use this link to navigate the result set
and refrain from constructing your own URLs.
previous:
type: string
format: uri
description: >-
Link to previous page if it exists. A collections first page does
not have this value. This is an optional element that is not
provided in all responses. Some result sets strictly support forward
navigation and never provide previous links. Clients must anticipate
that backwards navigation is not always available. Use this link to
navigate the result set and refrain from constructing your own URLs.
report_annotation:
allOf:
- $ref: '#/components/schemas/object'
- additionalProperties: true
type: object
title: Report Annotation
description: A report for a commit.
properties:
external_id:
type: string
description: >-
ID of the annotation provided by the annotation creator. It can
be used to identify the annotation as an alternative to it's
generated uuid. It is not used by Bitbucket, but only by the
annotation creator for updating or deleting this specific
annotation. Needs to be unique.
uuid:
type: string
description: The UUID that can be used to identify the annotation.
annotation_type:
enum:
- VULNERABILITY
- CODE_SMELL
- BUG
type: string
description: The type of the report.
path:
type: string
description: >-
The path of the file on which this annotation should be placed.
This is the path of the file relative to the git repository. If
no path is provided, then it will appear in the overview modal
on all pull requests where the tip of the branch is the given
commit, regardless of which files were modified.
line:
type: integer
description: >-
The line number that the annotation should belong to. If no line
number is provided, then it will default to 0 and in a pull
request it will appear at the top of the file specified by the
path field.
minimum: 1
summary:
type: string
description: The message to display to users.
details:
type: string
description: The details to show to users when clicking on the annotation.
result:
enum:
- PASSED
- FAILED
- SKIPPED
- IGNORED
type: string
description: >-
The state of the report. May be set to PENDING and later
updated.
severity:
enum:
- CRITICAL
- HIGH
- MEDIUM
- LOW
type: string
description: The severity of the annotation.
link:
type: string
format: uri
description: A URL linking to the annotation in an external tool.
created_on:
type: string
format: date-time
description: The timestamp when the report was created.
updated_on:
type: string
format: date-time
description: The timestamp when the report was updated.
x-bb-default-fields:
- uuid
x-bb-url: >-
/rest/2.0/accounts/{target_user.uuid}/repositories/{repository.uuid}/commits/{commit.hash}/reports/{reportUuid}/annotations/{uuid}
paginated_commitstatuses:
type: object
title: Paginated Commit Statuses
description: A paginated list of commit status objects.
properties:
size:
type: integer
description: >-
Total number of objects in the response. This is an optional element
that is not provided in all responses, as it can be expensive to
compute.
minimum: 0
page:
type: integer
description: >-
Page number of the current results. This is an optional element that
is not provided in all responses.
minimum: 1
pagelen:
type: integer
description: >-
Current number of objects on the existing page. The default value is
10 with 100 being the maximum allowed value. Individual APIs may
enforce different values.
minimum: 1
next:
type: string
description: >-
Link to the next page if it exists. The last page of a collection
does not have this value. Use this link to navigate the result set
and refrain from constructing your own URLs.
format: uri
previous:
type: string
description: >-
Link to previous page if it exists. A collections first page does
not have this value. This is an optional element that is not
provided in all responses. Some result sets strictly support forward
navigation and never provide previous links. Clients must anticipate
that backwards navigation is not always available. Use this link to
navigate the result set and refrain from constructing your own URLs.
format: uri
values:
type: array
items:
$ref: '#/components/schemas/commitstatus'
minItems: 0
uniqueItems: true
additionalProperties: false
commitstatus:
allOf:
- $ref: '#/components/schemas/object'
- type: object
title: Commit Status
description: A commit status object.
properties:
links:
type: object
properties:
self:
type: object
title: Link
description: A link to a resource related to this object.
properties:
href:
type: string
format: uri
name:
type: string
additionalProperties: false
commit:
type: object
title: Link
description: A link to a resource related to this object.
properties:
href:
type: string
format: uri
name:
type: string
additionalProperties: false
additionalProperties: false
uuid:
type: string
description: The commit status' id.
key:
type: string
description: |-
An identifier for the status that's unique to
its type (current "build" is the only supported type) and the vendor,
e.g. BB-DEPLOY
refname:
type: string
description: >2-
The name of the ref that pointed to this commit at the time the
status
object was created. Note that this the ref may since have moved
off of
the commit. This optional field can be useful for build systems
whose
build triggers and configuration are branch-dependent (e.g. a
Pipeline
build).
It is legitimate for this field to not be set, or even apply
(e.g. a
static linting job).
url:
type: string
description: >-
A URL linking back to the vendor or build system, for providing
more information about whatever process produced this status.
Accepts context variables `repository` and `commit` that
Bitbucket will evaluate at runtime whenever at runtime. For
example, one could use
https://foo.com/builds/{repository.full_name} which Bitbucket
will turn into https://foo.com/builds/foo/bar at render time.
state:
type: string
description: Provides some indication of the status of this commit
enum:
- INPROGRESS
- FAILED
- STOPPED
- SUCCESSFUL
name:
type: string
description: An identifier for the build itself, e.g. BB-DEPLOY-1
description:
type: string
description: A description of the build (e.g. "Unit tests in Bamboo")
created_on:
type: string
format: date-time
updated_on:
type: string
format: date-time
additionalProperties: true
paginated_changeset:
type: object
title: Page
description: A paginated list of commits.
properties:
size:
type: integer
description: >-
Total number of objects in the response. This is an optional element
that is not provided in all responses, as it can be expensive to
compute.
minimum: 0
page:
type: integer
description: >-
Page number of the current results. This is an optional element that
is not provided in all responses.
minimum: 1
pagelen:
type: integer
description: >-
Current number of objects on the existing page. The default value is
10 with 100 being the maximum allowed value. Individual APIs may
enforce different values.
minimum: 1
next:
type: string
description: >-
Link to the next page if it exists. The last page of a collection
does not have this value. Use this link to navigate the result set
and refrain from constructing your own URLs.
format: uri
previous:
type: string
description: >-
Link to previous page if it exists. A collections first page does
not have this value. This is an optional element that is not
provided in all responses. Some result sets strictly support forward
navigation and never provide previous links. Clients must anticipate
that backwards navigation is not always available. Use this link to
navigate the result set and refrain from constructing your own URLs.
format: uri
values:
type: array
items:
$ref: '#/components/schemas/base_commit'
minItems: 0
uniqueItems: true
additionalProperties: false
paginated_components:
type: object
title: Paginated Components
description: A paginated list of issue tracker components.
properties:
size:
type: integer
description: >-
Total number of objects in the response. This is an optional element
that is not provided in all responses, as it can be expensive to
compute.
minimum: 0
page:
type: integer
description: >-
Page number of the current results. This is an optional element that
is not provided in all responses.
minimum: 1
pagelen:
type: integer
description: >-
Current number of objects on the existing page. The default value is
10 with 100 being the maximum allowed value. Individual APIs may
enforce different values.
minimum: 1
next:
type: string
description: >-
Link to the next page if it exists. The last page of a collection
does not have this value. Use this link to navigate the result set
and refrain from constructing your own URLs.
format: uri
previous:
type: string
description: >-
Link to previous page if it exists. A collections first page does
not have this value. This is an optional element that is not
provided in all responses. Some result sets strictly support forward
navigation and never provide previous links. Clients must anticipate
that backwards navigation is not always available. Use this link to
navigate the result set and refrain from constructing your own URLs.
format: uri
values:
type: array
items:
$ref: '#/components/schemas/component'
minItems: 0
uniqueItems: true
additionalProperties: false
component:
allOf:
- $ref: '#/components/schemas/object'
- type: object
title: Component
description: A component as defined in a repository's issue tracker.
properties:
links:
type: object
properties:
self:
type: object
title: Link
description: A link to a resource related to this object.
properties:
href:
type: string
format: uri
name:
type: string
additionalProperties: false
additionalProperties: false
name:
type: string
id:
type: integer
additionalProperties: true
paginated_accounts:
type: object
title: Paginated Accounts
description: A paginated list of accounts.
properties:
size:
type: integer
description: >-
Total number of objects in the response. This is an optional element
that is not provided in all responses, as it can be expensive to
compute.
minimum: 0
page:
type: integer
description: >-
Page number of the current results. This is an optional element that
is not provided in all responses.
minimum: 1
pagelen:
type: integer
description: >-
Current number of objects on the existing page. The default value is
10 with 100 being the maximum allowed value. Individual APIs may
enforce different values.
minimum: 1
next:
type: string
description: >-
Link to the next page if it exists. The last page of a collection
does not have this value. Use this link to navigate the result set
and refrain from constructing your own URLs.
format: uri
previous:
type: string
description: >-
Link to previous page if it exists. A collections first page does
not have this value. This is an optional element that is not
provided in all responses. Some result sets strictly support forward
navigation and never provide previous links. Clients must anticipate
that backwards navigation is not always available. Use this link to
navigate the result set and refrain from constructing your own URLs.
format: uri
values:
type: array
items:
$ref: '#/components/schemas/account'
minItems: 0
uniqueItems: true
additionalProperties: false
account:
allOf:
- $ref: '#/components/schemas/object'
- type: object
title: Account
description: An account object.
properties:
links:
$ref: '#/components/schemas/account_links'
created_on:
type: string
format: date-time
display_name:
type: string
username:
type: string
pattern: ^[a-zA-Z0-9_\-]+$
uuid:
type: string
additionalProperties: true
paginated_deploy_keys:
type: object
title: Paginated Deploy Keys
description: A paginated list of deploy keys.
properties:
size:
type: integer
description: >-
Total number of objects in the response. This is an optional element
that is not provided in all responses, as it can be expensive to
compute.
minimum: 0
page:
type: integer
description: >-
Page number of the current results. This is an optional element that
is not provided in all responses.
minimum: 1
pagelen:
type: integer
description: >-
Current number of objects on the existing page. The default value is
10 with 100 being the maximum allowed value. Individual APIs may
enforce different values.
minimum: 1
next:
type: string
description: >-
Link to the next page if it exists. The last page of a collection
does not have this value. Use this link to navigate the result set
and refrain from constructing your own URLs.
format: uri
previous:
type: string
description: >-
Link to previous page if it exists. A collections first page does
not have this value. This is an optional element that is not
provided in all responses. Some result sets strictly support forward
navigation and never provide previous links. Clients must anticipate
that backwards navigation is not always available. Use this link to
navigate the result set and refrain from constructing your own URLs.
format: uri
values:
type: array
items:
$ref: '#/components/schemas/deploy_key'
minItems: 0
uniqueItems: true
additionalProperties: false
deploy_key:
allOf:
- $ref: '#/components/schemas/object'
- type: object
title: Deploy Key
description: Represents deploy key for a repository.
properties:
key:
type: string
description: The deploy key value.
repository:
$ref: '#/components/schemas/repository'
comment:
type: string
description: The comment parsed from the deploy key (if present)
label:
type: string
description: The user-defined label for the deploy key
added_on:
type: string
format: date-time
last_used:
type: string
format: date-time
links:
type: object
properties:
self:
type: object
title: Link
description: A link to a resource related to this object.
properties:
href:
type: string
format: uri
name:
type: string
additionalProperties: false
additionalProperties: false
owner:
$ref: '#/components/schemas/account'
additionalProperties: true
paginated_deployments:
type: object
title: Paginated Deployments
description: A paged list of deployments
properties:
page:
type: integer
description: >-
Page number of the current results. This is an optional element that
is not provided in all responses.
values:
type: array
minItems: 0
items:
$ref: '#/components/schemas/deployment'
description: The values of the current page.
size:
type: integer
description: >-
Total number of objects in the response. This is an optional element
that is not provided in all responses, as it can be expensive to
compute.
pagelen:
type: integer
description: >-
Current number of objects on the existing page. The default value is
10 with 100 being the maximum allowed value. Individual APIs may
enforce different values.
next:
type: string
format: uri
description: >-
Link to the next page if it exists. The last page of a collection
does not have this value. Use this link to navigate the result set
and refrain from constructing your own URLs.
previous:
type: string
format: uri
description: >-
Link to previous page if it exists. A collections first page does
not have this value. This is an optional element that is not
provided in all responses. Some result sets strictly support forward
navigation and never provide previous links. Clients must anticipate
that backwards navigation is not always available. Use this link to
navigate the result set and refrain from constructing your own URLs.
deployment:
allOf:
- $ref: '#/components/schemas/object'
- additionalProperties: true
type: object
title: Deployment
description: A Bitbucket Deployment.
properties:
uuid:
type: string
description: The UUID identifying the deployment.
state:
$ref: '#/components/schemas/deployment_state'
environment:
$ref: '#/components/schemas/deployment_environment'
release:
$ref: '#/components/schemas/deployment_release'
paginated_deployment_variable:
type: object
title: Paginated Deployment Variables
description: A paged list of deployment variables.
properties:
page:
type: integer
description: >-
Page number of the current results. This is an optional element that
is not provided in all responses.
values:
type: array
minItems: 0
items:
$ref: '#/components/schemas/deployment_variable'
description: The values of the current page.
size:
type: integer
description: >-
Total number of objects in the response. This is an optional element
that is not provided in all responses, as it can be expensive to
compute.
pagelen:
type: integer
description: >-
Current number of objects on the existing page. The default value is
10 with 100 being the maximum allowed value. Individual APIs may
enforce different values.
next:
type: string
format: uri
description: >-
Link to the next page if it exists. The last page of a collection
does not have this value. Use this link to navigate the result set
and refrain from constructing your own URLs.
previous:
type: string
format: uri
description: >-
Link to previous page if it exists. A collections first page does
not have this value. This is an optional element that is not
provided in all responses. Some result sets strictly support forward
navigation and never provide previous links. Clients must anticipate
that backwards navigation is not always available. Use this link to
navigate the result set and refrain from constructing your own URLs.
deployment_variable:
allOf:
- $ref: '#/components/schemas/object'
- additionalProperties: true
type: object
title: Deployment Variable
description: A Pipelines deployment variable.
properties:
uuid:
type: string
description: The UUID identifying the variable.
key:
type: string
description: The unique name of the variable.
value:
type: string
description: >-
The value of the variable. If the variable is secured, this will
be empty.
secured:
type: boolean
description: >-
If true, this variable will be treated as secured. The value
will never be exposed in the logs or the REST API.
paginated_diffstats:
type: object
title: Paginated Diff Stat
description: A paginated list of diffstats.
properties:
size:
type: integer
description: >-
Total number of objects in the response. This is an optional element
that is not provided in all responses, as it can be expensive to
compute.
minimum: 0
page:
type: integer
description: >-
Page number of the current results. This is an optional element that
is not provided in all responses.
minimum: 1
pagelen:
type: integer
description: >-
Current number of objects on the existing page. The default value is
500 with 5000 being the maximum allowed value.
minimum: 1
next:
type: string
description: >-
Link to the next page if it exists. The last page of a collection
does not have this value. Use this link to navigate the result set
and refrain from constructing your own URLs.
format: uri
previous:
type: string
description: >-
Link to previous page if it exists. A collections first page does
not have this value. This is an optional element that is not
provided in all responses. Some result sets strictly support forward
navigation and never provide previous links. Clients must anticipate
that backwards navigation is not always available. Use this link to
navigate the result set and refrain from constructing your own URLs.
format: uri
values:
type: array
items:
$ref: '#/components/schemas/diffstat'
minItems: 0
uniqueItems: true
additionalProperties: false
effective_repo_branching_model:
allOf:
- $ref: '#/components/schemas/object'
- type: object
title: Effective Repository Branching Model
description: A repository's effective branching model
properties:
branch_types:
type: array
description: The active branch types.
items:
type: object
properties:
kind:
type: string
description: The kind of branch.
enum:
- feature
- bugfix
- release
- hotfix
prefix:
type: string
description: >-
The prefix for this branch type. A branch with this prefix
will be classified as per `kind`. The prefix must be a
valid prefix for a branch and must always exist. It cannot
be blank, empty or `null`.
required:
- kind
- prefix
additionalProperties: false
minItems: 0
maxItems: 4
uniqueItems: true
development:
type: object
properties:
branch:
$ref: '#/components/schemas/branch'
name:
type: string
description: >-
Name of the target branch. Will be listed here even when the
target branch does not exist. Will be `null` if targeting
the main branch and the repository is empty.
use_mainbranch:
type: boolean
description: >-
Indicates if the setting points at an explicit branch
(`false`) or tracks the main branch (`true`).
required:
- name
- use_mainbranch
additionalProperties: false
production:
type: object
properties:
branch:
$ref: '#/components/schemas/branch'
name:
type: string
description: >-
Name of the target branch. Will be listed here even when the
target branch does not exist. Will be `null` if targeting
the main branch and the repository is empty.
use_mainbranch:
type: boolean
description: >-
Indicates if the setting points at an explicit branch
(`false`) or tracks the main branch (`true`).
required:
- name
- use_mainbranch
additionalProperties: false
additionalProperties: true
paginated_default_reviewer_and_type:
type: object
title: Paginated Default Reviewer and Type
description: A paginated list of default reviewers with reviewer type.
properties:
size:
type: integer
description: >-
Total number of objects in the response. This is an optional element
that is not provided in all responses, as it can be expensive to
compute.
minimum: 0
page:
type: integer
description: >-
Page number of the current results. This is an optional element that
is not provided in all responses.
minimum: 1
pagelen:
type: integer
description: >-
Current number of objects on the existing page. The default value is
10 with 100 being the maximum allowed value. Individual APIs may
enforce different values.
minimum: 1
next:
type: string
description: >-
Link to the next page if it exists. The last page of a collection
does not have this value. Use this link to navigate the result set
and refrain from constructing your own URLs.
format: uri
previous:
type: string
description: >-
Link to previous page if it exists. A collections first page does
not have this value. This is an optional element that is not
provided in all responses. Some result sets strictly support forward
navigation and never provide previous links. Clients must anticipate
that backwards navigation is not always available. Use this link to
navigate the result set and refrain from constructing your own URLs.
format: uri
values:
type: array
items:
$ref: '#/components/schemas/default_reviewer_and_type'
minItems: 0
uniqueItems: true
additionalProperties: false
paginated_environments:
type: object
title: Paginated Deployment Environments
description: A paged list of environments
properties:
page:
type: integer
description: >-
Page number of the current results. This is an optional element that
is not provided in all responses.
values:
type: array
minItems: 0
items:
$ref: '#/components/schemas/deployment_environment'
description: The values of the current page.
size:
type: integer
description: >-
Total number of objects in the response. This is an optional element
that is not provided in all responses, as it can be expensive to
compute.
pagelen:
type: integer
description: >-
Current number of objects on the existing page. The default value is
10 with 100 being the maximum allowed value. Individual APIs may
enforce different values.
next:
type: string
format: uri
description: >-
Link to the next page if it exists. The last page of a collection
does not have this value. Use this link to navigate the result set
and refrain from constructing your own URLs.
previous:
type: string
format: uri
description: >-
Link to previous page if it exists. A collections first page does
not have this value. This is an optional element that is not
provided in all responses. Some result sets strictly support forward
navigation and never provide previous links. Clients must anticipate
that backwards navigation is not always available. Use this link to
navigate the result set and refrain from constructing your own URLs.
deployment_environment:
allOf:
- $ref: '#/components/schemas/object'
- additionalProperties: true
type: object
title: Deployment Environment
description: A Bitbucket Deployment Environment.
properties:
uuid:
type: string
description: The UUID identifying the environment.
name:
type: string
description: The name of the environment.
x-bb-default-fields:
- uuid
x-bb-url: >-
/rest/2.0/accounts/{target_user.uuid}/repositories/{repository.uuid}/environments/{uuid}
x-bb-batch-url: >-
/rest/2.0/accounts/{target_user.uuid}/repositories/{repository.uuid}/environments_batch
x-bb-batch-max-size: 100
paginated_files:
type: object
title: Paginated Files
description: A paginated list of commit_file objects.
properties:
size:
type: integer
description: >-
Total number of objects in the response. This is an optional element
that is not provided in all responses, as it can be expensive to
compute.
minimum: 0
page:
type: integer
description: >-
Page number of the current results. This is an optional element that
is not provided in all responses.
minimum: 1
pagelen:
type: integer
description: >-
Current number of objects on the existing page. The default value is
10 with 100 being the maximum allowed value. Individual APIs may
enforce different values.
minimum: 1
next:
type: string
description: >-
Link to the next page if it exists. The last page of a collection
does not have this value. Use this link to navigate the result set
and refrain from constructing your own URLs.
format: uri
previous:
type: string
description: >-
Link to previous page if it exists. A collections first page does
not have this value. This is an optional element that is not
provided in all responses. Some result sets strictly support forward
navigation and never provide previous links. Clients must anticipate
that backwards navigation is not always available. Use this link to
navigate the result set and refrain from constructing your own URLs.
format: uri
values:
type: array
items:
$ref: '#/components/schemas/commit_file'
minItems: 0
uniqueItems: true
additionalProperties: false
paginated_webhook_subscriptions:
type: object
title: Paginated Webhook Subscriptions
description: A paginated list of webhook subscriptions
properties:
size:
type: integer
description: >-
Total number of objects in the response. This is an optional element
that is not provided in all responses, as it can be expensive to
compute.
minimum: 0
page:
type: integer
description: >-
Page number of the current results. This is an optional element that
is not provided in all responses.
minimum: 1
pagelen:
type: integer
description: >-
Current number of objects on the existing page. The default value is
10 with 100 being the maximum allowed value. Individual APIs may
enforce different values.
minimum: 1
next:
type: string
description: >-
Link to the next page if it exists. The last page of a collection
does not have this value. Use this link to navigate the result set
and refrain from constructing your own URLs.
format: uri
previous:
type: string
description: >-
Link to previous page if it exists. A collections first page does
not have this value. This is an optional element that is not
provided in all responses. Some result sets strictly support forward
navigation and never provide previous links. Clients must anticipate
that backwards navigation is not always available. Use this link to
navigate the result set and refrain from constructing your own URLs.
format: uri
values:
type: array
items:
$ref: '#/components/schemas/webhook_subscription'
minItems: 0
uniqueItems: true
additionalProperties: false
webhook_subscription:
allOf:
- $ref: '#/components/schemas/object'
- type: object
title: Webhook Subscription
description: A Webhook subscription.
properties:
uuid:
type: string
description: The webhook's id
url:
type: string
description: The URL events get delivered to.
format: uri
description:
type: string
description: A user-defined description of the webhook.
subject_type:
type: string
description: >-
The type of entity. Set to either `repository` or `workspace`
based on where the subscription is defined.
enum:
- repository
- workspace
subject:
$ref: '#/components/schemas/object'
active:
type: boolean
created_at:
type: string
format: date-time
events:
type: array
description: The events this webhook is subscribed to.
items:
type: string
enum:
- pullrequest:comment_reopened
- pullrequest:approved
- issue:comment_created
- repo:push
- pullrequest:comment_deleted
- pullrequest:fulfilled
- pullrequest:comment_created
- pullrequest:comment_updated
- pullrequest:updated
- repo:commit_status_created
- pullrequest:unapproved
- repo:updated
- pullrequest:comment_resolved
- repo:transfer
- repo:commit_status_updated
- pullrequest:changes_request_created
- issue:updated
- repo:created
- pullrequest:changes_request_removed
- pullrequest:rejected
- pullrequest:created
- issue:created
- repo:imported
- repo:commit_comment_created
- project:updated
- repo:fork
- repo:deleted
minItems: 1
uniqueItems: true
secret_set:
type: boolean
description: >-
Indicates whether or not the hook has an associated secret. It
is not possible to see the hook's secret. This field is ignored
during updates.
secret:
type: string
description: >-
The secret to associate with the hook. The secret is never
returned via the API. As such, this field is only used during
updates. The secret can be set to `null` or "" to remove the
secret (or create a hook with no secret). Leaving out the secret
field during updates will leave the secret unchanged. Leaving
out the secret during creation will create a hook with no
secret.
minLength: 0
maxLength: 128
additionalProperties: true
paginated_issues:
type: object
title: Paginated Issues
description: A paginated list of issues.
properties:
size:
type: integer
description: >-
Total number of objects in the response. This is an optional element
that is not provided in all responses, as it can be expensive to
compute.
minimum: 0
page:
type: integer
description: >-
Page number of the current results. This is an optional element that
is not provided in all responses.
minimum: 1
pagelen:
type: integer
description: >-
Current number of objects on the existing page. The default value is
10 with 100 being the maximum allowed value. Individual APIs may
enforce different values.
minimum: 1
next:
type: string
description: >-
Link to the next page if it exists. The last page of a collection
does not have this value. Use this link to navigate the result set
and refrain from constructing your own URLs.
format: uri
previous:
type: string
description: >-
Link to previous page if it exists. A collections first page does
not have this value. This is an optional element that is not
provided in all responses. Some result sets strictly support forward
navigation and never provide previous links. Clients must anticipate
that backwards navigation is not always available. Use this link to
navigate the result set and refrain from constructing your own URLs.
format: uri
values:
type: array
items:
$ref: '#/components/schemas/issue'
minItems: 0
uniqueItems: true
additionalProperties: false
issue_job_status:
type: object
title: Issue Job Status
description: The status of an import or export job
properties:
type:
type: string
status:
type: string
description: The status of the import/export job
enum:
- ACCEPTED
- STARTED
- RUNNING
- FAILURE
phase:
type: string
description: The phase of the import/export job
total:
type: integer
description: The total number of issues being imported/exported
count:
type: integer
description: The total number of issues already imported/exported
pct:
type: number
description: The percentage of issues already imported/exported
minimum: 0
maximum: 100
additionalProperties: false
issue:
allOf:
- $ref: '#/components/schemas/object'
- type: object
title: Issue
description: An issue.
properties:
links:
type: object
properties:
self:
type: object
title: Link
description: A link to a resource related to this object.
properties:
href:
type: string
format: uri
name:
type: string
additionalProperties: false
html:
type: object
title: Link
description: A link to a resource related to this object.
properties:
href:
type: string
format: uri
name:
type: string
additionalProperties: false
comments:
type: object
title: Link
description: A link to a resource related to this object.
properties:
href:
type: string
format: uri
name:
type: string
additionalProperties: false
attachments:
type: object
title: Link
description: A link to a resource related to this object.
properties:
href:
type: string
format: uri
name:
type: string
additionalProperties: false
watch:
type: object
title: Link
description: A link to a resource related to this object.
properties:
href:
type: string
format: uri
name:
type: string
additionalProperties: false
vote:
type: object
title: Link
description: A link to a resource related to this object.
properties:
href:
type: string
format: uri
name:
type: string
additionalProperties: false
additionalProperties: false
id:
type: integer
repository:
$ref: '#/components/schemas/repository'
title:
type: string
reporter:
$ref: '#/components/schemas/account'
assignee:
$ref: '#/components/schemas/account'
created_on:
type: string
format: date-time
updated_on:
type: string
format: date-time
edited_on:
type: string
format: date-time
state:
type: string
enum:
- submitted
- new
- open
- resolved
- on hold
- invalid
- duplicate
- wontfix
- closed
kind:
type: string
enum:
- bug
- enhancement
- proposal
- task
priority:
type: string
enum:
- trivial
- minor
- major
- critical
- blocker
milestone:
$ref: '#/components/schemas/milestone'
version:
$ref: '#/components/schemas/version'
component:
$ref: '#/components/schemas/component'
votes:
type: integer
content:
type: object
properties:
raw:
type: string
description: The text as it was typed by a user.
markup:
type: string
description: >-
The type of markup language the raw content is to be
interpreted in.
enum:
- markdown
- creole
- plaintext
html:
type: string
description: The user's content rendered as HTML.
additionalProperties: false
additionalProperties: true
paginated_issue_attachments:
type: object
title: Paginated Issue Attachment
description: A paginated list of issue attachments.
properties:
size:
type: integer
description: >-
Total number of objects in the response. This is an optional element
that is not provided in all responses, as it can be expensive to
compute.
minimum: 0
page:
type: integer
description: >-
Page number of the current results. This is an optional element that
is not provided in all responses.
minimum: 1
pagelen:
type: integer
description: >-
Current number of objects on the existing page. The default value is
10 with 100 being the maximum allowed value. Individual APIs may
enforce different values.
minimum: 1
next:
type: string
description: >-
Link to the next page if it exists. The last page of a collection
does not have this value. Use this link to navigate the result set
and refrain from constructing your own URLs.
format: uri
previous:
type: string
description: >-
Link to previous page if it exists. A collections first page does
not have this value. This is an optional element that is not
provided in all responses. Some result sets strictly support forward
navigation and never provide previous links. Clients must anticipate
that backwards navigation is not always available. Use this link to
navigate the result set and refrain from constructing your own URLs.
format: uri
values:
type: array
items:
$ref: '#/components/schemas/issue_attachment'
minItems: 0
additionalProperties: false
paginated_log_entries:
type: object
title: Paginated Log Entries
description: A paginated list of issue changes.
properties:
size:
type: integer
description: >-
Total number of objects in the response. This is an optional element
that is not provided in all responses, as it can be expensive to
compute.
minimum: 0
page:
type: integer
description: >-
Page number of the current results. This is an optional element that
is not provided in all responses.
minimum: 1
pagelen:
type: integer
description: >-
Current number of objects on the existing page. The default value is
10 with 100 being the maximum allowed value. Individual APIs may
enforce different values.
minimum: 1
next:
type: string
description: >-
Link to the next page if it exists. The last page of a collection
does not have this value. Use this link to navigate the result set
and refrain from constructing your own URLs.
format: uri
previous:
type: string
description: >-
Link to previous page if it exists. A collections first page does
not have this value. This is an optional element that is not
provided in all responses. Some result sets strictly support forward
navigation and never provide previous links. Clients must anticipate
that backwards navigation is not always available. Use this link to
navigate the result set and refrain from constructing your own URLs.
format: uri
values:
type: array
items:
$ref: '#/components/schemas/issue_change'
minItems: 0
additionalProperties: false
issue_change:
type: object
title: Issue Change
description: An issue change.
properties:
type:
type: string
links:
type: object
properties:
self:
type: object
title: Link
description: A link to a resource related to this object.
properties:
href:
type: string
format: uri
name:
type: string
additionalProperties: false
issue:
type: object
title: Link
description: A link to a resource related to this object.
properties:
href:
type: string
format: uri
name:
type: string
additionalProperties: false
additionalProperties: false
name:
type: string
created_on:
type: string
format: date-time
user:
$ref: '#/components/schemas/account'
issue:
$ref: '#/components/schemas/issue'
changes:
type: object
properties:
assignee:
type: object
properties:
old:
type: string
new:
type: string
additionalProperties: false
state:
type: object
properties:
old:
type: string
new:
type: string
additionalProperties: false
title:
type: object
properties:
old:
type: string
new:
type: string
additionalProperties: false
kind:
type: object
properties:
old:
type: string
new:
type: string
additionalProperties: false
milestone:
type: object
properties:
old:
type: string
new:
type: string
additionalProperties: false
component:
type: object
properties:
old:
type: string
new:
type: string
additionalProperties: false
priority:
type: object
properties:
old:
type: string
new:
type: string
additionalProperties: false
version:
type: object
properties:
old:
type: string
new:
type: string
additionalProperties: false
content:
type: object
properties:
old:
type: string
new:
type: string
additionalProperties: false
additionalProperties: false
message:
type: object
properties:
raw:
type: string
description: The text as it was typed by a user.
markup:
type: string
description: >-
The type of markup language the raw content is to be interpreted
in.
enum:
- markdown
- creole
- plaintext
html:
type: string
description: The user's content rendered as HTML.
additionalProperties: false
required:
- type
additionalProperties: true
paginated_issue_comments:
type: object
title: Paginated Issue Comments
description: A paginated list of issue comments.
properties:
size:
type: integer
description: >-
Total number of objects in the response. This is an optional element
that is not provided in all responses, as it can be expensive to
compute.
minimum: 0
page:
type: integer
description: >-
Page number of the current results. This is an optional element that
is not provided in all responses.
minimum: 1
pagelen:
type: integer
description: >-
Current number of objects on the existing page. The default value is
10 with 100 being the maximum allowed value. Individual APIs may
enforce different values.
minimum: 1
next:
type: string
description: >-
Link to the next page if it exists. The last page of a collection
does not have this value. Use this link to navigate the result set
and refrain from constructing your own URLs.
format: uri
previous:
type: string
description: >-
Link to previous page if it exists. A collections first page does
not have this value. This is an optional element that is not
provided in all responses. Some result sets strictly support forward
navigation and never provide previous links. Clients must anticipate
that backwards navigation is not always available. Use this link to
navigate the result set and refrain from constructing your own URLs.
format: uri
values:
type: array
items:
$ref: '#/components/schemas/issue_comment'
minItems: 0
uniqueItems: true
additionalProperties: false
issue_comment:
allOf:
- $ref: '#/components/schemas/comment'
- type: object
title: Issue Comment
description: A issue comment.
properties:
issue:
$ref: '#/components/schemas/issue'
additionalProperties: true
error:
type: object
title: Error
description: >-
Base type for most resource objects. It defines the common `type`
element that identifies an object's type. It also identifies the element
as Swagger's `discriminator`.
properties:
type:
type: string
error:
type: object
properties:
message:
type: string
detail:
type: string
data:
type: object
description: Optional structured data that is endpoint-specific.
properties: {}
additionalProperties: true
required:
- message
additionalProperties: false
required:
- type
additionalProperties: true
paginated_milestones:
type: object
title: Paginated Milestones
description: A paginated list of issue tracker milestones.
properties:
size:
type: integer
description: >-
Total number of objects in the response. This is an optional element
that is not provided in all responses, as it can be expensive to
compute.
minimum: 0
page:
type: integer
description: >-
Page number of the current results. This is an optional element that
is not provided in all responses.
minimum: 1
pagelen:
type: integer
description: >-
Current number of objects on the existing page. The default value is
10 with 100 being the maximum allowed value. Individual APIs may
enforce different values.
minimum: 1
next:
type: string
description: >-
Link to the next page if it exists. The last page of a collection
does not have this value. Use this link to navigate the result set
and refrain from constructing your own URLs.
format: uri
previous:
type: string
description: >-
Link to previous page if it exists. A collections first page does
not have this value. This is an optional element that is not
provided in all responses. Some result sets strictly support forward
navigation and never provide previous links. Clients must anticipate
that backwards navigation is not always available. Use this link to
navigate the result set and refrain from constructing your own URLs.
format: uri
values:
type: array
items:
$ref: '#/components/schemas/milestone'
minItems: 0
uniqueItems: true
additionalProperties: false
milestone:
allOf:
- $ref: '#/components/schemas/object'
- type: object
title: Milestone
description: A milestone as defined in a repository's issue tracker.
properties:
links:
type: object
properties:
self:
type: object
title: Link
description: A link to a resource related to this object.
properties:
href:
type: string
format: uri
name:
type: string
additionalProperties: false
additionalProperties: false
name:
type: string
id:
type: integer
additionalProperties: true
repository_inheritance_state:
type: object
title: Repository Inheritance State
description: A json object representing the repository's inheritance state values
properties:
type:
type: string
override_settings:
type: object
required:
- type
additionalProperties: true
paginated_repository_group_permissions:
type: object
title: Paginated Repository Group Permissions
description: A paginated list of repository group permissions.
properties:
size:
type: integer
description: >-
Total number of objects in the response. This is an optional element
that is not provided in all responses, as it can be expensive to
compute.
minimum: 0
page:
type: integer
description: >-
Page number of the current results. This is an optional element that
is not provided in all responses.
minimum: 1
pagelen:
type: integer
description: >-
Current number of objects on the existing page. The default value is
10 with 100 being the maximum allowed value. Individual APIs may
enforce different values.
minimum: 1
next:
type: string
description: >-
Link to the next page if it exists. The last page of a collection
does not have this value. Use this link to navigate the result set
and refrain from constructing your own URLs.
format: uri
previous:
type: string
description: >-
Link to previous page if it exists. A collections first page does
not have this value. This is an optional element that is not
provided in all responses. Some result sets strictly support forward
navigation and never provide previous links. Clients must anticipate
that backwards navigation is not always available. Use this link to
navigate the result set and refrain from constructing your own URLs.
format: uri
values:
type: array
items:
$ref: '#/components/schemas/repository_group_permission'
minItems: 0
uniqueItems: true
additionalProperties: false
repository_group_permission:
type: object
title: Repository Group Permission
description: A group's permission for a given repository.
properties:
type:
type: string
links:
type: object
properties:
self:
type: object
title: Link
description: A link to a resource related to this object.
properties:
href:
type: string
format: uri
name:
type: string
additionalProperties: false
additionalProperties: false
permission:
type: string
enum:
- read
- write
- admin
- none
group:
$ref: '#/components/schemas/group'
repository:
$ref: '#/components/schemas/repository'
required:
- type
additionalProperties: true
paginated_repository_user_permissions:
type: object
title: Paginated Repository User Permissions
description: A paginated list of repository user permissions.
properties:
size:
type: integer
description: >-
Total number of objects in the response. This is an optional element
that is not provided in all responses, as it can be expensive to
compute.
minimum: 0
page:
type: integer
description: >-
Page number of the current results. This is an optional element that
is not provided in all responses.
minimum: 1
pagelen:
type: integer
description: >-
Current number of objects on the existing page. The default value is
10 with 100 being the maximum allowed value. Individual APIs may
enforce different values.
minimum: 1
next:
type: string
description: >-
Link to the next page if it exists. The last page of a collection
does not have this value. Use this link to navigate the result set
and refrain from constructing your own URLs.
format: uri
previous:
type: string
description: >-
Link to previous page if it exists. A collections first page does
not have this value. This is an optional element that is not
provided in all responses. Some result sets strictly support forward
navigation and never provide previous links. Clients must anticipate
that backwards navigation is not always available. Use this link to
navigate the result set and refrain from constructing your own URLs.
format: uri
values:
type: array
items:
$ref: '#/components/schemas/repository_user_permission'
minItems: 0
uniqueItems: true
additionalProperties: false
repository_user_permission:
type: object
title: Repository User Permission
description: A user's direct permission for a given repository.
properties:
type:
type: string
permission:
type: string
enum:
- read
- write
- admin
- none
user:
$ref: '#/components/schemas/user'
repository:
$ref: '#/components/schemas/repository'
links:
type: object
properties:
self:
type: object
title: Link
description: A link to a resource related to this object.
properties:
href:
type: string
format: uri
name:
type: string
additionalProperties: false
additionalProperties: false
required:
- type
additionalProperties: true
paginated_pipelines:
type: object
title: Paginated Pipelines
description: A paged list of pipelines
properties:
page:
type: integer
description: >-
Page number of the current results. This is an optional element that
is not provided in all responses.
values:
type: array
minItems: 0
items:
$ref: '#/components/schemas/pipeline'
description: The values of the current page.
size:
type: integer
description: >-
Total number of objects in the response. This is an optional element
that is not provided in all responses, as it can be expensive to
compute.
pagelen:
type: integer
description: >-
Current number of objects on the existing page. The default value is
10 with 100 being the maximum allowed value. Individual APIs may
enforce different values.
next:
type: string
format: uri
description: >-
Link to the next page if it exists. The last page of a collection
does not have this value. Use this link to navigate the result set
and refrain from constructing your own URLs.
previous:
type: string
format: uri
description: >-
Link to previous page if it exists. A collections first page does
not have this value. This is an optional element that is not
provided in all responses. Some result sets strictly support forward
navigation and never provide previous links. Clients must anticipate
that backwards navigation is not always available. Use this link to
navigate the result set and refrain from constructing your own URLs.
paginated_pipeline_caches:
type: object
title: Paginated Pipeline Cache
description: A paged list of pipeline caches
properties:
page:
type: integer
description: >-
Page number of the current results. This is an optional element that
is not provided in all responses.
values:
type: array
minItems: 0
items:
$ref: '#/components/schemas/pipeline_cache'
description: The values of the current page.
size:
type: integer
description: >-
Total number of objects in the response. This is an optional element
that is not provided in all responses, as it can be expensive to
compute.
pagelen:
type: integer
description: >-
Current number of objects on the existing page. The default value is
10 with 100 being the maximum allowed value. Individual APIs may
enforce different values.
next:
type: string
format: uri
description: >-
Link to the next page if it exists. The last page of a collection
does not have this value. Use this link to navigate the result set
and refrain from constructing your own URLs.
previous:
type: string
format: uri
description: >-
Link to previous page if it exists. A collections first page does
not have this value. This is an optional element that is not
provided in all responses. Some result sets strictly support forward
navigation and never provide previous links. Clients must anticipate
that backwards navigation is not always available. Use this link to
navigate the result set and refrain from constructing your own URLs.
pipeline_cache_content_uri:
type: object
title: Pipeline Cache Content URI
description: A representation of the location of pipeline cache content.
properties:
uri:
type: string
format: uri
description: The uri for pipeline cache content.
pipeline:
allOf:
- $ref: '#/components/schemas/object'
- additionalProperties: true
type: object
title: Pipeline
description: A Bitbucket Pipeline. This represents an actual pipeline result.
properties:
uuid:
type: string
description: The UUID identifying the pipeline.
build_number:
type: integer
description: The build number of the pipeline.
creator:
$ref: '#/components/schemas/account'
repository:
$ref: '#/components/schemas/repository'
target:
$ref: '#/components/schemas/pipeline_target'
trigger:
$ref: '#/components/schemas/pipeline_trigger'
state:
$ref: '#/components/schemas/pipeline_state'
variables:
type: array
minItems: 0
items:
$ref: '#/components/schemas/pipeline_variable'
description: The variables for the pipeline.
created_on:
type: string
format: date-time
description: The timestamp when the pipeline was created.
completed_on:
type: string
format: date-time
description: >-
The timestamp when the Pipeline was completed. This is not set
if the pipeline is still in progress.
build_seconds_used:
type: integer
description: The number of build seconds used by this pipeline.
paginated_pipeline_steps:
type: object
title: Paginated Pipeline Steps
description: A paged list of pipeline steps.
properties:
page:
type: integer
description: >-
Page number of the current results. This is an optional element that
is not provided in all responses.
values:
type: array
minItems: 0
items:
$ref: '#/components/schemas/pipeline_step'
description: The values of the current page.
size:
type: integer
description: >-
Total number of objects in the response. This is an optional element
that is not provided in all responses, as it can be expensive to
compute.
pagelen:
type: integer
description: >-
Current number of objects on the existing page. The default value is
10 with 100 being the maximum allowed value. Individual APIs may
enforce different values.
next:
type: string
format: uri
description: >-
Link to the next page if it exists. The last page of a collection
does not have this value. Use this link to navigate the result set
and refrain from constructing your own URLs.
previous:
type: string
format: uri
description: >-
Link to previous page if it exists. A collections first page does
not have this value. This is an optional element that is not
provided in all responses. Some result sets strictly support forward
navigation and never provide previous links. Clients must anticipate
that backwards navigation is not always available. Use this link to
navigate the result set and refrain from constructing your own URLs.
pipeline_step:
allOf:
- $ref: '#/components/schemas/object'
- additionalProperties: true
type: object
title: Pipeline Step
description: >-
A step of a Bitbucket pipeline. This represents the actual result of
the step execution.
properties:
uuid:
type: string
description: The UUID identifying the step.
started_on:
type: string
format: date-time
description: >-
The timestamp when the step execution was started. This is not
set when the step hasn't executed yet.
completed_on:
type: string
format: date-time
description: >-
The timestamp when the step execution was completed. This is not
set if the step is still in progress.
state:
$ref: '#/components/schemas/pipeline_step_state'
image:
$ref: '#/components/schemas/pipeline_image'
setup_commands:
type: array
items:
$ref: '#/components/schemas/pipeline_command'
description: >-
The list of commands that are executed as part of the setup
phase of the build. These commands are executed outside the
build container.
script_commands:
type: array
items:
$ref: '#/components/schemas/pipeline_command'
description: >-
The list of build commands. These commands are executed in the
build container.
x-bb-default-fields:
- uuid
x-bb-url: >-
/rest/1.0/accounts/{target_user.uuid}/repositories/{repository.uuid}/pipelines/{pipeline.uuid}/steps/{uuid}
x-bb-batch-url: >-
/rest/1.0/accounts/{target_user.uuid}/repositories/{repository.uuid}/pipelines/steps_batch
x-bb-batch-max-size: 100
pipelines_config:
allOf:
- $ref: '#/components/schemas/object'
- additionalProperties: true
type: object
title: Pipelines Configuration
description: The Pipelines configuration for a repository.
properties:
enabled:
type: boolean
description: Whether Pipelines is enabled for the repository.
repository:
$ref: '#/components/schemas/repository'
pipeline_build_number:
allOf:
- $ref: '#/components/schemas/object'
- additionalProperties: true
type: object
title: Pipeline Build Number
description: A Pipelines build number.
properties:
next:
type: integer
description: The next number that will be used as build number.
paginated_pipeline_schedules:
type: object
title: Paginated Pipeline Schedule
description: A paged list of schedules
properties:
page:
type: integer
description: >-
Page number of the current results. This is an optional element that
is not provided in all responses.
values:
type: array
minItems: 0
items:
$ref: '#/components/schemas/pipeline_schedule'
description: The values of the current page.
size:
type: integer
description: >-
Total number of objects in the response. This is an optional element
that is not provided in all responses, as it can be expensive to
compute.
pagelen:
type: integer
description: >-
Current number of objects on the existing page. The default value is
10 with 100 being the maximum allowed value. Individual APIs may
enforce different values.
next:
type: string
format: uri
description: >-
Link to the next page if it exists. The last page of a collection
does not have this value. Use this link to navigate the result set
and refrain from constructing your own URLs.
previous:
type: string
format: uri
description: >-
Link to previous page if it exists. A collections first page does
not have this value. This is an optional element that is not
provided in all responses. Some result sets strictly support forward
navigation and never provide previous links. Clients must anticipate
that backwards navigation is not always available. Use this link to
navigate the result set and refrain from constructing your own URLs.
pipeline_schedule:
allOf:
- $ref: '#/components/schemas/object'
- additionalProperties: true
type: object
title: Pipeline Schedule
description: A Pipelines schedule.
properties:
uuid:
type: string
description: The UUID identifying the schedule.
enabled:
type: boolean
description: Whether the schedule is enabled.
target:
$ref: '#/components/schemas/pipeline_ref_target'
cron_pattern:
type: string
description: >-
The cron expression with second precision (7 fields) that the
schedule applies. For example, for expression: 0 0 12 * * ? *,
will execute at 12pm UTC every day.
created_on:
type: string
format: date-time
description: The timestamp when the schedule was created.
updated_on:
type: string
format: date-time
description: The timestamp when the schedule was updated.
paginated_pipeline_schedule_executions:
type: object
title: Paginated Pipeline Schedule Executions
description: A paged list of the executions of a schedule.
properties:
page:
type: integer
description: >-
Page number of the current results. This is an optional element that
is not provided in all responses.
values:
type: array
minItems: 0
items:
$ref: '#/components/schemas/pipeline_schedule_execution'
description: The values of the current page.
size:
type: integer
description: >-
Total number of objects in the response. This is an optional element
that is not provided in all responses, as it can be expensive to
compute.
pagelen:
type: integer
description: >-
Current number of objects on the existing page. The default value is
10 with 100 being the maximum allowed value. Individual APIs may
enforce different values.
next:
type: string
format: uri
description: >-
Link to the next page if it exists. The last page of a collection
does not have this value. Use this link to navigate the result set
and refrain from constructing your own URLs.
previous:
type: string
format: uri
description: >-
Link to previous page if it exists. A collections first page does
not have this value. This is an optional element that is not
provided in all responses. Some result sets strictly support forward
navigation and never provide previous links. Clients must anticipate
that backwards navigation is not always available. Use this link to
navigate the result set and refrain from constructing your own URLs.
pipeline_ssh_key_pair:
allOf:
- $ref: '#/components/schemas/object'
- additionalProperties: true
type: object
title: Pipeline SSH Key Pair
description: A Pipelines SSH key pair.
properties:
private_key:
type: string
description: >-
The SSH private key. This value will be empty when retrieving
the SSH key pair.
public_key:
type: string
description: The SSH public key.
paginated_pipeline_known_hosts:
type: object
title: Paginated Pipeline Known Hosts
description: A paged list of known hosts.
properties:
page:
type: integer
description: >-
Page number of the current results. This is an optional element that
is not provided in all responses.
values:
type: array
minItems: 0
items:
$ref: '#/components/schemas/pipeline_known_host'
description: The values of the current page.
size:
type: integer
description: >-
Total number of objects in the response. This is an optional element
that is not provided in all responses, as it can be expensive to
compute.
pagelen:
type: integer
description: >-
Current number of objects on the existing page. The default value is
10 with 100 being the maximum allowed value. Individual APIs may
enforce different values.
next:
type: string
format: uri
description: >-
Link to the next page if it exists. The last page of a collection
does not have this value. Use this link to navigate the result set
and refrain from constructing your own URLs.
previous:
type: string
format: uri
description: >-
Link to previous page if it exists. A collections first page does
not have this value. This is an optional element that is not
provided in all responses. Some result sets strictly support forward
navigation and never provide previous links. Clients must anticipate
that backwards navigation is not always available. Use this link to
navigate the result set and refrain from constructing your own URLs.
pipeline_known_host:
allOf:
- $ref: '#/components/schemas/object'
- additionalProperties: true
type: object
title: Pipeline Known Host
description: A Pipelines known host.
properties:
uuid:
type: string
description: The UUID identifying the known host.
hostname:
type: string
description: The hostname of the known host.
public_key:
$ref: '#/components/schemas/pipeline_ssh_public_key'
paginated_pipeline_variables:
type: object
title: Paginated Pipeline Variables
description: A paged list of variables.
properties:
page:
type: integer
description: >-
Page number of the current results. This is an optional element that
is not provided in all responses.
values:
type: array
minItems: 0
items:
$ref: '#/components/schemas/pipeline_variable'
description: The values of the current page.
size:
type: integer
description: >-
Total number of objects in the response. This is an optional element
that is not provided in all responses, as it can be expensive to
compute.
pagelen:
type: integer
description: >-
Current number of objects on the existing page. The default value is
10 with 100 being the maximum allowed value. Individual APIs may
enforce different values.
next:
type: string
format: uri
description: >-
Link to the next page if it exists. The last page of a collection
does not have this value. Use this link to navigate the result set
and refrain from constructing your own URLs.
previous:
type: string
format: uri
description: >-
Link to previous page if it exists. A collections first page does
not have this value. This is an optional element that is not
provided in all responses. Some result sets strictly support forward
navigation and never provide previous links. Clients must anticipate
that backwards navigation is not always available. Use this link to
navigate the result set and refrain from constructing your own URLs.
pipeline_variable:
allOf:
- $ref: '#/components/schemas/object'
- additionalProperties: true
type: object
title: Pipeline Variable
description: A Pipelines variable.
properties:
uuid:
type: string
description: The UUID identifying the variable.
key:
type: string
description: The unique name of the variable.
value:
type: string
description: >-
The value of the variable. If the variable is secured, this will
be empty.
secured:
type: boolean
description: >-
If true, this variable will be treated as secured. The value
will never be exposed in the logs or the REST API.
pullrequest:
allOf:
- $ref: '#/components/schemas/object'
- type: object
title: Pull Request
description: A pull request object.
properties:
links:
type: object
properties:
self:
type: object
title: Link
description: A link to a resource related to this object.
properties:
href:
type: string
format: uri
name:
type: string
additionalProperties: false
html:
type: object
title: Link
description: A link to a resource related to this object.
properties:
href:
type: string
format: uri
name:
type: string
additionalProperties: false
commits:
type: object
title: Link
description: A link to a resource related to this object.
properties:
href:
type: string
format: uri
name:
type: string
additionalProperties: false
approve:
type: object
title: Link
description: A link to a resource related to this object.
properties:
href:
type: string
format: uri
name:
type: string
additionalProperties: false
diff:
type: object
title: Link
description: A link to a resource related to this object.
properties:
href:
type: string
format: uri
name:
type: string
additionalProperties: false
diffstat:
type: object
title: Link
description: A link to a resource related to this object.
properties:
href:
type: string
format: uri
name:
type: string
additionalProperties: false
comments:
type: object
title: Link
description: A link to a resource related to this object.
properties:
href:
type: string
format: uri
name:
type: string
additionalProperties: false
activity:
type: object
title: Link
description: A link to a resource related to this object.
properties:
href:
type: string
format: uri
name:
type: string
additionalProperties: false
merge:
type: object
title: Link
description: A link to a resource related to this object.
properties:
href:
type: string
format: uri
name:
type: string
additionalProperties: false
decline:
type: object
title: Link
description: A link to a resource related to this object.
properties:
href:
type: string
format: uri
name:
type: string
additionalProperties: false
additionalProperties: false
id:
type: integer
description: >-
The pull request's unique ID. Note that pull request IDs are
only unique within their associated repository.
title:
type: string
description: Title of the pull request.
rendered:
type: object
title: Rendered Pull Request Markup
description: >-
User provided pull request text, interpreted in a markup
language and rendered in HTML
properties:
title:
type: object
properties:
raw:
type: string
description: The text as it was typed by a user.
markup:
type: string
description: >-
The type of markup language the raw content is to be
interpreted in.
enum:
- markdown
- creole
- plaintext
html:
type: string
description: The user's content rendered as HTML.
additionalProperties: false
description:
type: object
properties:
raw:
type: string
description: The text as it was typed by a user.
markup:
type: string
description: >-
The type of markup language the raw content is to be
interpreted in.
enum:
- markdown
- creole
- plaintext
html:
type: string
description: The user's content rendered as HTML.
additionalProperties: false
reason:
type: object
properties:
raw:
type: string
description: The text as it was typed by a user.
markup:
type: string
description: >-
The type of markup language the raw content is to be
interpreted in.
enum:
- markdown
- creole
- plaintext
html:
type: string
description: The user's content rendered as HTML.
additionalProperties: false
additionalProperties: false
summary:
type: object
properties:
raw:
type: string
description: The text as it was typed by a user.
markup:
type: string
description: >-
The type of markup language the raw content is to be
interpreted in.
enum:
- markdown
- creole
- plaintext
html:
type: string
description: The user's content rendered as HTML.
additionalProperties: false
state:
type: string
description: The pull request's current status.
enum:
- OPEN
- MERGED
- DECLINED
- SUPERSEDED
author:
$ref: '#/components/schemas/account'
source:
$ref: '#/components/schemas/pullrequest_endpoint'
destination:
$ref: '#/components/schemas/pullrequest_endpoint'
merge_commit:
type: object
title: Pull Request Commit
properties:
hash:
type: string
pattern: '[0-9a-f]{7,}?'
additionalProperties: false
comment_count:
type: integer
description: The number of comments for a specific pull request.
minimum: 0
task_count:
type: integer
description: The number of open tasks for a specific pull request.
minimum: 0
close_source_branch:
type: boolean
description: >-
A boolean flag indicating if merging the pull request closes the
source branch.
closed_by:
$ref: '#/components/schemas/account'
reason:
type: string
description: >-
Explains why a pull request was declined. This field is only
applicable to pull requests in rejected state.
created_on:
type: string
description: The ISO8601 timestamp the request was created.
format: date-time
updated_on:
type: string
description: The ISO8601 timestamp the request was last updated.
format: date-time
reviewers:
type: array
description: >-
The list of users that were added as reviewers on this pull
request when it was created. For performance reasons, the API
only includes this list on a pull request's `self` URL.
items:
$ref: '#/components/schemas/account'
participants:
type: array
description: |2-
The list of users that are collaborating on this pull request.
Collaborators are user that:
* are added to the pull request as a reviewer (part of the reviewers
list)
* are not explicit reviewers, but have commented on the pull request
* are not explicit reviewers, but have approved the pull request
Each user is wrapped in an object that indicates the user's role and
whether they have approved the pull request. For performance reasons,
the API only returns this list when an API requests a pull request by
id.
items:
$ref: '#/components/schemas/participant'
additionalProperties: true
paginated_pullrequest_comments:
type: object
title: Paginated Pull Request Comments
description: A paginated list of pullrequest comments.
properties:
size:
type: integer
description: >-
Total number of objects in the response. This is an optional element
that is not provided in all responses, as it can be expensive to
compute.
minimum: 0
page:
type: integer
description: >-
Page number of the current results. This is an optional element that
is not provided in all responses.
minimum: 1
pagelen:
type: integer
description: >-
Current number of objects on the existing page. The default value is
10 with 100 being the maximum allowed value. Individual APIs may
enforce different values.
minimum: 1
next:
type: string
description: >-
Link to the next page if it exists. The last page of a collection
does not have this value. Use this link to navigate the result set
and refrain from constructing your own URLs.
format: uri
previous:
type: string
description: >-
Link to previous page if it exists. A collections first page does
not have this value. This is an optional element that is not
provided in all responses. Some result sets strictly support forward
navigation and never provide previous links. Clients must anticipate
that backwards navigation is not always available. Use this link to
navigate the result set and refrain from constructing your own URLs.
format: uri
values:
type: array
items:
$ref: '#/components/schemas/pullrequest_comment'
minItems: 0
uniqueItems: true
additionalProperties: false
pullrequest_comment:
allOf:
- $ref: '#/components/schemas/comment'
- type: object
title: Pull Request Comment
description: A pullrequest comment.
properties:
pullrequest:
$ref: '#/components/schemas/pullrequest'
resolution:
$ref: '#/components/schemas/comment_resolution'
pending:
type: boolean
additionalProperties: true
comment_resolution:
type: object
title: Comment Resolution
description: The resolution object for a Comment.
properties:
type:
type: string
user:
$ref: '#/components/schemas/account'
created_on:
type: string
description: The ISO8601 timestamp the resolution was created.
format: date-time
required:
- type
additionalProperties: true
paginated_tasks:
type: object
title: Paginated Tasks
description: A paginated list of tasks.
properties:
size:
type: integer
description: >-
Total number of objects in the response. This is an optional element
that is not provided in all responses, as it can be expensive to
compute.
minimum: 0
page:
type: integer
description: >-
Page number of the current results. This is an optional element that
is not provided in all responses.
minimum: 1
pagelen:
type: integer
description: >-
Current number of objects on the existing page. The default value is
10 with 100 being the maximum allowed value. Individual APIs may
enforce different values.
minimum: 1
next:
type: string
description: >-
Link to the next page if it exists. The last page of a collection
does not have this value. Use this link to navigate the result set
and refrain from constructing your own URLs.
format: uri
previous:
type: string
description: >-
Link to previous page if it exists. A collections first page does
not have this value. This is an optional element that is not
provided in all responses. Some result sets strictly support forward
navigation and never provide previous links. Clients must anticipate
that backwards navigation is not always available. Use this link to
navigate the result set and refrain from constructing your own URLs.
format: uri
values:
type: array
items:
$ref: '#/components/schemas/A_pullrequest_comment_task'
minItems: 0
uniqueItems: true
additionalProperties: false
A_pullrequest_comment_task:
allOf:
- $ref: '#/components/schemas/A_pull_request_task'
- type: object
title: Pull Request Comment Task
description: A pullrequest comment task
properties:
comment:
$ref: '#/components/schemas/comment'
additionalProperties: false
paginated_refs:
type: object
title: Paginated Refs
description: A paginated list of refs.
properties:
size:
type: integer
description: >-
Total number of objects in the response. This is an optional element
that is not provided in all responses, as it can be expensive to
compute.
minimum: 0
page:
type: integer
description: >-
Page number of the current results. This is an optional element that
is not provided in all responses.
minimum: 1
pagelen:
type: integer
description: >-
Current number of objects on the existing page. The default value is
10 with 100 being the maximum allowed value. Individual APIs may
enforce different values.
minimum: 1
next:
type: string
description: >-
Link to the next page if it exists. The last page of a collection
does not have this value. Use this link to navigate the result set
and refrain from constructing your own URLs.
format: uri
previous:
type: string
description: >-
Link to previous page if it exists. A collections first page does
not have this value. This is an optional element that is not
provided in all responses. Some result sets strictly support forward
navigation and never provide previous links. Clients must anticipate
that backwards navigation is not always available. Use this link to
navigate the result set and refrain from constructing your own URLs.
format: uri
values:
type: array
items:
$ref: '#/components/schemas/ref'
minItems: 0
uniqueItems: true
additionalProperties: false
paginated_branches:
type: object
title: Paginated Branches
description: A paginated list of branches.
properties:
size:
type: integer
description: >-
Total number of objects in the response. This is an optional element
that is not provided in all responses, as it can be expensive to
compute.
minimum: 0
page:
type: integer
description: >-
Page number of the current results. This is an optional element that
is not provided in all responses.
minimum: 1
pagelen:
type: integer
description: >-
Current number of objects on the existing page. The default value is
10 with 100 being the maximum allowed value. Individual APIs may
enforce different values.
minimum: 1
next:
type: string
description: >-
Link to the next page if it exists. The last page of a collection
does not have this value. Use this link to navigate the result set
and refrain from constructing your own URLs.
format: uri
previous:
type: string
description: >-
Link to previous page if it exists. A collections first page does
not have this value. This is an optional element that is not
provided in all responses. Some result sets strictly support forward
navigation and never provide previous links. Clients must anticipate
that backwards navigation is not always available. Use this link to
navigate the result set and refrain from constructing your own URLs.
format: uri
values:
type: array
items:
$ref: '#/components/schemas/branch'
minItems: 0
uniqueItems: true
additionalProperties: false
branch:
allOf:
- $ref: '#/components/schemas/ref'
- type: object
title: Branch
description: A branch object, representing a branch in a repository.
properties:
merge_strategies:
type: array
description: >-
Available merge strategies for pull requests targeting this
branch.
items:
type: string
enum:
- merge_commit
- squash
- fast_forward
default_merge_strategy:
type: string
description: >-
The default merge strategy for pull requests targeting this
branch.
additionalProperties: true
paginated_tags:
type: object
title: Paginated Tags
description: A paginated list of tags.
properties:
size:
type: integer
description: >-
Total number of objects in the response. This is an optional element
that is not provided in all responses, as it can be expensive to
compute.
minimum: 0
page:
type: integer
description: >-
Page number of the current results. This is an optional element that
is not provided in all responses.
minimum: 1
pagelen:
type: integer
description: >-
Current number of objects on the existing page. The default value is
10 with 100 being the maximum allowed value. Individual APIs may
enforce different values.
minimum: 1
next:
type: string
description: >-
Link to the next page if it exists. The last page of a collection
does not have this value. Use this link to navigate the result set
and refrain from constructing your own URLs.
format: uri
previous:
type: string
description: >-
Link to previous page if it exists. A collections first page does
not have this value. This is an optional element that is not
provided in all responses. Some result sets strictly support forward
navigation and never provide previous links. Clients must anticipate
that backwards navigation is not always available. Use this link to
navigate the result set and refrain from constructing your own URLs.
format: uri
values:
type: array
items:
$ref: '#/components/schemas/tag'
minItems: 0
uniqueItems: true
additionalProperties: false
tag:
allOf:
- $ref: '#/components/schemas/ref'
- type: object
title: Tag
description: A tag object, representing a tag in a repository.
properties:
message:
type: string
description: The message associated with the tag, if available.
date:
type: string
description: The date that the tag was created, if available
format: date-time
tagger:
$ref: '#/components/schemas/author'
additionalProperties: true
paginated_treeentries:
type: object
title: Paginated Tree Entry
description: A paginated list of commit_file and/or commit_directory objects.
properties:
size:
type: integer
description: >-
Total number of objects in the response. This is an optional element
that is not provided in all responses, as it can be expensive to
compute.
minimum: 0
page:
type: integer
description: >-
Page number of the current results. This is an optional element that
is not provided in all responses.
minimum: 1
pagelen:
type: integer
description: >-
Current number of objects on the existing page. The default value is
10 with 100 being the maximum allowed value. Individual APIs may
enforce different values.
minimum: 1
next:
type: string
description: >-
Link to the next page if it exists. The last page of a collection
does not have this value. Use this link to navigate the result set
and refrain from constructing your own URLs.
format: uri
previous:
type: string
description: >-
Link to previous page if it exists. A collections first page does
not have this value. This is an optional element that is not
provided in all responses. Some result sets strictly support forward
navigation and never provide previous links. Clients must anticipate
that backwards navigation is not always available. Use this link to
navigate the result set and refrain from constructing your own URLs.
format: uri
values:
type: array
items:
$ref: '#/components/schemas/treeentry'
minItems: 0
uniqueItems: true
additionalProperties: false
paginated_versions:
type: object
title: Paginated Versions
description: A paginated list of issue tracker versions.
properties:
size:
type: integer
description: >-
Total number of objects in the response. This is an optional element
that is not provided in all responses, as it can be expensive to
compute.
minimum: 0
page:
type: integer
description: >-
Page number of the current results. This is an optional element that
is not provided in all responses.
minimum: 1
pagelen:
type: integer
description: >-
Current number of objects on the existing page. The default value is
10 with 100 being the maximum allowed value. Individual APIs may
enforce different values.
minimum: 1
next:
type: string
description: >-
Link to the next page if it exists. The last page of a collection
does not have this value. Use this link to navigate the result set
and refrain from constructing your own URLs.
format: uri
previous:
type: string
description: >-
Link to previous page if it exists. A collections first page does
not have this value. This is an optional element that is not
provided in all responses. Some result sets strictly support forward
navigation and never provide previous links. Clients must anticipate
that backwards navigation is not always available. Use this link to
navigate the result set and refrain from constructing your own URLs.
format: uri
values:
type: array
items:
$ref: '#/components/schemas/version'
minItems: 0
uniqueItems: true
additionalProperties: false
version:
allOf:
- $ref: '#/components/schemas/object'
- type: object
title: Version
description: A version as defined in a repository's issue tracker.
properties:
links:
type: object
properties:
self:
type: object
title: Link
description: A link to a resource related to this object.
properties:
href:
type: string
format: uri
name:
type: string
additionalProperties: false
additionalProperties: false
name:
type: string
id:
type: integer
additionalProperties: true
paginated_repository_permissions:
type: object
title: Paginated Repository Permissions
description: A paginated list of repository permissions.
properties:
size:
type: integer
description: >-
Total number of objects in the response. This is an optional element
that is not provided in all responses, as it can be expensive to
compute.
minimum: 0
page:
type: integer
description: >-
Page number of the current results. This is an optional element that
is not provided in all responses.
minimum: 1
pagelen:
type: integer
description: >-
Current number of objects on the existing page. The default value is
10 with 100 being the maximum allowed value. Individual APIs may
enforce different values.
minimum: 1
next:
type: string
description: >-
Link to the next page if it exists. The last page of a collection
does not have this value. Use this link to navigate the result set
and refrain from constructing your own URLs.
format: uri
previous:
type: string
description: >-
Link to previous page if it exists. A collections first page does
not have this value. This is an optional element that is not
provided in all responses. Some result sets strictly support forward
navigation and never provide previous links. Clients must anticipate
that backwards navigation is not always available. Use this link to
navigate the result set and refrain from constructing your own URLs.
format: uri
values:
type: array
items:
$ref: '#/components/schemas/repository_permission'
minItems: 0
uniqueItems: true
additionalProperties: false