Bitbucket

Bitbucket Cloud is a Git-based code and CI/CD tool optimized for teams using Jira.

Utilities · Bitbucket

Details

IDBitbucket
ProviderAtlassian
CategoryUtilities
From Version6.5.0
Docker Imagedemisto/python3:3.12.13.11753038
Supported ModulesAgentix XSIAM

README

Bitbucket Cloud is a Git-based code and CI/CD tool optimized for teams using Jira.
This integration was integrated and tested with version 7.21.0 of Bitbucket.

Deprecation Notes

According to the Bitbucket announcement from February 18, 2026, regarding the sunset of Bitbucket Issues, all issue-related commands have been deprecated. It is recommended to use the equivalent commands in the Atlassian Jira v3 integration instead.

Bitbucket Cloud has deprecated app passwords (from June 9, 2026) in favor of scoped API tokens. For more information, see the Bitbucket Cloud documentation.

Authenticate with an API Token

  1. Go to Atlassian account settings -> Security -> API tokens (https://id.atlassian.com/manage-profile/security/api-tokens).

  2. Create an API token with scopes.

  3. In the integration instance settings, configure:

    • User Name = your Atlassian account email address.

    • API Token = the token you copied.

Authenticate with OAuth 2.0 Client Credentials

Create an OAuth consumer in the Bitbucket workspace and enable the client-credentials grant:

  1. In Bitbucket Cloud, go to Workspace settings -> under Apps and features select OAuth clients.

  2. Select the required Permissions/scopes (e.g., read access to Account, Repositories, Projects, Pull requests, and Issues, matching the commands you intend to run).

  3. In the integration instance settings, configure:

    • Client ID = the consumer Key.

    • Client Secret = the consumer Secret.

Configure Bitbucket on Cortex XSOAR

  1. Navigate to Settings > Integrations > Servers & Services.
  2. Search for Bitbucket.
  3. Click Add instance to create and configure a new integration instance.
Parameter Description Required
Workspace The Bitbucket workspace slug or UUID to connect to. True
Server URL The base URL of the Bitbucket API. True
User Name The User Name is your Atlassian account email address, and the API Token is a scoped API token created at https://id.atlassian.com/manage-profile/security/api-tokens. False
API Token   False
Client ID The Client ID and Client Secret are the key and secret of an OAuth consumer created in the Bitbucket workspace settings (Apps and features -> OAuth clients). False
Client Secret   False
Repository The default Bitbucket repository slug to use for commands. False
Trust any certificate (not secure) Whether to trust any TLS certificate when connecting to the server. False
Use system proxy settings Whether to use the system proxy settings when connecting to the server. False
  1. Click Test to validate the URLs, token, and connection.

Commands

You can execute these commands from the Cortex XSOAR CLI, as part of an automation, or in a playbook.
After you successfully execute a command, a DBot message appears in the War Room with the command details.

  • Note: The test button uses the ‘bitbucket-project-list’ command. In order to perform it, add to the app password, Read permissions to Projects.

bitbucket-project-list


If a project_key is given, returns the requested project. Else, returns a list of the projects in the workspace.

Base Command

bitbucket-project-list

Input

Argument Name Description Required
project_key The “id” of the project. Must be uppercase. Optional
limit The maximum number of projects to return. The default value is 50. Optional
page The specific result page to display. Optional
partial_response Return a partial response if true, else return the full API response. Possible values are: true, false. Default is true. Optional

Context Output

Path Type Description
Bitbucket.Project.type String The type of the object.
Bitbucket.Project.owner.display_name String The project owner name.
Bitbucket.Project.owner.links String Links with information about the project owner.
Bitbucket.Project.owner.type String The type of the project owner.
Bitbucket.Project.owner.uuid String The project owner universal unique ID.
Bitbucket.Project.owner.account_id String The project owner account ID.
Bitbucket.Project.owner.nickname String The project owner nickname.
Bitbucket.Project.workspace.type String The type of the workspace.
Bitbucket.Project.workspace.uuid String The project workspace universal unique ID.
Bitbucket.Project.workspace.name String The name of the project workspace.
Bitbucket.Project.workspace.slug String The slug of the project workspace.
Bitbucket.Project.workspace.links String Links to information about the workspace.
Bitbucket.Project.key String The project key.
Bitbucket.Project.uuid String The project universal unique ID.
Bitbucket.Project.is_private Boolean Whether the project is private.
Bitbucket.Project.name String The project name.
Bitbucket.Project.description String The project description.
Bitbucket.Project.links String Links to information about the project.
Bitbucket.Project.created_on String The date the project was created.
Bitbucket.Project.updated_on String The date the project was updated.
Bitbucket.Project.has_publicly_visible_repos Boolean Whether the project has publicly visible repositories.

Command example


#### Context Example

```json
{
    "Bitbucket": {
        "Project": [
            {
                "created_on": "2022-08-24T09:25:07.11111111+00:00",
                "description": "description",
                "has_publicly_visible_repos": false,
                "is_private": true,
                "key": "AP",
                "links": {
                    "avatar": {
                        "href": "https://bitbucket.org/account/user/workspace/projects/AP/avatar/11?ts=111111111"
                    },
                    "html": {
                        "href": "https://bitbucket.org/workspace/workspace/projects/AP"
                    },
                    "repositories": {
                        "href": "https://api.bitbucket.org/2.0/repositories/workspace?q=project.key=\"AP\""
                    },
                    "self": {
                        "href": "https://api.bitbucket.org/2.0/workspaces/workspace/projects/AP"
                    }
                },
                "name": "Another Project",
                "owner": {
                    "account_id": "111111111111111111111111",
                    "display_name": "Display Name",
                    "links": {
                        "avatar": {
                            "href": "https://secure.gravatar.com/avatar/avatar-management--avatars.us-west-2.prod.public.atl-paas.net1111.png"
                        },
                        "html": {
                            "href": "https://bitbucket.org/"
                        },
                        "self": {
                            "href": "https://api.bitbucket.org/2.0/users"
                        }
                    },
                    "nickname": "Nickname",
                    "type": "user",
                    "uuid": "{11111111-1111-1111-1111-111111111111}"
                },
                "type": "project",
                "updated_on": "2022-08-24T09:25:07.11111111+00:00",
                "uuid": "{11111111-1111-1111-1111-111111111111}",
                "workspace": {
                    "links": {
                        "avatar": {
                            "href": "https://bitbucket.org/workspaces/workspace/avatar/?ts=11111111"
                        },
                        "html": {
                            "href": "https://bitbucket.org/workspace/"
                        },
                        "self": {
                            "href": "https://api.bitbucket.org/2.0/workspaces/workspace"
                        }
                    },
                    "name": "Name",
                    "slug": "name",
                    "type": "workspace",
                    "uuid": "{11111111-1111-1111-1111-111111111111}"
                }
            },
            {
                "created_on": "2022-08-21T13:19:18.1111111+00:00",
                "description": null,
                "has_publicly_visible_repos": false,
                "is_private": false,
                "key": "TES",
                "links": {
                    "avatar": {
                        "href": "https://bitbucket.org/account/user/workspace/projects/TES/avatar/11?ts=11111111"
                    },
                    "html": {
                        "href": "https://bitbucket.org/workspace/workspace/projects/TES"
                    },
                    "repositories": {
                        "href": "https://api.bitbucket.org/2.0/repositories/workspace?q=project.key=\"TES\""
                    },
                    "self": {
                        "href": "https://api.bitbucket.org/2.0/workspaces/workspace/projects/TES"
                    }
                },
                "name": "testId",
                "owner": {
                    "account_id": "111111111111111111111111",
                    "display_name": "Display Name",
                    "links": {
                        "avatar": {
                            "href": "https://secure.gravatar.com/avatar/1111111111111?d=httpsavatar-management--avatars.us-west-2.prod.public.atl-paas.net1111.png"
                        },
                        "html": {
                            "href": "https://bitbucket.org/%11111111-1111-1111-1111-11111111111%11"
                        },
                        "self": {
                            "href": "https://api.bitbucket.org/2.0/users/"
                        }
                    },
                    "nickname": "nickname",
                    "type": "user",
                    "uuid": "{11111111-1111-1111-1111-111111111111}"
                },
                "type": "project",
                "updated_on": "2022-08-21T13:19:18.111111+00:00",
                "uuid": "{11111111-1111-1111-1111-111111111111}",
                "workspace": {
                    "links": {
                        "avatar": {
                            "href": "https://bitbucket.org/workspaces/workspace/avatar/?ts=11111111"
                        },
                        "html": {
                            "href": "https://bitbucket.org/workspace/"
                        },
                        "self": {
                            "href": "https://api.bitbucket.org/2.0/workspaces/workspace"
                        }
                    },
                    "name": "Name",
                    "slug": "name",
                    "type": "workspace",
                    "uuid": "{11111111-1111-1111-1111-111111111111}"
                }
            }
        ]
    }
}

Human Readable Output

List of projects in workspace

Key Name Description IsPrivate
AP Another Project description true
TES testId   false

bitbucket-open-branch-list


Returns a list of the open branches.

Base Command

bitbucket-open-branch-list

Input

Argument Name Description Required
repo The repository name or slug. Optional
limit The maximum number of items in the list. The default value is 50. Optional
page The specific result page to display. Optional
partial_response Return a partial response if true, else return the full API response. Possible values are: true, false. Default is true. Optional

Context Output

Path Type Description
Bitbucket.Branch.name String The branch name.
Bitbucket.Branch.target.type String The type of the last action in the branch.
Bitbucket.Branch.target.hash String The hash of the last action in the branch.
Bitbucket.Branch.target.date Date The creation date of the last action in the branch.
Bitbucket.Branch.target.author.type String The type of the author of the last action.
Bitbucket.Branch.target.author.raw String The raw information about the author of the last action.
Bitbucket.Branch.target.author.user.display_name String The display name of the author of the last action.
Bitbucket.Branch.target.author.user.links String Links to information about the user.
Bitbucket.Branch.target.author.user.type String The user type of the user who made the last action in the branch.
Bitbucket.Branch.target.author.user.uuid String The unique user ID of the user who made the last action in the branch.
Bitbucket.Branch.target.author.user.account_id String The account ID of the user who made the last action in the branch.
Bitbucket.Branch.target.author.user.nickname String The nickname of the user who made the last action in the branch.
Bitbucket.Branch.target.message String The message assigned to the last action in the branch.
Bitbucket.Branch.target.links String The links associated with this command.
Bitbucket.Branch.target.parents.type String The type of the parent who created the branch.
Bitbucket.Branch.target.parents.hash String The hash of the parent who created the branch.
Bitbucket.Branch.target.parents.links String The links associated with the parents of the command.
Bitbucket.Branch.target.repository.type String The repository type.
Bitbucket.Branch.target.repository.full_name String The full name of the repository.
Bitbucket.Branch.target.repository.links String Links with information about the relevant repository.
Bitbucket.Branch.target.repository.name String The name of the repository
Bitbucket.Branch.target.repository.uuid String The repository unique ID.
Bitbucket.Branch.links String Links with information about the branch.
Bitbucket.Branch.type String The type of the branch.
Bitbucket.Branch.merge_strategies String The merge strategy of the branch.
Bitbucket.Branch.default_merge_strategy String The default merge strategy in the branch.

Command example


#### Context Example

```json
{
    "Bitbucket": {
        "Branch": [
            {
                "default_merge_strategy": "merge_commit",
                "links": {
                    "commits": {
                        "href": "https://api.bitbucket.org/2.0/repositories/workspae/start_repo/commits/master"
                    },
                    "html": {
                        "href": "https://bitbucket.org/workspace/start_repo/branch/master"
                    },
                    "self": {
                        "href": "https://api.bitbucket.org/2.0/repositories/workspace/start_repo/refs/branches/master"
                    }
                },
                "merge_strategies": [
                    "merge_commit",
                    "squash",
                    "fast_forward"
                ],
                "name": "master",
                "target": {
                    "author": {
                        "raw": "Some User <someuser@gmail.com>",
                        "type": "author",
                        "user": {
                            "account_id": "11111111111111111",
                            "display_name": "Some User",
                            "links": {
                                "avatar": {
                                    "href": "https://secure.gravatar.com/avatar/Favatar-management--avatars.us-west-2.prod.public.atl-paas.net%1111%.png"
                                },
                                "html": {
                                    "href": "https://bitbucket.org/111111111/"
                                },
                                "self": {
                                    "href": "https://api.bitbucket.org/2.0/users/11111111111"
                                }
                            },
                            "nickname": "nickname",
                            "type": "user",
                            "uuid": "{11111111-1111-1111-1111-111111111111}"
                        }
                    },
                    "date": "2022-09-18T08:00:00+00:00",
                    "hash": "1111111111111111111111111111111111111111",
                    "links": {
                        "approve": {
                            "href": "https://api.bitbucket.org/2.0/repositories/workspace/start_repo/commit/1111111111111111111111111111111111111111/approve"
                        },
                        "comments": {
                            "href": "https://api.bitbucket.org/2.0/repositories/workspace/start_repo/commit/1111111111111111111111111111111111111111/comments"
                        },
                        "diff": {
                            "href": "https://api.bitbucket.org/2.0/repositories/workspace/start_repo/diff/1111111111111111111111111111111111111111"
                        },
                        "html": {
                            "href": "https://bitbucket.org/workspace/start_repo/commits/1111111111111111111111111111111111111111"
                        },
                        "patch": {
                            "href": "https://api.bitbucket.org/2.0/repositories/workspace/start_repo/patch/1111111111111111111111111111111111111111"
                        },
                        "self": {
                            "href": "https://api.bitbucket.org/2.0/repositories/workspace/start_repo/commit/1111111111111111111111111111111111111111"
                        },
                        "statuses": {
                            "href": "https://api.bitbucket.org/2.0/repositories/workspace/start_repo/commit/1111111111111111111111111111111111111111/statuses"
                        }
                    },
                    "message": "delete the new file",
                    "parents": [
                        {
                            "hash": "1111111111111111111111111111111111111111",
                            "links": {
                                "html": {
                                    "href": "https://bitbucket.org/workspace/start_repo/commits/1111111111111111111111111111111111111111"
                                },
                                "self": {
                                    "href": "https://api.bitbucket.org/2.0/repositories/workspace/start_repo/commit/1111111111111111111111111111111111111111"
                                }
                            },
                            "type": "commit"
                        }
                    ],
                    "repository": {
                        "full_name": "workspace/start_repo",
                        "links": {
                            "avatar": {
                                "href": "https://bytebucket.org/ravatar/%11111111-1111-1111-1111-11111111111%11?ts=default"
                            },
                            "html": {
                                "href": "https://bitbucket.org/workspace/start_repo"
                            },
                            "self": {
                                "href": "https://api.bitbucket.org/2.0/repositories/workspace/start_repo"
                            }
                        },
                        "name": "start_repo",
                        "type": "repository",
                        "uuid": "{11111111-1111-1111-1111-111111111111}"
                    },
                    "type": "commit"
                },
                "type": "branch"
            },
            {
                "default_merge_strategy": "merge_commit",
                "links": {
                    "commits": {
                        "href": "https://api.bitbucket.org/2.0/repositories/workspace/start_repo/commits/branch"
                    },
                    "html": {
                        "href": "https://bitbucket.org/workspace/start_repo/branch/branch"
                    },
                    "self": {
                        "href": "https://api.bitbucket.org/2.0/repositories/workspace/start_repo/refs/branches/branch"
                    }
                },
                "merge_strategies": [
                    "merge_commit",
                    "squash",
                    "fast_forward"
                ],
                "name": "branch",
                "target": {
                    "author": {
                        "raw": "Some User <someuser@gmail.com>",
                        "type": "author",
                        "user": {
                            "account_id": "1111111111111111111111",
                            "display_name": "Display Name",
                            "links": {
                                "avatar": {
                                    "href": "https://secure.gravatar.com/avatar/avatar-management--avatars.us-west-2.prod.public.atl-paas.net%1Finitials%1111-1.png"
                                },
                                "html": {
                                    "href": "https://bitbucket.org/%11111111111%11/"
                                },
                                "self": {
                                    "href": "https://api.bitbucket.org/2.0/users/%11111111-1111-1111-1111-111111111%11"
                                }
                            },
                            "nickname": "nickname",
                            "type": "user",
                            "uuid": "{11111111-1111-1111-1111-111111111111}"
                        }
                    },
                    "date": "2022-09-08T00:00:00+00:00",
                    "hash": "1111111111111111111111111111111111111111",
                    "links": {
                        "approve": {
                            "href": "https://api.bitbucket.org/2.0/repositories/workspace/start_repo/commit/1111111111111111111111111111111111111111/approve"
                        },
                        "comments": {
                            "href": "https://api.bitbucket.org/2.0/repositories/workspace/start_repo/commit/1111111111111111111111111111111111111111/comments"
                        },
                        "diff": {
                            "href": "https://api.bitbucket.org/2.0/repositories/workspace/start_repo/diff/1111111111111111111111111111111111111111"
                        },
                        "html": {
                            "href": "https://bitbucket.org/workspace/start_repo/commits/1111111111111111111111111111111111111111"
                        },
                        "patch": {
                            "href": "https://api.bitbucket.org/2.0/repositories/workspace/start_repo/patch/1111111111111111111111111111111111111111"
                        },
                        "self": {
                            "href": "https://api.bitbucket.org/2.0/repositories/workspace/start_repo/commit/1111111111111111111111111111111111111111"
                        },
                        "statuses": {
                            "href": "https://api.bitbucket.org/2.0/repositories/workspace/start_repo/commit/1111111111111111111111111111111111111111/statuses"
                        }
                    },
                    "message": "something",
                    "parents": [
                        {
                            "hash": "1111111111111111111111111111111111111111",
                            "links": {
                                "html": {
                                    "href": "https://bitbucket.org/workspace/start_repo/commits/1111111111111111111111111111111111111111"
                                },
                                "self": {
                                    "href": "https://api.bitbucket.org/2.0/repositories/workspace/start_repo/commit/1111111111111111111111111111111111111111"
                                }
                            },
                            "type": "commit"
                        }
                    ],
                    "repository": {
                        "full_name": "workspace/start_repo",
                        "links": {
                            "avatar": {
                                "href": "https://bytebucket.org/ravatar/%111111111-1111-1111-1111-1111111111%11?ts=default"
                            },
                            "html": {
                                "href": "https://bitbucket.org/workspace/start_repo"
                            },
                            "self": {
                                "href": "https://api.bitbucket.org/2.0/repositories/workspace/start_repo"
                            }
                        },
                        "name": "start_repo",
                        "type": "repository",
                        "uuid": "{11111111-1111-1111-1111-111111111111}"
                    },
                    "type": "commit"
                },
                "type": "branch"
            }
        ]
    }
}

Human Readable Output

Open Branches

Name LastCommitCreatedBy LastCommitCreatedAt LastCommitHash
master Some User 2022-09-18T08:00:00+00:00 1111111111111111111111111111111111111111
branch Some User 2022-09-08T14:00:00+00:00 1111111111111111111111111111111111111111

bitbucket-branch-get


Returns the information of the requested branch.

Base Command

bitbucket-branch-get

Input

Argument Name Description Required
repo The repository name. Should be given here or in the instance arguments. Optional
branch_name The name of the branch for which to retrieve the information. Required
partial_response Return a partial response if true, else return the full API response. Possible values are: true, false. Default is true. Optional

Context Output

Path Type Description
Bitbucket.Branch.name String The name of the branch.
Bitbucket.Branch.target.type String The last action type.
Bitbucket.Branch.target.hash String The hash of the last action in the branch.
Bitbucket.Branch.target.date Date The date of the last action in the branch.
Bitbucket.Branch.target.author.type String The type of the author.
Bitbucket.Branch.target.author.raw String The raw information about the author of the last action in the branch.
Bitbucket.Branch.target.author.user.display_name String The display name of the author of the last action in the branch.
Bitbucket.Branch.target.author.user.links String Links about the author of the last action in the branch.
Bitbucket.Branch.target.author.user.type String The user type of the author of the last action in the branch.
Bitbucket.Branch.target.author.user.uuid String The unique universal ID of the author of the last action in the branch.
Bitbucket.Branch.target.author.user.account_id String The account ID of the author of the last action in the branch.
Bitbucket.Branch.target.author.user.nickname String The nickname of the author of the last action in the branch.
Bitbucket.Branch.target.message String The message associated with the last action in the branch.
Bitbucket.Branch.target.links String The links of the last action in the branch.
Bitbucket.Branch.target.parents.type String The type of the parents of the last action in the branch.
Bitbucket.Branch.target.parents.hash String The hash of the parents of the last action in the branch.
Bitbucket.Branch.target.parents.links String The link associated with the parents of the last action in the branch.
Bitbucket.Branch.target.repository.type String The type of the branch repository.
Bitbucket.Branch.target.repository.full_name String The name of the branch repository.
Bitbucket.Branch.target.repository.links String Links with information about the branch repository.
Bitbucket.Branch.target.repository.name String The name of the repository.
Bitbucket.Branch.target.repository.uuid String The unique ID of the repository.
Bitbucket.Branch.links String Links with information about the branch.
Bitbucket.Branch.type String The type of the branch.
Bitbucket.Branch.merge_strategies String The merge strategy of the branch.
Bitbucket.Branch.default_merge_strategy String The default merge strategy.

Command example

!bitbucket-branch-get branch_name=master

Context Example

{
    "Bitbucket": {
        "Branch": {
            "default_merge_strategy": "merge_commit",
            "links": {
                "commits": {
                    "href": "https://api.bitbucket.org/2.0/repositories/workspace/start_repo/commits/master"
                },
                "html": {
                    "href": "https://bitbucket.org/workspace/start_repo/branch/master"
                },
                "self": {
                    "href": "https://api.bitbucket.org/2.0/repositories/workspace/start_repo/refs/branches/master"
                }
            },
            "merge_strategies": [
                "merge_commit",
                "squash",
                "fast_forward"
            ],
            "name": "master",
            "target": {
                "author": {
                    "raw": "Some user <someuser@gmail.com>",
                    "type": "author",
                    "user": {
                        "account_id": "1111111111111111111111",
                        "display_name": "Display Name",
                        "links": {
                            "avatar": {
                                "href": "https://secure.gravatar.com/avatar/?d=httpsavatar-management--avatars.us-west-2.prod.public.atl-paas.net%11initials%1111-1.png"
                            },
                            "html": {
                                "href": "https://bitbucket.org/%11111111-1111-1111-1111-11111111111%11/"
                            },
                            "self": {
                                "href": "https://api.bitbucket.org/2.0/users/%11111111-1111-1111-1111-11111111111%11"
                            }
                        },
                        "nickname": "nickname",
                        "type": "user",
                        "uuid": "{11111111-1111-1111-1111-111111111111}"
                    }
                },
                "date": "2022-09-18T00:00:00+00:00",
                "hash": "1111111111111111111111111111111111111111",
                "links": {
                    "approve": {
                        "href": "https://api.bitbucket.org/2.0/repositories/workspace/start_repo/commit/1111111111111111111111111111111111111111/approve"
                    },
                    "comments": {
                        "href": "https://api.bitbucket.org/2.0/repositories/workspace/start_repo/commit/1111111111111111111111111111111111111111/comments"
                    },
                    "diff": {
                        "href": "https://api.bitbucket.org/2.0/repositories/workspace/start_repo/diff/1111111111111111111111111111111111111111"
                    },
                    "html": {
                        "href": "https://bitbucket.org/workspace/start_repo/commits/1111111111111111111111111111111111111111"
                    },
                    "patch": {
                        "href": "https://api.bitbucket.org/2.0/repositories/workspace/start_repo/patch/1111111111111111111111111111111111111111"
                    },
                    "self": {
                        "href": "https://api.bitbucket.org/2.0/repositories/workspace/start_repo/commit/1111111111111111111111111111111111111111"
                    },
                    "statuses": {
                        "href": "https://api.bitbucket.org/2.0/repositories/workspace/start_repo/commit/1111111111111111111111111111111111111111/statuses"
                    }
                },
                "message": "delete the new file",
                "parents": [
                    {
                        "hash": "1111111111111111111111111111111111111111",
                        "links": {
                            "html": {
                                "href": "https://bitbucket.org/workspace/start_repo/commits/1111111111111111111111111111111111111111"
                            },
                            "self": {
                                "href": "https://api.bitbucket.org/2.0/repositories/workspace/start_repo/commit/1111111111111111111111111111111111111111"
                            }
                        },
                        "type": "commit"
                    }
                ],
                "repository": {
                    "full_name": "workspace/start_repo",
                    "links": {
                        "avatar": {
                            "href": "https://bytebucket.org/ravatar/%11111111-1111-1111-1111-11111111111%11?ts=default"
                        },
                        "html": {
                            "href": "https://bitbucket.org/workspace/start_repo"
                        },
                        "self": {
                            "href": "https://api.bitbucket.org/2.0/repositories/workspace/start_repo"
                        }
                    },
                    "name": "start_repo",
                    "type": "repository",
                    "uuid": "{11111111-1111-1111-1111-111111111111}"
                },
                "type": "commit"
            },
            "type": "branch"
        }
    }
}

Human Readable Output

Information about the branch: master

Name LastCommitCreatedAt LastCommitHash  
master Some User 2022-09-18T08:07:00+00:00 1111111111111111111111111111111111111111

bitbucket-branch-create


Creates a new branch in Bitbucket.

Base Command

bitbucket-branch-create

Input

Argument Name Description Required
repo The repository name or slug. Optional
name The name of the new branch. Required
target_branch The name of the branch from which the new branch will be created. Required
partial_response Return a partial response if true, else return the full API response. Possible values are: true, false. Default is true. Optional

Context Output

Path Type Description
Bitbucket.Branch.name String The name of the new branch.
Bitbucket.Branch.target.type String The type of the last action in the target branch.
Bitbucket.Branch.target.hash String The hash of the last action in the target branch.
Bitbucket.Branch.target.date Date The date of the last action in the target branch.
Bitbucket.Branch.target.author.type String The type of the author of the last action in the target branch.
Bitbucket.Branch.target.author.raw String The raw information about the author of the last action in the target branch.
Bitbucket.Branch.target.author.user.display_name String The display name of the author of the last action in the target branch.
Bitbucket.Branch.target.author.user.links String The links with the information about the author of the last action in the target branch.
Bitbucket.Branch.target.author.user.type String The user type of the author of the last action in the target branch.
Bitbucket.Branch.target.author.user.uuid String The unique ID of the author of the last action in the target branch.
Bitbucket.Branch.target.author.user.account_id String The account ID of the author of the last action in the target branch.
Bitbucket.Branch.target.author.user.nickname String The nickname of the author of the last action in the target branch.
Bitbucket.Branch.target.message String The message in the last action in the target branch.
Bitbucket.Branch.target.links String The links with the information about the target branch.
Bitbucket.Branch.target.parents.type String The type of the parent action of the last action in the target branch.
Bitbucket.Branch.target.parents.hash String The hash of the parent action of the last action in the target branch.
Bitbucket.Branch.target.parents.links String The links associated with the parents of the command.
Bitbucket.Branch.target.repository.type String The type of the repository of the target branch.
Bitbucket.Branch.target.repository.full_name String The full name of the repository of the target branch.
Bitbucket.Branch.target.repository.links String The links with the information about the repository of the target branch.
Bitbucket.Branch.target.repository.name String The name of the repository of the target branch.
Bitbucket.Branch.target.repository.uuid String The unique ID of the repository of the target branch.
Bitbucket.Branch.links String The links with the information about the new branch.
Bitbucket.Branch.type String The type of the new branch.
Bitbucket.Branch.merge_strategies String The merge strategies of the new branch.
Bitbucket.Branch.default_merge_strategy String The default merge strategy in the new branch.

Command example

!bitbucket-branch-create name=testing target_branch=master

Context Example

{
    "Bitbucket": {
        "Branch": {
            "default_merge_strategy": "merge_commit",
            "links": {
                "commits": {
                    "href": "https://api.bitbucket.org/2.0/repositories/workspace/start_repo/commits/testing"
                },
                "html": {
                    "href": "https://bitbucket.org/workspace/start_repo/branch/testing"
                },
                "self": {
                    "href": "https://api.bitbucket.org/2.0/repositories/workspace/start_repo/refs/branches/testing"
                }
            },
            "merge_strategies": [
                "merge_commit",
                "squash",
                "fast_forward"
            ],
            "name": "testing",
            "target": {
                "author": {
                    "raw": "Some User <someuser@gmail.com>",
                    "type": "author",
                    "user": {
                        "account_id": "1111111111111111111111",
                        "display_name": "Some user",
                        "links": {
                            "avatar": {
                                "href": "https://secure.gravatar.com/avatar/?d=https1avatar-management--avatars.us-west-2.prod.public.atl-paas.net%initials%1111-1.png"
                            },
                            "html": {
                                "href": "https://bitbucket.org/%11111111-1111-1111-1111-111111111111%11/"
                            },
                            "self": {
                                "href": "https://api.bitbucket.org/2.0/users/%11111111-1111-1111-1111-1111111111%11"
                            }
                        },
                        "nickname": "Some User",
                        "type": "user",
                        "uuid": "{11111111-1111-1111-1111-111111111111}"
                    }
                },
                "date": "2022-09-18T08:00:00+00:00",
                "hash": "1111111111111111111111111111111111111111",
                "links": {
                    "approve": {
                        "href": "https://api.bitbucket.org/2.0/repositories/workspace/start_repo/commit/1111111111111111111111111111111111111111/approve"
                    },
                    "comments": {
                        "href": "https://api.bitbucket.org/2.0/repositories/workspace/start_repo/commit/1111111111111111111111111111111111111111/comments"
                    },
                    "diff": {
                        "href": "https://api.bitbucket.org/2.0/repositories/workspace/start_repo/diff/1111111111111111111111111111111111111111"
                    },
                    "html": {
                        "href": "https://bitbucket.org/workspace/start_repo/commits/1111111111111111111111111111111111111111"
                    },
                    "patch": {
                        "href": "https://api.bitbucket.org/2.0/repositories/workspace/start_repo/patch/1111111111111111111111111111111111111111"
                    },
                    "self": {
                        "href": "https://api.bitbucket.org/2.0/repositories/workspace/start_repo/commit/1111111111111111111111111111111111111111"
                    },
                    "statuses": {
                        "href": "https://api.bitbucket.org/2.0/repositories/workspace/start_repo/commit/1111111111111111111111111111111111111111/statuses"
                    }
                },
                "message": "delete the new file",
                "parents": [
                    {
                        "hash": "1111111111111111111111111111111111111111",
                        "links": {
                            "html": {
                                "href": "https://bitbucket.org/workspace/start_repo/commits/1111111111111111111111111111111111111111"
                            },
                            "self": {
                                "href": "https://api.bitbucket.org/2.0/repositories/workspace/start_repo/commit/1111111111111111111111111111111111111111"
                            }
                        },
                        "type": "commit"
                    }
                ],
                "repository": {
                    "full_name": "workspace/start_repo",
                    "links": {
                        "avatar": {
                            "href": "https://bytebucket.org/ravatar/%1111%11?ts=default"
                        },
                        "html": {
                            "href": "https://bitbucket.org/workspace/start_repo"
                        },
                        "self": {
                            "href": "https://api.bitbucket.org/2.0/repositories/workspace/start_repo"
                        }
                    },
                    "name": "start_repo",
                    "type": "repository",
                    "uuid": "{11111111-1111-1111-1111-111111111111}"
                },
                "type": "commit"
            },
            "type": "branch"
        }
    }
}

Human Readable Output

The branch “testing” was created successfully.

bitbucket-branch-delete


Deletes the given branch from Bitbucket.

Base Command

bitbucket-branch-delete

Input

Argument Name Description Required
repo The repository name or slug. Optional
branch_name The name of the branch to delete. Required

Context Output

There is no context output for this command.

Command example

!bitbucket-branch-delete branch_name=testing

Human Readable Output

The branch testing was deleted successfully.

bitbucket-commit-create


Creates a new commit in Bitbucket.

Base Command

bitbucket-commit-create

Input

Argument Name Description Required
repo The repository name or slug. Optional
message Commit a message with the file. Required
branch This branch will be associated with the committed file. Required
file_name The name of the file to commit. Optional
file_content The content of the file to commit. Optional
entry_id The entry_id of the file to commit. This is the EntryId from uploading a file to the War Room. Optional
author_name The name of the author of the file. Optional
author_email The email of the author of the file. Optional

Context Output

There is no context output for this command.

Command example

!bitbucket-commit-create branch=master message="checking master" file_name="new_file.txt" file_content="some new content"

Human Readable Output

The commit was created successfully.

bitbucket-commit-list


Returns a list of the commit in accordance with the included and excluded branches.

Base Command

bitbucket-commit-list

Input

Argument Name Description Required
repo The repository name or slug. Optional
file_path Will limit the results to commits that affect that path. Optional
excluded_branches A comma-separated list of branches to exclude from the commits that are returned. Optional
included_branches A comma-separated list of branches to include in the commits that are returned. Optional
limit The maximum number of items in the list. The default value is 50. Optional
page The specific result page to display. Optional
partial_response Return a partial response if true, else return the full API response. Possible values are: true, false. Default is true. Optional

Context Output

Path Type Description
Bitbucket.Commit.type String The type of the commit.
Bitbucket.Commit.hash String The commit hash.
Bitbucket.Commit.date Date The creation date of the commit.
Bitbucket.Commit.author.type String The type of the author.
Bitbucket.Commit.author.raw String The raw information about the author, including the display name and user email.
Bitbucket.Commit.author.user.display_name String The display name of the author.
Bitbucket.Commit.author.user.links String Links with information about the author.
Bitbucket.Commit.author.user.type String The user type of the author.
Bitbucket.Commit.author.user.uuid String The user unique key of the author.
Bitbucket.Commit.author.user.account_id String The user account ID of the author.
Bitbucket.Commit.author.user.nickname String The user nickname of the author.
Bitbucket.Commit.message String The commit message.
Bitbucket.Commit.summary.type String The type of the summary.
Bitbucket.Commit.summary.raw String The raw summary of the commit.
Bitbucket.Commit.summary.markup String The text styling type, such as markdown.
Bitbucket.Commit.summary.html String The summary in HTML format.
Bitbucket.Commit.links String Links with information about the commit.
Bitbucket.Commit.parents.type String The type of the commit parents.
Bitbucket.Commit.parents.hash String The hash of the commit parents.
Bitbucket.Commit.parents.links String Links with information about the parents.
Bitbucket.Commit.repository.type String The type of the repository.
Bitbucket.Commit.repository.full_name String The full name of the repository.
Bitbucket.Commit.repository.links.self.href String Links with information about the repository.
Bitbucket.Commit.repository.name String The name of the repository.
Bitbucket.Commit.repository.uuid String The unique ID of the repository.

Command example

!bitbucket-commit-list limit=2

Context Example

{
    "Bitbucket": {
        "Commit": [
            {
                "author": {
                    "raw": "Some User <someuser@gmail.com>",
                    "type": "author",
                    "user": {
                        "account_id": "111111111111",
                        "display_name": "Display Name",
                        "links": {
                            "avatar": {
                                "href": "https://secure.gravatar.com/avatar/111111111111111111111111111?d=httpsFavatar-management--avatars.us-west-2.prod.public.atl-paas.net%initials%1111-1.png"
                            },
                            "html": {
                                "href": "https://bitbucket.org/%11111111-1111-1111-1111-111111111111%11/"
                            },
                            "self": {
                                "href": "https://api.bitbucket.org/2.0/users/%11111111-1111-1111-1111-111111111111%11"
                            }
                        },
                        "nickname": "nickname",
                        "type": "user",
                        "uuid": "{11111111-1111-1111-1111-111111111111}"
                    }
                },
                "date": "2022-09-18T08:00:00+00:00",
                "hash": "1111111111111111111111111111111111111111",
                "links": {
                    "approve": {
                        "href": "https://api.bitbucket.org/2.0/repositories/workspace/start_repo/commit/1111111111111111111111111111111111111111/approve"
                    },
                    "comments": {
                        "href": "https://api.bitbucket.org/2.0/repositories/workspace/start_repo/commit/1111111111111111111111111111111111111111/comments"
                    },
                    "diff": {
                        "href": "https://api.bitbucket.org/2.0/repositories/workspace/start_repo/diff/1111111111111111111111111111111111111111"
                    },
                    "html": {
                        "href": "https://bitbucket.org/workspace/start_repo/commits/1111111111111111111111111111111111111111"
                    },
                    "patch": {
                        "href": "https://api.bitbucket.org/2.0/repositories/workspace/start_repo/patch/1111111111111111111111111111111111111111"
                    },
                    "self": {
                        "href": "https://api.bitbucket.org/2.0/repositories/workspace/start_repo/commit/1111111111111111111111111111111111111111"
                    },
                    "statuses": {
                        "href": "https://api.bitbucket.org/2.0/repositories/workspace/start_repo/commit/1111111111111111111111111111111111111111/statuses"
                    }
                },
                "message": "checking master",
                "parents": [
                    {
                        "hash": "1111111111111111111111111111111111111111",
                        "links": {
                            "html": {
                                "href": "https://bitbucket.org/workspace/start_repo/commits/1111111111111111111111111111111111111111"
                            },
                            "self": {
                                "href": "https://api.bitbucket.org/2.0/repositories/workspace/start_repo/commit/1111111111111111111111111111111111111111"
                            }
                        },
                        "type": "commit"
                    }
                ],
                "rendered": {
                    "message": {
                        "html": "<p>checking master</p>",
                        "markup": "markdown",
                        "raw": "checking master",
                        "type": "rendered"
                    }
                },
                "repository": {
                    "full_name": "workspace/start_repo",
                    "links": {
                        "avatar": {
                            "href": "https://bytebucket.org/ravatar/%1111111111-1111-1111-1111-1111111111%11?ts=default"
                        },
                        "html": {
                            "href": "https://bitbucket.org/workspace/start_repo"
                        },
                        "self": {
                            "href": "https://api.bitbucket.org/2.0/repositories/workspace/start_repo"
                        }
                    },
                    "name": "start_repo",
                    "type": "repository",
                    "uuid": "{11111111-1111-1111-1111-111111111111}"
                },
                "summary": {
                    "html": "<p>checking master</p>",
                    "markup": "markdown",
                    "raw": "checking master",
                    "type": "rendered"
                },
                "type": "commit"
            },
            {
                "author": {
                    "raw": "Some User <someuser@gmail.com>",
                    "type": "author",
                    "user": {
                        "account_id": "111111111111111111111111",
                        "display_name": "Some User",
                        "links": {
                            "avatar": {
                                "href": "https://secure.gravatar.com/avatar/?d=httpsFavatar-management--avatars.us-west-2.prod.public.atl-paas.net%2Finitials%1111-1.png"
                            },
                            "html": {
                                "href": "https://bitbucket.org/%%11/"
                            },
                            "self": {
                                "href": "https://api.bitbucket.org/2.0/users/%%11"
                            }
                        },
                        "nickname": "Some User",
                        "type": "user",
                        "uuid": "{11111111-1111-1111-1111-111111111111}"
                    }
                },
                "date": "2022-09-18T08:07:38+00:00",
                "hash": "1111111111111111111111111111111111111111",
                "links": {
                    "approve": {
                        "href": "https://api.bitbucket.org/2.0/repositories/workspace/start_repo/commit/1111111111111111111111111111111111111111/approve"
                    },
                    "comments": {
                        "href": "https://api.bitbucket.org/2.0/repositories/workspace/start_repo/commit/1111111111111111111111111111111111111111/comments"
                    },
                    "diff": {
                        "href": "https://api.bitbucket.org/2.0/repositories/workspace/start_repo/diff/1111111111111111111111111111111111111111"
                    },
                    "html": {
                        "href": "https://bitbucket.org/workspace/start_repo/commits/1111111111111111111111111111111111111111"
                    },
                    "patch": {
                        "href": "https://api.bitbucket.org/2.0/repositories/workspace/start_repo/patch/1111111111111111111111111111111111111111"
                    },
                    "self": {
                        "href": "https://api.bitbucket.org/2.0/repositories/workspace/start_repo/commit/1111111111111111111111111111111111111111"
                    },
                    "statuses": {
                        "href": "https://api.bitbucket.org/2.0/repositories/workspace/start_repo/commit/1111111111111111111111111111111111111111/statuses"
                    }
                },
                "message": "delete the new file",
                "parents": [
                    {
                        "hash": "1111111111111111111111111111111111111111",
                        "links": {
                            "html": {
                                "href": "https://bitbucket.org/workspace/start_repo/commits/1111111111111111111111111111111111111111"
                            },
                            "self": {
                                "href": "https://api.bitbucket.org/2.0/repositories/workspace/start_repo/commit/1111111111111111111111111111111111111111"
                            }
                        },
                        "type": "commit"
                    }
                ],
                "rendered": {
                    "message": {
                        "html": "<p>delete the new file</p>",
                        "markup": "markdown",
                        "raw": "delete the new file",
                        "type": "rendered"
                    }
                },
                "repository": {
                    "full_name": "workspace/start_repo",
                    "links": {
                        "avatar": {
                            "href": "https://bytebucket.org/ravatar/%1111111111-1111-1111-1111-111111111111%7D?ts=default"
                        },
                        "html": {
                            "href": "https://bitbucket.org/workspace/start_repo"
                        },
                        "self": {
                            "href": "https://api.bitbucket.org/2.0/repositories/workspace/start_repo"
                        }
                    },
                    "name": "start_repo",
                    "type": "repository",
                    "uuid": "{11111111-1111-1111-1111-111111111111}"
                },
                "summary": {
                    "html": "<p>delete the new file</p>",
                    "markup": "markdown",
                    "raw": "delete the new file",
                    "type": "rendered"
                },
                "type": "commit"
            }
        ]
    }
}

Human Readable Output

The list of commits

Author Commit Message CreatedAt
Some User someuser@gmail.com 1111111111111111111111111111111111111111 checking master 2022-09-18T08:56:51+00:00
Some User someuser@gmail.com 1111111111111111111111111111111111111111 delete the new file 2022-09-18T08:07:38+00:00

bitbucket-file-delete


Deletes the given file from Bitbucket.

Base Command

bitbucket-file-delete

Input

Argument Name Description Required
repo The repository name or slug. Optional
message Commit a message with the file. Required
branch The branch of the file to delete. Required
file_name The name of the file to delete. Required
author_name The name of the author of the file. Optional
author_email The email of the author of the file. Optional

Context Output

There is no context output for this command.

Command example

!bitbucket-file-delete branch=master file_name=new_file.txt message="delete the new file"

Human Readable Output

The file was deleted successfully.

bitbucket-raw-file-get


Returns the content of the given file, along with the option to download it.

Base Command

bitbucket-raw-file-get

Input

Argument Name Description Required
repo The repository name or slug. Optional
file_path The path of the needed file. Required
branch The branch of the file. If a branch isn’t given, by default the command will return the content of the last edited file with the same file_path. Optional

Context Output

Path Type Description
Bitbucket.RawFile.file_path String The path of the file.
Bitbucket.RawFile.file_content String The content of the file.
InfoFile.Size Number The size of the file.
InfoFile.Name String The name of the file.
InfoFile.EntryID String The entry ID of the file.
InfoFile.Info String File information.
InfoFile.Type String The file type.

Command example

!bitbucket-raw-file-get file_path=new.txt branch=branch

Context Example

{
    "Bitbucket": {
        "RawFile": {
            "file_content":"Hi I am a new file.",
            "file_path": "new.txt"
        }
    },
    "File": {
        "EntryID": "111111111111-1111-1111-1111-111111111111",
        "Extension": "txt",
        "Info": "txt",
        "MD5": "11111111111111111111111111111111",
        "Name": "new.txt",
        "SHA1": "1111111111111111111111111111111111111111",
        "SHA256": "111111111111111111111111111111111111111111111111111111111111111111",
        "SHA512": "11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111",
        "SSDeep": "11:1111111111111111111111111111111111111111111111111111111111111111111111111111111111",
        "Size": 19,
        "Type": "text/plain; charset=utf-8"
    }
}

Human Readable Output

The content of the file “new.txt” is: Hi I am a new file.

bitbucket-issue-create


Deprecated. Issues are fully removed from Bitbucket Cloud by Atlassian as of Mid-August 2026. Use the jira-create-issue command in the Atlassian Jira v3 integration instead. Creates an issue in Bitbucket.

Required Permissions

In order to perform this command, please create an issue tracker by clicking on the relevant repo -> Repository settings -> Issue tracker

Base Command

bitbucket-issue-create

Input

Argument Name Description Required
repo The repository name or slug. Optional
title The title of the new issue. Required
state The state of the issues to create. Possible values are: new, open, resolved, on hold, invalid, duplicate, wontfix, closed. Default is new. Optional
type The type of the issues to create. Possible values are: bug, enhancement, proposal, task. Default is bug. Optional
priority The priority of the issues to create. Possible values are: trivial, minor, major, critical, blocker. Default is major. Optional
content The content of the issue to create. Optional
assignee_id The ID of the assignee of the issue to create. To get the assignee_id, use the !bitbucket-workspace-member-list command, and use the field AccountId. Optional
assignee_user_name The user name of the assignee of the issue to create. Optional
partial_response Return a partial response if true, else return the full API response. Possible values are: true, false. Default is true. Optional

Context Output

Path Type Description
Bitbucket.Issue.type String The action type.
Bitbucket.Issue.id Number The ID of the issue.
Bitbucket.Issue.repository.type String The type of the repository.
Bitbucket.Issue.repository.full_name String The full name of the repository.
Bitbucket.Issue.repository.links String Links with information about the repository related to the issue.
Bitbucket.Issue.repository.name String The name of the repository.
Bitbucket.Issue.repository.uuid String The unique ID of the repository.
Bitbucket.Issue.links.self.href String An API link to the issue.
Bitbucket.Issue.title String The title of the issue
Bitbucket.Issue.content.type String The type of the content.
Bitbucket.Issue.content.raw String The content of the issue.
Bitbucket.Issue.content.markup String The type of markup (like markdown).
Bitbucket.Issue.content.html String The content of the issue in HTML format.
Bitbucket.Issue.reporter.display_name String The display name of the reporter of the issue.
Bitbucket.Issue.reporter.links String Links with information about the reporter.
Bitbucket.Issue.reporter.type String The type of the reporter.
Bitbucket.Issue.reporter.uuid String The unique ID of the reporter
Bitbucket.Issue.reporter.account_id String The account ID of the reporter.
Bitbucket.Issue.reporter.nickname String The nickname of the reporter.
Bitbucket.Issue.assignee.display_name String The display name of the assignee to the issue.
Bitbucket.Issue.assignee.links String Links with information about the assignee.
Bitbucket.Issue.assignee.type String The type of the assignee.
Bitbucket.Issue.assignee.uuid String The unique ID of the assignee.
Bitbucket.Issue.assignee.account_id String The account ID of the assignee.
Bitbucket.Issue.assignee.nickname String The nickname of the assignee.
Bitbucket.Issue.created_on String The creation date of the issue.
Bitbucket.Issue.edited_on Unknown The edit date of the issue.
Bitbucket.Issue.updated_on String The update date of the issue.
Bitbucket.Issue.state String The state of the issue.
Bitbucket.Issue.kind String The kind of the issue.
Bitbucket.Issue.milestone Unknown The milestones in the issue.
Bitbucket.Issue.component Unknown The different components of the issue.
Bitbucket.Issue.priority String The priority of the issue.
Bitbucket.Issue.version Unknown The version of the issue.
Bitbucket.Issue.votes Number The votes of approval of the issue.
Bitbucket.Issue.watches Unknown The watchers of the issue.

Command example

!bitbucket-issue-create title="a new issue"

Context Example

{
    "Bitbucket": {
        "Issue": {
            "assignee": null,
            "component": null,
            "content": {
                "html": "",
                "markup": "markdown",
                "raw": "",
                "type": "rendered"
            },
            "created_on": "2022-09-18T08:00:00.000000+00:00",
            "edited_on": null,
            "id": 92,
            "kind": "bug",
            "links": {
                "self": {
                    "href": "https://api.bitbucket.org/2.0/repositories/workspace/start_repo/issues/92"
                }
            },
            "milestone": null,
            "priority": "major",
            "reporter": {
                "account_id": "111111111111111111111111",
                "display_name": "Some User",
                "links": {
                    "avatar": {
                        "href": "https://secure.gravatar.com/avatar/?d=httpsavatar-management--avatars.us-west-2.prod.public.atl-paas.net%2Finitials%1111-1.png"
                    },
                    "html": {
                        "href": "https://bitbucket.org/%7B11111111-1111-1111-1111-111111111111%7D/"
                    },
                    "self": {
                        "href": "https://api.bitbucket.org/2.0/users/%7B11111111-1111-1111-1111-111111111111%7D"
                    }
                },
                "nickname": "Some User",
                "type": "user",
                "uuid": "{11111111-1111-1111-1111-111111111111}"
            },
            "repository": {
                "full_name": "workspace/start_repo",
                "links": {
                    "avatar": {
                        "href": "https://bytebucket.org/ravatar/%1111111111-1111-1111-1111-111111111111%11?ts=default"
                    },
                    "html": {
                        "href": "https://bitbucket.org/workspace/start_repo"
                    },
                    "self": {
                        "href": "https://api.bitbucket.org/2.0/repositories/workspace/start_repo"
                    }
                },
                "name": "start_repo",
                "type": "repository",
                "uuid": "{11111111-1111-1111-1111-111111111111}"
            },
            "state": "new",
            "title": "a new issue",
            "type": "issue",
            "updated_on": "2022-09-18T08:00:00.000000+00:00",
            "version": null,
            "votes": 0,
            "watches": null
        }
    }
}

Human Readable Output

The issue “a new issue” was created successfully

bitbucket-issue-list


Deprecated. Issues are fully removed from Bitbucket Cloud by Atlassian as of Mid-August 2026. Use the jira-get-issue command (for a single issue) or the jira-issue-query command (to list issues using JQL) in the Atlassian Jira v3 integration instead. If an issue_id is given, returns the information about it. Otherwise, returns a list of all the issues, according to the limit parameter.

Base Command

bitbucket-issue-list

Input

Argument Name Description Required
repo The repository name or slug. Optional
issue_id The ID of the requested issue. To get the issue_id, use the !bitbucket-issue-list command. Optional
limit The maximum number of items in the list. The default value is 50. Optional
page The specific result page to display. Optional
partial_response Return a partial response if true, else return the full API response. Possible values are: true, false. Default is true. Optional

Context Output

Path Type Description
Bitbucket.Issue.type String The action type.
Bitbucket.Issue.id Number The ID of the issue.
Bitbucket.Issue.repository.type String The type of the repository.
Bitbucket.Issue.repository.full_name String The full name of the repository.
Bitbucket.Issue.repository.links String Links with information about the repository related to the issue.
Bitbucket.Issue.repository.name String The name of the repository.
Bitbucket.Issue.repository.uuid String The unique ID of the repository.
Bitbucket.Issue.links String Links with information about the issue.
Bitbucket.Issue.title String The title of the issue.
Bitbucket.Issue.content.type String The type of the content.
Bitbucket.Issue.content.raw String The content of the issue.
Bitbucket.Issue.content.markup String The type of markup (like markdown).
Bitbucket.Issue.content.html String The content of the issue in HTML format.
Bitbucket.Issue.reporter.display_name String The display name of the reporter of the issue.
Bitbucket.Issue.reporter.links String Links with information about the reporter.
Bitbucket.Issue.reporter.type String The type of the reporter.
Bitbucket.Issue.reporter.uuid String The unique ID of the reporter
Bitbucket.Issue.reporter.account_id String The account ID of the reporter.
Bitbucket.Issue.reporter.nickname String The nickname of the reporter.
Bitbucket.Issue.assignee.display_name String The display name of the assignee to the issue.
Bitbucket.Issue.assignee.links String Links with information about the assignee.
Bitbucket.Issue.assignee.type String The type of the assignee.
Bitbucket.Issue.assignee.uuid String The unique ID of the assignee.
Bitbucket.Issue.assignee.account_id String The account ID of the assignee.
Bitbucket.Issue.assignee.nickname String The nickname of the assignee.
Bitbucket.Issue.created_on String The creation date of the issue.
Bitbucket.Issue.edited_on Unknown The edit date of the issue.
Bitbucket.Issue.updated_on String The update date of the issue.
Bitbucket.Issue.state String The state ID of the issue.
Bitbucket.Issue.kind String The kind of the issue.
Bitbucket.Issue.milestone Unknown The milestones in the issue.
Bitbucket.Issue.component Unknown The different components of the issue.
Bitbucket.Issue.priority String The priority of the issue.
Bitbucket.Issue.version Unknown The version of the issue.
Bitbucket.Issue.votes Number The votes of approval of the issue.
Bitbucket.Issue.watches Number The watchers of the issue.

Command example

!bitbucket-issue-list limit=2

Context Example

{
    "Bitbucket": {
        "Issue": [
            {
                "assignee": null,
                "component": null,
                "content": {
                    "html": "",
                    "markup": "markdown",
                    "raw": "",
                    "type": "rendered"
                },
                "created_on": "2022-09-18T08:00:00.000000+00:00",
                "edited_on": null,
                "id": 92,
                "kind": "bug",
                "links": {
                    "attachments": {
                        "href": "https://api.bitbucket.org/2.0/repositories/workspace/start_repo/issues/92/attachments"
                    },
                    "comments": {
                        "href": "https://api.bitbucket.org/2.0/repositories/workspace/start_repo/issues/92/comments"
                    },
                    "html": {
                        "href": "https://bitbucket.org/workspace/start_repo/issues/92/a-new-issue"
                    },
                    "self": {
                        "href": "https://api.bitbucket.org/2.0/repositories/workspace/start_repo/issues/92"
                    },
                    "vote": {
                        "href": "https://api.bitbucket.org/2.0/repositories/workspace/start_repo/issues/92/vote"
                    },
                    "watch": {
                        "href": "https://api.bitbucket.org/2.0/repositories/workspace/start_repo/issues/92/watch"
                    }
                },
                "milestone": null,
                "priority": "major",
                "reporter": {
                    "account_id": "111111111111111111111111",
                    "display_name": "Some User",
                    "links": {
                        "avatar": {
                            "href": "https://secure.gravatar.com/avatar/?d=httpsavatar-management--avatars.us-west-2.prod.public.atl-paas.net%1Finitials%1111-1.png"
                        },
                        "html": {
                            "href": "https://bitbucket.org/%7B11111111-1111-1111-1111-111111111111%7D/"
                        },
                        "self": {
                            "href": "https://api.bitbucket.org/2.0/users/%7B11111111-1111-1111-1111-111111111111%7D"
                        }
                    },
                    "nickname": "Some User",
                    "type": "user",
                    "uuid": "{11111111-1111-1111-1111-111111111111}"
                },
                "repository": {
                    "full_name": "workspace/start_repo",
                    "links": {
                        "avatar": {
                            "href": "https://bytebucket.org/ravatar/%1111111111-1111-1111-1111-111111111111%11?ts=default"
                        },
                        "html": {
                            "href": "https://bitbucket.org/workspace/start_repo"
                        },
                        "self": {
                            "href": "https://api.bitbucket.org/2.0/repositories/workspace/start_repo"
                        }
                    },
                    "name": "start_repo",
                    "type": "repository",
                    "uuid": "{11111111-1111-1111-1111-111111111111}"
                },
                "state": "new",
                "title": "a new issue",
                "type": "issue",
                "updated_on": "2022-09-18T08:57:05.560996+00:00",
                "version": null,
                "votes": 0,
                "watches": 1
            },
            {
                "assignee": null,
                "component": null,
                "content": {
                    "html": "",
                    "markup": "markdown",
                    "raw": "",
                    "type": "rendered"
                },
                "created_on": "2022-09-18T08:00:00.000000+00:00",
                "edited_on": null,
                "id": 91,
                "kind": "bug",
                "links": {
                    "attachments": {
                        "href": "https://api.bitbucket.org/2.0/repositories/workspace/start_repo/issues/91/attachments"
                    },
                    "comments": {
                        "href": "https://api.bitbucket.org/2.0/repositories/workspace/start_repo/issues/91/comments"
                    },
                    "html": {
                        "href": "https://bitbucket.org/workspace/start_repo/issues/91/a-new-issue"
                    },
                    "self": {
                        "href": "https://api.bitbucket.org/2.0/repositories/workspace/start_repo/issues/91"
                    },
                    "vote": {
                        "href": "https://api.bitbucket.org/2.0/repositories/workspace/start_repo/issues/91/vote"
                    },
                    "watch": {
                        "href": "https://api.bitbucket.org/2.0/repositories/workspace/start_repo/issues/91/watch"
                    }
                },
                "milestone": null,
                "priority": "major",
                "reporter": {
                    "account_id": "111111111111111111111111",
                    "display_name": "Some User",
                    "links": {
                        "avatar": {
                            "href": "https://secure.gravatar.com/avatar/?d=httpsavatar-management--avatars.us-west-2.prod.public.atl-paas.net%initials%1111-1.png"
                        },
                        "html": {
                            "href": "https://bitbucket.org/%7B11111111-1111-1111-1111-111111111111%7D/"
                        },
                        "self": {
                            "href": "https://api.bitbucket.org/2.0/users/%7B11111111-1111-1111-1111-111111111111%7D"
                        }
                    },
                    "nickname": "Some User",
                    "type": "user",
                    "uuid": "{11111111-1111-1111-1111-111111111111}"
                },
                "repository": {
                    "full_name": "workspace/start_repo",
                    "links": {
                        "avatar": {
                            "href": "https://bytebucket.org/ravatar/%1111111111-1111-1111-1111-111111111111%11?ts=default"
                        },
                        "html": {
                            "href": "https://bitbucket.org/workspace/start_repo"
                        },
                        "self": {
                            "href": "https://api.bitbucket.org/2.0/repositories/workspace/start_repo"
                        }
                    },
                    "name": "start_repo",
                    "type": "repository",
                    "uuid": "{11111111-1111-1111-1111-111111111111}"
                },
                "state": "resolved",
                "title": "a new issue",
                "type": "issue",
                "updated_on": "2022-09-18T08:00:00.000000+00:00",
                "version": null,
                "votes": 0,
                "watches": 1
            }
        ]
    }
}

Human Readable Output

Issues List

Id Title Type Priority Status Votes CreatedAt UpdatedAt
92 a new issue bug major new 0 2022-09-18T08:00:00.000000+00:00 2022-09-18T08:00:00.000000+00:00
91 a new issue bug major resolved 0 2022-09-18T08:00:00.000000+00:00 2022-09-18T08:00:00.000000+00:00

bitbucket-issue-update


Deprecated. Issues are fully removed from Bitbucket Cloud by Atlassian as of Mid-August 2026. Use the jira-edit-issue command in the Atlassian Jira v3 integration instead. Updates an issue in Bitbucket.

Required Permissions

In order to perform this command, please create an issue tracker by clicking on the relevant repo -> Repository settings -> Issue tracker.

Base Command

bitbucket-issue-update

Input

Argument Name Description Required
repo The repository name or slug. Optional
title The title of the new issue. Required
issue_id The ID of the issue to update. To get the issue_id, use the !bitbucket-issue-list command. Required
state The state of the issues to create. Possible values are: new, open, resolved, on hold, invalid, duplicate, wontfix, closed. Optional
type The type of the issues to create. Possible values are: bug, enhancement, proposal, task. Optional
priority The priority of the issues to create. Possible values are: trivial, minor, major, critical, blocker. Optional
content The content of the issue to create. Optional
assignee_id The ID of the assignee of the issue to create. To get the assignee_id, use the !bitbucket-workspace-member-list command, and use the field AccountId. Optional
assignee_user_name The user name of the assignee of the issue to create. Optional
partial_response Return a partial response if true, else return the full API response. Possible values are: true, false. Default is true. Optional

Context Output

Path Type Description
Bitbucket.Issue.type String The action type.
Bitbucket.Issue.id Number The ID of the issue.
Bitbucket.Issue.repository.type String The type of the repository.
Bitbucket.Issue.repository.full_name String The full name of the repository.
Bitbucket.Issue.repository.links String Links with information about the repository related to the issue.
Bitbucket.Issue.repository.name String The name of the repository.
Bitbucket.Issue.repository.uuid String The unique ID of the repository.
Bitbucket.Issue.links String Links with information about the issue.
Bitbucket.Issue.title String The title of the issue.
Bitbucket.Issue.content.type String The type of the content.
Bitbucket.Issue.content.raw String The content of the issue.
Bitbucket.Issue.content.markup String The type of markup (like markdown).
Bitbucket.Issue.content.html String The content of the issue in HTML format.
Bitbucket.Issue.reporter.display_name String The display name of the reporter of the issue.
Bitbucket.Issue.reporter.links String Links with information about the reporter.
Bitbucket.Issue.reporter.type String The type of the reporter.
Bitbucket.Issue.reporter.uuid String The unique ID of the reporter.
Bitbucket.Issue.reporter.account_id String The account ID of the reporter.
Bitbucket.Issue.reporter.nickname String The nickname of the reporter.
Bitbucket.Issue.assignee.display_name String The display name of the assignee to the issue.
Bitbucket.Issue.assignee.links String Links with information about the assignee.
Bitbucket.Issue.assignee.type String The type of the assignee.
Bitbucket.Issue.assignee.uuid String The unique ID of the assignee.
Bitbucket.Issue.assignee.account_id String The account ID of the assignee.
Bitbucket.Issue.assignee.nickname String The nickname of the assignee.
Bitbucket.Issue.created_on String The creation date of the issue.
Bitbucket.Issue.edited_on Unknown The edit date of the issue.
Bitbucket.Issue.updated_on String The update date of the issue.
Bitbucket.Issue.state String The state ID of the issue.
Bitbucket.Issue.kind String The kind of the issue.
Bitbucket.Issue.milestone Unknown The milestones in the issue.
Bitbucket.Issue.component Unknown The different components of the issue.
Bitbucket.Issue.priority String The priority of the issue.
Bitbucket.Issue.version Unknown The version of the issue.
Bitbucket.Issue.votes Number The votes of approval of the issue.
Bitbucket.Issue.watches Number The watchers of the issue.

Command example

!bitbucket-issue-update issue_id=91 title="a new issue" state=resolved

Context Example

{
    "Bitbucket": {
        "Issue": {
            "assignee": null,
            "component": null,
            "content": {
                "html": "",
                "markup": "markdown",
                "raw": "",
                "type": "rendered"
            },
            "created_on": "2022-09-18T08:00:00.000000+00:00",
            "edited_on": null,
            "id": 91,
            "kind": "bug",
            "links": {
                "attachments": {
                    "href": "https://api.bitbucket.org/2.0/repositories/workspace/start_repo/issues/91/attachments"
                },
                "comments": {
                    "href": "https://api.bitbucket.org/2.0/repositories/workspace/start_repo/issues/91/comments"
                },
                "html": {
                    "href": "https://bitbucket.org/workspace/start_repo/issues/91/a-new-issue"
                },
                "self": {
                    "href": "https://api.bitbucket.org/2.0/repositories/workspace/start_repo/issues/91"
                },
                "vote": {
                    "href": "https://api.bitbucket.org/2.0/repositories/workspace/start_repo/issues/91/vote"
                },
                "watch": {
                    "href": "https://api.bitbucket.org/2.0/repositories/workspace/start_repo/issues/91/watch"
                }
            },
            "milestone": null,
            "priority": "major",
            "reporter": {
                "account_id": "111111111111111111111111",
                "display_name": "Some User",
                "links": {
                    "avatar": {
                        "href": "https://secure.gravatar.com/avatar/?d=httpsavatar-management--avatars.us-west-2.prod.public.atl-paas.net%Finitials%1111-1.png"
                    },
                    "html": {
                        "href": "https://bitbucket.org/%7B11111111-1111-1111-1111-111111111111%7D/"
                    },
                    "self": {
                        "href": "https://api.bitbucket.org/2.0/users/%7B11111111-1111-1111-1111-111111111111%7D"
                    }
                },
                "nickname": "Some User",
                "type": "user",
                "uuid": "{11111111-1111-1111-1111-111111111111}"
            },
            "repository": {
                "full_name": "workspace/start_repo",
                "links": {
                    "avatar": {
                        "href": "https://bytebucket.org/ravatar/%1111111111-1111-1111-1111-111111111111%11?ts=default"
                    },
                    "html": {
                        "href": "https://bitbucket.org/workspace/start_repo"
                    },
                    "self": {
                        "href": "https://api.bitbucket.org/2.0/repositories/workspace/start_repo"
                    }
                },
                "name": "start_repo",
                "type": "repository",
                "uuid": "{11111111-1111-1111-1111-111111111111}"
            },
            "state": "resolved",
            "title": "a new issue",
            "type": "issue",
            "updated_on": "2022-09-18T08:00:00.000000+00:00",
            "version": null,
            "votes": 0,
            "watches": 1
        }
    }
}

Human Readable Output

The issue with id “91” was updated successfully

bitbucket-pull-request-create


Creates a pull request in Bitbucket.

Base Command

bitbucket-pull-request-create

Input

Argument Name Description Required
repo The repository name or slug. Optional
title The title of the new pull request. Required
source_branch The branch that contains the proposed changes. Required
destination_branch The branch that will contain the changes after the merge process. Optional
reviewer_id A comma-separated list of account_ids of the person to review the pull request. To get the reviewer_id, use the !bitbucket-workspace-member-list command, and use the field AccountId. Optional
description A description of the pull request. Optional
close_source_branch Whether the source branch should be closed after the pull request. Possible values are: yes, no. Optional
partial_response Return a partial response if true, else return the full API response. Possible values are: true, false. Default is true. Optional

Context Output

Path Type Description
Bitbucket.PullRequest.comment_count Number The number of comments there are in the pull request.
Bitbucket.PullRequest.task_count Number The number of tasks there are in the pull request.
Bitbucket.PullRequest.type String The type of the request.
Bitbucket.PullRequest.id Number The pull request ID.
Bitbucket.PullRequest.title String The title of the pull request.
Bitbucket.PullRequest.description String The description of the pull request.
Bitbucket.PullRequest.rendered.title.type String The type of the title of the request.
Bitbucket.PullRequest.rendered.title.raw String The content of the rendered title.
Bitbucket.PullRequest.rendered.title.markup String The text styling type, such as markdown.
Bitbucket.PullRequest.rendered.title.html String The HTML format of the pull request title.
Bitbucket.PullRequest.rendered.description.type String The type of the pull request description
Bitbucket.PullRequest.rendered.description.raw String The content of the description of the pull request.
Bitbucket.PullRequest.rendered.description.markup String The text styling type, such as markdown.
Bitbucket.PullRequest.rendered.description.html String HTML format of the description content.
Bitbucket.PullRequest.state String The status of the pull request.
Bitbucket.PullRequest.merge_commit Unknown Whether it is a merge commit.
Bitbucket.PullRequest.close_source_branch Boolean Whether the branch should be closed after the merge.
Bitbucket.PullRequest.closed_by Unknown The user who closed the pull request.
Bitbucket.PullRequest.author.display_name String The display name of the author of the pull request.
Bitbucket.PullRequest.author.links String Links with information about the author of the pull request.
Bitbucket.PullRequest.author.type String The type of the author
Bitbucket.PullRequest.author.uuid String The unique universal ID of the author.
Bitbucket.PullRequest.author.account_id String The account ID of the author of the pull request.
Bitbucket.PullRequest.author.nickname String The nickname of the author.
Bitbucket.PullRequest.reason String The reason to create the request.
Bitbucket.PullRequest.created_on String The creation date of the request.
Bitbucket.PullRequest.updated_on String The date of the last update of the pull request.
Bitbucket.PullRequest.destination.branch.name String The name of the destination branch. This is the branch to merge to.
Bitbucket.PullRequest.destination.commit.type String The type of the commit.
Bitbucket.PullRequest.destination.commit.hash String The hash of the commit.
Bitbucket.PullRequest.destination.commit.links String Links with information about the commit.
Bitbucket.PullRequest.destination.repository.type String The type of the repository.
Bitbucket.PullRequest.destination.repository.full_name String The full name of the repository of the destination branch.
Bitbucket.PullRequest.destination.repository.links String Links with information about the repository of the destination branch.
Bitbucket.PullRequest.destination.repository.name String The name of the repository.
Bitbucket.PullRequest.destination.repository.uuid String The unique ID of the repository.
Bitbucket.PullRequest.source.branch.name String The name of the source branch. This is the branch with the changes that will be merged.
Bitbucket.PullRequest.source.commit.type String The type of the commit in the source branch.
Bitbucket.PullRequest.source.commit.hash String The hash of the commit in the source branch
Bitbucket.PullRequest.source.commit.links String Links with information about the commit in the source branch.
Bitbucket.PullRequest.source.repository.type String The type of the repository of the source branch.
Bitbucket.PullRequest.source.repository.full_name String The full name of the repository of the source branch.
Bitbucket.PullRequest.source.repository.links.self.href String Links with information about the repository of the source branch.
Bitbucket.PullRequest.source.repository.links String Links with information about the repository of the source branch.
Bitbucket.PullRequest.source.repository.name String The name of the repository of the source branch.
Bitbucket.PullRequest.source.repository.uuid String The unique ID of the repository of the source branch.
Bitbucket.PullRequest.reviewers.display_name String The display name of the reviewer.
Bitbucket.PullRequest.reviewers.links String Links with information about the reviewer.
Bitbucket.PullRequest.reviewers.type String The type of the reviewer.
Bitbucket.PullRequest.reviewers.uuid String The unique id of the reviewer.
Bitbucket.PullRequest.reviewers.account_id String The account id of the reviewer.
Bitbucket.PullRequest.reviewers.nickname String The nickname of the reviewer.
Bitbucket.PullRequest.participants.type String The type of the participant.
Bitbucket.PullRequest.participants.user.display_name String The display name of the participant.
Bitbucket.PullRequest.participants.user.links String Links with information about the user.
Bitbucket.PullRequest.participants.user.type String The type of the participant.
Bitbucket.PullRequest.participants.user.uuid String The unique id of the participant.
Bitbucket.PullRequest.participants.user.account_id String The account id of the participant.
Bitbucket.PullRequest.participants.user.nickname String The nickname of the participant.
Bitbucket.PullRequest.participants.role String The role of the participant.
Bitbucket.PullRequest.participants.approved String The approval status of the pull request.
Bitbucket.PullRequest.participants.state String The state of the participant.
Bitbucket.PullRequest.participants.participated_on Unknown The date of participation.
Bitbucket.PullRequest.links String Links to information about the pull request.
Bitbucket.PullRequest.summary.type String The type of the pull request.
Bitbucket.PullRequest.summary.raw String The description of the pull request.
Bitbucket.PullRequest.summary.markup String The text styling type, such as markdown.
Bitbucket.PullRequest.summary.html String The description of the pull request in HTML format.

Command example

!bitbucket-pull-request-create source_branch=test title="pull_request"

Context Example

{
    "Bitbucket": {
        "PullRequest": {
            "author": {
                "account_id": "111111111111111111111111",
                "display_name": "Some User",
                "links": {
                    "avatar": {
                        "href": "https://secure.gravatar.com/avatar/?d=httpsavatar-management--avatars.us-west-2.prod.public.atl-paas.net%Finitials%1111-1.png"
                    },
                    "html": {
                        "href": "https://bitbucket.org/%7B11111111-1111-1111-1111-111111111111%7D/"
                    },
                    "self": {
                        "href": "https://api.bitbucket.org/2.0/users/%7B11111111-1111-1111-1111-111111111111%7D"
                    }
                },
                "nickname": "Some User",
                "type": "user",
                "uuid": "{11111111-1111-1111-1111-111111111111}"
            },
            "close_source_branch": false,
            "closed_by": null,
            "comment_count": 12,
            "created_on": "2022-09-12T09:00:00.000000+00:00",
            "description": "",
            "destination": {
                "branch": {
                    "name": "master"
                },
                "commit": {
                    "hash": "111111111111",
                    "links": {
                        "html": {
                            "href": "https://bitbucket.org/workspace/start_repo/commits/111111111111"
                        },
                        "self": {
                            "href": "https://api.bitbucket.org/2.0/repositories/workspace/start_repo/commit/111111111111"
                        }
                    },
                    "type": "commit"
                },
                "repository": {
                    "full_name": "workspace/start_repo",
                    "links": {
                        "avatar": {
                            "href": "https://bytebucket.org/ravatar/%1111111111-1111-1111-1111-111111111111%11?ts=default"
                        },
                        "html": {
                            "href": "https://bitbucket.org/workspace/start_repo"
                        },
                        "self": {
                            "href": "https://api.bitbucket.org/2.0/repositories/workspace/start_repo"
                        }
                    },
                    "name": "start_repo",
                    "type": "repository",
                    "uuid": "{11111111-1111-1111-1111-111111111111}"
                }
            },
            "id": 8,
            "links": {
                "activity": {
                    "href": "https://api.bitbucket.org/2.0/repositories/workspace/start_repo/pullrequests/8/activity"
                },
                "approve": {
                    "href": "https://api.bitbucket.org/2.0/repositories/workspace/start_repo/pullrequests/8/approve"
                },
                "comments": {
                    "href": "https://api.bitbucket.org/2.0/repositories/workspace/start_repo/pullrequests/8/comments"
                },
                "commits": {
                    "href": "https://api.bitbucket.org/2.0/repositories/workspace/start_repo/pullrequests/8/commits"
                },
                "decline": {
                    "href": "https://api.bitbucket.org/2.0/repositories/workspace/start_repo/pullrequests/8/decline"
                },
                "diff": {
                    "href": "https://api.bitbucket.org/2.0/repositories/workspace/start_repo/diff/workspace/start_repo:0111111111111111111111111?from_pullrequest_id=8&topic=true"
                },
                "diffstat": {
                    "href": "https://api.bitbucket.org/2.0/repositories/workspace/start_repo/diffstat/workspace/start_repo:01111111111%0D111111111111?from_pullrequest_id=8&topic=true"
                },
                "html": {
                    "href": "https://bitbucket.org/workspace/start_repo/pull-requests/8"
                },
                "merge": {
                    "href": "https://api.bitbucket.org/2.0/repositories/workspace/start_repo/pullrequests/8/merge"
                },
                "request-changes": {
                    "href": "https://api.bitbucket.org/2.0/repositories/workspace/start_repo/pullrequests/8/request-changes"
                },
                "self": {
                    "href": "https://api.bitbucket.org/2.0/repositories/workspace/start_repo/pullrequests/8"
                },
                "statuses": {
                    "href": "https://api.bitbucket.org/2.0/repositories/workspace/start_repo/pullrequests/8/statuses"
                }
            },
            "merge_commit": null,
            "participants": [
                {
                    "approved": false,
                    "participated_on": "2022-09-15T12:00:00.000000+00:00",
                    "role": "PARTICIPANT",
                    "state": null,
                    "type": "participant",
                    "user": {
                        "account_id": "111111111111111111111111",
                        "display_name": "Some User",
                        "links": {
                            "avatar": {
                                "href": "https://secure.gravatar.com/avatar/?d=httpsavatar-management--avatars.us-west-2.prod.public.atl-paas.net%initials.png"
                            },
                            "html": {
                                "href": "https://bitbucket.org/%7B11111111-1111-1111-1111-111111111111%7D/"
                            },
                            "self": {
                                "href": "https://api.bitbucket.org/2.0/users/%7B11111111-1111-1111-1111-111111111111%7D"
                            }
                        },
                        "nickname": "Some User",
                        "type": "user",
                        "uuid": "{11111111-1111-1111-1111-111111111111}"
                    }
                }
            ],
          "reviewers": [
              {
                "display_name": "Some User",
                "links": {
                    "self": {
                        "href": "https://api.bitbucket.org/2.0/users/"
                    },
                    "avatar": {
                        "href": "https://secure.gravatar.com/avatar/?d=httpsavatar-management--avatars.us-west-2.prod.public.atl-paas.net.png"
                    },
                    "html": {
                        "href": "https://bitbucket.org/"
                    }
                },
                "type": "user",
                "uuid": "{11111111-1111-1111-1111-111111111111}",
                "account_id": "111111111111111111111111",
                "nickname": "Some User"
              }
            ],
            "reason": "",
            "rendered": {
                "description": {
                    "html": "",
                    "markup": "markdown",
                    "raw": "",
                    "type": "rendered"
                },
                "title": {
                    "html": "<p>pull_request</p>",
                    "markup": "markdown",
                    "raw": "pull_request",
                    "type": "rendered"
                }
            },
            "source": {
                "branch": {
                    "name": "test"
                },
                "commit": {
                    "hash": "111111111111",
                    "links": {
                        "html": {
                            "href": "https://bitbucket.org/workspace/start_repo/commits/111111111111"
                        },
                        "self": {
                            "href": "https://api.bitbucket.org/2.0/repositories/workspace/start_repo/commit/111111111111"
                        }
                    },
                    "type": "commit"
                },
                "repository": {
                    "full_name": "workspace/start_repo",
                    "links": {
                        "avatar": {
                            "href": "https://bytebucket.org/ravatar/%1111111111-1111-1111-1111-111111111111%11?ts=default"
                        },
                        "html": {
                            "href": "https://bitbucket.org/workspace/start_repo"
                        },
                        "self": {
                            "href": "https://api.bitbucket.org/2.0/repositories/workspace/start_repo"
                        }
                    },
                    "name": "start_repo",
                    "type": "repository",
                    "uuid": "{11111111-1111-1111-1111-111111111111}"
                }
            },
            "state": "OPEN",
            "summary": {
                "html": "",
                "markup": "markdown",
                "raw": "",
                "type": "rendered"
            },
            "task_count": 0,
            "title": "pull_request",
            "type": "pullrequest",
            "updated_on": "2022-09-18T08:00:00.000000+00:00"
        }
    }
}

Human Readable Output

The pull request was created successfully

bitbucket-pull-request-update


Updates a pull request in Bitbucket.

Base Command

bitbucket-pull-request-update

Input

Argument Name Description Required
repo The repository name or slug. Optional
pull_request_id The ID of the pull request to update. To get the pull_request_id, use the !bitbucket-pull-request-list command. Required
title The title of the new pull request. Optional
source_branch The branch that contains the proposed changes. Optional
destination_branch The branch that will contain the changes after the merge process. Optional
reviewer_id The ID of the account of the person to review the pull request. To get the reviewer_id, use the bitbucket-workspace-member-list command, and use the field AccountId. Optional
description A description of the pull request. Optional
close_source_branch Whether the source branch should be closed after the pull request. Possible values are: yes, no. Optional
partial_response Return a partial response if true, else return the full API response. Possible values are: true, false. Default is true. Optional

Context Output

Path Type Description
Bitbucket.PullRequest.comment_count Number The number of comments in the pull request.
Bitbucket.PullRequest.task_count Number The number of tasks in the pull request.
Bitbucket.PullRequest.type String The type of the request.
Bitbucket.PullRequest.id Number The pull request ID.
Bitbucket.PullRequest.title String The title of the pull request.
Bitbucket.PullRequest.description String The description of the pull request.
Bitbucket.PullRequest.rendered.title.type String The type of the title of the request.
Bitbucket.PullRequest.rendered.title.raw String The content of the rendered title.
Bitbucket.PullRequest.rendered.title.markup String The text styling type, such as markdown.
Bitbucket.PullRequest.rendered.title.html String The HTML format of the pull request title.
Bitbucket.PullRequest.rendered.description.type String The type of the pull request description.
Bitbucket.PullRequest.rendered.description.raw String The content of the description of the pull request.
Bitbucket.PullRequest.rendered.description.markup String The text styling type, such as markdown.
Bitbucket.PullRequest.rendered.description.html String HTML format of the description content.
Bitbucket.PullRequest.state String The status of the pull request.
Bitbucket.PullRequest.merge_commit Unknown Whether it is a merge commit.
Bitbucket.PullRequest.close_source_branch Boolean Whether the branch should be closed after the merge.
Bitbucket.PullRequest.closed_by Unknown The user who closed the pull request.
Bitbucket.PullRequest.author.display_name String The display name of the author of the pull request.
Bitbucket.PullRequest.author.links String Links with information about the author of the pull request.
Bitbucket.PullRequest.author.type String The type of the author.
Bitbucket.PullRequest.author.uuid String The unique universal ID of the author.
Bitbucket.PullRequest.author.account_id String The account ID of the author of the pull request.
Bitbucket.PullRequest.author.nickname String The nickname of the author.
Bitbucket.PullRequest.reason String The reason to create the request.
Bitbucket.PullRequest.created_on String The creation date of the request.
Bitbucket.PullRequest.updated_on String The date of the last update of the pull request.
Bitbucket.PullRequest.destination.branch.name String The name of the destination branch. This is the branch to merge to.
Bitbucket.PullRequest.destination.commit.type String The type of the commit.
Bitbucket.PullRequest.destination.commit.hash String The hash of the commit.
Bitbucket.PullRequest.destination.commit.links String Links with information about the commit.
Bitbucket.PullRequest.destination.repository.type String The type of the repository of the destination branch.
Bitbucket.PullRequest.destination.repository.full_name String The full name of the repository of the destination branch.
Bitbucket.PullRequest.destination.repository.links String Links with information about the repository of the destination branch.
Bitbucket.PullRequest.destination.repository.name String The name of the repository of the destination branch.
Bitbucket.PullRequest.destination.repository.uuid String The unique ID of the repository of the destination branch.
Bitbucket.PullRequest.source.branch.name String The name of the source branch. That is the branch with the changes that will be merged.
Bitbucket.PullRequest.source.commit.type String The type of the commit in the source branch.
Bitbucket.PullRequest.source.commit.hash String The hash of the commit in the source branch.
Bitbucket.PullRequest.source.commit.links String Links with information about the commit in the source branch.
Bitbucket.PullRequest.source.repository.type String The type of the repository of the source branch.
Bitbucket.PullRequest.source.repository.full_name String The full name of the repository of the source branch.
Bitbucket.PullRequest.source.repository.links String Links with information about the repository of the source branch.
Bitbucket.PullRequest.source.repository.name String The name of the repository of the source branch.
Bitbucket.PullRequest.source.repository.uuid String The unique ID of the repository of the source branch.
Bitbucket.PullRequest.reviewers.display_name String The display name of the reviewer.
Bitbucket.PullRequest.reviewers.links String Links with information about the reviewer.
Bitbucket.PullRequest.reviewers.type String The type of the reviewer.
Bitbucket.PullRequest.reviewers.uuid String The unique id of the reviewer.
Bitbucket.PullRequest.reviewers.account_id String The account id of the reviewer.
Bitbucket.PullRequest.reviewers.nickname String The nickname of the reviewer.
Bitbucket.PullRequest.participants.type String The type of the participant.
Bitbucket.PullRequest.participants.user.display_name String The display name of the participant.
Bitbucket.PullRequest.participants.user.links String Links with information about the user.
Bitbucket.PullRequest.participants.user.type String The type of the participant.
Bitbucket.PullRequest.participants.user.uuid String The unique id of the participant.
Bitbucket.PullRequest.participants.user.account_id String The account id of the participant.
Bitbucket.PullRequest.participants.user.nickname String The nickname of the participant.
Bitbucket.PullRequest.participants.role String The role of the participant.
Bitbucket.PullRequest.participants.approved String The approval status of the pull request.
Bitbucket.PullRequest.participants.state String The state of the participant.
Bitbucket.PullRequest.participants.participated_on String The date of participation.
Bitbucket.PullRequest.links String Links to information about the pull request.
Bitbucket.PullRequest.summary.type String The type of the pull request.
Bitbucket.PullRequest.summary.raw String The description of the pull request.
Bitbucket.PullRequest.summary.markup String The text styling type, such as markdown.
Bitbucket.PullRequest.summary.html String The description of the pull request in HTML format.

Command example

!bitbucket-pull-request-update pull_request_id=8 description="updating description"

Context Example

{
    "Bitbucket": {
        "PullRequest": {
            "author": {
                "account_id": "111111111111111111111111",
                "display_name": "Some User",
                "links": {
                    "avatar": {
                        "href": "https://secure.gravatar.com/avatar/?d=httpsavatar-management--avatars.us-west-2.prod.public.atl-paas.net%Finitials%1111-1.png"
                    },
                    "html": {
                        "href": "https://bitbucket.org/%7B11111111-1111-1111-1111-111111111111%7D/"
                    },
                    "self": {
                        "href": "https://api.bitbucket.org/2.0/users/%7B11111111-1111-1111-1111-111111111111%7D"
                    }
                },
                "nickname": "Some User",
                "type": "user",
                "uuid": "{11111111-1111-1111-1111-111111111111}"
            },
            "close_source_branch": false,
            "closed_by": null,
            "comment_count": 12,
            "created_on": "2022-09-12T09:00:00.000000+00:00",
            "description": "updating description",
            "destination": {
                "branch": {
                    "name": "master"
                },
                "commit": {
                    "hash": "111111111111",
                    "links": {
                        "html": {
                            "href": "https://bitbucket.org/workspace/start_repo/commits/111111111111"
                        },
                        "self": {
                            "href": "https://api.bitbucket.org/2.0/repositories/workspace/start_repo/commit/111111111111"
                        }
                    },
                    "type": "commit"
                },
                "repository": {
                    "full_name": "workspace/start_repo",
                    "links": {
                        "avatar": {
                            "href": "https://bytebucket.org/ravatar/%1111111111-1111-1111-1111-111111111111%11?ts=default"
                        },
                        "html": {
                            "href": "https://bitbucket.org/workspace/start_repo"
                        },
                        "self": {
                            "href": "https://api.bitbucket.org/2.0/repositories/workspace/start_repo"
                        }
                    },
                    "name": "start_repo",
                    "type": "repository",
                    "uuid": "{11111111-1111-1111-1111-111111111111}"
                }
            },
            "id": 8,
            "links": {
                "activity": {
                    "href": "https://api.bitbucket.org/2.0/repositories/workspace/start_repo/pullrequests/8/activity"
                },
                "approve": {
                    "href": "https://api.bitbucket.org/2.0/repositories/workspace/start_repo/pullrequests/8/approve"
                },
                "comments": {
                    "href": "https://api.bitbucket.org/2.0/repositories/workspace/start_repo/pullrequests/8/comments"
                },
                "commits": {
                    "href": "https://api.bitbucket.org/2.0/repositories/workspace/start_repo/pullrequests/8/commits"
                },
                "decline": {
                    "href": "https://api.bitbucket.org/2.0/repositories/workspace/start_repo/pullrequests/8/decline"
                },
                "diff": {
                    "href": "https://api.bitbucket.org/2.0/repositories/workspace/start_repo/diff/workspace/start_repo:0111111111111111111111111?from_pullrequest_id=8&topic=true"
                },
                "diffstat": {
                    "href": "https://api.bitbucket.org/2.0/repositories/workspace/start_repo/diffstat/workspace/start_repo:01111111111%0D111111111111?from_pullrequest_id=8&topic=true"
                },
                "html": {
                    "href": "https://bitbucket.org/workspace/start_repo/pull-requests/8"
                },
                "merge": {
                    "href": "https://api.bitbucket.org/2.0/repositories/workspace/start_repo/pullrequests/8/merge"
                },
                "request-changes": {
                    "href": "https://api.bitbucket.org/2.0/repositories/workspace/start_repo/pullrequests/8/request-changes"
                },
                "self": {
                    "href": "https://api.bitbucket.org/2.0/repositories/workspace/start_repo/pullrequests/8"
                },
                "statuses": {
                    "href": "https://api.bitbucket.org/2.0/repositories/workspace/start_repo/pullrequests/8/statuses"
                }
            },
            "merge_commit": null,
            "participants": [
                {
                    "approved": false,
                    "participated_on": "2022-09-15T12:00:00.000000+00:00",
                    "role": "PARTICIPANT",
                    "state": null,
                    "type": "participant",
                    "user": {
                        "account_id": "111111111111111111111111",
                        "display_name": "Some User",
                        "links": {
                            "avatar": {
                                "href": "https://secure.gravatar.com/avatar/?d=httpsavatar-management--avatars.us-west-2.prod.public.atl-paas.net%initials.png"
                            },
                            "html": {
                                "href": "https://bitbucket.org/%7B11111111-1111-1111-1111-111111111111%7D/"
                            },
                            "self": {
                                "href": "https://api.bitbucket.org/2.0/users/%7B11111111-1111-1111-1111-111111111111%7D"
                            }
                        },
                        "nickname": "Some User",
                        "type": "user",
                        "uuid": "{11111111-1111-1111-1111-111111111111}"
                    }
                }
            ],
          "reviewers": [
              {
                "display_name": "Some User",
                "links": {
                    "self": {
                        "href": "https://api.bitbucket.org/2.0/users/"
                    },
                    "avatar": {
                        "href": "https://secure.gravatar.com/avatar/?d=httpsavatar-management--avatars.us-west-2.prod.public.atl-paas.net.png"
                    },
                    "html": {
                        "href": "https://bitbucket.org/"
                    }
                },
                "type": "user",
                "uuid": "{11111111-1111-1111-1111-111111111111}",
                "account_id": "111111111111111111111111",
                "nickname": "Some User"
              }
            ],
            "reason": "",
            "rendered": {
                "description": {
                    "html": "<p>updating description</p>",
                    "markup": "markdown",
                    "raw": "updating description",
                    "type": "rendered"
                },
                "title": {
                    "html": "<p>pull_request</p>",
                    "markup": "markdown",
                    "raw": "pull_request",
                    "type": "rendered"
                }
            },
            "source": {
                "branch": {
                    "name": "test"
                },
                "commit": {
                    "hash": "111111111111",
                    "links": {
                        "html": {
                            "href": "https://bitbucket.org/workspace/start_repo/commits/111111111111"
                        },
                        "self": {
                            "href": "https://api.bitbucket.org/2.0/repositories/workspace/start_repo/commit/111111111111"
                        }
                    },
                    "type": "commit"
                },
                "repository": {
                    "full_name": "workspace/start_repo",
                    "links": {
                        "avatar": {
                            "href": "https://bytebucket.org/ravatar/%1111111111-1111-1111-1111-111111111111%11?ts=default"
                        },
                        "html": {
                            "href": "https://bitbucket.org/workspace/start_repo"
                        },
                        "self": {
                            "href": "https://api.bitbucket.org/2.0/repositories/workspace/start_repo"
                        }
                    },
                    "name": "start_repo",
                    "type": "repository",
                    "uuid": "{11111111-1111-1111-1111-111111111111}"
                }
            },
            "state": "OPEN",
            "summary": {
                "html": "",
                "markup": "markdown",
                "raw": "",
                "type": "rendered"
            },
            "task_count": 0,
            "title": "pull_request",
            "type": "pullrequest",
            "updated_on": "2022-09-18T08:00:00.000000+00:00"
        }
    }
}

bitbucket-pull-request-list


Returns a list of the pull requests. If a state is provided than the list will contain only PRs with the wanted status. If a state is not provided, by default a list of the open pull requests will return.

Base Command

bitbucket-pull-request-list

Input

Argument Name Description Required
repo The repository name or slug. Optional
pull_request_id The ID of the pull request to update. To get the pull_request_id, use the !bitbucket-pull-request-list command. Optional
state The state of the pull requests to see. Possible values are: OPEN, MERGED, DECLINED, SUPERSEDED, ALL. Optional
limit The maximum number of items in the list. The default value is 50. Optional
page The specific result page to display. Optional
partial_response Return a partial response if true, else return the full API response. Possible values are: true, false. Default is true. Optional

Context Output

Path Type Description
Bitbucket.PullRequest.comment_count Number The number of comments in the pull request.
Bitbucket.PullRequest.task_count Number The number of tasks in the pull request.
Bitbucket.PullRequest.type String The type of the request.
Bitbucket.PullRequest.id Number The pull request ID.
Bitbucket.PullRequest.title String The title of the pull request.
Bitbucket.PullRequest.description String The description of the pull request.
Bitbucket.PullRequest.state String The status of the pull request.
Bitbucket.PullRequest.merge_commit.type String The type of the merge commit.
Bitbucket.PullRequest.merge_commit.hash String The hash of the merged commit.
Bitbucket.PullRequest.merge_commit.links String Links with information about the merged commit.
Bitbucket.PullRequest.close_source_branch Boolean Whether the branch should be closed after the merge.
Bitbucket.PullRequest.closed_by.display_name String The display name of the user who closed the pull request.
Bitbucket.PullRequest.closed_by.links String Links with information about the user who closed the pull request.
Bitbucket.PullRequest.closed_by.type String The type of user who closed the pull request.
Bitbucket.PullRequest.closed_by.uuid String The unique ID of the user who closed the pull request.
Bitbucket.PullRequest.closed_by.account_id String The account ID of the user who closed the pull request.
Bitbucket.PullRequest.closed_by.nickname String The nickname of the user who closed the pull request.
Bitbucket.PullRequest.author.display_name String The display name of the author of the pull request.
Bitbucket.PullRequest.author.links.self.href String Links with information about the author of the pull request.
Bitbucket.PullRequest.author.type String The type of the author.
Bitbucket.PullRequest.author.uuid String The unique universal ID of the author.
Bitbucket.PullRequest.author.account_id String The account ID of the author of the pull request.
Bitbucket.PullRequest.author.nickname String The nickname of the author.
Bitbucket.PullRequest.reason String The reason to create the request.
Bitbucket.PullRequest.created_on String The creation date of the request.
Bitbucket.PullRequest.updated_on String The date of the last update of the pull request.
Bitbucket.PullRequest.destination.branch.name String The name of the destination branch. That is the branch to merge to.
Bitbucket.PullRequest.destination.commit.type String The type of the commit.
Bitbucket.PullRequest.destination.commit.hash String The hash of the commit.
Bitbucket.PullRequest.destination.commit.links String Links with information about the commit.
Bitbucket.PullRequest.destination.repository.type String The type of the repository of the destination branch.
Bitbucket.PullRequest.destination.repository.full_name String The full name of the repository of the destination branch.
Bitbucket.PullRequest.destination.repository.links String Links with information about the repository of the destination branch.
Bitbucket.PullRequest.destination.repository.name String The name of the repository of the destination branch.
Bitbucket.PullRequest.destination.repository.uuid String The unique ID of the repository of the destination branch.
Bitbucket.PullRequest.source.branch.name String The name of the source branch. The branch with the changes that will be merged.
Bitbucket.PullRequest.source.commit.type String The type of the commit in the source branch.
Bitbucket.PullRequest.source.commit.hash String The hash of the commit in the source branch.
Bitbucket.PullRequest.source.commit.links String Links with information about the commit in the source branch.
Bitbucket.PullRequest.source.repository.type String The type of the repository of the source branch.
Bitbucket.PullRequest.source.repository.full_name String The full name of the repository of the source branch.
Bitbucket.PullRequest.source.repository.links String Links with information about the repository of the source branch.
Bitbucket.PullRequest.source.repository.name String The name of the repository of the source branch.
Bitbucket.PullRequest.source.repository.uuid String The unique ID of the repository of the source branch.
Bitbucket.PullRequest.reviewers.display_name String The display name of the reviewer.
Bitbucket.PullRequest.reviewers.links String Links with information about the reviewer.
Bitbucket.PullRequest.reviewers.type String The type of the reviewer.
Bitbucket.PullRequest.reviewers.uuid String The unique id of the reviewer.
Bitbucket.PullRequest.reviewers.account_id String The account id of the reviewer.
Bitbucket.PullRequest.reviewers.nickname String The nickname of the reviewer.
Bitbucket.PullRequest.participants.type String The type of the participant.
Bitbucket.PullRequest.participants.user.display_name String The display name of the participant.
Bitbucket.PullRequest.participants.user.links String Links with information about the user.
Bitbucket.PullRequest.participants.user.type String The type of the participant.
Bitbucket.PullRequest.participants.user.uuid String The unique id of the participant.
Bitbucket.PullRequest.participants.user.account_id String The account id of the participant.
Bitbucket.PullRequest.participants.user.nickname String The nickname of the participant.
Bitbucket.PullRequest.participants.role String The role of the participant.
Bitbucket.PullRequest.participants.approved String The approval status of the pull request.
Bitbucket.PullRequest.participants.state String The state of the participant.
Bitbucket.PullRequest.participants.participated_on Unknown The date of participation.
Bitbucket.PullRequest.links String Links to information about the pull request.
Bitbucket.PullRequest.summary.type String The type of the pull request.
Bitbucket.PullRequest.summary.raw String The description of the pull request.
Bitbucket.PullRequest.summary.markup String The text styling type, such as markdown.
Bitbucket.PullRequest.summary.html String The description of the pull request in HTML format.

Command example


#### Context Example

```json
{
    "Bitbucket": {
        "PullRequest": [
            {
                "author": {
                    "account_id": "111111111111111111111111",
                    "display_name": "Some User",
                    "links": {
                        "avatar": {
                            "href": "https://secure.gravatar.com/avatar/?d=httpsavatar-management--avatars.us-west-2.prod.public.atl-paas.ne.png"
                        },
                        "html": {
                            "href": "https://bitbucket.org/%7B11111111-1111-1111-1111-111111111111%7D/"
                        },
                        "self": {
                            "href": "https://api.bitbucket.org/2.0/users/%7B11111111-1111-1111-1111-111111111111%7D"
                        }
                    },
                    "nickname": "Some User",
                    "type": "user",
                    "uuid": "{11111111-1111-1111-1111-111111111111}"
                },
                "close_source_branch": false,
                "closed_by": null,
                "comment_count": 12,
                "created_on": "2022-09-12T09:00:00.000000+00:00",
                "description": "",
                "destination": {
                    "branch": {
                        "name": "master"
                    },
                    "commit": {
                        "hash": "111111111111",
                        "links": {
                            "html": {
                                "href": "https://bitbucket.org/workspace/start_repo/commits/111111111111"
                            },
                            "self": {
                                "href": "https://api.bitbucket.org/2.0/repositories/workspace/start_repo/commit/111111111111"
                            }
                        },
                        "type": "commit"
                    },
                    "repository": {
                        "full_name": "workspace/start_repo",
                        "links": {
                            "avatar": {
                                "href": "https://bytebucket.org/ravatar/%1111111111-1111-1111-1111-111111111111%11?ts=default"
                            },
                            "html": {
                                "href": "https://bitbucket.org/workspace/start_repo"
                            },
                            "self": {
                                "href": "https://api.bitbucket.org/2.0/repositories/workspace/start_repo"
                            }
                        },
                        "name": "start_repo",
                        "type": "repository",
                        "uuid": "{11111111-1111-1111-1111-111111111111}"
                    }
                },
                "participants": [
                {
                    "approved": false,
                    "participated_on": "2022-09-15T12:00:00.000000+00:00",
                    "role": "PARTICIPANT",
                    "state": null,
                    "type": "participant",
                    "user": {
                        "account_id": "111111111111111111111111",
                        "display_name": "Some User",
                        "links": {
                            "avatar": {
                                "href": "https://secure.gravatar.com/avatar/?d=httpsavatar-management--avatars.us-west-2.prod.public.atl-paas.net%initials.png"
                            },
                            "html": {
                                "href": "https://bitbucket.org/%7B11111111-1111-1111-1111-111111111111%7D/"
                            },
                            "self": {
                                "href": "https://api.bitbucket.org/2.0/users/%7B11111111-1111-1111-1111-111111111111%7D"
                            }
                        },
                        "nickname": "Some User",
                        "type": "user",
                        "uuid": "{11111111-1111-1111-1111-111111111111}"
                    }
                }
            ],
              "reviewers": [
                  {
                    "display_name": "Some User",
                    "links": {
                        "self": {
                            "href": "https://api.bitbucket.org/2.0/users/"
                        },
                        "avatar": {
                            "href": "https://secure.gravatar.com/avatar/?d=httpsavatar-management--avatars.us-west-2.prod.public.atl-paas.net.png"
                        },
                        "html": {
                            "href": "https://bitbucket.org/"
                        }
                    },
                    "type": "user",
                    "uuid": "{11111111-1111-1111-1111-111111111111}",
                    "account_id": "111111111111111111111111",
                    "nickname": "Some User"
                  }
                ],
                "id": 8,
                "links": {
                    "activity": {
                        "href": "https://api.bitbucket.org/2.0/repositories/workspace/start_repo/pullrequests/8/activity"
                    },
                    "approve": {
                        "href": "https://api.bitbucket.org/2.0/repositories/workspace/start_repo/pullrequests/8/approve"
                    },
                    "comments": {
                        "href": "https://api.bitbucket.org/2.0/repositories/workspace/start_repo/pullrequests/8/comments"
                    },
                    "commits": {
                        "href": "https://api.bitbucket.org/2.0/repositories/workspace/start_repo/pullrequests/8/commits"
                    },
                    "decline": {
                        "href": "https://api.bitbucket.org/2.0/repositories/workspace/start_repo/pullrequests/8/decline"
                    },
                    "diff": {
                        "href": "https://api.bitbucket.org/2.0/repositories/workspace/start_repo/diff/workspace/start_repo:111111111111%111111111111?from_pullrequest_id=8&topic=true"
                    },
                    "diffstat": {
                        "href": "https://api.bitbucket.org/2.0/repositories/workspace/start_repo/diffstat/workspace/start_repo:111111111111%111111111111?from_pullrequest_id=8&topic=true"
                    },
                    "html": {
                        "href": "https://bitbucket.org/workspace/start_repo/pull-requests/8"
                    },
                    "merge": {
                        "href": "https://api.bitbucket.org/2.0/repositories/workspace/start_repo/pullrequests/8/merge"
                    },
                    "request-changes": {
                        "href": "https://api.bitbucket.org/2.0/repositories/workspace/start_repo/pullrequests/8/request-changes"
                    },
                    "self": {
                        "href": "https://api.bitbucket.org/2.0/repositories/workspace/start_repo/pullrequests/8"
                    },
                    "statuses": {
                        "href": "https://api.bitbucket.org/2.0/repositories/workspace/start_repo/pullrequests/8/statuses"
                    }
                },
                "merge_commit": null,
                "reason": "",
                "source": {
                    "branch": {
                        "name": "test"
                    },
                    "commit": {
                        "hash": "111111111111",
                        "links": {
                            "html": {
                                "href": "https://bitbucket.org/workspace/start_repo/commits/111111111111"
                            },
                            "self": {
                                "href": "https://api.bitbucket.org/2.0/repositories/workspace/start_repo/commit/111111111111"
                            }
                        },
                        "type": "commit"
                    },
                    "repository": {
                        "full_name": "workspace/start_repo",
                        "links": {
                            "avatar": {
                                "href": "https://bytebucket.org/ravatar/%1111111111-1111-1111-1111-111111111111%11?ts=default"
                            },
                            "html": {
                                "href": "https://bitbucket.org/workspace/start_repo"
                            },
                            "self": {
                                "href": "https://api.bitbucket.org/2.0/repositories/workspace/start_repo"
                            }
                        },
                        "name": "start_repo",
                        "type": "repository",
                        "uuid": "{11111111-1111-1111-1111-111111111111}"
                    }
                },
                "state": "OPEN",
                "summary": {
                    "html": "",
                    "markup": "markdown",
                    "raw": "",
                    "type": "rendered"
                },
                "task_count": 0,
                "title": "pull_request",
                "type": "pullrequest",
                "updated_on": "2022-09-18T08:00:00.000000+00:00"
            },
            {
                "author": {
                    "account_id": "111111111111111111111111",
                    "display_name": "Some User",
                    "links": {
                        "avatar": {
                            "href": "https://secure.gravatar.com/avatar/?d=httpsavatar-management--avatars.us-west-2.prod.public.atl-paas.net.png"
                        },
                        "html": {
                            "href": "https://bitbucket.org/%7B11111111-1111-1111-1111-111111111111%7D/"
                        },
                        "self": {
                            "href": "https://api.bitbucket.org/2.0/users/%7B11111111-1111-1111-1111-111111111111%7D"
                        }
                    },
                    "nickname": "Some User",
                    "type": "user",
                    "uuid": "{11111111-1111-1111-1111-111111111111}"
                },
                "close_source_branch": true,
                "closed_by": null,
                "comment_count": 10,
                "created_on": "2022-09-08T12:00:00.000000+00:00",
                "description": "updates description",
                "destination": {
                    "branch": {
                        "name": "master"
                    },
                    "commit": {
                        "hash": "111111111111",
                        "links": {
                            "html": {
                                "href": "https://bitbucket.org/workspace/start_repo/commits/111111111111"
                            },
                            "self": {
                                "href": "https://api.bitbucket.org/2.0/repositories/workspace/start_repo/commit/111111111111"
                            }
                        },
                        "type": "commit"
                    },
                    "repository": {
                        "full_name": "workspace/start_repo",
                        "links": {
                            "avatar": {
                                "href": "https://bytebucket.org/ravatar/%1111111111-1111-1111-1111-111111111111%11?ts=default"
                            },
                            "html": {
                                "href": "https://bitbucket.org/workspace/start_repo"
                            },
                            "self": {
                                "href": "https://api.bitbucket.org/2.0/repositories/workspace/start_repo"
                            }
                        },
                        "name": "start_repo",
                        "type": "repository",
                        "uuid": "{11111111-1111-1111-1111-111111111111}"
                    }
                },
                "id": 6,
                "links": {
                    "activity": {
                        "href": "https://api.bitbucket.org/2.0/repositories/workspace/start_repo/pullrequests/6/activity"
                    },
                    "approve": {
                        "href": "https://api.bitbucket.org/2.0/repositories/workspace/start_repo/pullrequests/6/approve"
                    },
                    "comments": {
                        "href": "https://api.bitbucket.org/2.0/repositories/workspace/start_repo/pullrequests/6/comments"
                    },
                    "commits": {
                        "href": "https://api.bitbucket.org/2.0/repositories/workspace/start_repo/pullrequests/6/commits"
                    },
                    "decline": {
                        "href": "https://api.bitbucket.org/2.0/repositories/workspace/start_repo/pullrequests/6/decline"
                    },
                    "diff": {
                        "href": "https://api.bitbucket.org/2.0/repositories/workspace/start_repo/diff/workspace/start_repo:1111111111%111111111111?from_pullrequest_id=6&topic=true"
                    },
                    "diffstat": {
                        "href": "https://api.bitbucket.org/2.0/repositories/workspace/start_repo/diffstat/workspace/start_repo:1111111111%111111111111?from_pullrequest_id=6&topic=true"
                    },
                    "html": {
                        "href": "https://bitbucket.org/workspace/start_repo/pull-requests/6"
                    },
                    "merge": {
                        "href": "https://api.bitbucket.org/2.0/repositories/workspace/start_repo/pullrequests/6/merge"
                    },
                    "request-changes": {
                        "href": "https://api.bitbucket.org/2.0/repositories/workspace/start_repo/pullrequests/6/request-changes"
                    },
                    "self": {
                        "href": "https://api.bitbucket.org/2.0/repositories/workspace/start_repo/pullrequests/6"
                    },
                    "statuses": {
                        "href": "https://api.bitbucket.org/2.0/repositories/workspace/start_repo/pullrequests/6/statuses"
                    }
                },
                "merge_commit": null,
                "reason": "",
                "source": {
                    "branch": {
                        "name": "branch"
                    },
                    "commit": {
                        "hash": "111111111111",
                        "links": {
                            "html": {
                                "href": "https://bitbucket.org/workspace/start_repo/commits/111111111111"
                            },
                            "self": {
                                "href": "https://api.bitbucket.org/2.0/repositories/workspace/start_repo/commit/111111111111"
                            }
                        },
                        "type": "commit"
                    },
                    "repository": {
                        "full_name": "workspace/start_repo",
                        "links": {
                            "avatar": {
                                "href": "https://bytebucket.org/ravatar/%1111111111-1111-1111-1111-111111111111%11?ts=default"
                            },
                            "html": {
                                "href": "https://bitbucket.org/workspace/start_repo"
                            },
                            "self": {
                                "href": "https://api.bitbucket.org/2.0/repositories/workspace/start_repo"
                            }
                        },
                        "name": "start_repo",
                        "type": "repository",
                        "uuid": "{11111111-1111-1111-1111-111111111111}"
                    }
                },
                "state": "OPEN",
                "summary": {
                    "html": "<p>updates description</p>",
                    "markup": "markdown",
                    "raw": "updates description",
                    "type": "rendered"
                },
                "task_count": 0,
                "title": "uuuupdate",
                "type": "pullrequest",
                "updated_on": "2022-09-15T12:00:00.000000+00:00"
            }
        ]
    }
}

Human Readable Output

List of the pull requests

Id Title Description SourceBranch DestinationBranch State CreatedBy CreatedAt UpdatedAt
8 pull_request   test master OPEN Some User 2022-09-12T09:51:55.458494+00:00 2022-09-18T08:57:20.815479+00:00
6 uuuupdate updates description branch master OPEN Some User 2022-09-08T12:23:04.303626+00:00 2022-09-15T12:44:45.785951+00:00

bitbucket-issue-comment-create


Deprecated. Issues are fully removed from Bitbucket Cloud by Atlassian as of Mid-August 2026. Use the jira-issue-add-comment command in the Atlassian Jira v3 integration instead. Creates a comment on an issue in Bitbucket.

Base Command

bitbucket-issue-comment-create

Input

Argument Name Description Required
repo The repository name or slug. Optional
issue_id The ID of the issue to comment on. To get the issue_id, use the !bitbucket-issue-list command. Required
content The content of the comment. Required
partial_response Return a partial response if true, else return the full API response. Possible values are: true, false. Default is true. Optional

Context Output

Path Type Description
Bitbucket.IssueComment.type String The action type.
Bitbucket.IssueComment.id Number The ID of the comment on the issue.
Bitbucket.IssueComment.created_on String The creation date of the comment.
Bitbucket.IssueComment.updated_on Unknown When the comment was updated.
Bitbucket.IssueComment.content.type String The type of the content.
Bitbucket.IssueComment.content.raw String The content of the comment.
Bitbucket.IssueComment.content.markup String The text styling type, such as markdown.
Bitbucket.IssueComment.content.html String The content of the comment in HTML format.
Bitbucket.IssueComment.user.display_name String The display name of the user who created the comment.
Bitbucket.IssueComment.user.links String Links with information about the user who created the comment.
Bitbucket.IssueComment.user.type String The type of the user who created the comment.
Bitbucket.IssueComment.user.uuid String The unique ID of the user who created the comment.
Bitbucket.IssueComment.user.account_id String The account ID of the user who created the comment.
Bitbucket.IssueComment.user.nickname String The nickname of the user who created the comment.
Bitbucket.IssueComment.issue.type String The type of the issue.
Bitbucket.IssueComment.issue.id Number The ID of the issue.
Bitbucket.IssueComment.issue.repository.type String The type of the repository connected to the relevant issue.
Bitbucket.IssueComment.issue.repository.full_name String The full name of the repository connected to the relevant issue.
Bitbucket.IssueComment.issue.repository.links String Links to information about the relevant repository.
Bitbucket.IssueComment.issue.repository.name String The name of the relevant repository.
Bitbucket.IssueComment.issue.repository.uuid String The unique ID of the relevant repository.
Bitbucket.IssueComment.issue.links String Links with information about the issue.
Bitbucket.IssueComment.issue.title String The title of the issue.
Bitbucket.IssueComment.links String Links to information about the comment.

Command example

!bitbucket-issue-comment-create content="some comment" issue_id=1

Context Example

{
    "Bitbucket": {
        "IssueComment": {
            "content": {
                "html": "<p>some comment</p>",
                "markup": "markdown",
                "raw": "some comment",
                "type": "rendered"
            },
            "created_on": "2022-09-18T08:00:00.000000+00:00",
            "id": 11111111,
            "issue": {
                "id": 1,
                "links": {
                    "self": {
                        "href": "https://api.bitbucket.org/2.0/repositories/workspace/start_repo/issues/1"
                    }
                },
                "repository": {
                    "full_name": "workspace/start_repo",
                    "links": {
                        "avatar": {
                            "href": "https://bytebucket.org/ravatar/%1111111111-1111-1111-1111-111111111111%11?ts=default"
                        },
                        "html": {
                            "href": "https://bitbucket.org/workspace/start_repo"
                        },
                        "self": {
                            "href": "https://api.bitbucket.org/2.0/repositories/workspace/start_repo"
                        }
                    },
                    "name": "start_repo",
                    "type": "repository",
                    "uuid": "{11111111-1111-1111-1111-111111111111}"
                },
                "title": "new issue",
                "type": "issue"
            },
            "links": {
                "html": {
                    "href": "https://bitbucket.org/workspace/start_repo/issues/1#comment-11111111"
                },
                "self": {
                    "href": "https://api.bitbucket.org/2.0/repositories/workspace/start_repo/issues/1/comments/11111111"
                }
            },
            "type": "issue_comment",
            "updated_on": null,
            "user": {
                "account_id": "111111111111111111111111",
                "display_name": "Some User",
                "links": {
                    "avatar": {
                        "href": "https://secure.gravatar.com/avatar/?d=httpsavatar-management--avatars.us-west-2.prod.public.atl-paas.net.png"
                    },
                    "html": {
                        "href": "https://bitbucket.org/%7B11111111-1111-1111-1111-111111111111%7D/"
                    },
                    "self": {
                        "href": "https://api.bitbucket.org/2.0/users/%7B11111111-1111-1111-1111-111111111111%7D"
                    }
                },
                "nickname": "Some User",
                "type": "user",
                "uuid": "{11111111-1111-1111-1111-111111111111}"
            }
        }
    }
}

Human Readable Output

The comment was created successfully

bitbucket-issue-comment-delete


Deprecated. Issues are fully removed from Bitbucket Cloud by Atlassian as of Mid-August 2026. Use the jira-issue-delete-comment command in the Atlassian Jira v3 integration instead. Deletes a comment on an issue in Bitbucket.

Base Command

bitbucket-issue-comment-delete

Input

Argument Name Description Required
repo The repository name or slug. Optional
issue_id The ID of the issue to comment on. To get the issue_id, use the !bitbucket-issue-list command. Required
comment_id The ID of the comment to delete. To get the comment_id, use the !bitbucket-issue-comment-list command. Required

Context Output

There is no context output for this command.

Human Readable Output

The comment was deleted successfully

bitbucket-issue-comment-list


Deprecated. Issues are fully removed from Bitbucket Cloud by Atlassian as of Mid-August 2026. Use the jira-get-comments command in the Atlassian Jira v3 integration instead. Returns a list of comments on a specific issue. If a comment_id is given it will return information only about the specific comment.

Base Command

bitbucket-issue-comment-list

Input

Argument Name Description Required
repo The repository name or slug. Optional
issue_id The ID of the issue to comment on. To get the issue_id, use the bitbucket-issue-list command. Required
comment_id The ID of the comment to delete. To get the comment_id, use the !bitbucket-issue-comment-list command without any parameters. Optional
limit The maximum number of items in the list. The default value is 50. Optional
page The specific result page to display. Optional
partial_response Return a partial response if true, else return the full API response. Possible values are: true, false. Default is true. Optional

Context Output

Path Type Description
Bitbucket.IssueComment.type String The action type.
Bitbucket.IssueComment.id Number The ID of comment on the issue.
Bitbucket.IssueComment.created_on String The creation date of the comment.
Bitbucket.IssueComment.updated_on Unknown When the comment was updated.
Bitbucket.IssueComment.content.type String The type of the content.
Bitbucket.IssueComment.content.raw String The content of the comment.
Bitbucket.IssueComment.content.markup String The text styling type, such as markdown.
Bitbucket.IssueComment.content.html String The content of the comment in HTML format.
Bitbucket.IssueComment.user.display_name String The display name of the user who created the comment.
Bitbucket.IssueComment.user.links String Links with information about the user who created the comment.
Bitbucket.IssueComment.user.type String The type of the user who created the comment.
Bitbucket.IssueComment.user.uuid String The unique ID of the user who created the comment.
Bitbucket.IssueComment.user.account_id String The account ID of the user who created the comment.
Bitbucket.IssueComment.user.nickname String The nickname of the user who created the comment.
Bitbucket.IssueComment.issue.type String The type of the issue.
Bitbucket.IssueComment.issue.id Number The ID of the issue.
Bitbucket.IssueComment.issue.repository.type String The type of the repository connected to the relevant issue.
Bitbucket.IssueComment.issue.repository.full_name String The full name of the repository connected to the relevant issue.
Bitbucket.IssueComment.issue.repository.links String Links to information about the relevant repository.
Bitbucket.IssueComment.issue.repository.name String The name of the relevant repository.
Bitbucket.IssueComment.issue.repository.uuid String The unique ID of the relevant repository.
Bitbucket.IssueComment.issue.links String Links with information about the issue.
Bitbucket.IssueComment.issue.title String The title of the issue.
Bitbucket.IssueComment.links String Links to information about the comment.

Command example

!bitbucket-issue-comment-list issue_id=1

Context Example

{
    "Bitbucket": {
        "IssueComment": [
            {
                "content": {
                    "html": "<p>new bug</p>",
                    "markup": "markdown",
                    "raw": "new bug",
                    "type": "rendered"
                },
                "created_on": "2022-09-06T14:00:00.000000+00:00",
                "id": 11111111,
                "issue": {
                    "id": 1,
                    "links": {
                        "self": {
                            "href": "https://api.bitbucket.org/2.0/repositories/workspace/start_repo/issues/1"
                        }
                    },
                    "repository": {
                        "full_name": "workspace/start_repo",
                        "links": {
                            "avatar": {
                                "href": "https://bytebucket.org/ravatar/%1111111111-1111-1111-1111-111111111111%11?ts=default"
                            },
                            "html": {
                                "href": "https://bitbucket.org/workspace/start_repo"
                            },
                            "self": {
                                "href": "https://api.bitbucket.org/2.0/repositories/workspace/start_repo"
                            }
                        },
                        "name": "start_repo",
                        "type": "repository",
                        "uuid": "{11111111-1111-1111-1111-111111111111}"
                    },
                    "title": "new issue",
                    "type": "issue"
                },
                "links": {
                    "html": {
                        "href": "https://bitbucket.org/workspace/start_repo/issues/1#comment-11111111"
                    },
                    "self": {
                        "href": "https://api.bitbucket.org/2.0/repositories/workspace/start_repo/issues/1/comments/11111111"
                    }
                },
                "type": "issue_comment",
                "updated_on": null,
                "user": {
                    "account_id": "111111111111111111111111",
                    "display_name": "Some User",
                    "links": {
                        "avatar": {
                            "href": "https://secure.gravatar.com/avatar/?d=httpsavatar-management--avatars.us-west-2.prod.public.atl-paas.net.png"
                        },
                        "html": {
                            "href": "https://bitbucket.org/%7B11111111-1111-1111-1111-111111111111%7D/"
                        },
                        "self": {
                            "href": "https://api.bitbucket.org/2.0/users/%7B11111111-1111-1111-1111-111111111111%7D"
                        }
                    },
                    "nickname": "Some User",
                    "type": "user",
                    "uuid": "{11111111-1111-1111-1111-111111111111}"
                }
            },
            {
                "content": {
                    "html": "<p>just a comment</p>",
                    "markup": "markdown",
                    "raw": "just a comment",
                    "type": "rendered"
                },
                "created_on": "2022-09-11T10:00:00.000000+00:00",
                "id": 11111111,
                "issue": {
                    "id": 1,
                    "links": {
                        "self": {
                            "href": "https://api.bitbucket.org/2.0/repositories/workspace/start_repo/issues/1"
                        }
                    },
                    "repository": {
                        "full_name": "workspace/start_repo",
                        "links": {
                            "avatar": {
                                "href": "https://bytebucket.org/ravatar/%1111111111-1111-1111-1111-111111111111%11?ts=default"
                            },
                            "html": {
                                "href": "https://bitbucket.org/workspace/start_repo"
                            },
                            "self": {
                                "href": "https://api.bitbucket.org/2.0/repositories/workspace/start_repo"
                            }
                        },
                        "name": "start_repo",
                        "type": "repository",
                        "uuid": "{11111111-1111-1111-1111-111111111111}"
                    },
                    "title": "new issue",
                    "type": "issue"
                },
                "links": {
                    "html": {
                        "href": "https://bitbucket.org/workspace/start_repo/issues/1#comment-11111111"
                    },
                    "self": {
                        "href": "https://api.bitbucket.org/2.0/repositories/workspace/start_repo/issues/1/comments/11111111"
                    }
                },
                "type": "issue_comment",
                "updated_on": null,
                "user": {
                    "account_id": "111111111111111111111111",
                    "display_name": "Some User",
                    "links": {
                        "avatar": {
                            "href": "https://secure.gravatar.com/avatar/?d=httpsavatar-management--avatars.us-west-2.prod.public.atl-paas.net.png"
                        },
                        "html": {
                            "href": "https://bitbucket.org/%7B11111111-1111-1111-1111-111111111111%7D/"
                        },
                        "self": {
                            "href": "https://api.bitbucket.org/2.0/users/%7B11111111-1111-1111-1111-111111111111%7D"
                        }
                    },
                    "nickname": "Some User",
                    "type": "user",
                    "uuid": "{11111111-1111-1111-1111-111111111111}"
                }
            }
        ]
    }
}

Human Readable Output

List of the comments on issue “1”

Id Content CreatedBy CreatedAt UpdatedAt IssueId IssueTitle
11111111 new bug Some User 2022-09-06T14:23:03.776275+00:00   1 new issue
11111111 just a comment Some User 2022-09-11T10:54:14.356238+00:00   1 new issue

bitbucket-issue-comment-update


Deprecated. Issues are fully removed from Bitbucket Cloud by Atlassian as of Mid-August 2026. Use the jira-issue-edit-comment command in the Atlassian Jira v3 integration instead. Updates a specific comment on a given issue.

Base Command

bitbucket-issue-comment-update

Input

Argument Name Description Required
repo The repository name or slug. Optional
issue_id The ID of the issue to comment on. To get the issue_id, use the !bitbucket-issue-list command. Required
comment_id The ID of the comment to delete. To get the issue_id, use the !bitbucket-issue-comment-list command. Required
content The new content of the comment. Required
partial_response Return a partial response if true, else return the full API response. Possible values are: true, false. Default is true. Optional

Context Output

Path Type Description
Bitbucket.IssueComment.type String The action type.
Bitbucket.IssueComment.id Number The ID of the comment on the issue.
Bitbucket.IssueComment.created_on String The creation date of the comment.
Bitbucket.IssueComment.updated_on Unknown When the comment was updated.
Bitbucket.IssueComment.content.type String The type of the content.
Bitbucket.IssueComment.content.raw String The content of the comment.
Bitbucket.IssueComment.content.markup String The text styling type, such as markdown.
Bitbucket.IssueComment.content.html String The content of the comment in HTML format.
Bitbucket.IssueComment.user.display_name String The display name of the user who created the comment.
Bitbucket.IssueComment.user.links String Links with information about the user who created the comment.
Bitbucket.IssueComment.user.type String The type of the user who created the comment.
Bitbucket.IssueComment.user.uuid String The unique ID of the user who created the comment.
Bitbucket.IssueComment.user.account_id String The account ID of the user who created the comment.
Bitbucket.IssueComment.user.nickname String The nickname of the user who created the comment.
Bitbucket.IssueComment.issue.type String The type of the issue.
Bitbucket.IssueComment.issue.id Number The ID of the issue.
Bitbucket.IssueComment.issue.repository.type String The type of the repository connected to the relevant issue.
Bitbucket.IssueComment.issue.repository.full_name String The full name of the repository connected to the relevant issue.
Bitbucket.IssueComment.issue.repository.links String Links to information about the relevant repository.
Bitbucket.IssueComment.issue.repository.name String The name of the relevant repository.
Bitbucket.IssueComment.issue.repository.uuid String The unique ID of the relevant repository.
Bitbucket.IssueComment.issue.links String Links with information about the issue.
Bitbucket.IssueComment.issue.title String The title of the issue.
Bitbucket.IssueComment.links String Links to information about the comment.

Command example

!bitbucket-issue-comment-update issue_id=1 comment_id=11111111 content="updating content info"

Context Example

{
    "Bitbucket": {
        "IssueComment": {
            "content": {
                "html": "<p>updating content info</p>",
                "markup": "markdown",
                "raw": "updating content info",
                "type": "rendered"
            },
            "created_on": "2022-09-14T15:00:00.000000+00:00",
            "id": 11111111,
            "issue": {
                "id": 1,
                "links": {
                    "self": {
                        "href": "https://api.bitbucket.org/2.0/repositories/workspace/start_repo/issues/1"
                    }
                },
                "repository": {
                    "full_name": "workspace/start_repo",
                    "links": {
                        "avatar": {
                            "href": "https://bytebucket.org/ravatar/%1111111111-1111-1111-1111-111111111111%11?ts=default"
                        },
                        "html": {
                            "href": "https://bitbucket.org/workspace/start_repo"
                        },
                        "self": {
                            "href": "https://api.bitbucket.org/2.0/repositories/workspace/start_repo"
                        }
                    },
                    "name": "start_repo",
                    "type": "repository",
                    "uuid": "{11111111-1111-1111-1111-111111111111}"
                },
                "title": "new issue",
                "type": "issue"
            },
            "links": {
                "html": {
                    "href": "https://bitbucket.org/workspace/start_repo/issues/1#comment-11111111"
                },
                "self": {
                    "href": "https://api.bitbucket.org/2.0/repositories/workspace/start_repo/issues/1/comments/11111111"
                }
            },
            "type": "issue_comment",
            "updated_on": "2022-09-18T08:00:00.000000+00:00",
            "user": {
                "account_id": "111111111111111111111111",
                "display_name": "Some User",
                "links": {
                    "avatar": {
                        "href": "https://secure.gravatar.com/avatar/?d=httpsavatar-management--avatars.us-west-2.prod.public.atl-paas.net.png"
                    },
                    "html": {
                        "href": "https://bitbucket.org/%7B11111111-1111-1111-1111-111111111111%7D/"
                    },
                    "self": {
                        "href": "https://api.bitbucket.org/2.0/users/%7B11111111-1111-1111-1111-111111111111%7D"
                    }
                },
                "nickname": "Some User",
                "type": "user",
                "uuid": "{11111111-1111-1111-1111-111111111111}"
            }
        }
    }
}

Human Readable Output

The comment “11111111” on issue “1” was updated successfully

bitbucket-pull-request-comment-create


Creates a new comment on a pull request.

Base Command

bitbucket-pull-request-comment-create

Input

Argument Name Description Required
repo The repository name or slug. Optional
pull_request_id The ID of the pull request to comment on. To get the pull request ID, use the !bitbucket-pull-request-list command. Required
content The content of the comment. Required
partial_response Return a partial response if true, else return the full API response. Possible values are: true, false. Default is true. Optional

Context Output

Path Type Description
Bitbucket.PullRequestComment.id Number The ID of the comment in the pull request.
Bitbucket.PullRequestComment.created_on String The creation date of the pull request comment.
Bitbucket.PullRequestComment.updated_on String The update date of the pull request comment.
Bitbucket.PullRequestComment.content.type String The type of the content, such as rendered.
Bitbucket.PullRequestComment.content.raw String The actual content of the comment.
Bitbucket.PullRequestComment.content.markup String The text styling type, such as markdown.
Bitbucket.PullRequestComment.content.html String The content of the comment in HTML format.
Bitbucket.PullRequestComment.user.display_name String The display name of the user who created the comment.
Bitbucket.PullRequestComment.user.links String Links to information about the user
Bitbucket.PullRequestComment.user.type String The type of the user.
Bitbucket.PullRequestComment.user.uuid String The unique ID of the user.
Bitbucket.PullRequestComment.user.account_id String The account ID of the user.
Bitbucket.PullRequestComment.user.nickname String The nickname of the user.
Bitbucket.PullRequestComment.deleted Boolean Whether the comment was deleted.
Bitbucket.PullRequestComment.type String The type of the action.
Bitbucket.PullRequestComment.links String Links to information about the pull request.
Bitbucket.PullRequestComment.pullrequest.type String The type of the pull request.
Bitbucket.PullRequestComment.pullrequest.id Number The ID of the pull request.
Bitbucket.PullRequestComment.pullrequest.title String The title of the pull request.
Bitbucket.PullRequestComment.pullrequest.links String Links to information about the pull request.

Command example

!bitbucket-pull-request-comment-create content="new comment on a pull request" pull_request_id=1

Context Example

{
    "Bitbucket": {
        "PullRequestComment": [
            {
                "content": {
                    "html": "<p>new comment on a pull request</p>",
                    "markup": "markdown",
                    "raw": "new comment on a pull request",
                    "type": "rendered"
                },
                "created_on": "2022-09-18T08:00:00.000000+00:00",
                "deleted": false,
                "id": 11111111,
                "links": {
                    "html": {
                        "href": "https://bitbucket.org/workspace/start_repo/pull-requests/1/_/diff#comment-11111111"
                    },
                    "self": {
                        "href": "https://api.bitbucket.org/2.0/repositories/workspace/start_repo/pullrequests/1/comments/11111111"
                    }
                },
                "pullrequest": {
                    "id": 1,
                    "links": {
                        "html": {
                            "href": "https://bitbucket.org/workspace/start_repo/pull-requests/1"
                        },
                        "self": {
                            "href": "https://api.bitbucket.org/2.0/repositories/workspace/start_repo/pullrequests/1"
                        }
                    },
                    "title": "change 2",
                    "type": "pullrequest"
                },
                "type": "pullrequest_comment",
                "updated_on": "2022-09-18T08:00:00.000000+00:00",
                "user": {
                    "account_id": "111111111111111111111111",
                    "display_name": "Some User",
                    "links": {
                        "avatar": {
                            "href": "https://secure.gravatar.com/avatar/?d=httpsavatar-management--avatars.us-west-2.prod.public.atl-paas.net.png"
                        },
                        "html": {
                            "href": "https://bitbucket.org/%7B11111111-1111-1111-1111-111111111111%7D/"
                        },
                        "self": {
                            "href": "https://api.bitbucket.org/2.0/users/%7B11111111-1111-1111-1111-111111111111%7D"
                        }
                    },
                    "nickname": "Some User",
                    "type": "user",
                    "uuid": "{11111111-1111-1111-1111-111111111111}"
                }
            }
        ]
    }
}

Human Readable Output

The comment was created successfully

bitbucket-pull-request-comment-list


Returns a list of comments of a specific pull request.

Base Command

bitbucket-pull-request-comment-list

Input

Argument Name Description Required
repo The repository name or slug. Optional
pull_request_id The ID of the pull request. To get the pull_request_id, use the !bitbucket-pull-request-list command. Required
comment_id The ID of the comment. To get the comment_id, use the !bitbucket-pull-request-comment-list command. Optional
limit The maximum number of items in the list. The default value is 50. Optional
page The specific result page to display. Optional
partial_response Return a partial response if true, else return the full API response. Possible values are: true, false. Default is true. Optional

Context Output

Path Type Description
Bitbucket.PullRequestComment.id Number The ID of the comment in the pull request.
Bitbucket.PullRequestComment.created_on String The creation date of the pull request comment.
Bitbucket.PullRequestComment.updated_on String The update date of the pull request comment.
Bitbucket.PullRequestComment.content.type String The type of the content, such as rendered.
Bitbucket.PullRequestComment.content.raw String The actual content of the comment.
Bitbucket.PullRequestComment.content.markup String The text styling type, such as markdown.
Bitbucket.PullRequestComment.content.html String The content of the comment in HTML format.
Bitbucket.PullRequestComment.user.display_name String The display name of the user who created the comment.
Bitbucket.PullRequestComment.user.links String Links to information about the user.
Bitbucket.PullRequestComment.user.type String The type of the user.
Bitbucket.PullRequestComment.user.uuid String The unique ID of the user.
Bitbucket.PullRequestComment.user.account_id String The account ID of the user.
Bitbucket.PullRequestComment.user.nickname String The nickname of the user.
Bitbucket.PullRequestComment.deleted Boolean Whether the comment was deleted.
Bitbucket.PullRequestComment.type String The type of the action.
Bitbucket.PullRequestComment.links String Links to information about the pull request.
Bitbucket.PullRequestComment.pullrequest.type String The type of the pull request.
Bitbucket.PullRequestComment.pullrequest.id Number The ID of the pull request.
Bitbucket.PullRequestComment.pullrequest.title String The title of the pull request.
Bitbucket.PullRequestComment.pullrequest.links String Links to information about the pull request.

Command example

!bitbucket-pull-request-comment-list pull_request_id=1

Context Example

{
    "Bitbucket": {
        "PullRequestComment": [
            {
                "content": {
                    "html": "<p>new comment on a pull request</p>",
                    "markup": "markdown",
                    "raw": "new comment on a pull request",
                    "type": "rendered"
                },
                "created_on": "2022-09-18T08:00:00.000000+00:00",
                "deleted": false,
                "id": 11111111,
                "links": {
                    "html": {
                        "href": "https://bitbucket.org/workspace/start_repo/pull-requests/1/_/diff#comment-11111111"
                    },
                    "self": {
                        "href": "https://api.bitbucket.org/2.0/repositories/workspace/start_repo/pullrequests/1/comments/11111111"
                    }
                },
                "pullrequest": {
                    "id": 1,
                    "links": {
                        "html": {
                            "href": "https://bitbucket.org/workspace/start_repo/pull-requests/1"
                        },
                        "self": {
                            "href": "https://api.bitbucket.org/2.0/repositories/workspace/start_repo/pullrequests/1"
                        }
                    },
                    "title": "change 2",
                    "type": "pullrequest"
                },
                "type": "pullrequest_comment",
                "updated_on": "2022-09-18T08:00:00.000000+00:00",
                "user": {
                    "account_id": "111111111111111111111111",
                    "display_name": "Some User",
                    "links": {
                        "avatar": {
                            "href": "https://secure.gravatar.com/avatar/?d=httpsavatar-management--avatars.us-west-2.prod.public.atl-paas.net.png"
                        },
                        "html": {
                            "href": "https://bitbucket.org/%7B11111111-1111-1111-1111-111111111111%7D/"
                        },
                        "self": {
                            "href": "https://api.bitbucket.org/2.0/users/%7B11111111-1111-1111-1111-111111111111%7D"
                        }
                    },
                    "nickname": "Some User",
                    "type": "user",
                    "uuid": "{11111111-1111-1111-1111-111111111111}"
                }
            }
        ]
    }
}

Human Readable Output

List of the comments on pull request “1”

Id Content CreatedBy CreatedAt UpdatedAt
11111111 new comment on a pull request Some User 2022-09-18T08:57:13.848266+00:00 2022-09-18T08:57:13.848309+00:00

bitbucket-pull-request-comment-update


Updates a specific comment in a specific pull request.

Base Command

bitbucket-pull-request-comment-update

Input

Argument Name Description Required
repo The repository name or slug. Optional
pull_request_id The ID of the pull request. To get the pull request_id use, the !bitbucket-pull-request-list command. Required
comment_id The ID of the comment. To get the comment_id, use the !bitbucket-pull-request-comment-list command. Required
content The ID of the comment. Required
partial_response Return a partial response if true, else return the full API response. Possible values are: true, false. Default is true. Optional

Context Output

Path Type Description
Bitbucket.PullRequestComment.id Number The ID of the comment in the pull request.
Bitbucket.PullRequestComment.created_on String The creation date of the pull request comment.
Bitbucket.PullRequestComment.updated_on String The update date of the pull request comment.
Bitbucket.PullRequestComment.content.type String The type of the content, such as rendered.
Bitbucket.PullRequestComment.content.raw String The actual content of the comment.
Bitbucket.PullRequestComment.content.markup String The text styling type, such as markdown.
Bitbucket.PullRequestComment.content.html String The content of the comment in HTML format.
Bitbucket.PullRequestComment.user.display_name String The display name of the user who created the comment.
Bitbucket.PullRequestComment.user.links String Links to information about the user.
Bitbucket.PullRequestComment.user.type String The type of the user.
Bitbucket.PullRequestComment.user.uuid String The unique ID of the user.
Bitbucket.PullRequestComment.user.account_id String The account ID of the user.
Bitbucket.PullRequestComment.user.nickname String The nickname of the user.
Bitbucket.PullRequestComment.deleted Boolean Whether the comment was deleted.
Bitbucket.PullRequestComment.type String The type of the action.
Bitbucket.PullRequestComment.links String Links to information about the pull request.
Bitbucket.PullRequestComment.pullrequest.type String The type of the pull request.
Bitbucket.PullRequestComment.pullrequest.id Number The ID of the pull request.
Bitbucket.PullRequestComment.pullrequest.title String The title of the pull request.
Bitbucket.PullRequestComment.pullrequest.links String Links to information about the pull request.

Command example

!bitbucket-pull-request-comment-update comment_id=111111111 content="hi you" pull_request_id=1

Context Example

{
    "Bitbucket": {
        "PullRequestComment": [
            {
                "content": {
                    "html": "<p>new comment on a pull request</p>",
                    "markup": "markdown",
                    "raw": "new comment on a pull request",
                    "type": "rendered"
                },
                "created_on": "2022-09-18T08:00:00.000000+00:00",
                "deleted": false,
                "id": 11111111,
                "links": {
                    "html": {
                        "href": "https://bitbucket.org/workspace/start_repo/pull-requests/1/_/diff#comment-11111111"
                    },
                    "self": {
                        "href": "https://api.bitbucket.org/2.0/repositories/workspace/start_repo/pullrequests/1/comments/11111111"
                    }
                },
                "pullrequest": {
                    "id": 1,
                    "links": {
                        "html": {
                            "href": "https://bitbucket.org/workspace/start_repo/pull-requests/1"
                        },
                        "self": {
                            "href": "https://api.bitbucket.org/2.0/repositories/workspace/start_repo/pullrequests/1"
                        }
                    },
                    "title": "change 2",
                    "type": "pullrequest"
                },
                "type": "pullrequest_comment",
                "updated_on": "2022-09-18T08:00:00.000000+00:00",
                "user": {
                    "account_id": "111111111111111111111111",
                    "display_name": "Some User",
                    "links": {
                        "avatar": {
                            "href": "https://secure.gravatar.com/avatar/?d=httpsavatar-management--avatars.us-west-2.prod.public.atl-paas.net.png"
                        },
                        "html": {
                            "href": "https://bitbucket.org/%7B11111111-1111-1111-1111-111111111111%7D/"
                        },
                        "self": {
                            "href": "https://api.bitbucket.org/2.0/users/%7B11111111-1111-1111-1111-111111111111%7D"
                        }
                    },
                    "nickname": "Some User",
                    "type": "user",
                    "uuid": "{11111111-1111-1111-1111-111111111111}"
                }
            }
        ]
    }
}

Human Readable Output

The comment was updated successfully

bitbucket-pull-request-comment-delete


Deletes a specific comment in a specific pull request.

Base Command

bitbucket-pull-request-comment-delete

Input

Argument Name Description Required
repo The repository name or slug. Optional
pull_request_id The ID of the pull request. To get the pull_request_id, use the !bitbucket-pull-request-list command. Required
comment_id The ID of the comment. To get the comment_id, use the !bitbucket-pull-request-comment-list command. Required

Context Output

There is no context output for this command.

Command example

!bitbucket-pull-request-comment-delete comment_id=331372169 pull_request_id=1

Human Readable Output

The comment was deleted successfully.

bitbucket-workspace-member-list


Returns a list of all the members in the workspace.

Base Command

bitbucket-workspace-member-list

Input

Argument Name Description Required
limit The maximum number of items in the list. The default value is 50. Optional
page The specific result page to display. Optional
partial_response Return a partial response if true, else return the full API response. Possible values are: true, false. Default is true. Optional

Context Output

Path Type Description
Bitbucket.WorkspaceMember.type String The action type.
Bitbucket.WorkspaceMember.user.display_name String The display name of the user.
Bitbucket.WorkspaceMember.user.links String Links with information about the user.
Bitbucket.WorkspaceMember.user.type String The type of the user.
Bitbucket.WorkspaceMember.user.uuid String The unique ID of the user.
Bitbucket.WorkspaceMember.user.account_id String The account ID of the user.
Bitbucket.WorkspaceMember.user.nickname String The nickname of the user.
Bitbucket.WorkspaceMember.workspace.type String The type of the workspace.
Bitbucket.WorkspaceMember.workspace.uuid String The unique ID of the workspace.
Bitbucket.WorkspaceMember.workspace.name String The name of the workspace.
Bitbucket.WorkspaceMember.workspace.slug String The slug of the workspace.
Bitbucket.WorkspaceMember.workspace.links String Links to information about the workspace.

Command example


#### Context Example

```json
{
    "Bitbucket": {
        "WorkspaceMember": [
            {
                "links": {
                    "self": {
                        "href": "https://api.bitbucket.org/2.0/workspaces/workspace/members/%111111111111-1111-1111-1111-111111111111%11"
                    }
                },
                "type": "workspace_membership",
                "user": {
                    "account_id": "111111111111111111111111",
                    "display_name": "Display Name",
                    "links": {
                        "avatar": {
                            "href": "https://secure.gravatar.com/avatar/?d=httpsavatar-management--avatars.us-west-2.prod.public.atl-paas.net.png"
                        },
                        "html": {
                            "href": "https://bitbucket.org/%111111111111-1111-1111-1111-111111111111%11/"
                        },
                        "self": {
                            "href": "https://api.bitbucket.org/2.0/users/%7B11111111-1111-1111-1111-111111111111%7D"
                        }
                    },
                    "nickname": "nixkname",
                    "type": "user",
                    "uuid": "{11111111-1111-1111-1111-111111111111}"
                },
                "workspace": {
                    "links": {
                        "avatar": {
                            "href": "https://bitbucket.org/workspaces/workspace/avatar/?ts=1111111111"
                        },
                        "html": {
                            "href": "https://bitbucket.org/workspace/"
                        },
                        "self": {
                            "href": "https://api.bitbucket.org/2.0/workspaces/workspace"
                        }
                    },
                    "name": "Some User",
                    "slug": "workspace",
                    "type": "workspace",
                    "uuid": "{11111111-1111-1111-1111-111111111111}"
                }
            },
            {
                "links": {
                    "self": {
                        "href": "https://api.bitbucket.org/2.0/workspaces/workspace/members/%11111111-1111-1111-1111-111111111111%11"
                    }
                },
                "type": "workspace_membership",
                "user": {
                    "account_id": "222222222222222222222222",
                    "display_name": "Display Name",
                    "links": {
                        "avatar": {
                            "href": "https://secure.gravatar.com/avatar/?d=httpsavatar-management--avatars.us-west-2.prod.public.atl-paas.net.png"
                        },
                        "html": {
                            "href": "https://bitbucket.org/%22222222-2222-2222-2222-222222222222%11/"
                        },
                        "self": {
                            "href": "https://api.bitbucket.org/2.0/users/%22222222-2222-2222-2222-222222222222%22"
                        }
                    },
                    "nickname": "nickname",
                    "type": "user",
                    "uuid": "{22222222-2222-2222-2222-222222222222}"
                },
                "workspace": {
                    "links": {
                        "avatar": {
                            "href": "https://bitbucket.org/workspaces/workspace/avatar/?ts=22222222"
                        },
                        "html": {
                            "href": "https://bitbucket.org/workspace/"
                        },
                        "self": {
                            "href": "https://api.bitbucket.org/2.0/workspaces/workspace"
                        }
                    },
                    "name": "Another User",
                    "slug": "workspace",
                    "type": "workspace",
                    "uuid": "{222222222-2222-2222-2222-222222222222}"
                }
            }
        ]
    }
}

Human Readable Output

The list of all the workspace members

Name AccountId
Some User 111111111111111111111111
Another User 222222222222222222222222

Configuration parameters

  • server_url — Server URL (required)
  • workspace — Workspace (required)
  • credentials — User Name
  • client_credentials — Client ID
  • repository — Repository
  • insecure — Trust any certificate (not secure)
  • proxy — Use system proxy settings

Commands (24)

  • bitbucket-branch-create

    Creates a new branch in Bitbucket.

  • bitbucket-branch-delete

    Deletes the given branch from Bitbucket.

  • bitbucket-branch-get

    Returns the information of the requested branch.

  • bitbucket-commit-create

    Creates a new commit in Bitbucket.

  • bitbucket-commit-list

    Returns a list of the commit in accordance with the included and excluded branches.

  • bitbucket-file-delete

    Deletes the given file from Bitbucket.

  • bitbucket-issue-comment-create Deprecated

    Deprecated. Issues are fully removed from Bitbucket Cloud by Atlassian as of Mid-August 2026. Use the ***jira-issue-add-comment*** command in the Atlassian Jira v3 integration instead. Creates a comment on an issue in Bitbucket.

  • bitbucket-issue-comment-delete Deprecated

    Deprecated. Issues are fully removed from Bitbucket Cloud by Atlassian as of Mid-August 2026. Use the ***jira-issue-delete-comment*** command in the Atlassian Jira v3 integration instead. Deletes a comment on an issue in Bitbucket.

  • bitbucket-issue-comment-list Deprecated

    Deprecated. Issues are fully removed from Bitbucket Cloud by Atlassian as of Mid-August 2026. Use the ***jira-get-comments*** command in the Atlassian Jira v3 integration instead. Returns a list of comments on a specific issue. If a comment_id is given it will return information only about the specific comment.

  • bitbucket-issue-comment-update Deprecated

    Deprecated. Issues are fully removed from Bitbucket Cloud by Atlassian as of Mid-August 2026. Use the ***jira-issue-edit-comment*** command in the Atlassian Jira v3 integration instead. Updates a specific comment on a given issue.

  • bitbucket-issue-create Deprecated

    Deprecated. Issues are fully removed from Bitbucket Cloud by Atlassian as of Mid-August 2026. Use the ***jira-create-issue*** command in the Atlassian Jira v3 integration instead. Creates an issue in Bitbucket. To perform this command, create an issue tracker by clicking on the relevant repo > Repository settings > Issue tracker.

  • bitbucket-issue-list Deprecated

    Deprecated. Issues are fully removed from Bitbucket Cloud by Atlassian as of Mid-August 2026. Use the ***jira-get-issue*** command (for a single issue) or the ***jira-issue-query*** command (to list issues using JQL) in the Atlassian Jira v3 integration instead. If an issue_id is given, returns the information about it. Otherwise, returns a list of all the issues, according to the limit parameter.

  • bitbucket-issue-update Deprecated

    Deprecated. Issues are fully removed from Bitbucket Cloud by Atlassian as of Mid-August 2026. Use the ***jira-edit-issue*** command in the Atlassian Jira v3 integration instead. Updates an issue in Bitbucket. To perform this command, create an issue tracker by clicking on the relevant repo > Repository settings > Issue tracker.

  • bitbucket-open-branch-list

    Returns a list of the open branches.

  • bitbucket-project-list

    If a project_key is given, returns the requested project. Else, returns a list of the projects in the workspace.

  • bitbucket-pull-request-comment-create

    Creates a new comment on a pull request.

  • bitbucket-pull-request-comment-delete

    Deletes a specific comment in a specific pull request.

  • bitbucket-pull-request-comment-list

    Returns a list of comments of a specific pull request.

  • bitbucket-pull-request-comment-update

    Updates a specific comment in a specific pull request.

  • bitbucket-pull-request-create

    Creates a pull request in Bitbucket.

  • bitbucket-pull-request-list

    Returns a list of the pull requests. If a state is provided than the list will contain only PRs with the wanted status. If a state is not provided, by default a list of the open pull requests will return.

  • bitbucket-pull-request-update

    Updates a pull request in Bitbucket.

  • bitbucket-raw-file-get

    Returns the content of the given file, along with the option to download it.

  • bitbucket-workspace-member-list

    Returns a list of all the members in the workspace.

import time

import urllib3
from CommonServerPython import *  # noqa # pylint: disable=unused-wildcard-import
from requests import Response

from CommonServerUserPython import *  # noqa

# Disable insecure warnings
urllib3.disable_warnings()  # pylint: disable=no-member

""" CONSTANTS """

DATE_FORMAT = "%Y-%m-%dT%H:%M:%SZ"  # ISO8601 format with UTC, default in XSOAR
TOKEN_URL = "https://bitbucket.org/site/oauth2/access_token"  # The OAuth 2.0 token endpoint, a different host than the API.
TOKEN_SAFETY_MARGIN = 60  # Seconds subtracted from the token expiration time, to avoid using an almost expired token.

""" CLIENT CLASS """


class Client(BaseClient):
    def __init__(
        self,
        workspace: str,
        server_url: str,
        auth: tuple | None = None,
        repository: str = "",
        proxy: bool = False,
        verify: bool = True,
        client_id: str = "",
        client_secret: str = "",
    ):
        """Bitbucket API client, supporting either basic authentication or OAuth 2.0 client credentials.
        Args:
            workspace: str - The Bitbucket workspace.
            server_url: str - The Bitbucket API base URL.
            auth: tuple | None - (user name, API token) for basic authentication. Not used in OAuth mode.
            repository: str - The default repository.
            proxy: bool - Whether to use the system proxy settings.
            verify: bool - Whether to verify the certificate.
            client_id: str - The OAuth consumer key. Given together with client_secret to use OAuth mode.
            client_secret: str - The OAuth consumer secret. Given together with client_id to use OAuth mode.
        """
        self.repository = repository
        self.workspace = workspace
        self.server_url = server_url
        self.client_id = client_id
        self.client_secret = client_secret
        self.use_oauth = bool(client_id and client_secret)
        super().__init__(base_url=server_url, auth=auth, proxy=proxy, verify=verify, headers={"Accept": "application/json"})

    def get_access_token(self) -> str:
        """Returns a valid OAuth 2.0 access token, reusing the cached one while it is still valid.
        Returns:
            The access token to use in the Authorization header.
        """
        integration_context = get_integration_context()
        access_token = integration_context.get("access_token")
        valid_until = integration_context.get("valid_until")
        cached_client_id = integration_context.get("client_id")
        now = int(time.time())
        if access_token and valid_until and now < valid_until and cached_client_id == self.client_id:
            demisto.debug("Using cached OAuth access token.")
            return access_token

        response = super()._http_request(
            method="POST",
            full_url=TOKEN_URL,
            auth=(self.client_id, self.client_secret),
            headers={"Content-Type": "application/x-www-form-urlencoded"},
            data={"grant_type": "client_credentials"},
        )
        access_token = response.get("access_token", "")
        expires_in = arg_to_number(response.get("expires_in")) or 0
        valid_until = now + expires_in - TOKEN_SAFETY_MARGIN
        set_integration_context({"access_token": access_token, "valid_until": valid_until, "client_id": self.client_id})
        demisto.debug(f"Generated a new OAuth access token, expires at {valid_until}.")
        return access_token

    def _http_request(self, *args: Any, **kwargs: Any) -> Any:
        """Adds an up to date Authorization Bearer header when using OAuth, and performs the request.
        Args:
            args: The positional arguments of BaseClient._http_request.
            kwargs: The keyword arguments of BaseClient._http_request.
        Returns:
            The response of BaseClient._http_request.
        """
        if self.use_oauth:
            kwargs["headers"] = {
                **(self._headers or {}),
                **(kwargs.get("headers") or {}),
                "Authorization": f"Bearer {self.get_access_token()}",
            }
        return super()._http_request(*args, **kwargs)

    def get_full_url(self, full_url: str) -> dict:
        """Makes a general GET request according to the given full_url.
        Args:
            full_url: str - The full url for the GET method.
        Returns:
            A dictionary, response object from the given full_url.
        """
        return self._http_request(method="GET", full_url=full_url)

    def get_project_list_request(self, page: int, page_size: int, project_key: str = None) -> dict:
        """Gets a list of all the project in Bitbucket.
            If a specific project_key is given, it will return the information about this project.
        Args:
            project_key: str - A key to a specific project.
            page: int - The specific result's page.
            page_size: int - The number of wanted results in a results page.
        Returns:
            A response object in a form of a dictionary.
        """
        params = {"page": page, "pagelen": page_size}
        if not project_key:
            full_url = f"{self.server_url}/workspaces/{self.workspace}/projects/"
        else:
            project_key = project_key.upper()
            full_url = f"{self.server_url}/workspaces/{self.workspace}/projects/{project_key}"
        return self._http_request(method="GET", full_url=full_url, params=params)

    def get_open_branch_list_request(self, repo: str, page: int, page_size: int) -> dict:
        """Gets a list of all the open branches in Bitbucket.
        Args:
            repo: str - The repository the user entered if he did.
            page: int - The specific result's page.
            page_size: int - The number of wanted results in a results page.
        Returns:
            A response object in a form of a dictionary.
        """
        params = {"page": page, "pagelen": page_size}
        url_suffix = f"/repositories/{self.workspace}/{repo}/refs/branches"
        return self._http_request(method="GET", url_suffix=url_suffix, params=params)

    def get_branch_request(self, branch_name: str, repo: str) -> dict:
        """Gets the information of a specific branch in Bitbucket.
        Args:
            repo: str - The repository the user entered if he did.
            branch_name: str - The name of the branch to create.
        Returns:
            A response object in a form of a dictionary.
        """
        url_suffix = f"/repositories/{self.workspace}/{repo}/refs/branches/{branch_name}"
        return self._http_request(method="GET", url_suffix=url_suffix)

    def branch_create_request(self, name: str, target_branch: str, repo: str) -> dict:
        """Creates a branch in Bitbucket.
        Args:
            repo: str - The repository the user entered if he did.
            name: str - The name of the branch to create.
            target_branch: str - The branch from which to create the new branch.
        Returns:
            A response object in a form of a dictionary.
        """
        url_suffix = f"/repositories/{self.workspace}/{repo}/refs/branches"
        body = {"target": {"hash": target_branch}, "name": name}
        return self._http_request(method="POST", url_suffix=url_suffix, json_data=body)

    def branch_delete_request(self, branch_name: str, repo: str) -> Response:
        """Deletes a branch in Bitbucket.
        Args:
            repo: str - The repository the user entered if he did.
            branch_name: str - The name of the branch to delete.
        Returns:
            A response object.
        """
        url_suffix = f"/repositories/{self.workspace}/{repo}/refs/branches/{branch_name}"
        return self._http_request(method="DELETE", url_suffix=url_suffix, resp_type="response")

    def commit_create_request(self, body: dict, repo: str) -> Response:
        """Creates a commit in Bitbucket.
        Args:
            repo: str - The repository the user entered if he did.
            body: Dict - additional information to the api call.
        Returns:
            A Response object.
        """
        url_suffix = f"/repositories/{self.workspace}/{repo}/src"
        return self._http_request(method="POST", url_suffix=url_suffix, data=body, resp_type="response")

    def commit_list_request(
        self, repo: str, file_path: str, page: int, page_size: int, included_list: list, excluded_list: list = []
    ) -> dict:
        """Gets a list of commits from Bitbucket.
        Args:
            repo: str - The repository the user entered if he did.
            file_path: str - A file name, in order to return commits that are relevant to this file (if given).
            page: int - The specific result's page.
            page_size: int - The number of wanted results in a results page.
            excluded_list: list - A list of branches that the user wants to filter there related commits away from the
                list.
            included_list: list - A list of branches that the user wants to have in the list of commits.
        Returns:
            A response object in a form of a dictionary.
        """
        params = {"path": file_path, "page": page, "pagelen": page_size}
        url_suffix = f"/repositories/{self.workspace}/{repo}/commits"
        param_list = ""
        for branch in excluded_list:
            param_list = f"{param_list}exclude={branch}&"
        for branch in included_list:
            param_list = f"{param_list}include={branch}&"
        if param_list:
            url_suffix = f"{url_suffix}?{param_list[:-1]}"
        return self._http_request(method="POST", url_suffix=url_suffix, params=params)

    def file_delete_request(self, body: dict, repo: str) -> Response:
        """Deletes a file in Bitbucket.
        Args:
            repo: str - The repository the user entered if he did.
            body: Dict - additional information to the api call.
        Returns:
            A Response object.
        """
        url_suffix = f"/repositories/{self.workspace}/{repo}/src"
        return self._http_request(method="POST", url_suffix=url_suffix, data=body, resp_type="response")

    def raw_file_get_request(self, repo: str, file_path: str, commit_hash: str) -> Response:
        """Gets a content of a file in Bitbucket.
        Args:
            repo: str - The repository the user entered, if he did.
            file_path: str - The name of the file
            commit_hash: str - The hash of the relevant commit.
        Returns:
            A Response object.
        """
        url_suffix = f"/repositories/{self.workspace}/{repo}/src/{commit_hash}/{file_path}"
        return self._http_request(method="GET", url_suffix=url_suffix, resp_type="response")

    def issue_create_request(self, repo: str, body: dict) -> dict:
        """Creates an issue in Bitbucket.
        Args:
            repo: str - The repository the user entered if he did.
            body: Dict - additional information to the api call
        Returns:
            A response object in a form of a dictionary.
        """
        url_suffix = f"/repositories/{self.workspace}/{repo}/issues"
        return self._http_request(method="POST", url_suffix=url_suffix, json_data=body)

    def issue_list_request(self, repo: str, page: int, page_size: int, issue_id: str) -> dict:
        """Gets a list of all the issues, or in case that issue_id has been given,
            it will return the information of the specific issue.
        Args:
            repo: str - The repository the user entered if he did.
            page: int - The specific result's page.
            page_size: int - The number of wanted results in a results page.
            issue_id: str - an id to a specific issue to get.
        Returns:
            A response object in a form of a dictionary.
        """
        params = {"page": page, "pagelen": page_size}
        url_suffix = f"/repositories/{self.workspace}/{repo}/issues/"
        if issue_id:
            url_suffix = f"{url_suffix}{issue_id}"
        return self._http_request(method="GET", url_suffix=url_suffix, params=params)

    def issue_update_request(self, repo: str, body: dict, issue_id: str) -> dict:
        """Updates an issue.
        Args:
            repo: str - The repository the user entered if he did.
            body: Dict - the params to the api call
            issue_id: str - an id to a specific issue to update.
        Returns:
            A response object in a form of a dictionary.
        """
        url_suffix = f"/repositories/{self.workspace}/{repo}/issues/{issue_id}/"
        return self._http_request(method="PUT", url_suffix=url_suffix, json_data=body)

    def pull_request_create_request(self, repo: str, body: dict) -> dict:
        """Creates a pull request.
        Args:
            repo: str - The repository the user entered if he did.
            body: Dict - the params to the api call
        Returns:
            A response object in a form of a dictionary.
        """
        url_suffix = f"/repositories/{self.workspace}/{repo}/pullrequests"
        return self._http_request(method="POST", url_suffix=url_suffix, json_data=body)

    def pull_request_update_request(self, repo: str, body: dict, pr_id: str) -> dict:
        """Updates a pull request.
        Args:
            repo: str - The repository the user entered if he did.
            body: Dict - the params to the api call
            pr_id: str - an id to a specific pull request to update.
        Returns:
            A response object in a form of a dictionary.
        """
        url_suffix = f"/repositories/{self.workspace}/{repo}/pullrequests/{pr_id}"
        return self._http_request(method="PUT", url_suffix=url_suffix, json_data=body)

    def pull_request_list_request(self, repo: str, pr_id: str, page: int, page_size: int, state: str) -> dict:
        """Gets information about a specific pull request. If there isn't a pull request id,
            gets a list of pull requests.
        Args:
            repo: str - The repository the user entered if he did.
            pr_id: str - an id to a specific pull request to update.
            page: int - The specific result's page.
            page_size: int - The number of wanted results in a results page.
            state: str - If a state is provided than the list will contain only PR with the wanted status.
        Returns:
            A response object in a form of a dictionary.
        """
        params: dict = {"page": page, "pagelen": page_size}
        if state:
            params["state"] = state
        url_suffix = f"/repositories/{self.workspace}/{repo}/pullrequests"
        if pr_id:
            url_suffix = f"{url_suffix}/{pr_id}"
        return self._http_request(method="GET", url_suffix=url_suffix, params=params)

    def issue_comment_create_request(self, repo: str, issue_id: str, body: dict) -> dict:
        """Creates a comment on an issue.
        Args:
            repo: str - The repository the user entered if he did.
            body: Dict - The content of the comment, in a dictionary form.
            issue_id: str - an id to a specific issue to comment on.
        Returns:
            A response object in a form of a dictionary.
        """
        url_suffix = f"/repositories/{self.workspace}/{repo}/issues/{issue_id}/comments"
        return self._http_request(method="POST", url_suffix=url_suffix, json_data=body)

    def issue_comment_delete_request(self, repo: str, issue_id: str, comment_id: str) -> Response:
        """Deletes a comment in an issue.
        Args:
            repo: str - The repository the user entered, if he did.
            issue_id: str - an id to a specific issue to delete one of its comments.
            comment_id: str - an id of a specific comment to delete.
        Returns:
            A Response object.
        """
        url_suffix = f"/repositories/{self.workspace}/{repo}/issues/{issue_id}/comments/{comment_id}"
        return self._http_request(method="DELETE", url_suffix=url_suffix, resp_type="response")

    def issue_comment_update_request(self, repo: str, issue_id: str, comment_id: str, body: dict) -> dict:
        """Updates a comment in an issue.
        Args:
            repo: str - The repository the user entered, if he did.
            issue_id: str - an id to a specific issue to update one of its comments.
            comment_id: str - an id of a specific comment to update.
            body: Dict - an id of a specific comment to update.
        Returns:
            A response object in a form of a dictionary.
        """
        url_suffix = f"/repositories/{self.workspace}/{repo}/issues/{issue_id}/comments/{comment_id}"
        return self._http_request(method="PUT", url_suffix=url_suffix, json_data=body)

    def issue_comment_list_request(self, repo: str, issue_id: str, comment_id: str, page: int, page_size: int) -> dict:
        """Gets information about a specific comment in an issue.
            if there is no comment_id, then gets all the comments on a specific issue.
        Args:
            repo: str - The repository the user entered, if he did.
            issue_id: str - an id to a specific issue to get its comments.
            comment_id: str - an id of a specific comment.
            page: int - The specific result's page.
            page_size: int - The number of wanted results in a results page.
        Returns:
            A response object in a form of a dictionary.
        """
        params = {"page": page, "pagelen": page_size}
        url_suffix = f"/repositories/{self.workspace}/{repo}/issues/{issue_id}/comments/"
        if comment_id:
            url_suffix = f"{url_suffix}{comment_id}"
        return self._http_request(method="GET", url_suffix=url_suffix, params=params)

    def pull_request_comment_create_request(self, repo: str, pr_id: str, body: dict) -> dict:
        """Creates a new pull request.
        Args:
            repo: str - The repository the user entered, if he did.
            pr_id: str - an id to a specific pull request to add a comment to.
            body: Dict - a dictionary containing information about the content of the comment.
        Returns:
            A response object in a form of a dictionary.
        """
        url_suffix = f"/repositories/{self.workspace}/{repo}/pullrequests/{pr_id}/comments"
        return self._http_request(method="POST", url_suffix=url_suffix, json_data=body)

    def pull_request_comment_list_request(self, repo: str, pr_id: str, page: int, page_size: int, comment_id: str) -> dict:
        """Gets information about a specific comment of a pull request.
            If there isn't a comment_id than gets all the comments on a specific pull request.
        Args:
            repo: str - The repository the user entered, if he did.
            pr_id: str - an id to a specific pull request in order to return the list of its comments.
            page: int - The specific result's page.
            page_size: int - The number of wanted results in a results page.
            comment_id: str - an id to a specific comment, in order to get info about it.
        Returns:
            A response object in a form of a dictionary.
        """

        params = {"page": page, "pagelen": page_size}
        url_suffix = f"/repositories/{self.workspace}/{repo}/pullrequests/{pr_id}/comments"
        if comment_id:
            url_suffix = f"{url_suffix}/{comment_id}"
        return self._http_request(method="GET", url_suffix=url_suffix, params=params)

    def pull_request_comment_update_request(self, repo: str, pr_id: str, body: dict, comment_id: str) -> dict:
        """Updates a specific comment in a pull request.
        Args:
            repo: str - The repository the user entered, if he did.
            pr_id: str - an id to a specific pull request.
            body: Dict - a dictionary with the updated content of the comment.
            comment_id: str - an id to a specific comment to update.
        Returns:
            A response object in a form of a dictionary.
        """
        url_suffix = f"/repositories/{self.workspace}/{repo}/pullrequests/{pr_id}/comments/{comment_id}"
        return self._http_request(method="PUT", url_suffix=url_suffix, json_data=body)

    def pull_request_comment_delete_request(self, repo: str, pr_id: str, comment_id: str) -> Response:
        """Deletes a specific comment in a pull request.
        Args:
            repo: str - The repository the user entered, if he did.
            pr_id: str - an id to a specific pull request to add a comment to.
            comment_id: str - an id to a specific comment to delete.
        Returns:
            a Response object.
        """
        url_suffix = f"/repositories/{self.workspace}/{repo}/pullrequests/{pr_id}/comments/{comment_id}"
        return self._http_request(method="DELETE", url_suffix=url_suffix, resp_type="response")

    def workspace_member_list_request(self, page: int, page_size: int) -> dict:
        """Gets a list of the members in the workspace.
        Args:
            page: int - The specific result's page.
            page_size: int - The number of wanted results in a results page.
        Returns:
            A response object in a form of a dictionary.
        """
        params = {"page": page, "pagelen": page_size}
        url_suffix = f"/workspaces/{self.workspace}/members"
        return self._http_request(method="GET", url_suffix=url_suffix, params=params)


def get_exception_message(e: DemistoException) -> dict:
    """extract the dictionary with the message about the exception.
    Args:
        e: DemistoException - the exception string.
    Returns:
        A json object containing the error message.
    """
    message_arr = e.message.split("\n")
    m_json = json.loads(message_arr[1])
    m_json["message_arr"] = message_arr[0]
    return m_json


def check_pagination(client: Client, response: dict, limit: int) -> List:
    """Check if pagination is needed.
    Args:
        client: A Bitbucket client.
        response: A response from the API call.
        limit: A limit to the list.
    Returns:
        An array of all the relevant results.
    """
    arr: List[dict] = response.get("values", [])
    is_next = response.get("next", None)
    pagelen = response.get("pagelen", 50)
    if is_next and limit > int(pagelen):
        return get_paged_results(client, response, limit)
    else:
        return arr


def get_paged_results(client: Client, response: dict, limit: int) -> List:
    """Uses pagination and returns a list of results.
    Args:
        client: A Bitbucket client.
        response: A response from the API call.
        limit: A limit to the list
    Returns:
        Returns a list of results through pagination..
    """
    results = []
    arr: List[dict] = response.get("values", [])
    is_next = response.get("next", None)
    while response:
        results += arr
        limit = limit - len(arr)
        if limit > 0 and is_next:
            response = client.get_full_url(full_url=is_next)
            is_next = response.get("next", None)
            arr = response.get("values", [])
            if len(arr) > limit:
                arr = arr[:limit]
        else:
            return results
    return results


def create_pull_request_body(
    title: str, source_branch: str, destination_branch: str, reviewer_id: str, description: str, close_source_branch: str
) -> dict:
    """Creates a body for the pull request commands.
    Args:
        title: the title of the pull request.
        source_branch: the source branch in Bitbucket.
        destination_branch: the destination branch in Bitbucket.
        reviewer_id: a list of account_id of the people who should make a review to the pull request.
        description: the description of the pull request.
        close_source_branch: should the branch close after the merging of the pull request.
    Returns:
        A dictionary - a body to the pull request commands.
    """
    body = {}
    if title:
        body["title"] = title
    if source_branch:
        body["source"] = {"branch": {"name": source_branch}}  # type: ignore[assignment]
    if destination_branch:
        body["destination"] = {"branch": {"name": destination_branch}}  # type: ignore[assignment]
    if reviewer_id:
        reviewers_arr = reviewer_id.split(",")
        account_id_list = []
        for id in reviewers_arr:
            dict = {"account_id": id}
            account_id_list.append(dict)
        body["reviewers"] = account_id_list  # type: ignore[assignment]
    if description:
        body["description"] = description
    if close_source_branch:
        body["close_source_branch"] = argToBoolean(close_source_branch)
    return body


def branch_partial_result(response: dict) -> dict:
    """Creates a limited result for the branch commands.
    Args:
        response: the response from the Bitbucket API.
    Returns:
        A dictionary - a limited result to the branch commands.
    """
    return {
        "name": response.get("name"),
        "target": {
            "hash": response.get("target", {}).get("hash"),
            "date": response.get("target", {}).get("date"),
            "author": {
                "user": {
                    "display_name": response.get("target", {}).get("author", {}).get("user", {}).get("display_name"),
                    "account_id": response.get("target", {}).get("author", {}).get("user", {}).get("account_id"),
                }
            },
        },
    }


def issue_partial_result(response: dict) -> dict:
    """Creates a limited result for the issue commands.
    Args:
        response: the response from the Bitbucket API.
    Returns:
        A dictionary - a limited result to the issue commands.
    """
    return {
        "id": response.get("id"),
        "title": response.get("title"),
        "content": {"raw": response.get("content", {}).get("raw")},
        "reporter": {
            "display_name": response.get("reporter", {}).get("display_name"),
            "account_id": response.get("reporter", {}).get("account_id"),
        },
        "assignee": {
            "display_name": response.get("assignee", {}).get("display_name") if response.get("assignee") else "",
            "account_id": response.get("assignee", {}).get("account_id") if response.get("assignee") else "",
        },
        "created_on": response.get("created_on"),
        "updated_on": response.get("updated_on"),
        "state": response.get("state"),
        "kind": response.get("kind"),
        "priority": response.get("priority"),
    }


def pull_request_partial_result(response: dict) -> dict:
    """Creates a limited result for the PR commands.
    Args:
        response: the response from the Bitbucket API.
    Returns:
        A dictionary - a limited result to the PR commands.
    """
    return {
        "id": response.get("id"),
        "title": response.get("title"),
        "description": response.get("description"),
        "state": response.get("state"),
        "author": {
            "display_name": response.get("author", {}).get("display_name"),
            "account_id": response.get("author", {}).get("account_id"),
        },
        "created_on": response.get("created_on"),
        "updated_on": response.get("updated_on"),
        "destination": {"branch": {"name": response.get("destination", {}).get("branch", {}).get("name")}},
        "source": {"branch": {"name": response.get("source", {}).get("branch", {}).get("name")}},
    }


def comment_partial_result(response: dict, pr_or_issue: str) -> dict:
    """Creates a limited result for the comment commands.
    Args:
        response: the response from the Bitbucket API.
        pr_or_issue: an indicator that will tell if this is an issue comment or a pr comment
    Returns:
        A dictionary - a limited result to the comment commands.
    """
    result = {
        "id": response.get("id"),
        "created_on": response.get("created_on"),
        "content": {"raw": response.get("content", {}).get("raw")},
        "user": {
            "display_name": response.get("user", {}).get("display_name"),
            "account_id": response.get("user", {}).get("account_id"),
        },
    }
    if pr_or_issue == "pr":
        result["pullrequest"] = {
            "id": response.get("pullrequest", {}).get("id"),
            "title": response.get("pullrequest", {}).get("title"),
        }
    else:
        result["issue"] = {
            "id": response.get("issue", {}).get("id"),
            "title": response.get("issue", {}).get("title"),
        }
    return result


""" COMMAND FUNCTIONS """


def test_module(client: Client) -> str:
    """Test the connection to bitbucket.
    Args:
        client: A Bitbucket client.
    Returns:
        'ok' if the connection was successful, else throws exception.
    """
    try:
        client.get_project_list_request(page=1, page_size=1)
        return "ok"
    except DemistoException as e:
        raise Exception(e.message)


def project_list_command(client: Client, args: dict) -> CommandResults:
    """Returns a list of all the projects in Bitbucket.
    Args:
        client: A Bitbucket client.
        args: Demisto args.
    Returns:
        A CommandResult object with a success message, in case of a successful action.
    """
    limit = arg_to_number(args.get("limit", 50)) or 50
    project_key = args.get("project_key")
    page = arg_to_number(args.get("page", 1)) or 1
    page_size = min(limit, 100)
    partial_response = argToBoolean(args.get("partial_response", True))
    response = client.get_project_list_request(page, page_size, project_key)

    if project_key:
        results = [response]
        readable_name = f"The information about project {project_key.upper()}"
    else:
        results = check_pagination(client, response, limit)
        readable_name = f"List of projects in {client.workspace}"

    human_readable = []

    for value in results:
        d = {
            "Key": value.get("key"),
            "Name": value.get("name"),
            "Description": value.get("description"),
            "IsPrivate": value.get("is_private"),
        }
        human_readable.append(d)

    headers = ["Key", "Name", "Description", "IsPrivate"]

    readable_output = tableToMarkdown(name=readable_name, t=human_readable, removeNull=True, headers=headers)
    outputs = results
    if partial_response:
        outputs = []
        for result in results:
            temp = {
                "key": result.get("key"),
                "uuid": result.get("uuid"),
                "is_private": result.get("is_private"),
                "name": result.get("name"),
                "description": result.get("description"),
                "created_on": result.get("created_on"),
                "updated_on": result.get("updated_on"),
                "owner": {
                    "display_name": result.get("owner", {}).get("display_name"),
                    "account_id": result.get("owner", {}).get("account_id"),
                },
                "workspace": {"name": result.get("workspace", {}).get("name"), "slug": result.get("workspace", {}).get("slug")},
            }
            outputs.append(temp)
    return CommandResults(
        readable_output=readable_output,
        outputs_prefix="Bitbucket.Project",
        outputs=outputs,
        raw_response=results,
        outputs_key_field="key",
    )


def open_branch_list_command(client: Client, args: dict) -> CommandResults:
    """Returns a list of all the open branches in Bitbucket.
    Args:
        client: A Bitbucket client.
        args: Demisto args.
    Returns:
        A CommandResult object with the list of the branches.
    """
    limit = arg_to_number(args.get("limit", 50)) or 50
    repo = args.get("repo", client.repository)
    page = arg_to_number(args.get("page", 1)) or 1
    page_size = min(limit, 100)
    partial_response = argToBoolean(args.get("partial_response", True))
    response = client.get_open_branch_list_request(repo, page, page_size)
    results = check_pagination(client, response, limit)

    human_readable = []
    for value in results:
        d = {
            "Name": value.get("name"),
            "LastCommitHash": value.get("target").get("hash"),
            "LastCommitCreatedAt": value.get("target").get("date"),
        }
        user = value.get("target").get("author").get("user")
        if user:
            d["LastCommitCreatedBy"] = user.get("display_name")
        else:
            d["LastCommitCreatedBy"] = value.get("target").get("author").get("raw")
        human_readable.append(d)

    headers = ["Name", "LastCommitCreatedBy", "LastCommitCreatedAt", "LastCommitHash"]
    readable_output = tableToMarkdown(name="Open Branches", t=human_readable, removeNull=True, headers=headers)
    outputs = results
    if partial_response:
        outputs = []
        for result in results:
            temp = branch_partial_result(result)
            outputs.append(temp)
    return CommandResults(
        readable_output=readable_output,
        outputs_prefix="Bitbucket.Branch",
        outputs=outputs,
        raw_response=results,
        outputs_key_field="name",
    )


def branch_get_command(client: Client, args: dict) -> CommandResults:
    """Returns the information on a given branch in Bitbucket.
    Args:
        client: A Bitbucket client.
        args: Demisto args.
    Returns:
        A CommandResult object with the information about the branch.
    """
    repo = args.get("repo", client.repository)
    branch_name = args.get("branch_name", "")
    partial_response = argToBoolean(args.get("partial_response", True))
    response: dict = client.get_branch_request(branch_name, repo)
    human_readable = {
        "Name": response.get("name"),
        "LastCommitHash": response.get("target", {}).get("hash"),
        "LastCommitCreatedBy": response.get("target", {}).get("author", {}).get("user", {}).get("display_name"),
        "LastCommitCreatedAt": response.get("target", {}).get("date"),
    }
    headers = ["Name", "LastCommitCreatedBy", "LastCommitCreatedAt", "LastCommitHash"]
    readable_output = tableToMarkdown(
        name=f"Information about the branch: {branch_name}", t=human_readable, removeNull=True, headers=headers
    )
    outputs = response
    if partial_response:
        outputs = branch_partial_result(response)
    return CommandResults(
        readable_output=readable_output,
        outputs_prefix="Bitbucket.Branch",
        outputs=outputs,
        raw_response=response,
        outputs_key_field="name",
    )


def branch_create_command(client: Client, args: dict) -> CommandResults:
    """creates a branch in Bitbucket.
    Args:
        client: A Bitbucket client.
        args: Demisto args.
    Returns:
        A CommandResult object with a success message, in case of a successful action.
    """
    repo = args.get("repo", client.repository)
    name = args.get("name", "")
    target_branch = args.get("target_branch", "")
    partial_response = argToBoolean(args.get("partial_response", True))
    response = client.branch_create_request(name, target_branch, repo)
    outputs = response
    if partial_response:
        outputs = branch_partial_result(response)
    return CommandResults(
        readable_output=f'The branch "{name}" was created successfully.',
        outputs_prefix="Bitbucket.Branch",
        outputs=outputs,
        raw_response=response,
        outputs_key_field="name",
    )


def branch_delete_command(client: Client, args: dict) -> CommandResults:
    """Deletes a branch in Bitbucket.
    Args:
        client: A Bitbucket client.
        args: Demisto args.
    Returns:
        A CommandResult object with a success message, in case of a successful action.
    """
    repo = args.get("repo", client.repository)
    branch_name = args.get("branch_name", "")
    try:
        client.branch_delete_request(branch_name, repo)
        return CommandResults(readable_output=f"The branch {branch_name} was deleted successfully.")
    except DemistoException as e:
        m_json = get_exception_message(e)
        raise Exception(f'{m_json.get("message_arr")} , branch "{m_json.get("error", {}).get("message")}"')


def commit_create_command(client: Client, args: dict) -> CommandResults:
    """creates a commit in Bitbucket.
    Args:
        client: A Bitbucket client.
        args: Demisto args.
    Returns:
        A CommandResult object with a success message, in case of a successful action.
    """
    repo = args.get("repo", client.repository)
    message = args.get("message", "")
    branch = args.get("branch", "")
    file_name = args.get("file_name", None)
    file_content = args.get("file_content", None)
    entry_id = args.get("entry_id", None)
    author_name = args.get("author_name", None)
    author_email = args.get("author_email", None)

    if not file_name and not entry_id:
        raise Exception('You must specify either the "file_name" and "file_content" or the "entry_id" of the file.')
    if file_name and entry_id:
        raise Exception('You must specify the "file_name" and "file_content" or the "entry_id" of the file, not both.')
    elif entry_id:
        file_path = demisto.getFilePath(entry_id).get("path")
        file_name = demisto.getFilePath(entry_id).get("name")
        with open(file_path, "rb") as f:
            file_content = f.read()
    body = {"message": message, "branch": branch, file_name: file_content}
    if author_name and author_email:
        body["author"] = f"{author_name} <{author_email}>"
    elif (author_name and not author_email) or (not author_name and author_email):
        raise Exception("Both author email and author name should be given")
    client.commit_create_request(body, repo)
    return CommandResults(readable_output="The commit was created successfully.")


def commit_list_command(client: Client, args: dict) -> CommandResults:
    """Returns a list of all the commits according to the given params.
    Args:
        client: A Bitbucket client.
        args: Demisto args.
    Returns:
        A CommandResult object with the list of commits.
    """
    repo = args.get("repo", client.repository)
    file_path = args.get("file_path", None)
    excluded_branches = argToList(args.get("excluded_branches", None))
    included_branches = argToList(args.get("included_branches", None))
    limit = arg_to_number(args.get("limit")) or 50
    page = arg_to_number(args.get("page", 1)) or 1
    partial_response = argToBoolean(args.get("partial_response"))
    page_size = min(limit, 100)
    response = client.commit_list_request(repo, file_path, page, page_size, included_branches, excluded_branches)
    results = check_pagination(client, response, limit)
    human_readable = []
    for value in results:
        d = {
            "Author": value.get("author").get("raw"),
            "Commit": value.get("hash"),
            "Message": value.get("message"),
            "CreatedAt": value.get("date"),
        }
        human_readable.append(d)

    headers = ["Author", "Commit", "Message", "CreatedAt"]
    readable_output = tableToMarkdown(name="The list of commits", t=human_readable, removeNull=True, headers=headers)
    outputs = results
    if partial_response:
        outputs = []
        for res in results:
            temp = {
                "hash": res.get("hash"),
                "date": res.get("date"),
                "author": {
                    "user": {
                        "display_name": res.get("author", {}).get("user", {}).get("display_name"),
                        "account_id": res.get("author", {}).get("user", {}).get("account_id"),
                    }
                },
                "message": res.get("message"),
            }
            outputs.append(temp)

    return CommandResults(
        readable_output=readable_output,
        outputs_prefix="Bitbucket.Commit",
        outputs=outputs,
        raw_response=results,
        outputs_key_field="hash",
    )


def file_delete_command(client: Client, args: dict) -> CommandResults:
    """Deletes a file in Bitbucket.
    Args:
        client: A Bitbucket client.
        args: Demisto args.
    Returns:
        A CommandResult object with a success message, in case of a successful action.
    """
    repo = args.get("repo", client.repository)
    message = args.get("message", "")
    branch = args.get("branch", "")
    file_name = args.get("file_name", "")
    author_name = args.get("author_name", None)
    author_email = args.get("author_email", None)
    body = {"message": message, "branch": branch, "files": file_name}
    if author_name and author_email:
        body["author"] = f"{author_name} <{author_email}>"
    elif (author_name and not author_email) or (not author_name and author_email):
        raise Exception("Both author email and author name should be given")
    client.file_delete_request(body, repo)
    return CommandResults(readable_output="The file was deleted successfully.")


def raw_file_get_command(client: Client, args: dict) -> List[CommandResults]:
    """Returns the content of a given file.
    Args:
        client: A Bitbucket client.
        args: Demisto args.
    Returns:
        A list containing a CommandResult object and a fileResult object.
    """
    repo = args.get("repo", client.repository)
    file_path = args.get("file_path", "")
    branch = args.get("branch", None)
    including_list = []
    if branch:
        including_list = [branch]
    try:
        commit_list = client.commit_list_request(
            repo=repo, file_path=file_path, page=1, page_size=100, included_list=including_list
        )
    except DemistoException as e:
        m_json = get_exception_message(e)
        raise Exception(f'{m_json.get("message_arr")} , branch {m_json.get("data", {}).get("shas")}')
    values: List = commit_list.get("values", [])
    if len(values) == 0:
        raise Exception(f'The file "{file_path}" does not exist')

    commit_hash = values[0].get("hash")
    response = client.raw_file_get_request(repo, file_path, commit_hash)
    output = {"file_path": file_path, "file_content": response.text}
    file_ = fileResult(filename=file_path, data=response.text, file_type=entryTypes["entryInfoFile"])
    return [
        CommandResults(
            readable_output=f'The content of the file "{file_path}" is: {response.text}',
            outputs_prefix="Bitbucket.RawFile",
            outputs=output,
        ),
        file_,
    ]


def issue_create_command(client: Client, args: dict) -> CommandResults:
    """creates an issue in Bitbucket.
    Args:
        client: A Bitbucket client.
        args: Demisto args.
    Returns:
        A CommandResult object with a success message, in case of a successful action.
    """
    repo = args.get("repo", client.repository)
    title = args.get("title", "")
    state = args.get("state", "new")
    issue_type = args.get("type", "bug")
    priority = args.get("priority", "major")
    content = args.get("content", None)
    assignee_id = args.get("assignee_id", None)
    assignee_user_name = args.get("assignee_user_name", None)
    partial_response = argToBoolean(args.get("partial_response", True))
    body = {"title": title, "state": state, "kind": issue_type, "priority": priority}
    if content:
        body["content"] = {"raw": content}
    if assignee_id:
        body["assignee"] = {"account_id": assignee_id, "username": assignee_user_name}
    response = client.issue_create_request(repo, body)
    outputs = response
    if partial_response:
        outputs = issue_partial_result(response)
    return CommandResults(
        readable_output=f'The issue "{title}" was created successfully',
        outputs_prefix="Bitbucket.Issue",
        outputs=outputs,
        raw_response=response,
        outputs_key_field="id",
    )


def issue_list_command(client: Client, args: dict) -> CommandResults:
    """Retrieves issues from Bitbucket.
    Args:
        client: A Bitbucket client.
        args: Demisto args.
    Returns:
        A CommandResult object with the array of issues as output.
    """
    repo = args.get("repo", client.repository)
    issue_id = args.get("issue_id", None)
    limit = arg_to_number(args.get("limit", 50)) or 50
    page = arg_to_number(args.get("page", 1)) or 1
    page_size = min(limit, 100)
    partial_response = argToBoolean(args.get("partial_response", True))
    response = client.issue_list_request(repo, page, page_size, issue_id)
    if issue_id:
        results = [response]
        hr_title = f'The information about issue "{issue_id}"'
    else:
        results = check_pagination(client, response, limit)
        hr_title = "Issues List"
    human_readable = []
    for value in results:
        d = {
            "Id": value.get("id"),
            "Title": value.get("title"),
            "Type": value.get("kind"),
            "Priority": value.get("priority"),
            "Status": value.get("state"),
            "Votes": value.get("votes"),
            "CreatedAt": value.get("created_on"),
            "UpdatedAt": value.get("updated_on"),
        }
        assignee = value.get("assignee", {})
        d["assignee"] = assignee.get("display_name") if assignee else None
        human_readable.append(d)

    headers = ["Id", "Title", "Type", "Priority", "Status", "Votes", "Assignee", "CreatedAt", "UpdatedAt"]
    readable_output = tableToMarkdown(name=hr_title, t=human_readable, removeNull=True, headers=headers)
    outputs = results
    if partial_response:
        outputs = []
        for res in results:
            temp = issue_partial_result(res)
            outputs.append(temp)
    return CommandResults(
        readable_output=readable_output,
        outputs_prefix="Bitbucket.Issue",
        outputs=outputs,
        raw_response=results,
        outputs_key_field="id",
    )


def issue_update_command(client: Client, args: dict) -> CommandResults:
    """Updates an issue from Bitbucket. If a certain argument isn't given, don't update it on the issue.
    Args:
        client: A Bitbucket client.
        args: Demisto args.
    Returns:
        A CommandResult object with a dictionary contains the updated issue.
    """
    repo = args.get("repo", client.repository)
    issue_id = args.get("issue_id", "")
    title = args.get("title", "")
    state = args.get("state")
    issue_type = args.get("type")
    priority = args.get("priority")
    content = args.get("content", None)
    assignee_id = args.get("assignee_id", None)
    assignee_user_name = args.get("assignee_user_name", None)
    partial_response = argToBoolean(args.get("partial_response", True))
    body = {"title": title}
    if state:
        body["state"] = state
    if issue_type:
        body["kind"] = issue_type
    if priority:
        body["priority"] = priority
    if content:
        body["content"] = {"raw": content}
    if assignee_id:
        body["assignee"] = {"account_id": assignee_id, "username": assignee_user_name}
    response = client.issue_update_request(repo, body, issue_id)
    outputs = response
    if partial_response:
        outputs = issue_partial_result(response)
    return CommandResults(
        readable_output=f'The issue with id "{issue_id}" was updated successfully',
        outputs_prefix="Bitbucket.Issue",
        outputs=outputs,
        raw_response=response,
        outputs_key_field="id",
    )


def pull_request_create_command(client: Client, args: dict) -> CommandResults:
    """Creates a pull request in Bitbucket.
    Args:
        client: A Bitbucket client.
        args: Demisto args.
    Returns:
        A CommandResult object with a dictionary contains information about the new pull request.
    """
    repo = args.get("repo", client.repository)
    title = args.get("title", "")
    source_branch = args.get("source_branch", "")
    destination_branch = args.get("destination_branch", "")
    reviewer_id = args.get("reviewer_id", None)
    description = args.get("description", None)
    close_source_branch = args.get("close_source_branch", None)
    partial_response = argToBoolean(args.get("partial_response", True))
    body = create_pull_request_body(title, source_branch, destination_branch, reviewer_id, description, close_source_branch)
    response = client.pull_request_create_request(repo, body)
    outputs = response
    if partial_response:
        outputs = pull_request_partial_result(response)
    return CommandResults(
        readable_output="The pull request was created successfully",
        outputs_prefix="Bitbucket.PullRequest",
        outputs=outputs,
        raw_response=response,
        outputs_key_field="id",
    )


def pull_request_update_command(client: Client, args: dict) -> CommandResults:
    """Updates a pull request from Bitbucket. If a certain argument isn't given, don't update it on the issue.
    Args:
        client: A Bitbucket client.
        args: Demisto args.
    Returns:
        A CommandResult object with a dictionary contains information about the updated pull request.
    """
    repo = args.get("repo", client.repository)
    pull_request_id = args.get("pull_request_id", "")
    title = args.get("title", None)
    source_branch = args.get("source_branch", None)
    destination_branch = args.get("destination_branch", None)
    reviewer_id = args.get("reviewer_id", None)
    description = args.get("description", None)
    close_source_branch = args.get("close_source_branch", None)
    partial_response = argToBoolean(args.get("partial_response", True))
    body = create_pull_request_body(title, source_branch, destination_branch, reviewer_id, description, close_source_branch)
    response = client.pull_request_update_request(repo, body, pull_request_id)
    outputs = response
    if partial_response:
        outputs = pull_request_partial_result(response)
    return CommandResults(
        readable_output=f"The pull request {pull_request_id} was updated successfully",
        outputs_prefix="Bitbucket.PullRequest",
        outputs=outputs,
        raw_response=response,
        outputs_key_field="id",
    )


def pull_request_list_command(client: Client, args: dict) -> CommandResults:
    """Returns a list of pull requests.
    Args:
        client: A Bitbucket client.
        args: Demisto args.
    Returns:
        A CommandResult object with a dictionary contains a list of pull request.
        If a state is provided than the list will contain only PR with the wanted status.
        If a state is not provided, by default a list of the open pull requests will return.
    """
    repo = args.get("repo", client.repository)
    pull_request_id = args.get("pull_request_id", None)
    state = args.get("state", None)
    limit = arg_to_number(args.get("limit", 50)) or 50
    page = arg_to_number(args.get("page", 1)) or 1
    page_size = min(limit, 50)
    partial_response = argToBoolean(args.get("partial_response", True))
    response = client.pull_request_list_request(repo, pull_request_id, page, page_size, state)
    if pull_request_id:
        results = [response]
        hr_title = f'The information about pull request "{pull_request_id}"'
    else:
        results = check_pagination(client, response, limit)
        hr_title = "List of the pull requests"
    human_readable = []
    for value in results:
        d = {
            "Id": value.get("id"),
            "Title": value.get("title"),
            "Description": value.get("description"),
            "SourceBranch": value.get("source", {}).get("branch", {}).get("name"),
            "DestinationBranch": value.get("destination", {}).get("branch", {}).get("name"),
            "State": value.get("state"),
            "CreatedBy": value.get("author", {}).get("display_name"),
            "CreatedAt": value.get("created_on"),
            "UpdatedAt": value.get("updated_on"),
        }
        human_readable.append(d)

    headers = ["Id", "Title", "Description", "SourceBranch", "DestinationBranch", "State", "CreatedBy", "CreatedAt", "UpdatedAt"]
    readable_output = tableToMarkdown(name=hr_title, t=human_readable, removeNull=True, headers=headers)
    outputs = results
    if partial_response:
        outputs = []
        for res in results:
            temp = pull_request_partial_result(res)
            outputs.append(temp)
    return CommandResults(
        readable_output=readable_output,
        outputs_prefix="Bitbucket.PullRequest",
        outputs=outputs,
        raw_response=results,
        outputs_key_field="id",
    )


def issue_comment_create_command(client: Client, args: dict) -> CommandResults:
    """Creates a comment on a specific issue in Bitbucket.
    Args:
        client: A Bitbucket client.
        args: Demisto args.
    Returns:
        A CommandResult object with a success message and information about the newly created comment.
    """
    repo = args.get("repo", client.repository)
    issue_id = args.get("issue_id", "")
    content = args.get("content", "")
    body = {"content": {"raw": content}}
    partial_response = argToBoolean(args.get("partial_response", True))
    response = client.issue_comment_create_request(repo, issue_id, body)
    outputs = response
    if partial_response:
        outputs = comment_partial_result(response, "issue")
    return CommandResults(
        readable_output="The comment was created successfully",
        outputs_prefix="Bitbucket.IssueComment",
        outputs=outputs,
        raw_response=response,
        outputs_key_field="id",
    )


def issue_comment_delete_command(client: Client, args: dict) -> CommandResults:
    """Deletes a comment on a specific issue in Bitbucket.
    Args:
        client: A Bitbucket client.
        args: Demisto args.
    Returns:
        A CommandResult object with a success message, in case of a successful deletion.
    """
    repo = args.get("repo", client.repository)
    issue_id = args.get("issue_id", "")
    comment_id = args.get("comment_id", "")
    client.issue_comment_delete_request(repo, issue_id, comment_id)
    return CommandResults(readable_output="The comment was deleted successfully")


def issue_comment_update_command(client: Client, args: dict) -> CommandResults:
    """Updates a comment on a specific issue in Bitbucket.
    Args:
        client: A Bitbucket client.
        args: Demisto args.
    Returns:
        A CommandResult object with a success message, in case of a successful update.
    """
    repo = args.get("repo", client.repository)
    issue_id = args.get("issue_id", "")
    comment_id = args.get("comment_id", "")
    content = args.get("content", "")
    partial_response = argToBoolean(args.get("partial_response", True))
    body = {"content": {"raw": content}}
    response = client.issue_comment_update_request(repo, issue_id, comment_id, body)
    outputs = response
    if partial_response:
        outputs = comment_partial_result(response, "issue")
    return CommandResults(
        readable_output="The comment was updated successfully",
        outputs_prefix="Bitbucket.IssueComment",
        outputs=outputs,
        raw_response=response,
        outputs_key_field="id",
    )


def issue_comment_list_command(client: Client, args: dict) -> CommandResults:
    """Returns a list of comments, or a single comment if a commit_id is given, on a
        specific issue.
    Args:
        client: A Bitbucket client.
        args: Demisto args.
    Returns:
        A CommandResult object with a list of the comments, or a single comment if a commit_id is given on a
        specific issue.
    """
    repo = args.get("repo", client.repository)
    issue_id = args.get("issue_id", "")
    comment_id = args.get("comment_id", None)
    limit = arg_to_number(args.get("limit", 50)) or 50
    page = arg_to_number(args.get("page", 1)) or 1
    page_size = min(limit, 100)
    partial_response = argToBoolean(args.get("partial_response", True))
    response = client.issue_comment_list_request(repo, issue_id, comment_id, page, page_size)
    if comment_id:
        results = [response]
        hr_title = f'The information about the comment "{comment_id}"'
    else:
        results = check_pagination(client, response, limit)
        hr_title = f'List of the comments on issue "{issue_id}"'
    human_readable = []
    for value in results:
        d = {
            "Id": value.get("id"),
            "Content": value.get("content", {}).get("raw"),
            "CreatedBy": value.get("user", {}).get("display_name"),
            "CreatedAt": value.get("created_on"),
            "UpdatedAt": value.get("updated_on"),
            "IssueId": value.get("issue", {}).get("id"),
            "IssueTitle": value.get("issue", {}).get("title"),
        }
        human_readable.append(d)

    headers = ["Id", "Content", "CreatedBy", "CreatedAt", "UpdatedAt", "IssueId", "IssueTitle"]
    readable_output = tableToMarkdown(name=hr_title, t=human_readable, removeNull=True, headers=headers)
    outputs = results
    if partial_response:
        outputs = []
        for res in results:
            temp = comment_partial_result(res, "issue")
            outputs.append(temp)
    return CommandResults(
        readable_output=readable_output,
        outputs_prefix="Bitbucket.IssueComment",
        outputs=outputs,
        raw_response=results,
        outputs_key_field="id",
    )


def pull_request_comment_create_command(client: Client, args: dict) -> CommandResults:
    """Creates a comment in a pull request.
    Args:
        client: A Bitbucket client.
        args: Demisto args.
    Returns:
        A CommandResult object with a success message, in case of a successful creation of a comment.
    """
    repo = args.get("repo", client.repository)
    pr_id = args.get("pull_request_id", "")
    content = args.get("content", "")
    partial_response = argToBoolean(args.get("partial_response", True))
    body = {"content": {"raw": content}}
    response = client.pull_request_comment_create_request(repo, pr_id, body)
    outputs = response
    if partial_response:
        outputs = comment_partial_result(response, "pr")
    return CommandResults(
        readable_output="The comment was created successfully",
        outputs_prefix="Bitbucket.PullRequestComment",
        outputs=outputs,
        raw_response=response,
        outputs_key_field="id",
    )


def pull_request_comment_list_command(client: Client, args: dict) -> CommandResults:
    """Returns a list of comments of a specific pull request, or a single comment on a specific pull
        request, if a comment_id is given.
    Args:
        client: A Bitbucket client.
        args: Demisto args.
    Returns:
        A CommandResult object with a list of the comments of a pull request or a single comment on a specific pull
        request, if a comment_id is given.
    """
    repo = args.get("repo", client.repository)
    pr_id = args.get("pull_request_id", "")
    comment_id = args.get("comment_id", None)
    limit = arg_to_number(args.get("limit", 50)) or 50
    page = arg_to_number(args.get("page", 1)) or 1
    page_size = min(limit, 100)
    partial_response = argToBoolean(args.get("partial_response", True))
    response = client.pull_request_comment_list_request(repo, pr_id, page, page_size, comment_id)
    if comment_id:
        results = [response]
        hr_title = f'The information about the comment "{comment_id}"'
    else:
        results = check_pagination(client, response, limit)
        hr_title = f'List of the comments on pull request "{pr_id}"'
    human_readable = []
    # After a comment on a pull request is deleted it will still appear on the response from the api.
    # Those comments can be recognized when their 'deleted' value is True.
    # In order not to show the deleted comments, they are saved in records_to_delete array, and then are deleted.
    records_to_delete = []
    for value in results:
        if not value.get("deleted"):
            d = {
                "Id": value.get("id"),
                "Content": value.get("content", {}).get("raw"),
                "CreatedBy": value.get("user", {}).get("display_name"),
                "CreatedAt": value.get("created_on"),
                "UpdatedAt": value.get("updated_on"),
                "PullRequestId": value.get("pullrequest", {}).get("id"),
                "PullRequestTitle": value.get("pullrequest", {}).get("title"),
            }
            human_readable.append(d)
        else:
            records_to_delete.append(value)
    if len(records_to_delete) > 0:
        for item in records_to_delete:
            results.remove(item)

    headers = ["Id", "Content", "CreatedBy", "CreatedAt", "UpdatedAt", "PullRequestId", "PullRequestTitle"]
    readable_output = tableToMarkdown(name=hr_title, t=human_readable, removeNull=True, headers=headers)
    outputs = results
    if partial_response:
        outputs = []
        for res in results:
            temp = comment_partial_result(res, "pr")
            outputs.append(temp)
    return CommandResults(
        readable_output=readable_output,
        outputs_prefix="Bitbucket.PullRequestComment",
        outputs=outputs,
        raw_response=results,
        outputs_key_field="id",
    )


def pull_request_comment_update_command(client: Client, args: dict) -> CommandResults:
    """Updates a comment in a pull request.
    Args:
        client: A Bitbucket client.
        args: Demisto args.
    Returns:
        A CommandResult object with a success message.
    """
    repo = args.get("repo", client.repository)
    pr_id = args.get("pull_request_id", "")
    comment_id = args.get("comment_id", "")
    content = args.get("content")
    partial_response = argToBoolean(args.get("partial_response", True))
    body = {"content": {"raw": content}}
    response = client.pull_request_comment_update_request(repo, pr_id, body, comment_id)
    outputs = response
    if partial_response:
        outputs = comment_partial_result(response, "pr")
    return CommandResults(
        readable_output="The comment was updated successfully",
        outputs_prefix="Bitbucket.PullRequestComment",
        outputs=outputs,
        raw_response=response,
        outputs_key_field="id",
    )


def pull_request_comment_delete_command(client: Client, args: dict) -> CommandResults:
    """Deletes a comment in a pull request.
    Args:
        client: A Bitbucket client.
        args: Demisto args.
    Returns:
        A CommandResult object with a success message.
    """
    repo = args.get("repo", client.repository)
    pr_id = args.get("pull_request_id", "")
    comment_id = args.get("comment_id", "")
    try:
        client.pull_request_comment_delete_request(repo, pr_id, comment_id)
        return CommandResults(readable_output="The comment was deleted successfully.")
    except DemistoException as e:
        raise Exception(f"Could not delete the comment in the pull request - {e.message}")


def workspace_member_list_command(client: Client, args: dict) -> CommandResults:
    """Returns a list of all the members in the requested workspace.
    Args:
        client: A Bitbucket client.
        args: Demisto args.
    Returns:
        A CommandResult object with the requested list.
    """
    limit = arg_to_number(args.get("limit", 50)) or 50
    page = arg_to_number(args.get("page", 1)) or 1
    page_size = min(limit, 100)
    partial_response = argToBoolean(args.get("partial_response", True))
    response = client.workspace_member_list_request(page, page_size)
    results = check_pagination(client, response, limit)
    human_readable = []
    for value in results:
        d = {"Name": value.get("user").get("display_name"), "AccountId": value.get("user").get("account_id")}
        human_readable.append(d)
    headers = ["Name", "AccountId"]
    readable_output = tableToMarkdown(
        name="The list of all the workspace members", t=human_readable, removeNull=True, headers=headers
    )
    outputs = results
    if partial_response:
        outputs = []
        for res in results:
            temp = {
                "user": {
                    "display_name": res.get("user", {}).get("display_name"),
                    "account_id": res.get("user", {}).get("account_id"),
                },
                "workspace": {"name": res.get("workspace", {}).get("name"), "slug": res.get("workspace", {}).get("slug")},
            }
            outputs.append(temp)
    return CommandResults(
        readable_output=readable_output,
        outputs_prefix="Bitbucket.WorkspaceMember",
        outputs=outputs,
        raw_response=results,
        outputs_key_field="user.account_id",
    )


""" MAIN FUNCTION """


def main() -> None:  # pragma: no cover
    params = demisto.params()
    workspace = params.get("workspace")
    server_url = params.get("server_url")
    user_name = params.get("credentials", {}).get("identifier", "")
    api_token = params.get("credentials", {}).get("password", "")
    client_id = params.get("client_credentials", {}).get("identifier", "")
    client_secret = params.get("client_credentials", {}).get("password", "")
    repository = params.get("repository", "")
    verify_certificate = not params.get("insecure", False)
    proxy = params.get("proxy", False)

    basic_auth_given = bool(user_name or api_token)
    oauth_given = bool(client_id or client_secret)
    use_basic_auth = bool(user_name and api_token)
    use_oauth = bool(client_id and client_secret)

    if basic_auth_given and oauth_given:
        return_error(
            "Both authentication methods were configured. Please configure only one method, either "
            "User Name + API Token, or Client ID + Client Secret."
        )
    if not basic_auth_given and not oauth_given:
        return_error(
            "No authentication method was configured. Please configure either User Name + API Token, "
            "or Client ID + Client Secret."
        )
    if basic_auth_given and not use_basic_auth:
        missing_field = "API Token" if user_name else "User Name"
        return_error(f"The API Token authentication method is missing the {missing_field}. Please configure it.")
    if oauth_given and not use_oauth:
        missing_field = "Client Secret" if client_id else "Client ID"
        return_error(f"The OAuth 2.0 authentication method is missing the {missing_field}. Please configure it.")

    demisto.debug(f"Command being called is {demisto.command()}")
    try:
        client = Client(
            workspace=workspace,
            server_url=server_url,
            auth=(user_name, api_token) if use_basic_auth else None,
            proxy=proxy,
            verify=verify_certificate,
            repository=repository,
            client_id=client_id if use_oauth else "",
            client_secret=client_secret if use_oauth else "",
        )

        if demisto.command() == "test-module":
            # This is the call made when pressing the integration Test button.
            str_result: str = test_module(client)
            return_results(str_result)
        elif demisto.command() == "bitbucket-project-list":
            result: CommandResults = project_list_command(client, demisto.args())
            return_results(result)
        elif demisto.command() == "bitbucket-open-branch-list":
            result = open_branch_list_command(client, demisto.args())
            return_results(result)
        elif demisto.command() == "bitbucket-branch-get":
            result = branch_get_command(client, demisto.args())
            return_results(result)
        elif demisto.command() == "bitbucket-branch-create":
            result = branch_create_command(client, demisto.args())
            return_results(result)
        elif demisto.command() == "bitbucket-branch-delete":
            result = branch_delete_command(client, demisto.args())
            return_results(result)
        elif demisto.command() == "bitbucket-commit-create":
            result = commit_create_command(client, demisto.args())
            return_results(result)
        elif demisto.command() == "bitbucket-commit-list":
            result = commit_list_command(client, demisto.args())
            return_results(result)
        elif demisto.command() == "bitbucket-file-delete":
            result = file_delete_command(client, demisto.args())
            return_results(result)
        elif demisto.command() == "bitbucket-raw-file-get":
            result_list = raw_file_get_command(client, demisto.args())
            return_results(result_list)
        elif demisto.command() == "bitbucket-issue-create":
            result = issue_create_command(client, demisto.args())
            return_results(result)
        elif demisto.command() == "bitbucket-issue-list":
            result = issue_list_command(client, demisto.args())
            return_results(result)
        elif demisto.command() == "bitbucket-issue-update":
            result = issue_update_command(client, demisto.args())
            return_results(result)
        elif demisto.command() == "bitbucket-pull-request-create":
            result = pull_request_create_command(client, demisto.args())
            return_results(result)
        elif demisto.command() == "bitbucket-pull-request-update":
            result = pull_request_update_command(client, demisto.args())
            return_results(result)
        elif demisto.command() == "bitbucket-pull-request-list":
            result = pull_request_list_command(client, demisto.args())
            return_results(result)
        elif demisto.command() == "bitbucket-issue-comment-create":
            result = issue_comment_create_command(client, demisto.args())
            return_results(result)
        elif demisto.command() == "bitbucket-issue-comment-delete":
            result = issue_comment_delete_command(client, demisto.args())
            return_results(result)
        elif demisto.command() == "bitbucket-issue-comment-update":
            result = issue_comment_update_command(client, demisto.args())
            return_results(result)
        elif demisto.command() == "bitbucket-issue-comment-list":
            result = issue_comment_list_command(client, demisto.args())
            return_results(result)
        elif demisto.command() == "bitbucket-pull-request-comment-create":
            result = pull_request_comment_create_command(client, demisto.args())
            return_results(result)
        elif demisto.command() == "bitbucket-pull-request-comment-list":
            result = pull_request_comment_list_command(client, demisto.args())
            return_results(result)
        elif demisto.command() == "bitbucket-pull-request-comment-update":
            result = pull_request_comment_update_command(client, demisto.args())
            return_results(result)
        elif demisto.command() == "bitbucket-pull-request-comment-delete":
            result = pull_request_comment_delete_command(client, demisto.args())
            return_results(result)
        elif demisto.command() == "bitbucket-workspace-member-list":
            result = workspace_member_list_command(client, demisto.args())
            return_results(result)
        else:
            raise NotImplementedError("This command is not implemented yet.")

    # Log exceptions and return errors
    except Exception as e:
        return_error(f"Failed to execute {demisto.command()} command.\nError:\n{e!s}")


""" ENTRY POINT """

if __name__ in ("__main__", "__builtin__", "builtins"):
    main()