Bitbucket Pipelines Commits API
These are the repository's commits. They are paginated and returned in reverse chronological order, similar to the output of git log.
These are the repository's commits. They are paginated and returned in reverse chronological order, similar to the output of git log.
swagger: '2.0'
info:
title: Bitbucket Addon Commits API
description: Code against the Bitbucket API to automate simple tasks, embed Bitbucket data into your own site, build mobile or desktop apps, or even add custom UI add-ons into Bitbucket itself using the Connect framework.
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
host: api.bitbucket.org
basePath: /2.0
schemes:
- https
consumes:
- application/json
produces:
- application/json
tags:
- name: Commits
description: 'These are the repository''s commits. They are paginated and returned in
reverse chronological order, similar to the output of git log.
'
paths:
/repositories/{workspace}/{repo_slug}/commit/{commit}:
parameters:
- name: commit
in: path
description: The commit's SHA1.
required: true
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
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
type: string
get:
tags:
- Commits
description: Returns the specified commit.
summary: Get a commit
responses:
'200':
description: The commit object
schema:
$ref: '#/definitions/commit'
examples:
application/json:
rendered:
message:
raw: Add a GEORDI_OUTPUT_DIR setting
markup: markdown
html: <p>Add a GEORDI_OUTPUT_DIR setting</p>
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 <a@b.c>
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: <p>Add a GEORDI_OUTPUT_DIR setting</p>
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.
schema:
$ref: '#/definitions/error'
parameters: []
security:
- oauth2:
- repository
- basic: []
- api_key: []
x-atlassian-oauth2-scopes:
- state: Current
scheme: oauth2
scopes:
- read:repository:bitbucket
x-atlassian-auth-types:
- forge-oauth2
- api-token
/repositories/{workspace}/{repo_slug}/commit/{commit}/approve:
parameters:
- name: commit
in: path
description: The commit's SHA1.
required: true
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
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
type: string
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: 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.
schema:
$ref: '#/definitions/error'
parameters: []
security:
- oauth2:
- repository:write
- basic: []
- api_key: []
x-atlassian-oauth2-scopes:
- state: Current
scheme: oauth2
scopes:
- write:repository:bitbucket
x-atlassian-auth-types:
- forge-oauth2
- api-token
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: Approve a commit
responses:
'200':
description: The `participant` object recording that the authenticated user approved the commit.
schema:
$ref: '#/definitions/participant'
'404':
description: If the specified commit, or the repository does not exist.
schema:
$ref: '#/definitions/error'
parameters: []
security:
- oauth2:
- repository:write
- basic: []
- api_key: []
x-atlassian-oauth2-scopes:
- state: Current
scheme: oauth2
scopes:
- read:repository:bitbucket
- write:repository:bitbucket
x-atlassian-auth-types:
- forge-oauth2
- api-token
/repositories/{workspace}/{repo_slug}/commit/{commit}/comments:
parameters:
- name: commit
in: path
description: The commit's SHA1.
required: true
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
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
type: string
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: List a commit's comments
responses:
'200':
description: A paginated list of commit comments.
schema:
$ref: '#/definitions/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
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
type: string
security:
- oauth2:
- repository
- basic: []
- api_key: []
x-atlassian-oauth2-scopes:
- state: Current
scheme: oauth2
scopes:
- read:repository:bitbucket
x-atlassian-auth-types:
- forge-oauth2
- api-token
post:
tags:
- Commits
description: "Creates new comment on the specified commit.\n\nTo post a reply to an existing comment, include the `parent.id` field:\n\n```\n$ curl https://api.bitbucket.org/2.0/repositories/atlassian/prlinks/commit/db9ba1e031d07a02603eae0e559a7adc010257fc/comments/ \\\n -X POST -u evzijst \\\n -H 'Content-Type: application/json' \\\n -d '{\"content\": {\"raw\": \"One more thing!\"},\n \"parent\": {\"id\": 5728901}}'\n```"
summary: Create comment for a commit
responses:
'201':
description: The newly created comment.
headers:
Location:
type: string
description: The location of the newly created comment.
'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
parameters:
- name: _body
in: body
description: The specified comment.
required: true
schema:
$ref: '#/definitions/commit_comment'
security:
- oauth2:
- repository
- basic: []
- api_key: []
x-atlassian-oauth2-scopes:
- state: Current
scheme: oauth2
scopes:
- read:repository:bitbucket
x-atlassian-auth-types:
- forge-oauth2
- api-token
/repositories/{workspace}/{repo_slug}/commit/{commit}/comments/{comment_id}:
parameters:
- name: comment_id
in: path
description: The id of the comment.
required: true
type: integer
format: int64
- name: commit
in: path
description: The commit's SHA1.
required: true
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
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
type: string
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: 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
parameters: []
security:
- oauth2:
- repository
- basic: []
- api_key: []
x-atlassian-oauth2-scopes:
- state: Current
scheme: oauth2
scopes:
- read:repository:bitbucket
x-atlassian-auth-types:
- forge-oauth2
- api-token
get:
tags:
- Commits
description: Returns the specified commit comment.
summary: Get a commit comment
responses:
'200':
description: The commit comment.
schema:
$ref: '#/definitions/commit_comment'
parameters: []
security:
- oauth2:
- repository
- basic: []
- api_key: []
x-atlassian-oauth2-scopes:
- state: Current
scheme: oauth2
scopes:
- read:repository:bitbucket
x-atlassian-auth-types:
- forge-oauth2
- api-token
put:
tags:
- Commits
description: "Used to update the contents of a comment. Only the content of the comment can be updated.\n\n```\n$ curl https://api.bitbucket.org/2.0/repositories/atlassian/prlinks/commit/7f71b5/comments/5728901 \\\n -X PUT -u evzijst \\\n -H 'Content-Type: application/json' \\\n -d '{\"content\": {\"raw\": \"One more thing!\"}'\n```"
summary: Update a commit comment
responses:
'201':
description: The newly updated comment.
headers:
Location:
type: string
description: The location of the newly updated comment.
'400':
description: If the comment update was detected as spam
parameters:
- name: _body
in: body
description: The updated comment.
required: true
schema:
$ref: '#/definitions/commit_comment'
security:
- oauth2:
- repository
- basic: []
- api_key: []
x-atlassian-oauth2-scopes:
- state: Current
scheme: oauth2
scopes:
- read:repository:bitbucket
x-atlassian-auth-types:
- forge-oauth2
- api-token
/repositories/{workspace}/{repo_slug}/commit/{commit}/reports:
get:
tags:
- Commits
description: Returns a paginated list of Reports linked to this commit.
summary: List reports
operationId: getReportsForCommit
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
type: string
- name: repo_slug
description: The repository.
required: true
in: path
type: string
- name: commit
description: The commit for which to retrieve reports.
required: true
in: path
type: string
produces:
- application/json
responses:
'200':
description: OK
schema:
$ref: '#/definitions/paginated_reports'
security:
- oauth2:
- repository
- basic: []
- api_key: []
x-atlassian-oauth2-scopes:
- state: Current
scheme: oauth2
scopes:
- read:repository:bitbucket
x-atlassian-auth-types:
- forge-oauth2
- api-token
/repositories/{workspace}/{repo_slug}/commit/{commit}/reports/{reportId}:
put:
tags:
- Commits
description: "Creates or updates a report for the specified commit.\nTo 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.\n\n### Sample cURL request:\n```\ncurl --request PUT 'https://api.bitbucket.org/2.0/repositories/<username>/<reposity-name>/commit/<commit-hash>/reports/mysystem-001' \\\n--header 'Content-Type: application/json' \\\n--data-raw '{\n \"title\": \"Security scan report\",\n \"details\": \"This pull request introduces 10 new dependency vulnerabilities.\",\n \"report_type\": \"SECURITY\",\n \"reporter\": \"mySystem\",\n \"link\": \"http://www.mysystem.com/reports/001\",\n \"result\": \"FAILED\",\n \"data\": [\n {\n \"title\": \"Duration (seconds)\",\n \"type\": \"DURATION\",\n \"value\": 14\n },\n {\n \"title\": \"Safe to merge?\",\n \"type\": \"BOOLEAN\",\n \"value\": false\n }\n ]\n}'\n```\n\n### Possible field values:\nreport_type: SECURITY, COVERAGE, TEST, BUG\nresult: PASSED, FAILED, PENDING\ndata.type: BOOLEAN, DATE, DURATION, LINK, NUMBER, PERCENTAGE, TEXT\n\n#### Data field formats\n| Type Field | Value Field Type | Value Field Display |\n|:--------------|:------------------|:--------------------|\n| None/ Omitted | Number, String or Boolean (not an array or object) | Plain text |\n| BOOLEAN\t| Boolean | The value will be read as a JSON boolean and displayed as 'Yes' or 'No'. |\n| 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. |\n| DURATION | Number | The value will be read as a JSON number in milliseconds and will be displayed in a human readable duration format. |\n| 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. |\n| 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). |\n| 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. |\n| TEXT | String | The value will be read as a JSON string and will be displayed as-is |\n\nPlease refer to the [Code Insights documentation](https://confluence.atlassian.com/bitbucket/code-insights-994316785.html) for more information.\n"
operationId: createOrUpdateReport
summary: 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
type: string
- name: repo_slug
description: The repository.
required: true
in: path
type: string
- name: commit
description: The commit the report belongs to.
required: true
in: path
type: string
- name: reportId
description: Either the uuid or external-id of the report.
required: true
in: path
type: string
- name: _body
in: body
description: The report to create or update
required: true
schema:
$ref: '#/definitions/report'
produces:
- application/json
responses:
'200':
description: OK
schema:
$ref: '#/definitions/report'
'400':
description: The provided Report object is malformed or incomplete.
schema:
$ref: '#/definitions/error'
security:
- oauth2:
- repository
- basic: []
- api_key: []
x-atlassian-oauth2-scopes:
- state: Current
scheme: oauth2
scopes:
- read:repository:bitbucket
x-atlassian-auth-types:
- forge-oauth2
- api-token
get:
tags:
- Commits
description: Returns a single Report matching the provided ID.
summary: Get a report
operationId: getReport
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
type: string
- name: repo_slug
description: The repository.
required: true
in: path
type: string
- name: commit
description: The commit the report belongs to.
required: true
in: path
type: string
- name: reportId
description: Either the uuid or external-id of the report.
required: true
in: path
type: string
produces:
- application/json
responses:
'200':
description: OK
schema:
$ref: '#/definitions/report'
'404':
description: The report with the given ID was not found.
schema:
$ref: '#/definitions/error'
security:
- oauth2:
- repository
- basic: []
- api_key: []
x-atlassian-oauth2-scopes:
- state: Current
scheme: oauth2
scopes:
- read:repository:bitbucket
x-atlassian-auth-types:
- forge-oauth2
- api-token
delete:
tags:
- Commits
description: Deletes a single Report matching the provided ID.
summary: Delete a report
operationId: deleteReport
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
type: string
- name: repo_slug
description: The repository.
required: true
in: path
type: string
- name: commit
description: The commit the report belongs to.
required: true
in: path
type: string
- name: reportId
description: Either the uuid or external-id of the report.
required: true
in: path
type: string
produces:
- application/json
responses:
'204':
description: No content
security:
- oauth2:
- repository
- basic: []
- api_key: []
x-atlassian-oauth2-scopes:
- state: Current
scheme: oauth2
scopes:
- read:repository:bitbucket
x-atlassian-auth-types:
- forge-oauth2
- api-token
/repositories/{workspace}/{repo_slug}/commit/{commit}/reports/{reportId}/annotations:
get:
tags:
- Commits
description: Returns a paginated list of Annotations for a specified report.
summary: List annotations
operationId: getAnnotationsForReport
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
type: string
- name: repo_slug
description: The repository.
required: true
in: path
type: string
- name: commit
description: The commit for which to retrieve reports.
required: true
in: path
type: string
- name: reportId
description: Uuid or external-if of the report for which to get annotations for.
required: true
in: path
type: string
produces:
- application/json
responses:
'200':
description: OK
schema:
$ref: '#/definitions/paginated_annotations'
security:
- oauth2:
- repository
- basic: []
- api_key: []
x-atlassian-oauth2-scopes:
- state: Current
scheme: oauth2
scopes:
- read:repository:bitbucket
x-atlassian-auth-types:
- forge-oauth2
- api-token
post:
tags:
- Commits
description: "Bulk upload of annotations.\nAnnotations 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.\n\nAdd 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.\n\n### Sample cURL request:\n```\ncurl --location 'https://api.bitbucket.org/2.0/repositories/<username>/<reposity-name>/commit/<commit-hash>/reports/mysystem-001/annotations' \\\n--header 'Content-Type: application/json' \\\n--data-raw '[\n {\n \"external_id\": \"mysystem-annotation001\",\n \"title\": \"Security scan report\",\n \"annotation_type\": \"VULNERABILITY\",\n \"summary\": \"This line represents a security threat.\",\n \"severity\": \"HIGH\",\n \"path\": \"my-service/src/main/java/com/myCompany/mysystem/logic/Main.java\",\n \"line\": 42\n },\n {\n \"external_id\": \"mySystem-annotation002\",\n \"title\": \"Bug report\",\n \"annotation_type\": \"BUG\",\n \"result\": \"FAILED\",\n \"summary\": \"This line might introduce a bug.\",\n \"severity\": \"MEDIUM\",\n \"path\": \"my-service/src/main/java/com/myCompany/mysystem/logic/Helper.java\",\n \"line\": 13\n }\n]'\n```\n\n### Possible field values:\nannotation_type: VULNERABILITY, CODE_SMELL, BUG\nresult: PASSED, FAILED, IGNORED, SKIPPED\nseverity: HIGH, MEDIUM, LOW, CRITICAL\n\nPlease refer to the [Code Insights documentation](https://confluence.atlassian.com/bitbucket/code-insights-994316785.html) for more information.\n"
operationId: bulkCreateOrUpdateAnnotations
summary: 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
type: string
- name: repo_slug
description: The repository.
required: true
in: path
type: string
- name: commit
description: The commit for which to retrieve reports.
required: true
in: path
type: string
- name: reportId
description: Uuid or external-if of the report for which to get annotations for.
required: true
in: path
type: string
- name: _body
in: body
description: The annotations to create or update
required: true
schema:
type: array
items:
$ref: '#/definitions/report_annotation'
minItems: 1
maxItems: 100
produces:
- application/json
responses:
'200':
description: OK
schema:
type: array
items:
$ref: '#/definitions/report_annotation'
security:
- oauth2:
- repository
- basic: []
- api_key: []
x-atlassian-oauth2-scopes:
- state: Current
scheme: oauth2
scopes:
- read:repository:bitbucket
x-atlassian-auth-types:
- forge-oauth2
- api-token
/repositories/{workspace}/{repo_slug}/commit/{commit}/reports/{reportId}/annotations/{annotationId}:
get:
tags:
- Commits
description: Returns a single Annotation matching the provided ID.
summary: Get an annotation
operationId: getAnnotation
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
type: string
- name: repo_slug
description: The repository.
required: true
in: path
type: string
- name: commit
description: The commit the report belongs to.
required: true
in: path
type: string
- name: reportId
description: Either the uuid or external-id of the report.
required: true
in: path
type: string
- name: annotationId
description: Either the uuid or external-id of the annotation.
required: true
in: path
type: string
produces:
- application/json
responses:
'200':
description: OK
schema:
$ref: '#/definitions/report_annotation'
'404':
description: The annotation with the given ID was not found.
schema:
$ref: '#/definitions/error'
security:
- oauth2:
- repository
- basic: []
- api_key: []
x-atlassian-oauth2-scopes:
- state: Current
scheme: oauth2
scopes:
- read:repository:bitbucket
x-atlassian-auth-types:
- forge-oauth2
- api-token
put:
tags:
- Commits
description: "Creates or updates an individual annotation for the specified report.\nAnnotations 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.\n\nJust 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.\n\n### Sample cURL request:\n```\ncurl --request PUT 'https://api.bitbucket.org/2.0/repositories/<username>/<reposity-name>/commit/<commit-hash>/reports/mySystem-001/annotations/mysystem-annotation001' \\\n--header 'Content-Type: application/json' \\\n--data-raw '{\n \"title\": \"Security scan report\",\n \"annotation_type\": \"VULNERABILITY\",\n \"summary\": \"This line represents a security thread.\",\n \"severity\": \"HIGH\",\n \"path\": \"my-service/src/main/java/com/myCompany/mysystem/logic/Main.java\",\n \"line\": 42\n}'\n```\n\n### Possible field values:\nannotation_type: VULNERABILITY, CODE_SMELL, BUG\nresult: PASSED, FAILED, IGNORED, SKIPPED\nseverity: HIGH, MEDIUM, LOW, CRITICAL\n\nPlease refer to the [Code Insights documentation](https://confluence.atlassian.com/bitbucket/code-insights-994316785.html) for more information.\n"
operationId: createOrUpdateAn
# --- truncated at 32 KB (204 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/bitbucket-pipelines/refs/heads/main/openapi/bitbucket-pipelines-commits-api-openapi.yml