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:

Add a GEORDI_OUTPUT_DIR setting

type: rendered hash: f7591a13eda445d9a9167f98eb870319f4b6c2d8 repository: name: geordi type: repository full_name: bitbucket/geordi links: self: href: >- https://api.bitbucket.org/2.0/repositories/bitbucket/geordi html: href: https://bitbucket.org/bitbucket/geordi avatar: href: >- https://bytebucket.org/ravatar/%7B85d08b4e-571d-44e9-a507-fa476535aa98%7D?ts=1730260 uuid: '{85d08b4e-571d-44e9-a507-fa476535aa98}' links: self: href: >- https://api.bitbucket.org/2.0/repositories/bitbucket/geordi/commit/f7591a13eda445d9a9167f98eb870319f4b6c2d8 comments: href: >- https://api.bitbucket.org/2.0/repositories/bitbucket/geordi/commit/f7591a13eda445d9a9167f98eb870319f4b6c2d8/comments patch: href: >- https://api.bitbucket.org/2.0/repositories/bitbucket/geordi/patch/f7591a13eda445d9a9167f98eb870319f4b6c2d8 html: href: >- https://bitbucket.org/bitbucket/geordi/commits/f7591a13eda445d9a9167f98eb870319f4b6c2d8 diff: href: >- https://api.bitbucket.org/2.0/repositories/bitbucket/geordi/diff/f7591a13eda445d9a9167f98eb870319f4b6c2d8 approve: href: >- https://api.bitbucket.org/2.0/repositories/bitbucket/geordi/commit/f7591a13eda445d9a9167f98eb870319f4b6c2d8/approve statuses: href: >- https://api.bitbucket.org/2.0/repositories/bitbucket/geordi/commit/f7591a13eda445d9a9167f98eb870319f4b6c2d8/statuses author: raw: Brodie Rao 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