SuggestBranchName
The script gets the pack name as input and suggests an available branch name, for example: pack name is "MyPack" the branch name will be "MyPack". If a branch with the name "MyPack" exists, the script return "MyPack_1".
python · XSOAR CI/CD
Source
import demistomock as demisto # noqa: F401 from CommonServerPython import * # noqa: F401 ATTEMPTS = 10 def find_available_branch_azure_devops(pack_name: str): response = demisto.executeCommand("azure-devops-branch-list", args={}) existing_branches = response[0].get("Contents", {}).get("value", []) for i in range(1, ATTEMPTS + 1): branch_name = f"{pack_name}_{i}" branch_exists = any(branch.get("name", "").endswith(branch_name) for branch in existing_branches) if not branch_exists: return f"refs/heads/{branch_name}" raise DemistoException("Please enter a branch name.") def find_available_branch(pack_name: str, command_get_branch: str): branch_name = pack_name for i in range(ATTEMPTS): if i > 0: branch_name = f"{pack_name}_{i}" status, get_branch_res = execute_command(command_get_branch, {"branch_name": branch_name}, fail_on_error=False) if (not status) and (True): return branch_name raise DemistoException("Please enter a branch name.") """ MAIN FUNCTION """ def main(): # pragma: no cover try: pack_name = demisto.getArg("pack") command_get_branch = demisto.getArg("use_command") if command_get_branch == "azure-devops-branch-list": branch_name = find_available_branch_azure_devops(pack_name) else: branch_name = find_available_branch(pack_name, command_get_branch) return_results(CommandResults(readable_output=branch_name, outputs_prefix="AvailableBranch", outputs=branch_name)) except Exception as ex: demisto.error(str(ex)) # print the traceback return_error(f"Failed to execute script. Error: {ex}", error=ex) """ ENTRY POINT """ if __name__ in ("__main__", "__builtin__", "builtins"): main()
README
The script gets the pack name as input and suggests an available branch name, for example:
pack name is “MyPack” the branch name will be “MyPack”.
If a branch with the name “MyPack” exists, the script return “MyPack_1”.
Script Data
| Name | Description |
|---|---|
| Script Type | python3 |
| Cortex XSOAR Version | 6.0.0 |
Used In
This script is used in the following playbooks and scripts.
- Pull Request Creation - Github
- Pull Request Creation - Gitlab
- Pull Request Creation - Bitbucket
Inputs
| Argument Name | Description |
|---|---|
| pack | The name of the pack. |
| use_command | Which command to use. Possible commands: gitlab-branch-list GitHub-get-branch * bitbucket-branch-get |
Outputs
| Path | Description | Type |
|---|---|---|
| AvailableBranch | Available branch name based on the pack name. | string |