Skill: abdelkrim/atlassian-bitbucket-by-altf1be (version 1.1.0)

--- name: atlassian-bitbucket-by-altf1be description: "Atlassian Bitbucket Cloud skill — full CRUD on repos, PRs, pipelines, issues, snippets, workspaces, branches, deployments, and more via Bitbucket REST API 2.0 with API Token auth." homepage: https://github.com/ALT-F1-OpenClaw/openclaw-skill-atlassian-bitbucket-by-altf1be metadata: {"openclaw": {"emoji": "🪣", "requires": {"env": ["BITBUCKET_EMAIL", "BITBUCKET_API_TOKEN"]}, "optional": {"env": ["BITBUCKET_WORKSPACE", "BITBUCKET_MAX_RESULTS", "BITBUCKET_USERNAME", "BITBUCKET_APP_PASSWORD"]}, "primaryEnv": "BITBUCKET_EMAIL"}} --- # Atlassian Bitbucket Cloud by @altf1be Full CRUD on repos, PRs, pipelines, issues, snippets, workspaces, branches, deployments, and more via Bitbucket REST API 2.0. ## Setup 1. Create an **API Token** at https://id.atlassian.com/manage-profile/security/api-tokens (select the scopes you need). 2. Set environment variables (or create `.env` in `{baseDir}`): ``` # Required BITBUCKET_EMAIL=[REDACTED_SECRET] BITBUCKET_API_TOKEN=your-api-token # Optional BITBUCKET_WORKSPACE=your-default-workspace BITBUCKET_MAX_RESULTS=50 # Legacy (supported until June 9, 2026) # BITBUCKET_USERNAME=your-username # BITBUCKET_APP_PASSWORD=your-app-password ``` 3. Install dependencies: `cd {baseDir} && npm install` ## Common Options Most commands accept these shared flags: | Flag | Description | |---|---| | `-w, --workspace <slug>` | Workspace slug (or set `BITBUCKET_WORKSPACE`) | | `-r, --repo <slug>` | Repository slug | | `--pagelen <n>` | Results per page | | `--page <n>` | Page number | | `--all` | Fetch all pages | | `-q, --q <filter>` | Filter query (CQL-style) | | `--sort <field>` | Sort field | | `--confirm` | Required for all delete operations | | `--data <json>` | Raw JSON body for complex payloads | ## Commands ### 1. Repositories (26 commands) CRUD on repositories, forks, watchers, webhooks, override settings, and permissions. | Command | Description | |---|---| | `repo-list-public` | List all public repositories | | `repo-list` | List repositories in a workspace | | `repo-get` | Get repository details | | `repo-create` | Create a new repository | | `repo-update` | Update repository settings | | `repo-delete` | Delete a repository | | `repo-forks` | List forks of a repository | | `repo-fork-create` | Fork a repository | | `repo-watchers` | List repository watchers | | `hook-list` | List repository webhooks | | `hook-get` | Get a webhook by UID | | `hook-create` | Create a repository webhook | | `hook-update` | Update a webhook | | `hook-delete` | Delete a webhook | | `repo-override-settings-get` | Get repository override settings | | `repo-override-settings-update` | Update repository override settings | | `repo-group-permission-list` | List group permissions | | `repo-group-permission-get` | Get a group's permission | | `repo-group-permission-update` | Update a group's permission | | `repo-group-permission-delete` | Remove a group's permission | | `repo-user-permission-list` | List user permissions | | `repo-user-permission-get` | Get a user's permission | | `repo-user-permission-update` | Update a user's permission | | `repo-user-permission-delete` | Remove a user's permission | | `user-repo-permissions` | List current user's repository permissions | | `user-ws-repo-permissions` | List current user's repository permissions in a workspace | ```bash # List repos in a workspace bitbucket repo-list -w myworkspace # Get repo details bitbucket repo-get -w myworkspace -r my-repo # Create a new private repo bitbucket repo-create -w myworkspace -r new-repo --is-private true --scm git # Fork a repo bitbucket repo-fork-create -w myworkspace -r upstream-repo --data '{"name":"my-fork"}' # Create a webhook bitbucket hook-create -w myworkspace -r my-repo --url https://example.com/hook --events repo:push # Delete a repo (requires --confirm) bitbucket repo-delete -w myworkspace -r old-repo --confirm ``` ### 2. Pull Requests (36 commands) Full lifecycle management of pull requests: create, review, approve, merge, comment, tasks, and default reviewers. | Command | Description | |---|---| | `pr-list` | List pull requests | | `pr-create` | Create a pull request | | `pr-get` | Get a pull request by ID | | `pr-update` | Update a pull request | | `pr-activity` | Get PR activity log | | `pr-approve` | Approve a pull request | | `pr-unapprove` | Remove approval from a PR | | `pr-comments` | List PR comments | | `pr-comment-create` | Add a comment to a PR | | `pr-comment-get` | Get a specific PR comment | | `pr-comment-update` | Update a PR comment | | `pr-comment-delete` | Delete a PR comment | | `pr-comment-resolve` | Resolve a PR comment thread | | `pr-comment-reopen` | Reopen a resolved comment thread | | `pr-commits` | List commits in a PR | | `pr-decline` | Decline a pull request | | `pr-diff` | Get the diff of a PR | | `pr-diffstat` | Get the diffstat of a PR | | `pr-merge` | Merge a pull request | | `pr-merge-task-status` | Check merge task status | | `pr-patch` | Get the patch of a PR | | `pr-request-changes` | Request changes on a PR | | `pr-unrequest-changes` | Remove change request from a PR | | `pr-statuses` | List commit statuses on a PR | | `pr-tasks` | List tasks on a PR | | `pr-task-create` | Create a task on a PR | | `pr-task-get` | Get a specific PR task | | `pr-task-update` | Update a PR task | | `pr-task-delete` | Delete a PR task | | `default-reviewer-list` | List default reviewers | | `default-reviewer-get` | Get a default reviewer | | `default-reviewer-add` | Add a default reviewer | | `default-reviewer-delete` | Remove a default reviewer | | `effective-default-reviewers` | List effective default reviewers | | `pr-for-commit` | Find PRs containing a commit | | `pr-activity-all` | Get activity across all PRs in a repo | ```bash # List open PRs bitbucket pr-list -w myworkspace -r my-repo -q 'state="OPEN"' # Create a PR bitbucket pr-create -w myworkspace -r my-repo --title "Add feature" \ --source feature-branch --destination main # Approve a PR bitbucket pr-approve -w myworkspace -r my-repo --pr-id 42 # Merge a PR bitbucket pr-merge -w myworkspace -r my-repo --pr-id 42 --merge-strategy squash # Add a comment bitbucket pr-comment-create -w myworkspace -r my-repo --pr-id 42 \ --body "Looks good to me!" # Create a task on a PR bitbucket pr-task-create -w myworkspace -r my-repo --pr-id 42 \ --data '{"content":{"raw":"Fix the typo on line 10"}}' # Find PRs for a commit bitbucket pr-for-commit -w myworkspace -r my-repo --commit abc123 ``` ### 3. Commits (16 commands) Read commit details, approve/unapprove commits, manage commit comments, list diffs and patches. | Command | Description | |---|---| | `commit-get` | Get a specific commit | | `commit-approve` | Approve a commit | | `commit-unapprove` | Remove commit approval | | `commit-comments` | List comments on a commit | | `commit-comment-create` | Add a comment to a commit | | `commit-comment-get` | Get a specific commit comment | | `commit-comment-update` | Update a commit comment | | `commit-comment-delete` | Delete a commit comment | | `commit-list` | List commits (GET) | | `commit-list-post` | List commits (POST, with body filters) | | `commit-list-revision` | List commits from a revision (GET) | | `commit-list-revision-post` | List commits from a revision (POST) | | `diff` | Get diff between two refs | | `diffstat` | Get diffstat between two refs | | `merge-base` | Get merge base of two refs | | `patch` | Get patch for a revision | ```bash # Get commit details bitbucket commit-get -w myworkspace -r my-repo --commit abc123def # List recent commits bitbucket commit-list -w myworkspace -r my-repo --pagelen 10 # Get diff between two refs bitbucket diff -w myworkspace -r my-repo --spec "main..feature-branch" # Approve a commit bitbucket commit-approve -w myworkspace -r my-repo --commit abc123def # Comment on a commit bitbucket commit-comment-create -w myworkspace -r my-repo --commit abc123def \ --body "This needs a test." ``` ### 4. Branches & Tags (9 commands) List, create, get, and delete branches and tags. | Command | Description | |---|---| | `ref-list` | List all refs (branches + tags) | | `branch-list` | List branches | | `branch-create` | Create a branch | | `branch-get` | Get branch details | | `branch-delete` | Delete a branch | | `tag-list` | List tags | | `tag-create` | Create an annotated tag | | `tag-get` | Get tag details | | `tag-delete` | Delete a tag | ```bash # List branches bitbucket branch-list -w myworkspace -r my-repo # Create a branch bitbucket branch-create -w myworkspace -r my-repo --name feature/new \ --target main # Create a tag bitbucket tag-create -w myworkspace -r my-repo --name v1.0.0 --target main # Delete a branch (requires --confirm) bitbucket branch-delete -w myworkspace -r my-repo --name old-branch --confirm ``` ### 5. Branch Restrictions (5 commands) Manage branch permission restrictions (push, merge, delete controls). | Command | Description | |---|---| | `restriction-list` | List branch restrictions | | `restriction-get` | Get a restriction by ID | | `restriction-create` | Create a branch restriction | | `restriction-update` | Update a branch restriction | | `restriction-delete` | Delete a branch restriction | ```bash # List restrictions bitbucket restriction-list -w myworkspace -r my-repo # Prevent force-push to main bitbucket restriction-create -w myworkspace -r my-repo \ --data '{"kind":"force","pattern":"main"}' # Delete a restriction (requires --confirm) bitbucket restriction-delete -w myworkspace -r my-repo --id 123 --confirm ``` ### 6. Branching Model (7 commands) Get and configure the branching model (Git Flow style) at the repo and project level. | Command | Description | |---|---| | `branching-model-get` | Get repo branching model | | `branching-model-settings-get` | Get repo branching model settings | | `branching-model-settings-update` | Update repo branching model settings | | `branching-model-effective` | Get effective branching model (inherited + overrides) | | `project-branching-model-get` | Get project branching model | | [REDACTED_SECRET] | Get project branching model settings | | [REDACTED_SECRET] | Update project branching model settings | ```bash # Get effective branching model bitbucket branching-model-effective -w myworkspace -r my-repo # Update branching model settings bitbucket branching-model-settings-update -w myworkspace -r my-repo \ --data '{"development":{"name":"develop"},"production":{"name":"main"}}' ``` ### 7. Pipelines (68 commands) Full pipeline lifecycle: run, stop, inspect steps/logs, manage variables, schedules, SSH keys, known hosts, caches, runners, OIDC, and workspace/team/user-level pipeline variables. | Command | Description | |---|---| | `pipeline-list` | List pipelines | | `pipeline-get` | Get pipeline details | | `pipeline-create` | Trigger a new pipeline | | `pipeline-stop` | Stop a running pipeline | | `pipeline-steps` | List steps in a pipeline | | `pipeline-step-get` | Get a pipeline step | | `pipeline-step-log` | Get step log output | | `pipeline-step-log-container` | Get step container log | | `pipeline-test-reports` | Get test reports for a step | | `pipeline-test-cases` | Get test cases for a step | | `pipeline-test-case-reasons` | Get test case failure reasons | | `pipeline-config-get` | Get pipeline configuration | | `pipeline-config-update` | Update pipeline configuration | | `pipeline-build-number-update` | Update the next build number | | `pipeline-var-list` | List repo pipeline variables | | `pipeline-var-get` | Get a pipeline variable | | `pipeline-var-create` | Create a pipeline variable | | `pipeline-var-update` | Update a pipeline variable | | `pipeline-var-delete` | Delete a pipeline variable | | `pipeline-schedule-list` | List pipeline schedules | | `pipeline-schedule-get` | Get a schedule | | `pipeline-schedule-create` | Create a pipeline schedule | | `pipeline-schedule-update` | Update a pipeline schedule | | `pipeline-schedule-delete` | Delete a pipeline schedule | | `pipeline-schedule-executions` | List schedule executions | | `pipeline-ssh-keypair-get` | Get SSH key pair | | `pipeline-ssh-keypair-update` | Update SSH key pair | | `pipeline-ssh-keypair-delete` | Delete SSH key pair | | `pipeline-known-host-list` | List known hosts | | `pipeline-known-host-get` | Get a known host | | `pipeline-known-host-create` | Add a known host | | `pipeline-known-host-update` | Update a known host | | `pipeline-known-host-delete` | Delete a known host | | `pipeline-cache-list` | List pipeline caches | | `pipeline-cache-delete` | Delete all caches | | `pipeline-cache-delete-by-name` | Delete a cache by name | | `pipeline-cache-content-uri` | Get cache content URI | | `pipeline-runner-list` | List repo pipeline runners | | `pipeline-runner-get` | Get a pipeline runner | | `pipeline-runner-create` | Create a pipeline runner | | `pipeline-runner-update` | Update a pipeline runner | | `pipeline-runner-delete` | Delete a pipeline runner | | `env-var-list` | List deployment environment variables | | `env-var-create` | Create a deployment env variable | | `env-var-update` | Update a deployment env variable | | `env-var-delete` | Delete a deployment env variable | | `team-pipeline-var-list` | List team pipeline variables | | `team-pipeline-var-get` | Get a team pipeline variable | | `team-pipeline-var-create` | Create a team pipeline variable | | `team-pipeline-var-update` | Update a team pipeline variable | | `team-pipeline-var-delete` | Delete a team pipeline variable | | `user-pipeline-var-list` | List user pipeline variables | | `user-pipeline-var-get` | Get a user pipeline variable | | `user-pipeline-var-create` | Create a user pipeline variable | | `user-pipeline-var-update` | Update a user pipeline variable | | `user-pipeline-var-delete` | Delete a user pipeline variable | | `ws-oidc-config` | Get workspace OIDC configuration | | `ws-oidc-keys` | Get workspace OIDC keys | | `ws-runner-list` | List workspace runners | | `ws-runner-get` | Get a workspace runner | | `ws-runner-create` | Create a workspace runner | | `ws-runner-update` | Update a workspace runner | | `ws-runner-delete` | Delete a workspace runner | | `ws-pipeline-var-list` | List workspace pipeline variables | | `ws-pipeline-var-get` | Get a workspace pipeline variable | | `ws-pipeline-var-create` | Create a workspace pipeline variable | | `ws-pipeline-var-update` | Update a workspace pipeline variable | | `ws-pipeline-var-delete` | Delete a workspace pipeline variable | ```bash # Trigger a pipeline on main bitbucket pipeline-create -w myworkspace -r my-repo \ --data '{"target":{"ref_type":"branch","type":"pipeline_ref_target","ref_name":"main"}}' # List recent pipelines bitbucket pipeline-list -w myworkspace -r my-repo --pagelen 5 # Get step logs bitbucket pipeline-step-log -w myworkspace -r my-repo \ --pipeline-uuid {uuid} --step-uuid {uuid} # Stop a running pipeline bitbucket pipeline-stop -w myworkspace -r my-repo --pipeline-uuid {uuid} # Create a repo pipeline variable (secured) bitbucket pipeline-var-create -w myworkspace -r my-repo \ --key API_KEY --value secret123 --secured true # Create a workspace-level variable bitbucket ws-pipeline-var-create -w myworkspace \ --key DEPLOY_TOKEN --value tok_abc --secured true # Schedule a pipeline bitbucket pipeline-schedule-create -w myworkspace -r my-repo \ --data '{"cron_pattern":"0 0 * * *","target":{"ref_type":"branch","ref_name":"main"}}' ``` ### 8. Deployments (16 commands) Manage deploy keys and deployment environments. | Command | Description | |---|---| | `deploy-key-list` | List deploy keys | | `deploy-key-get` | Get a deploy key | | `deploy-key-create` | Add a deploy key | | `deploy-key-update` | Update a deploy key | | `deploy-key-delete` | Delete a deploy key | | `deployment-list` | List deployments | | `deployment-get` | Get a deployment | | `environment-list` | List deployment environments | | `environment-get` | Get an environment | | `environment-create` | Create a deployment environment | | `environment-update` | Update a deployment environment | | `environment-delete` | Delete a deployment environment | | `project-deploy-key-list` | List project deploy keys | | `project-deploy-key-get` | Get a project deploy key | | `project-deploy-key-create` | Add a project deploy key | | `project-deploy-key-delete` | Delete a project deploy key | ```bash # List deployment environments bitbucket environment-list -w myworkspace -r my-repo # Create a staging environment bitbucket environment-create -w myworkspace -r my-repo \ --data '{"name":"Staging","environment_type":{"name":"Staging"}}' # Add a deploy key bitbucket deploy-key-create -w myworkspace -r my-repo \ --key "ssh-rsa AAAA..." --label "CI deploy key" # Delete an environment (requires --confirm) bitbucket environment-delete -w myworkspace -r my-repo \ --environment-uuid {uuid} --confirm ``` ### 9. Commit Statuses (4 commands) Create and manage build statuses on commits. | Command | Description | |---|---| | `status-list` | List commit statuses | | `status-create` | Create a commit status | | `status-get` | Get a commit status | | `status-update` | Update a commit status | ```bash # Report a build status bitbucket status-create -w myworkspace -r my-repo --commit abc123 \ --state SUCCESSFUL --key build-42 --url https://ci.example.com/42 # List statuses on a commit bitbucket status-list -w myworkspace -r my-repo --commit abc123 ``` ### 10. Issue Tracker (33 commands) Full issue management: CRUD, comments, attachments, changes, voting, watching, import/export, components, milestones, and versions. | Command | Description | |---|---| | `issue-list` | List issues | | `issue-get` | Get an issue | | `issue-create` | Create an issue | | `issue-update` | Update an issue | | `issue-delete` | Delete an issue | | `issue-comment-list` | List issue comments | | `issue-comment-get` | Get an issue comment | | `issue-comment-create` | Add a comment to an issue | | `issue-comment-update` | Update an issue comment | | `issue-comment-delete` | Delete an issue comment | | `issue-attachment-list` | List issue attachments | | `issue-attachment-get` | Get an issue attachment | | `issue-attachment-upload` | Upload an attachment | | `issue-attachment-delete` | Delete an attachment | | `issue-change-list` | List issue changes | | `issue-change-get` | Get an issue change | | `issue-change-create` | Create an issue change | | `issue-vote-check` | Check if you voted on an issue | | `issue-vote` | Vote on an issue | | `issue-unvote` | Remove your vote | | `issue-watch-check` | Check if you are watching an issue | | `issue-watch` | Watch an issue | | `issue-unwatch` | Stop watching an issue | | `issue-export` | Start an issue export | | `issue-export-status` | Check export status | | `issue-import` | Start an issue import | | `issue-import-status` | Check import status | | `component-list` | List components | | `component-get` | Get a component | | `milestone-list` | List milestones | | `milestone-get` | Get a milestone | | `version-list` | List versions | | `version-get` | Get a version | ```bash # List open bugs bitbucket issue-list -w myworkspace -r my-repo -q 'kind="bug" AND state="open"' # Create an issue bitbucket issue-create -w myworkspace -r my-repo \ --title "Login broken" --kind bug --priority critical # Comment on an issue bitbucket issue-comment-create -w myworkspace -r my-repo --issue-id 7 \ --body "Reproduced on Chrome 120." # Upload an attachment bitbucket issue-attachment-upload -w myworkspace -r my-repo --issue-id 7 \ --file ./screenshot.png # Export all issues bitbucket issue-export -w myworkspace -r my-repo # List milestones bitbucket milestone-list -w myworkspace -r my-repo ``` ### 11. Snippets (25 commands) Create and manage code snippets, their revisions, files, diffs, comments, commits, and watchers. | Command | Description | |---|---| | `snippet-list` | List your snippets | | `snippet-create` | Create a snippet | | `snippet-ws-list` | List workspace snippets | | `snippet-ws-create` | Create a workspace snippet | | `snippet-get` | Get a snippet | | `snippet-update` | Update a snippet | | `snippet-delete` | Delete a snippet | | `snippet-revision-get` | Get a snippet revision | | `snippet-revision-update` | Update a snippet revision | | `snippet-revision-delete` | Delete a snippet revision | | `snippet-file` | Get a file from a snippet | | `snippet-file-revision` | Get a file at a specific revision | | `snippet-diff` | Get diff between snippet revisions | | `snippet-patch` | Get patch for a snippet revision | | `snippet-comment-list` | List snippet comments | | `snippet-comment-get` | Get a snippet comment | | `snippet-comment-create` | Add a comment to a snippet | | `snippet-comment-update` | Update a snippet comment | | `snippet-comment-delete` | Delete a snippet comment | | `snippet-commit-list` | List snippet commits | | `snippet-commit-get` | Get a snippet commit | | `snippet-watch-check` | Check if watching a snippet | | `snippet-watch` | Watch a snippet | | `snippet-unwatch` | Unwatch a snippet | | `snippet-watchers` | List snippet watchers | ```bash # List your snippets bitbucket snippet-list # Create a snippet bitbucket snippet-create --title "Bash helper" --is-private true \ --file ./helper.sh # List workspace snippets bitbucket snippet-ws-list -w myworkspace # Get a specific file from a snippet bitbucket snippet-file -w myworkspace --snippet-id abc123 --filename helper.sh # Delete a snippet (requires --confirm) bitbucket snippet-delete -w myworkspace --snippet-id abc123 --confirm ``` ### 12. Workspaces (17 commands) List workspaces, manage hooks, members, permissions, and list user PRs. | Command | Description | |---|---| | `workspace-list` | List workspaces you belong to | | `workspace-list-for-user` | List workspaces for a user | | `workspace-permissions-for-user` | Get workspace permissions for a user | | `workspace-user-permission` | Get a specific user's workspace permission | | `workspace-get` | Get workspace details | | `workspace-hook-list` | List workspace webhooks | | `workspace-hook-get` | Get a workspace webhook | | `workspace-hook-create` | Create a workspace webhook | | `workspace-hook-update` | Update a workspace webhook | | `workspace-hook-delete` | Delete a workspace webhook | | `workspace-member-list` | List workspace members | | `workspace-member-get` | Get a workspace member | | `workspace-permission-list` | List workspace permissions | | `workspace-repo-permissions` | List repo-level permissions in workspace | | `workspace-repo-permission-get` | Get repo-level permission | | `workspace-project-list` | List projects in a workspace | | `workspace-user-prs` | List PRs authored by the current user in a workspace | ```bash # List workspaces bitbucket workspace-list # Get workspace details bitbucket workspace-get -w myworkspace # List workspace members bitbucket workspace-member-list -w myworkspace # List my open PRs across the workspace bitbucket workspace-user-prs -w myworkspace -q 'state="OPEN"' # Create a workspace webhook bitbucket workspace-hook-create -w myworkspace \ --url https://example.com/hook --events repo:push,pullrequest:created ``` ### 13. Projects (16 commands) CRUD on projects, default reviewers, and group/user permissions at the project level. | Command | Description | |---|---| | `project-create` | Create a project | | `project-get` | Get a project | | `project-update` | Update a project | | `project-delete` | Delete a project | | `project-default-reviewer-list` | List project default reviewers | | `project-default-reviewer-get` | Get a project default reviewer | | `project-default-reviewer-add` | Add a project default reviewer | | `project-default-reviewer-delete` | Remove a project default reviewer | | `project-group-permission-list` | List project group permissions | | `project-group-permission-get` | Get a group's project permission | | `project-group-permission-update` | Update a group's project permission | | `project-group-permission-delete` | Remove a group's project permission | | `project-user-permission-list` | List project user permissions | | `project-user-permission-get` | Get a user's project permission | | `project-user-permission-update` | Update a user's project permission | | `project-user-permission-delete` | Remove a user's project permission | ```bash # Create a project bitbucket project-create -w myworkspace --key PROJ --name "My Project" # List project default reviewers bitbucket project-default-reviewer-list -w myworkspace --project-key PROJ # Add a default reviewer to a project bitbucket project-default-reviewer-add -w myworkspace --project-key PROJ \ --user-uuid {uuid} # Delete a project (requires --confirm) bitbucket project-delete -w myworkspace --project-key PROJ --confirm ``` ### 14. Users (4 commands) Get current user info, list emails, and look up other users. | Command | Description | |---|---| | `user-get-current` | Get the authenticated user | | `user-emails` | List your email addresses | | `user-email-get` | Get a specific email address | | `user-get` | Get a user by UUID or username | ```bash # Get current user info bitbucket user-get-current # List your emails bitbucket user-emails # Look up another user bitbucket user-get --user-uuid {uuid} ``` ### 15. SSH Keys (5 commands) Manage SSH keys on your Bitbucket account. | Command | Description | |---|---| | `ssh-key-list` | List SSH keys | | `ssh-key-get` | Get an SSH key | | `ssh-key-create` | Add an SSH key | | `ssh-key-update` | Update an SSH key label | | `ssh-key-delete` | Delete an SSH key | ```bash # List SSH keys bitbucket ssh-key-list # Add an SSH key bitbucket ssh-key-create --key "ssh-ed25519 AAAA..." --label "work laptop" # Delete an SSH key (requires --confirm) bitbucket ssh-key-delete --key-id 123 --confirm ``` ### 16. GPG Keys (4 commands) Manage GPG keys for commit signature verification. | Command | Description | |---|---| | `gpg-key-list` | List GPG keys | | `gpg-key-get` | Get a GPG key | | `gpg-key-create` | Add a GPG key | | `gpg-key-delete` | Delete a GPG key | ```bash # List GPG keys bitbucket gpg-key-list # Add a GPG key bitbucket gpg-key-create --key "-----BEGIN PGP PUBLIC KEY BLOCK-----..." # Delete a GPG key (requires --confirm) bitbucket gpg-key-delete --key-id abc123 --confirm ``` ### 17. Source / File Browsing (4 commands) Browse repository source files and commit new files. | Command | Description | |---|---| | `src-history` | Get file history | | `src-root` | List files at the repo root (or a path) | | `src-create` | Create/update a file via commit | | `src-get` | Get file contents | ```bash # List files at root bitbucket src-root -w myworkspace -r my-repo # Get file contents bitbucket src-get -w myworkspace -r my-repo --path src/index.js # Get file history bitbucket src-history -w myworkspace -r my-repo --path README.md # Create/update a file bitbucket src-create -w myworkspace -r my-repo \ --path config.yml --message "Add config" --file ./config.yml ``` ### 18. Downloads (4 commands) Manage repository download artifacts. | Command | Description | |---|---| | `download-list` | List downloads | | `download-get` | Get a download | | `download-upload` | Upload a download artifact | | `download-delete` | Delete a download | ```bash # List downloads bitbucket download-list -w myworkspace -r my-repo # Upload an artifact bitbucket download-upload -w myworkspace -r my-repo --file ./release-v1.0.zip # Delete a download (requires --confirm) bitbucket download-delete -w myworkspace -r my-repo --filename release-v1.0.zip --confirm ``` ### 19. Webhooks (2 commands) Discover available webhook event types. | Command | Description | |---|---| | `webhook-events` | List all webhook event subjects | | `webhook-event-types` | List event types for a subject | ```bash # List webhook event subjects bitbucket webhook-events # List event types for a subject bitbucket webhook-event-types --subject repository ``` ### 20. Search (3 commands) Search code, accounts, and teams. | Command | Description | |---|---| | `search-code` | Search for code in a workspace | | `search-account` | Search for accounts | | `search-team` | Search for teams | ```bash # Search code bitbucket search-code -w myworkspace --search-query "import express" # Search for an account bitbucket search-account --search-query "john" ``` ### 21. Reports (9 commands) Manage commit reports and annotations (code quality, security, etc.). | Command | Description | |---|---| | `report-list` | List reports on a commit | | `report-get` | Get a report | | `report-create` | Create a report | | `report-delete` | Delete a report | | `report-annotation-list` | List report annotations | | `report-annotation-get` | Get a report annotation | | `report-annotation-create` | Create an annotation | | `report-annotation-bulk-create` | Bulk create annotations | | `report-annotation-delete` | Delete an annotation | ```bash # Create a code quality report bitbucket report-create -w myworkspace -r my-repo --commit abc123 \ --report-id lint-report --title "ESLint" --report-type BUG \ --data '{"result":"PASSED"}' # Add annotations to a report bitbucket report-annotation-bulk-create -w myworkspace -r my-repo \ --commit abc123 --report-id lint-report \ --data '[{"path":"src/app.js","line":42,"message":"Unused variable","severity":"MEDIUM"}]' # List reports on a commit bitbucket report-list -w myworkspace -r my-repo --commit abc123 ``` ### 22. Properties (12 commands) Get, set, and delete application properties on commits, repos, PRs, and users. | Command | Description | |---|---| | `commit-property-get` | Get a commit property | | `commit-property-update` | Set a commit property | | `commit-property-delete` | Delete a commit property | | `repo-property-get` | Get a repo property | | `repo-property-update` | Set a repo property | | `repo-property-delete` | Delete a repo property | | `pr-property-get` | Get a PR property | | `pr-property-update` | Set a PR property | | `pr-property-delete` | Delete a PR property | | `user-property-get` | Get a user property | | `user-property-update` | Set a user property | | `user-property-delete` | Delete a user property | ```bash # Set a repo property bitbucket repo-property-update -w myworkspace -r my-repo \ --app-key myapp --property-name env --data '{"tier":"production"}' # Get a repo property bitbucket repo-property-get -w myworkspace -r my-repo \ --app-key myapp --property-name env # Delete a PR property (requires --confirm) bitbucket pr-property-delete -w myworkspace -r my-repo --pr-id 42 \ --app-key myapp --property-name review-status --confirm ``` ### 23. Addon (10 commands) Manage Bitbucket Connect addon lifecycle, linkers, and linker values. | Command | Description | |---|---| | `addon-delete` | Uninstall the addon | | `addon-update` | Update the addon descriptor | | `addon-linkers` | List addon linkers | | `addon-linker-get` | Get an addon linker | | `addon-linker-values-delete` | Delete all linker values | | `addon-linker-values` | List linker values | | `addon-linker-value-create` | Create a linker value | | `addon-linker-value-update` | Update a linker value | | `addon-linker-value-delete` | Delete a linker value | | `addon-linker-value-get` | Get a linker value | ```bash # List addon linkers bitbucket addon-linkers # Create a linker value bitbucket addon-linker-value-create --linker-key my-linker \ --data '{"key":"issue-42","href":"https://tracker.example.com/42"}' # Delete a linker value (requires --confirm) bitbucket addon-linker-value-delete --linker-key my-linker --value-id 42 --confirm ``` ## Security - Auth method: Basic auth with App Passwords (BITBUCKET_USERNAME + BITBUCKET_APP_PASSWORD) - No secrets or tokens printed to stdout - All delete operations require explicit `--confirm` flag - Path traversal prevention for file uploads (`safePath()`) - Built-in rate limiting with exponential backoff retry (3 attempts) - File size validation before upload - Lazy config validation (only checked when a command runs) ## Dependencies - `commander` — CLI framework - `dotenv` — environment variable loading - Node.js built-in `fetch` (requires Node >= 18) ## Author Abdelkrim BOUJRAF — [ALT-F1 SRL](https://www.alt-f1.be), Brussels X: [@altf1be](https://x.com/altf1be)

path: README.md
content: # :bucket: openclaw-skill-atlassian-bitbucket-by-altf1be

[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
[![Node.js](https://img.shields.io/badge/Node.js-%3E%3D18-green.svg)](https://nodejs.org/)
[![Bitbucket Cloud](https://img.shields.io/badge/Bitbucket_Cloud-API_2.0-blue.svg)](https://developer.atlassian.com/cloud/bitbucket/rest/intro/)
[![OpenClaw Skill](https://img.shields.io/badge/OpenClaw-Skill-orange.svg)](https://clawhub.ai)
[![GitHub last commit](https://img.shields.io/github/last-commit/ALT-F1-OpenClaw/openclaw-skill-atlassian-bitbucket-by-altf1be)](https://github.com/ALT-F1-OpenClaw/openclaw-skill-atlassian-bitbucket-by-altf1be/commits/main)
[![GitHub issues](https://img.shields.io/github/issues/ALT-F1-OpenClaw/openclaw-skill-atlassian-bitbucket-by-altf1be)](https://github.com/ALT-F1-OpenClaw/openclaw-skill-atlassian-bitbucket-by-altf1be/issues)
[![GitHub stars](https://img.shields.io/github/stars/ALT-F1-OpenClaw/openclaw-skill-atlassian-bitbucket-by-altf1be)](https://github.com/ALT-F1-OpenClaw/openclaw-skill-atlassian-bitbucket-by-altf1be/stargazers)

OpenClaw skill for Atlassian Bitbucket Cloud — full CRUD via REST API 2.0

By [Abdelkrim BOUJRAF](https://www.alt-f1.be) / ALT-F1 SRL, Brussels

## Table of Contents

- [Features](#features)
- [Quick Start](#quick-start)
- [API Groups](#api-groups)
- [Authentication](#authentication)
- [Common Options](#common-options)
- [Environment Variables](#environment-variables)
- [Security](#security)
- [License](#license)
- [Author](#author)
- [Links](#links)

## Features

- **335 API endpoints** covering the entire Bitbucket Cloud REST API 2.0
- **23 API groups** — repositories, pull requests, pipelines, issues, and more
- **App Password authentication** — simple, secure, no OAuth flow required
- **Rate-limit retry** with exponential backoff (up to 3 attempts)
- **Pagination support** for all list operations
- **JSON output** for easy integration with other tools and scripts
- **Delete safety** — all destructive operations require explicit `--confirm`
- **Path traversal prevention** for file uploads
- **File size validation** before upload (50 MB default limit)

## Quick Start

```bash
# 1. Clone the repository
git clone https://github.com/ALT-F1-OpenClaw/openclaw-skill-atlassian-bitbucket-by-altf1be.git
cd openclaw-skill-atlassian-bitbucket-by-altf1be

# 2. Install dependencies
npm install

# 3. Configure environment
cp .env.example .env
# Edit .env with your Bitbucket credentials:
#   BITBUCKET_EMAIL=[REDACTED_SECRET]
#   BITBUCKET_API_TOKEN=your-api-token
#   BITBUCKET_WORKSPACE=your-workspace

# 4. Run commands
node scripts/bitbucket.mjs repo-list --workspace my-workspace
node scripts/bitbucket.mjs repo-read --workspace my-workspace --repo my-repo
node scripts/bitbucket.mjs pr-list --workspace my-workspace --repo my-repo
node scripts/bitbucket.mjs pipeline-list --workspace my-workspace --repo my-repo
```

## API Groups

All 335 endpoints organized across 23 API groups:

| # | API Group | Endpoints |
|---|-----------|-----------|
| 1 | Addon | 10 |
| 2 | Branch restrictions | 5 |
| 3 | Branching model | 7 |
| 4 | Commit statuses | 4 |
| 5 | Commits | 16 |
| 6 | Deployments | 16 |
| 7 | Downloads | 4 |
| 8 | GPG | 4 |
| 9 | Issue tracker | 33 |
| 10 | Pipelines | 68 |
| 11 | Projects | 16 |
| 12 | Properties | 12 |
| 13 | Pullrequests | 36 |
| 14 | Refs | 9 |
| 15 | Reports | 9 |
| 16 | Repositories | 26 |
| 17 | Search | 3 |
| 18 | Snippets | 25 |
| 19 | Source | 4 |
| 20 | SSH | 5 |
| 21 | Users | 4 |
| 22 | Webhooks | 2 |
| 23 | Workspaces | 17 |

See [docs/API-COVERAGE.md](./docs/API-COVERAGE.md) for a full breakdown of every endpoint.

## Authentication

This skill uses **Atlassian API Tokens** for authentication (App Passwords were deprecated in September 2025 and will be disabled on June 9, 2026).

### Creating an API Token

1. Log in to your Atlassian account
2. Go to **[API tokens](https://id.atlassian.com/manage-profile/security/api-tokens)**
3. Click **Create API token**
4. Give it a descriptive label (e.g., `openclaw-bitbucket`)
5. Select the scopes your workflows require
6. Click **Create** and copy the generated token

The skill authenticates using HTTP Basic Auth with your Atlassian email and the API token.

> **Legacy support:** Existing App Passwords (`BITBUCKET_USERNAME` + `BITBUCKET_APP_PASSWORD`) are still accepted as a fallback until June 9, 2026. Migrate to API tokens before then.

## Common Options

| Option | Description |
|--------|-------------|
| `--workspace <slug>` | Bitbucket workspace slug |
| `--repo <slug>` | Repository slug |
| `--id <id>` | Resource identifier |
| `--page <n>` | Page number for paginated results |
| `--pagelen <n>` | Number of results per page (default: 50) |
| `--confirm` | Required flag for delete operations |
| `--help` | Show help for any command |

## Environment Variables

| Variable | Required | Description |
|----------|----------|-------------|
| `BITBUCKET_EMAIL` | Yes | Your Atlassian account email |
| `BITBUCKET_API_TOKEN` | Yes | API token from [id.atlassian.com](https://id.atlassian.com/manage-profile/security/api-tokens) |
| `BITBUCKET_WORKSPACE` | No | Default workspace slug (avoids passing `--workspace` every time) |
| `BITBUCKET_MAX_RESULTS` | No | Maximum results per page (default: `50`) |
| `BITBUCKET_USERNAME` | Legacy | Bitbucket username (fallback, deprecated June 2026) |
| `BITBUCKET_APP_PASSWORD` | Legacy | App password (fallback, deprecated June 2026) |

Create a `.env` file in the project root or export variables in your shell:

```bash
BITBUCKET_EMAIL=[REDACTED_SECRET]
BITBUCKET_API_TOKEN=your-api-token
BITBUCKET_WORKSPACE=your-workspace
```

## Security

- API Token authentication (Basic auth, no OAuth flow needed)
- No secrets or tokens printed to stdout
- All delete operations require explicit `--confirm` flag
- Path traversal prevention for file uploads (`safePath()`)
- Built-in rate limiting with exponential backoff retry (3 attempts)
- File size validation before upload (50 MB limit)
- Lazy config validation (credentials only checked when a command runs)

## License

MIT — see [LICENSE](./LICENSE)

## Author

Abdelkrim BOUJRAF — [ALT-F1 SRL](https://www.alt-f1.be), Brussels

- GitHub: [@abdelkrim](https://github.com/abdelkrim)
- X: [@altf1be](https://x.com/altf1be)

## Links

- **Homepage:** [https://www.alt-f1.be](https://www.alt-f1.be)
- **Repository:** [https://github.com/ALT-F1-OpenClaw/openclaw-skill-atlassian-bitbucket-by-altf1be](https://github.com/ALT-F1-OpenClaw/openclaw-skill-atlassian-bitbucket-by-altf1be)
- **Bitbucket REST API docs:** [https://developer.atlassian.com/cloud/bitbucket/rest/intro/](https://developer.atlassian.com/cloud/bitbucket/rest/intro/)
- **Issues:** [https://github.com/ALT-F1-OpenClaw/openclaw-skill-atlassian-bitbucket-by-altf1be/issues](https://github.com/ALT-F1-OpenClaw/openclaw-skill-atlassian-bitbucket-by-altf1be/issues)


path: docs/API-COVERAGE.md
content: # API Coverage — Bitbucket Cloud REST API 2.0

This document lists all 335 endpoints from the Bitbucket Cloud REST API 2.0, organized by tag, along with the corresponding CLI command names and implementation status.

---

## Addon (10 endpoints)

| # | Method | API Path | CLI Command | Status |
|---|--------|----------|-------------|--------|
| 1 | DELETE | /addon | `addon-delete` | ✅ |
| 2 | PUT | /addon | `addon-update` | ✅ |
| 3 | GET | /addon/linkers | `addon-linkers` | ✅ |
| 4 | GET | /addon/linkers/{linker_key} | `addon-linker-get` | ✅ |
| 5 | DELETE | /addon/linkers/{linker_key}/values | `addon-linker-values-delete` | ✅ |
| 6 | GET | /addon/linkers/{linker_key}/values | `addon-linker-values` | ✅ |
| 7 | POST | /addon/linkers/{linker_key}/values | `addon-linker-value-create` | ✅ |
| 8 | PUT | /addon/linkers/{linker_key}/values | `addon-linker-value-update` | ✅ |
| 9 | DELETE | /addon/linkers/{linker_key}/values/{value_id} | `addon-linker-value-delete` | ✅ |
| 10 | GET | /addon/linkers/{linker_key}/values/{value_id} | `addon-linker-value-get` | ✅ |

## Branch restrictions (5 endpoints)

| # | Method | API Path | CLI Command | Status |
|---|--------|----------|-------------|--------|
| 11 | GET | /repositories/{workspace}/{repo_slug}/branch-restrictions | `restriction-list` | ✅ |
| 12 | POST | /repositories/{workspace}/{repo_slug}/branch-restrictions | `restriction-create` | ✅ |
| 13 | DELETE | /repositories/{workspace}/{repo_slug}/branch-restrictions/{id} | `restriction-delete` | ✅ |
| 14 | GET | /repositories/{workspace}/{repo_slug}/branch-restrictions/{id} | `restriction-get` | ✅ |
| 15 | PUT | /repositories/{workspace}/{repo_slug}/branch-restrictions/{id} | `restriction-update` | ✅ |

## Branching model (7 endpoints)

| # | Method | API Path | CLI Command | Status |
|---|--------|----------|-------------|--------|
| 16 | GET | /repositories/{workspace}/{repo_slug}/branching-model | `branching-model-get` | ✅ |
| 17 | GET | /repositories/{workspace}/{repo_slug}/branching-model/settings | `branching-model-settings-get` | ✅ |
| 18 | PUT | /repositories/{workspace}/{repo_slug}/branching-model/settings | `branching-model-settings-update` | ✅ |
| 19 | GET | /repositories/{workspace}/{repo_slug}/effective-branching-model | `branching-model-effective` | ✅ |
| 20 | GET | /workspaces/{workspace}/projects/{project_key}/branching-model | `project-branching-model-get` | ✅ |
| 21 | GET | /workspaces/{workspace}/projects/{project_key}/branching-model/settings | `project-branching-model-settings-get` | ✅ |
| 22 | PUT | /workspaces/{workspace}/projects/{project_key}/branching-model/settings | `project-branching-model-settings-update` | ✅ |

## Commit statuses (4 endpoints)

| # | Method | API Path | CLI Command | Status |
|---|--------|----------|-------------|--------|
| 23 | GET | /repositories/{workspace}/{repo_slug}/commit/{commit}/statuses | `status-list` | ✅ |
| 24 | POST | /repositories/{workspace}/{repo_slug}/commit/{commit}/statuses/build | `status-create` | ✅ |
| 25 | GET | /repositories/{workspace}/{repo_slug}/commit/{commit}/statuses/build/{key} | `status-get` | ✅ |
| 26 | PUT | /repositories/{workspace}/{repo_slug}/commit/{commit}/statuses/build/{key} | `status-update` | ✅ |

## Commits (16 endpoints)

| # | Method | API Path | CLI Command | Status |
|---|--------|----------|-------------|--------|
| 27 | GET | /repositories/{workspace}/{repo_slug}/commit/{commit} | `commit-get` | ✅ |
| 28 | DELETE | /repositories/{workspace}/{repo_slug}/commit/{commit}/approve | `commit-unapprove` | ✅ |
| 29 | POST | /repositories/{workspace}/{repo_slug}/commit/{commit}/approve | `commit-approve` | ✅ |
| 30 | GET | /repositories/{workspace}/{repo_slug}/commit/{commit}/comments | `commit-comments` | ✅ |
| 31 | POST | /repositories/{workspace}/{repo_slug}/commit/{commit}/comments | `commit-comment-create` | ✅ |
| 32 | DELETE | /repositories/{workspace}/{repo_slug}/commit/{commit}/comments/{comment_id} | `commit-comment-delete` | ✅ |
| 33 | GET | /repositories/{workspace}/{repo_slug}/commit/{commit}/comments/{comment_id} | `commit-comment-get` | ✅ |
| 34 | PUT | /repositories/{workspace}/{repo_slug}/commit/{commit}/comments/{comment_id} | `commit-comment-update` | ✅ |
| 35 | GET | /repositories/{workspace}/{repo_slug}/commits | `commit-list` | ✅ |
| 36 | POST | /repositories/{workspace}/{repo_slug}/commits | `commit-list-post` | ✅ |
| 37 | GET | /repositories/{workspace}/{repo_slug}/commits/{revision} | `commit-list-revision` | ✅ |
| 38 | POST | /repositories/{workspace}/{repo_slug}/commits/{revision} | `commit-list-revision-post` | ✅ |
| 39 | GET | /repositories/{workspace}/{repo_slug}/diff/{spec} | `diff` | ✅ |
| 40 | GET | /repositories/{workspace}/{repo_slug}/diffstat/{spec} | `diffstat` | ✅ |
| 41 | GET | /repositories/{workspace}/{repo_slug}/merge-base/{revspec} | `merge-base` | ✅ |
| 42 | GET | /repositories/{workspace}/{repo_slug}/patch/{spec} | `patch` | ✅ |

## Deployments (16 endpoints)

| # | Method | API Path | CLI Command | Status |
|---|--------|----------|-------------|--------|
| 43 | GET | /repositories/{workspace}/{repo_slug}/deploy-keys | `deploy-key-list` | ✅ |
| 44 | POST | /repositories/{workspace}/{repo_slug}/deploy-keys | `deploy-key-create` | ✅ |
| 45 | DELETE | /repositories/{workspace}/{repo_slug}/deploy-keys/{key_id} | `deploy-key-delete` | ✅ |
| 46 | GET | /repositories/{workspace}/{repo_slug}/deploy-keys/{key_id} | `deploy-key-get` | ✅ |
| 47 | PUT | /repositories/{workspace}/{repo_slug}/deploy-keys/{key_id} | `deploy-key-update` | ✅ |
| 48 | GET | /repositories/{workspace}/{repo_slug}/deployments | `deployment-list` | ✅ |
| 49 | GET | /repositories/{workspace}/{repo_slug}/deployments/{deployment_uuid} | `deployment-get` | ✅ |
| 50 | GET | /repositories/{workspace}/{repo_slug}/environments | `environment-list` | ✅ |
| 51 | POST | /repositories/{workspace}/{repo_slug}/environments | `environment-create` | ✅ |
| 52 | GET | /repositories/{workspace}/{repo_slug}/environments/{environment_uuid} | `environment-get` | ✅ |
| 53 | DELETE | /repositories/{workspace}/{repo_slug}/environments/{environment_uuid} | `environment-delete` | ✅ |
| 54 | POST | /repositories/{workspace}/{repo_slug}/environments/{environment_uuid}/changes | `environment-update` | ✅ |
| 55 | GET | /workspaces/{workspace}/projects/{project_key}/deploy-keys | `project-deploy-key-list` | ✅ |
| 56 | POST | /workspaces/{workspace}/projects/{project_key}/deploy-keys | `project-deploy-key-create` | ✅ |
| 57 | DELETE | /workspaces/{workspace}/projects/{project_key}/deploy-keys/{key_id} | `project-deploy-key-delete` | ✅ |
| 58 | GET | /workspaces/{workspace}/projects/{project_key}/deploy-keys/{key_id} | `project-deploy-key-get` | ✅ |

## Downloads (4 endpoints)

| # | Method | API Path | CLI Command | Status |
|---|--------|----------|-------------|--------|
| 59 | GET | /repositories/{workspace}/{repo_slug}/downloads | `download-list` | ✅ |
| 60 | POST | /repositories/{workspace}/{repo_slug}/downloads | `download-upload` | ✅ |
| 61 | DELETE | /repositories/{workspace}/{repo_slug}/downloads/{filename} | `download-delete` | ✅ |
| 62 | GET | /repositories/{workspace}/{repo_slug}/downloads/{filename} | `download-get` | ✅ |

## GPG (4 endpoints)

| # | Method | API Path | CLI Command | Status |
|---|--------|----------|-------------|--------|
| 63 | GET | /users/{selected_user}/gpg-keys | `gpg-key-list` | ✅ |
| 64 | POST | /users/{selected_user}/gpg-keys | `gpg-key-create` | ✅ |
| 65 | DELETE | /users/{selected_user}/gpg-keys/{fingerprint} | `gpg-key-delete` | ✅ |
| 66 | GET | /users/{selected_user}/gpg-keys/{fingerprint} | `gpg-key-get` | ✅ |

## Issue tracker (33 endpoints)

| # | Method | API Path | CLI Command | Status |
|---|--------|----------|-------------|--------|
| 67 | GET | /repositories/{workspace}/{repo_slug}/components | `component-list` | ✅ |
| 68 | GET | /repositories/{workspace}/{repo_slug}/components/{component_id} | `component-get` | ✅ |
| 69 | GET | /repositories/{workspace}/{repo_slug}/issues | `issue-list` | ✅ |
| 70 | POST | /repositories/{workspace}/{repo_slug}/issues | `issue-create` | ✅ |
| 71 | DELETE | /repositories/{workspace}/{repo_slug}/issues/{issue_id} | `issue-delete` | ✅ |
| 72 | GET | /repositories/{workspace}/{repo_slug}/issues/{issue_id} | `issue-get` | ✅ |
| 73 | PUT | /repositories/{workspace}/{repo_slug}/issues/{issue_id} | `issue-update` | ✅ |
| 74 | GET | /repositories/{workspace}/{repo_slug}/issues/{issue_id}/attachments | `issue-attachment-list` | ✅ |
| 75 | POST | /repositories/{workspace}/{repo_slug}/issues/{issue_id}/attachments | `issue-attachment-upload` | ✅ |
| 76 | DELETE | /repositories/{workspace}/{repo_slug}/issues/{issue_id}/attachments/{path} | `issue-attachment-delete` | ✅ |
| 77 | GET | /repositories/{workspace}/{repo_slug}/issues/{issue_id}/attachments/{path} | `issue-attachment-get` | ✅ |
| 78 | GET | /repositories/{workspace}/{repo_slug}/issues/{issue_id}/changes | `issue-change-list` | ✅ |
| 79 | POST | /repositories/{workspace}/{repo_slug}/issues/{issue_id}/changes | `issue-change-create` | ✅ |
| 80 | GET | /repositories/{workspace}/{repo_slug}/issues/{issue_id}/changes/{change_id} | `issue-change-get` | ✅ |
| 81 | GET | /repositories/{workspace}/{repo_slug}/issues/{issue_id}/comments | `issue-comment-list` | ✅ |
| 82 | POST | /repositories/{workspace}/{repo_slug}/issues/{issue_id}/comments | `issue-comment-create` | ✅ |
| 83 | DELETE | /repositories/{workspace}/{repo_slug}/issues/{issue_id}/comments/{comment_id} | `issue-comment-delete` | ✅ |
| 84 | GET | /repositories/{workspace}/{repo_slug}/issues/{issue_id}/comments/{comment_id} | `issue-comment-get` | ✅ |
| 85 | PUT | /repositories/{workspace}/{repo_slug}/issues/{issue_id}/comments/{comment_id} | `issue-comment-update` | ✅ |
| 86 | DELETE | /repositories/{workspace}/{repo_slug}/issues/{issue_id}/vote | `issue-unvote` | ✅ |
| 87 | GET | /repositories/{workspace}/{repo_slug}/issues/{issue_id}/vote | `issue-vote-check` | ✅ |
| 88 | PUT | /repositories/{workspace}/{repo_slug}/issues/{issue_id}/vote | `issue-vote` | ✅ |
| 89 | DELETE | /repositories/{workspace}/{repo_slug}/issues/{issue_id}/watch | `issue-unwatch` | ✅ |
| 90 | GET | /repositories/{workspace}/{repo_slug}/issues/{issue_id}/watch | `issue-watch-check` | ✅ |
| 91 | PUT | /repositories/{workspace}/{repo_slug}/issues/{issue_id}/watch | `issue-watch` | ✅ |
| 92 | POST | /repositories/{workspace}/{repo_slug}/issues/export | `issue-export` | ✅ |
| 93 | GET | /repositories/{workspace}/{repo_slug}/issues/export/{repo_name}-issues-{task_id}.zip | `issue-export-status` | ✅ |
| 94 | GET | /repositories/{workspace}/{repo_slug}/issues/import | `issue-import-status` | ✅ |
| 95 | POST | /repositories/{workspace}/{repo_slug}/issues/import | `issue-import` | ✅ |
| 96 | GET | /repositories/{workspace}/{repo_slug}/milestones | `milestone-list` | ✅ |
| 97 | GET | /repositories/{workspace}/{repo_slug}/milestones/{milestone_id} | `milestone-get` | ✅ |
| 98 | GET | /repositories/{workspace}/{repo_slug}/versions | `version-list` | ✅ |
| 99 | GET | /repositories/{workspace}/{repo_slug}/versions/{version_id} | `version-get` | ✅ |

## Pipelines (68 endpoints)

| # | Method | API Path | CLI Command | Status |
|---|--------|----------|-------------|--------|
| 100 | GET | /repositories/{workspace}/{repo_slug}/deployments_config/environments/{environment_uuid}/variables | `env-var-list` | ✅ |
| 101 | POST | /repositories/{workspace}/{repo_slug}/deployments_config/environments/{environment_uuid}/variables | `env-var-create` | ✅ |
| 102 | PUT | /repositories/{workspace}/{repo_slug}/deployments_config/environments/{environment_uuid}/variables/{variable_uuid} | `env-var-update` | ✅ |
| 103 | DELETE | /repositories/{workspace}/{repo_slug}/deployments_config/environments/{environment_uuid}/variables/{variable_uuid} | `env-var-delete` | ✅ |
| 104 | GET | /repositories/{workspace}/{repo_slug}/pipelines | `pipeline-list` | ✅ |
| 105 | POST | /repositories/{workspace}/{repo_slug}/pipelines | `pipeline-create` | ✅ |
| 106 | GET | /repositories/{workspace}/{repo_slug}/pipelines_config | `pipeline-config-get` | ✅ |
| 107 | PUT | /repositories/{workspace}/{repo_slug}/pipelines_config | `pipeline-config-update` | ✅ |
| 108 | PUT | /repositories/{workspace}/{repo_slug}/pipelines_config/build_number | `pipeline-build-number-update` | ✅ |
| 109 | POST | /repositories/{workspace}/{repo_slug}/pipelines_config/schedules | `pipeline-schedule-create` | ✅ |
| 110 | GET | /repositories/{workspace}/{repo_slug}/pipelines_config/schedules | `pipeline-schedule-list` | ✅ |
| 111 | GET | /repositories/{workspace}/{repo_slug}/pipelines_config/schedules/{schedule_uuid} | `pipeline-schedule-get` | ✅ |
| 112 | PUT | /repositories/{workspace}/{repo_slug}/pipelines_config/schedules/{schedule_uuid} | `pipeline-schedule-update` | ✅ |
| 113 | DELETE | /repositories/{workspace}/{repo_slug}/pipelines_config/schedules/{schedule_uuid} | `pipeline-schedule-delete` | ✅ |
| 114 | GET | /repositories/{workspace}/{repo_slug}/pipelines_config/schedules/{schedule_uuid}/executions | `pipeline-schedule-executions` | ✅ |
| 115 | GET | /repositories/{workspace}/{repo_slug}/pipelines_config/ssh/key_pair | `pipeline-ssh-keypair-get` | ✅ |
| 116 | PUT | /repositories/{workspace}/{repo_slug}/pipelines_config/ssh/key_pair | `pipeline-ssh-keypair-update` | ✅ |
| 117 | DELETE | /repositories/{workspace}/{repo_slug}/pipelines_config/ssh/key_pair | `pipeline-ssh-keypair-delete` | ✅ |
| 118 | GET | /repositories/{workspace}/{repo_slug}/pipelines_config/ssh/known_hosts | `pipeline-known-host-list` | ✅ |
| 119 | POST | /repositories/{workspace}/{repo_slug}/pipelines_config/ssh/known_hosts | `pipeline-known-host-create` | ✅ |
| 120 | GET | /repositories/{workspace}/{repo_slug}/pipelines_config/ssh/known_hosts/{known_host_uuid} | `pipeline-known-host-get` | ✅ |
| 121 | PUT | /repositories/{workspace}/{repo_slug}/pipelines_config/ssh/known_hosts/{known_host_uuid} | `pipeline-known-host-update` | ✅ |
| 122 | DELETE | /repositories/{workspace}/{repo_slug}/pipelines_config/ssh/known_hosts/{known_host_uuid} | `pipeline-known-host-delete` | ✅ |
| 123 | GET | /repositories/{workspace}/{repo_slug}/pipelines_config/variables | `pipeline-var-list` | ✅ |
| 124 | POST | /repositories/{workspace}/{repo_slug}/pipelines_config/variables | `pipeline-var-create` | ✅ |
| 125 | GET | /repositories/{workspace}/{repo_slug}/pipelines_config/variables/{variable_uuid} | `pipeline-var-get` | ✅ |
| 126 | PUT | /repositories/{workspace}/{repo_slug}/pipelines_config/variables/{variable_uuid} | `pipeline-var-update` | ✅ |
| 127 | DELETE | /repositories/{workspace}/{repo_slug}/pipelines_config/variables/{variable_uuid} | `pipeline-var-delete` | ✅ |
| 128 | GET | /repositories/{workspace}/{repo_slug}/pipelines-config/caches | `pipeline-cache-list` | ✅ |
| 129 | DELETE | /repositories/{workspace}/{repo_slug}/pipelines-config/caches | `pipeline-cache-delete` | ✅ |
| 130 | DELETE | /repositories/{workspace}/{repo_slug}/pipelines-config/caches/{cache_uuid} | `pipeline-cache-delete-by-name` | ✅ |
| 131 | GET | /repositories/{workspace}/{repo_slug}/pipelines-config/caches/{cache_uuid}/content-uri | `pipeline-cache-content-uri` | ✅ |
| 132 | GET | /repositories/{workspace}/{repo_slug}/pipelines-config/runners | `pipeline-runner-list` | ✅ |
| 133 | POST | /repositories/{workspace}/{repo_slug}/pipelines-config/runners | `pipeline-runner-create` | ✅ |
| 134 | GET | /repositories/{workspace}/{repo_slug}/pipelines-config/runners/{runner_uuid} | `pipeline-runner-get` | ✅ |
| 135 | PUT | /repositories/{workspace}/{repo_slug}/pipelines-config/runners/{runner_uuid} | `pipeline-runner-update` | ✅ |
| 136 | DELETE | /repositories/{workspace}/{repo_slug}/pipelines-config/runners/{runner_uuid} | `pipeline-runner-delete` | ✅ |
| 137 | GET | /repositories/{workspace}/{repo_slug}/pipelines/{pipeline_uuid} | `pipeline-get` | ✅ |
| 138 | GET | /repositories/{workspace}/{repo_slug}/pipelines/{pipeline_uuid}/steps | `pipeline-steps` | ✅ |
| 139 | GET | /repositories/{workspace}/{repo_slug}/pipelines/{pipeline_uuid}/steps/{step_uuid} | `pipeline-step-get` | ✅ |
| 140 | GET | /repositories/{workspace}/{repo_slug}/pipelines/{pipeline_uuid}/steps/{step_uuid}/log | `pipeline-step-log` | ✅ |
| 141 | GET | /repositories/{workspace}/{repo_slug}/pipelines/{pipeline_uuid}/steps/{step_uuid}/logs/{log_uuid} | `pipeline-step-log-container` | ✅ |
| 142 | GET | /repositories/{workspace}/{repo_slug}/pipelines/{pipeline_uuid}/steps/{step_uuid}/test_reports | `pipeline-test-reports` | ✅ |
| 143 | GET | /repositories/{workspace}/{repo_slug}/pipelines/{pipeline_uuid}/steps/{step_uuid}/test_reports/test_cases | `pipeline-test-cases` | ✅ |
| 144 | GET | /repositories/{workspace}/{repo_slug}/pipelines/{pipeline_uuid}/steps/{step_uuid}/test_reports/test_cases/{test_case_uuid}/test_case_reasons | `pipeline-test-case-reasons` | ✅ |
| 145 | POST | /repositories/{workspace}/{repo_slug}/pipelines/{pipeline_uuid}/stopPipeline | `pipeline-stop` | ✅ |
| 146 | GET | /teams/{username}/pipelines_config/variables | `team-pipeline-var-list` | ✅ |
| 147 | POST | /teams/{username}/pipelines_config/variables | `team-pipeline-var-create` | ✅ |
| 148 | GET | /teams/{username}/pipelines_config/variables/{variable_uuid} | `team-pipeline-var-get` | ✅ |
| 149 | PUT | /teams/{username}/pipelines_config/variables/{variable_uuid} | `team-pipeline-var-update` | ✅ |
| 150 | DELETE | /teams/{username}/pipelines_config/variables/{variable_uuid} | `team-pipeline-var-delete` | ✅ |
| 151 | GET | /users/{selected_user}/pipelines_config/variables | `user-pipeline-var-list` | ✅ |
| 152 | POST | /users/{selected_user}/pipelines_config/variables | `user-pipeline-var-create` | ✅ |
| 153 | GET | /users/{selected_user}/pipelines_config/variables/{variable_uuid} | `user-pipeline-var-get` | ✅ |
| 154 | PUT | /users/{selected_user}/pipelines_config/variables/{variable_uuid} | `user-pipeline-var-update` | ✅ |
| 155 | DELETE | /users/{selected_user}/pipelines_config/variables/{variable_uuid} | `user-pipeline-var-delete` | ✅ |
| 156 | GET | /workspaces/{workspace}/pipelines-config/identity/oidc/.well-known/openid-configuration | `ws-oidc-config` | ✅ |
| 157 | GET | /workspaces/{workspace}/pipelines-config/identity/oidc/keys.json | `ws-oidc-keys` | ✅ |
| 158 | GET | /workspaces/{workspace}/pipelines-config/runners | `ws-runner-list` | ✅ |
| 159 | POST | /workspaces/{workspace}/pipelines-config/runners | `ws-runner-create` | ✅ |
| 160 | GET | /workspaces/{workspace}/pipelines-config/runners/{runner_uuid} | `ws-runner-get` | ✅ |
| 161 | PUT | /workspaces/{workspace}/pipelines-config/runners/{runner_uuid} | `ws-runner-update` | ✅ |
| 162 | DELETE | /workspaces/{workspace}/pipelines-config/runners/{runner_uuid} | `ws-runner-delete` | ✅ |
| 163 | GET | /workspaces/{workspace}/pipelines-config/variables | `ws-pipeline-var-list` | ✅ |
| 164 | POST | /workspaces/{workspace}/pipelines-config/variables | `ws-pipeline-var-create` | ✅ |
| 165 | GET | /workspaces/{workspace}/pipelines-config/variables/{variable_uuid} | `ws-pipeline-var-get` | ✅ |
| 166 | PUT | /workspaces/{workspace}/pipelines-config/variables/{variable_uuid} | `ws-pipeline-var-update` | ✅ |
| 167 | DELETE | /workspaces/{workspace}/pipelines-config/variables/{variable_uuid} | `ws-pipeline-var-delete` | ✅ |

## Projects (16 endpoints)

| # | Method | API Path | CLI Command | Status |
|---|--------|----------|-------------|--------|
| 168 | POST | /workspaces/{workspace}/projects | `project-create` | ✅ |
| 169 | DELETE | /workspaces/{workspace}/projects/{project_key} | `project-delete` | ✅ |
| 170 | GET | /workspaces/{workspace}/projects/{project_key} | `project-get` | ✅ |
| 171 | PUT | /workspaces/{workspace}/projects/{project_key} | `project-update` | ✅ |
| 172 | GET | /workspaces/{workspace}/projects/{project_key}/default-reviewers | `project-default-reviewer-list` | ✅ |
| 173 | DELETE | /workspaces/{workspace}/projects/{project_key}/default-reviewers/{selected_user} | `project-default-reviewer-delete` | ✅ |
| 174 | GET | /workspaces/{workspace}/projects/{project_key}/default-reviewers/{selected_user} | `project-default-reviewer-get` | ✅ |
| 175 | PUT | /workspaces/{workspace}/projects/{project_key}/default-reviewers/{selected_user} | `project-default-reviewer-add` | ✅ |
| 176 | GET | /workspaces/{workspace}/projects/{project_key}/permissions-config/groups | `project-group-permission-list` | ✅ |
| 177 | DELETE | /workspaces/{workspace}/projects/{project_key}/permissions-config/groups/{group_slug} | `project-group-permission-delete` | ✅ |
| 178 | GET | /workspaces/{workspace}/projects/{project_key}/permissions-config/groups/{group_slug} | `project-group-permission-get` | ✅ |
| 179 | PUT | /workspaces/{workspace}/projects/{project_key}/permissions-config/groups/{group_slug} | `project-group-permission-update` | ✅ |
| 180 | GET | /workspaces/{workspace}/projects/{project_key}/permissions-config/users | `project-user-permission-list` | ✅ |
| 181 | DELETE | /workspaces/{workspace}/projects/{project_key}/permissions-config/users/{selected_user_id} | `project-user-permission-delete` | ✅ |
| 182 | GET | /workspaces/{workspace}/projects/{project_key}/permissions-config/users/{selected_user_id} | `project-user-permission-get` | ✅ |
| 183 | PUT | /workspaces/{workspace}/projects/{project_key}/permissions-config/users/{selected_user_id} | `project-user-permission-update` | ✅ |

## Pullrequests (36 endpoints)

| # | Method | API Path | CLI Command | Status |
|---|--------|----------|-------------|--------|
| 184 | GET | /repositories/{workspace}/{repo_slug}/commit/{commit}/pullrequests | `pr-for-commit` | ✅ |
| 185 | GET | /repositories/{workspace}/{repo_slug}/default-reviewers | `default-reviewer-list` | ✅ |
| 186 | DELETE | /repositories/{workspace}/{repo_slug}/default-reviewers/{target_username} | `default-reviewer-delete` | ✅ |
| 187 | GET | /repositories/{workspace}/{repo_slug}/default-reviewers/{target_username} | `default-reviewer-get` | ✅ |
| 188 | PUT | /repositories/{workspace}/{repo_slug}/default-reviewers/{target_username} | `default-reviewer-add` | ✅ |
| 189 | GET | /repositories/{workspace}/{repo_slug}/effective-default-reviewers | `effective-default-reviewers` | ✅ |
| 190 | GET | /repositories/{workspace}/{repo_slug}/pullrequests | `pr-list` | ✅ |
| 191 | POST | /repositories/{workspace}/{repo_slug}/pullrequests | `pr-create` | ✅ |
| 192 | GET | /repositories/{workspace}/{repo_slug}/pullrequests/{pull_request_id} | `pr-get` | ✅ |
| 193 | PUT | /repositories/{workspace}/{repo_slug}/pullrequests/{pull_request_id} | `pr-update` | ✅ |
| 194 | GET | /repositories/{workspace}/{repo_slug}/pullrequests/{pull_request_id}/activity | `pr-activity` | ✅ |
| 195 | DELETE | /repositories/{workspace}/{repo_slug}/pullrequests/{pull_request_id}/approve | `pr-unapprove` | ✅ |
| 196 | POST | /repositories/{workspace}/{repo_slug}/pullrequests/{pull_request_id}/approve | `pr-approve` | ✅ |
| 197 | GET | /repositories/{workspace}/{repo_slug}/pullrequests/{pull_request_id}/comments | `pr-comments` | ✅ |
| 198 | POST | /repositories/{workspace}/{repo_slug}/pullrequests/{pull_request_id}/comments | `pr-comment-create` | ✅ |
| 199 | DELETE | /repositories/{workspace}/{repo_slug}/pullrequests/{pull_request_id}/comments/{comment_id} | `pr-comment-delete` | ✅ |
| 200 | GET | /repositories/{workspace}/{repo_slug}/pullrequests/{pull_request_id}/comments/{comment_id} | `pr-comment-get` | ✅ |
| 201 | PUT | /repositories/{workspace}/{repo_slug}/pullrequests/{pull_request_id}/comments/{comment_id} | `pr-comment-update` | ✅ |
| 202 | DELETE | /repositories/{workspace}/{repo_slug}/pullrequests/{pull_request_id}/comments/{comment_id}/resolve | `pr-comment-reopen` | ✅ |
| 203 | POST | /repositories/{workspace}/{repo_slug}/pullrequests/{pull_request_id}/comments/{comment_id}/resolve | `pr-comment-resolve` | ✅ |
| 204 | GET | /repositories/{workspace}/{repo_slug}/pullrequests/{pull_request_id}/commits | `pr-commits` | ✅ |
| 205 | POST | /repositories/{workspace}/{repo_slug}/pullrequests/{pull_request_id}/decline | `pr-decline` | ✅ |
| 206 | GET | /repositories/{workspace}/{repo_slug}/pullrequests/{pull_request_id}/diff | `pr-diff` | ✅ |
| 207 | GET | /repositories/{workspace}/{repo_slug}/pullrequests/{pull_request_id}/diffstat | `pr-diffstat` | ✅ |
| 208 | POST | /repositories/{workspace}/{repo_slug}/pullrequests/{pull_request_id}/merge | `pr-merge` | ✅ |
| 209 | GET | /repositories/{workspace}/{repo_slug}/pullrequests/{pull_request_id}/merge/task-status/{task_id} | `pr-merge-task-status` | ✅ |
| 210 | GET | /repositories/{workspace}/{repo_slug}/pullrequests/{pull_request_id}/patch | `pr-patch` | ✅ |
| 211 | DELETE | /repositories/{workspace}/{repo_slug}/pullrequests/{pull_request_id}/request-changes | `pr-unrequest-changes` | ✅ |
| 212 | POST | /repositories/{workspace}/{repo_slug}/pullrequests/{pull_request_id}/request-changes | `pr-request-changes` | ✅ |
| 213 | GET | /repositories/{workspace}/{repo_slug}/pullrequests/{pull_request_id}/statuses | `pr-statuses` | ✅ |
| 214 | GET | /repositories/{workspace}/{repo_slug}/pullrequests/{pull_request_id}/tasks | `pr-tasks` | ✅ |
| 215 | POST | /repositories/{workspace}/{repo_slug}/pullrequests/{pull_request_id}/tasks | `pr-task-create` | ✅ |
| 216 | DELETE | /repositories/{workspace}/{repo_slug}/pullrequests/{pull_request_id}/tasks/{task_id} | `pr-task-delete` | ✅ |
| 217 | GET | /repositories/{workspace}/{repo_slug}/pullrequests/{pull_request_id}/tasks/{task_id} | `pr-task-get` | ✅ |
| 218 | PUT | /repositories/{workspace}/{repo_slug}/pullrequests/{pull_request_id}/tasks/{task_id} | `pr-task-update` | ✅ |
| 219 | GET | /repositories/{workspace}/{repo_slug}/pullrequests/activity | `pr-activity-all` | ✅ |

## Refs (9 endpoints)

| # | Method | API Path | CLI Command | Status |
|---|--------|----------|-------------|--------|
| 220 | GET | /repositories/{workspace}/{repo_slug}/refs | `ref-list` | ✅ |
| 221 | GET | /repositories/{workspace}/{repo_slug}/refs/branches | `branch-list` | ✅ |
| 222 | POST | /repositories/{workspace}/{repo_slug}/refs/branches | `branch-create` | ✅ |
| 223 | DELETE | /repositories/{workspace}/{repo_slug}/refs/branches/{name} | `branch-delete` | ✅ |
| 224 | GET | /repositories/{workspace}/{repo_slug}/refs/branches/{name} | `branch-get` | ✅ |
| 225 | GET | /repositories/{workspace}/{repo_slug}/refs/tags | `tag-list` | ✅ |
| 226 | POST | /repositories/{workspace}/{repo_slug}/refs/tags | `tag-create` | ✅ |
| 227 | DELETE | /repositories/{workspace}/{repo_slug}/refs/tags/{name} | `tag-delete` | ✅ |
| 228 | GET | /repositories/{workspace}/{repo_slug}/refs/tags/{name} | `tag-get` | ✅ |

## Reports (9 endpoints)

| # | Method | API Path | CLI Command | Status |
|---|--------|----------|-------------|--------|
| 229 | GET | /repositories/{workspace}/{repo_slug}/commit/{commit}/reports | `report-list` | ✅ |
| 230 | PUT | /repositories/{workspace}/{repo_slug}/commit/{commit}/reports/{reportId} | `report-create` | ✅ |
| 231 | GET | /repositories/{workspace}/{repo_slug}/commit/{commit}/reports/{reportId} | `report-get` | ✅ |
| 232 | DELETE | /repositories/{workspace}/{repo_slug}/commit/{commit}/reports/{reportId} | `report-delete` | ✅ |
| 233 | GET | /repositories/{workspace}/{repo_slug}/commit/{commit}/reports/{reportId}/annotations | `report-annotation-list` | ✅ |
| 234 | POST | /repositories/{workspace}/{repo_slug}/commit/{commit}/reports/{reportId}/annotations | `report-annotation-bulk-create` | ✅ |
| 235 | GET | /repositories/{workspace}/{repo_slug}/commit/{commit}/reports/{reportId}/annotations/{annotationId} | `report-annotation-get` | ✅ |
| 236 | PUT | /repositories/{workspace}/{repo_slug}/commit/{commit}/reports/{reportId}/annotations/{annotationId} | `report-annotation-create` | ✅ |
| 237 | DELETE | /repositories/{workspace}/{repo_slug}/commit/{commit}/reports/{reportId}/annotations/{annotationId} | `report-annotation-delete` | ✅ |

## Repositories (26 endpoints)

| # | Method | API Path | CLI Command | Status |
|---|--------|----------|-------------|--------|
| 238 | GET | /repositories | `repo-list-public` | ✅ |
| 239 | GET | /repositories/{workspace} | `repo-list` | ✅ |
| 240 | DELETE | /repositories/{workspace}/{repo_slug} | `repo-delete` | ✅ |
| 241 | GET | /repositories/{workspace}/{repo_slug} | `repo-get` | ✅ |
| 242 | POST | /repositories/{workspace}/{repo_slug} | `repo-create` | ✅ |
| 243 | PUT | /repositories/{workspace}/{repo_slug} | `repo-update` | ✅ |
| 244 | GET | /repositories/{workspace}/{repo_slug}/forks | `repo-forks` | ✅ |
| 245 | POST | /repositories/{workspace}/{repo_slug}/forks | `repo-fork-create` | ✅ |
| 246 | GET | /repositories/{workspace}/{repo_slug}/hooks | `hook-list` | ✅ |
| 247 | POST | /repositories/{workspace}/{repo_slug}/hooks | `hook-create` | ✅ |
| 248 | DELETE | /repositories/{workspace}/{repo_slug}/hooks/{uid} | `hook-delete` | ✅ |
| 249 | GET | /repositories/{workspace}/{repo_slug}/hooks/{uid} | `hook-get` | ✅ |
| 250 | PUT | /repositories/{workspace}/{repo_slug}/hooks/{uid} | `hook-update` | ✅ |
| 251 | GET | /repositories/{workspace}/{repo_slug}/override-settings | `repo-override-settings-get` | ✅ |
| 252 | PUT | /repositories/{workspace}/{repo_slug}/override-settings | `repo-override-settings-update` | ✅ |
| 253 | GET | /repositories/{workspace}/{repo_slug}/permissions-config/groups | `repo-group-permission-list` | ✅ |
| 254 | DELETE | /repositories/{workspace}/{repo_slug}/permissions-config/groups/{group_slug} | `repo-group-permission-delete` | ✅ |
| 255 | GET | /repositories/{workspace}/{repo_slug}/permissions-config/groups/{group_slug} | `repo-group-permission-get` | ✅ |
| 256 | PUT | /repositories/{workspace}/{repo_slug}/permissions-config/groups/{group_slug} | `repo-group-permission-update` | ✅ |
| 257 | GET | /repositories/{workspace}/{repo_slug}/permissions-config/users | `repo-user-permission-list` | ✅ |
| 258 | DELETE | /repositories/{workspace}/{repo_slug}/permissions-config/users/{selected_user_id} | `repo-user-permission-delete` | ✅ |
| 259 | GET | /repositories/{workspace}/{repo_slug}/permissions-config/users/{selected_user_id} | `repo-user-permission-get` | ✅ |
| 260 | PUT | /repositories/{workspace}/{repo_slug}/permissions-config/users/{selected_user_id} | `repo-user-permission-update` | ✅ |
| 261 | GET | /repositories/{workspace}/{repo_slug}/watchers | `repo-watchers` | ✅ |
| 262 | GET | /user/permissions/repositories | `user-repo-permissions` | ✅ |
| 263 | GET | /user/workspaces/{workspace}/permissions/repositories | `user-ws-repo-permissions` | ✅ |

## Search (3 endpoints)

| # | Method | API Path | CLI Command | Status |
|---|--------|----------|-------------|--------|
| 264 | GET | /teams/{username}/search/code | `search-team` | ✅ |
| 265 | GET | /users/{selected_user}/search/code | `search-account` | ✅ |
| 266 | GET | /workspaces/{workspace}/search/code | `search-code` | ✅ |

## Snippets (25 endpoints)

| # | Method | API Path | CLI Command | Status |
|---|--------|----------|-------------|--------|
| 267 | GET | /snippets | `snippet-list` | ✅ |
| 268 | POST | /snippets | `snippet-create` | ✅ |
| 269 | GET | /snippets/{workspace} | `snippet-ws-list` | ✅ |
| 270 | POST | /snippets/{workspace} | `snippet-ws-create` | ✅ |
| 271 | DELETE | /snippets/{workspace}/{encoded_id} | `snippet-delete` | ✅ |
| 272 | GET | /snippets/{workspace}/{encoded_id} | `snippet-get` | ✅ |
| 273 | PUT | /snippets/{workspace}/{encoded_id} | `snippet-update` | ✅ |
| 274 | DELETE | /snippets/{workspace}/{encoded_id}/{node_id} | `snippet-revision-delete` | ✅ |
| 275 | GET | /snippets/{workspace}/{encoded_id}/{node_id} | `snippet-revision-get` | ✅ |
| 276 | PUT | /snippets/{workspace}/{encoded_id}/{node_id} | `snippet-revision-update` | ✅ |
| 277 | GET | /snippets/{workspace}/{encoded_id}/{node_id}/files/{path} | `snippet-file-revision` | ✅ |
| 278 | GET | /snippets/{workspace}/{encoded_id}/{revision}/diff | `snippet-diff` | ✅ |
| 279 | GET | /snippets/{workspace}/{encoded_id}/{revision}/patch | `snippet-patch` | ✅ |
| 280 | GET | /snippets/{workspace}/{encoded_id}/comments | `snippet-comment-list` | ✅ |
| 281 | POST | /snippets/{workspace}/{encoded_id}/comments | `snippet-comment-create` | ✅ |
| 282 | DELETE | /snippets/{workspace}/{encoded_id}/comments/{comment_id} | `snippet-comment-delete` | ✅ |
| 283 | GET | /snippets/{workspace}/{encoded_id}/comments/{comment_id} | `snippet-comment-get` | ✅ |
| 284 | PUT | /snippets/{workspace}/{encoded_id}/comments/{comment_id} | `snippet-comment-update` | ✅ |
| 285 | GET | /snippets/{workspace}/{encoded_id}/commits | `snippet-commit-list` | ✅ |
| 286 | GET | /snippets/{workspace}/{encoded_id}/commits/{revision} | `snippet-commit-get` | ✅ |
| 287 | GET | /snippets/{workspace}/{encoded_id}/files/{path} | `snippet-file` | ✅ |
| 288 | DELETE | /snippets/{workspace}/{encoded_id}/watch | `snippet-unwatch` | ✅ |
| 289 | GET | /snippets/{workspace}/{encoded_id}/watch | `snippet-watch-check` | ✅ |
| 290 | PUT | /snippets/{workspace}/{encoded_id}/watch | `snippet-watch` | ✅ |
| 291 | GET | /snippets/{workspace}/{encoded_id}/watchers | `snippet-watchers` | ✅ |

## Source (4 endpoints)

| # | Method | API Path | CLI Command | Status |
|---|--------|----------|-------------|--------|
| 292 | GET | /repositories/{workspace}/{repo_slug}/filehistory/{commit}/{path} | `src-history` | ✅ |
| 293 | GET | /repositories/{workspace}/{repo_slug}/src | `src-root` | ✅ |
| 294 | POST | /repositories/{workspace}/{repo_slug}/src | `src-create` | ✅ |
| 295 | GET | /repositories/{workspace}/{repo_slug}/src/{commit}/{path} | `src-get` | ✅ |

## SSH (5 endpoints)

| # | Method | API Path | CLI Command | Status |
|---|--------|----------|-------------|--------|
| 296 | GET | /users/{selected_user}/ssh-keys | `ssh-key-list` | ✅ |
| 297 | POST | /users/{selected_user}/ssh-keys | `ssh-key-create` | ✅ |
| 298 | DELETE | /users/{selected_user}/ssh-keys/{key_id} | `ssh-key-delete` | ✅ |
| 299 | GET | /users/{selected_user}/ssh-keys/{key_id} | `ssh-key-get` | ✅ |
| 300 | PUT | /users/{selected_user}/ssh-keys/{key_id} | `ssh-key-update` | ✅ |

## Users (4 endpoints)

| # | Method | API Path | CLI Command | Status |
|---|--------|----------|-------------|--------|
| 301 | GET | /user | `user-get-current` | ✅ |
| 302 | GET | /user/emails | `user-emails` | ✅ |
| 303 | GET | /user/emails/{email} | `user-email-get` | ✅ |
| 304 | GET | /users/{selected_user} | `user-get` | ✅ |

## Webhooks (2 endpoints)

| # | Method | API Path | CLI Command | Status |
|---|--------|----------|-------------|--------|
| 305 | GET | /hook_events | `webhook-events` | ✅ |
| 306 | GET | /hook_events/{subject_type} | `webhook-event-types` | ✅ |

## Workspaces (17 endpoints)

| # | Method | API Path | CLI Command | Status |
|---|--------|----------|-------------|--------|
| 307 | GET | /user/permissions/workspaces | `workspace-permissions-for-user` | ✅ |
| 308 | GET | /user/workspaces | `workspace-list-for-user` | ✅ |
| 309 | GET | /user/workspaces/{workspace}/permission | `workspace-user-permission` | ✅ |
| 310 | GET | /workspaces | `workspace-list` | ✅ |
| 311 | GET | /workspaces/{workspace} | `workspace-get` | ✅ |
| 312 | GET | /workspaces/{workspace}/hooks | `workspace-hook-list` | ✅ |
| 313 | POST | /workspaces/{workspace}/hooks | `workspace-hook-create` | ✅ |
| 314 | DELETE | /workspaces/{workspace}/hooks/{uid} | `workspace-hook-delete` | ✅ |
| 315 | GET | /workspaces/{workspace}/hooks/{uid} | `workspace-hook-get` | ✅ |
| 316 | PUT | /workspaces/{workspace}/hooks/{uid} | `workspace-hook-update` | ✅ |
| 317 | GET | /workspaces/{workspace}/members | `workspace-member-list` | ✅ |
| 318 | GET | /workspaces/{workspace}/members/{member} | `workspace-member-get` | ✅ |
| 319 | GET | /workspaces/{workspace}/permissions | `workspace-permission-list` | ✅ |
| 320 | GET | /workspaces/{workspace}/permissions/repositories | `workspace-repo-permissions` | ✅ |
| 321 | GET | /workspaces/{workspace}/permissions/repositories/{repo_slug} | `workspace-repo-permission-get` | ✅ |
| 322 | GET | /workspaces/{workspace}/projects | `workspace-project-list` | ✅ |
| 323 | GET | /workspaces/{workspace}/pullrequests/{selected_user} | `workspace-user-prs` | ✅ |

## properties (12 endpoints)

| # | Method | API Path | CLI Command | Status |
|---|--------|----------|-------------|--------|
| 324 | PUT | /repositories/{workspace}/{repo_slug}/commit/{commit}/properties/{app_key}/{property_name} | `commit-property-update` | ✅ |
| 325 | DELETE | /repositories/{workspace}/{repo_slug}/commit/{commit}/properties/{app_key}/{property_name} | `commit-property-delete` | ✅ |
| 326 | GET | /repositories/{workspace}/{repo_slug}/commit/{commit}/properties/{app_key}/{property_name} | `commit-property-get` | ✅ |
| 327 | PUT | /repositories/{workspace}/{repo_slug}/properties/{app_key}/{property_name} | `repo-property-update` | ✅ |
| 328 | DELETE | /repositories/{workspace}/{repo_slug}/properties/{app_key}/{property_name} | `repo-property-delete` | ✅ |
| 329 | GET | /repositories/{workspace}/{repo_slug}/properties/{app_key}/{property_name} | `repo-property-get` | ✅ |
| 330 | PUT | /repositories/{workspace}/{repo_slug}/pullrequests/{pullrequest_id}/properties/{app_key}/{property_name} | `pr-property-update` | ✅ |
| 331 | DELETE | /repositories/{workspace}/{repo_slug}/pullrequests/{pullrequest_id}/properties/{app_key}/{property_name} | `pr-property-delete` | ✅ |
| 332 | GET | /repositories/{workspace}/{repo_slug}/pullrequests/{pullrequest_id}/properties/{app_key}/{property_name} | `pr-property-get` | ✅ |
| 333 | PUT | /users/{selected_user}/properties/{app_key}/{property_name} | `user-property-update` | ✅ |
| 334 | DELETE | /users/{selected_user}/properties/{app_key}/{property_name} | `user-property-delete` | ✅ |
| 335 | GET | /users/{selected_user}/properties/{app_key}/{property_name} | `user-property-get` | ✅ |

---

## Summary

| Metric | Value |
|--------|-------|
| **Total endpoints** | 335 |
| **Covered** | 335/335 (100%) |

*Based on Bitbucket Cloud REST API 2.0 specification*
*Last updated: 2026-03-31*


path: docs/CHECKLIST.md
content: # Pre-Publish Quality Checklist

Run through before every version bump or ClawHub publish.

## Code

- [ ] `node scripts/skill-name.mjs --help` works without env vars
- [ ] `node scripts/skill-name.mjs --version` shows correct version
- [ ] All CRUD commands tested against real API
- [ ] `--confirm` required for all delete commands
- [ ] `safePath()` used on all file path inputs
- [ ] `checkFileSize()` used before file uploads
- [ ] No secrets/tokens in stdout (test with `2>&1 | grep -i token`)
- [ ] Rate-limit retry (429) implemented with exponential backoff
- [ ] Lazy config — `--help` works without `.env`
- [ ] Error messages include status code: `ERROR (404): Not found`

## Files

- [ ] `SKILL.md` frontmatter valid (name, description, homepage, metadata)
- [ ] `SKILL.md` metadata includes `requires.env` and `optional.env`
- [ ] `README.md` has all standard sections (see CONVENTIONS.md)
- [ ] `README.md` badges: License, Node.js, Service, OpenClaw, ClawHub, Security
- [ ] `README.md` author line includes 🇧🇪 🇲🇦
- [ ] `.env.example` has Required + Optional sections with comments
- [ ] `.gitignore` includes: `node_modules/`, `.env`, `*.log`
- [ ] `LICENSE` is MIT
- [ ] `package.json` has `"type": "module"`, `"engines"`, `"bin"`
- [ ] `docs/API-COVERAGE.md` lists covered vs excluded resources
- [ ] `README.md` includes "Usage with OpenClaw" natural language examples
- [ ] `references/` directory used for complex setup docs (if needed)

## Git

- [ ] Version bumped in `package.json`
- [ ] Clean `git status` (no uncommitted changes)
- [ ] Commit message follows convention: `feat:`, `fix:`, `docs:`
- [ ] Git tag matches version: `v1.0.0`
- [ ] Pushed to GitHub: `git push origin main --tags`
- [ ] GitHub topics set: `openclaw`, `{{service}}`, `openclaw-skill`

## ClawHub

- [ ] `clawhub whoami` returns your account
- [ ] Slug follows pattern: `{{service}}-by-altf1be`
- [ ] No `license:` field in SKILL.md frontmatter
- [ ] Publish tested: `clawhub publish . --slug {{slug}} --version X.Y.Z`

## Security Review

- [ ] No hardcoded credentials anywhere
- [ ] `.env.example` uses placeholder values only
- [ ] No real URLs/emails in example files
- [ ] Path traversal prevented (`safePath()`)
- [ ] File size limits enforced (`checkFileSize()`)

---

*Based on lessons learned from 7 ALT-F1 OpenClaw skills*


path: docs/CONVENTIONS.md
content: # ALT-F1 OpenClaw Skill Conventions

Best practices extracted from 7 production skills:
[Jira](https://github.com/ALT-F1-OpenClaw/openclaw-skill-atlassian-jira-by-altf1be) ·
[OpenProject](https://github.com/ALT-F1-OpenClaw/openclaw-skill-openproject) ·
[HubSpot](https://github.com/ALT-F1-OpenClaw/openclaw-skill-hubspot-by-altf1be) ·
[SharePoint](https://github.com/ALT-F1-OpenClaw/openclaw-skill-sharepoint) ·
[X/Twitter](https://github.com/ALT-F1-OpenClaw/openclaw-skill-x-twitter) ·
[M365 Task Manager](https://github.com/ALT-F1-OpenClaw/openclaw-skill-m365-task-manager)

## Architecture

### Single-file CLI pattern
- One `.mjs` file in `scripts/` per skill
- ESM (`"type": "module"` in package.json)
- `#!/usr/bin/env node` shebang, `chmod +x`
- 2 core dependencies: `commander` + `dotenv`
- Node.js built-in `fetch` (no axios/got)

### Lazy config with Proxy
```js
let _cfg;
function getCfg() {
  if (!_cfg) {
    _cfg = { host: env('HOST'), token: env('TOKEN') };
  }
  return _cfg;
}
const CFG = new Proxy({}, { get: (_, prop) => getCfg()[prop] });
```
**Why:** Config is only validated when a command actually runs. `--help` and `--version` work without env vars set.

### Error wrapper
```js
function wrap(fn) {
  return async (...args) => {
    try {
      await fn(...args);
    } catch (err) {
      if (err.statusCode) {
        console.error(`ERROR (${err.statusCode}): ${err.message}`);
      } else {
        console.error(`ERROR: ${err.message}`);
      }
      process.exit(1);
    }
  };
}
```
Every command handler is wrapped: `program.command('list').action(wrap(cmdList))`

## Security

### Mandatory patterns
1. **`--confirm` for destructive operations** — every `delete` command requires `--confirm` flag
2. **`safePath()` for file operations** — prevent `../` path traversal
3. **`checkFileSize()` for uploads** — enforce size limits before sending
4. **No secrets to stdout** — never print tokens, keys, or passwords
5. **Rate-limit retry** — handle HTTP 429 with exponential backoff (3 attempts)

### Rate-limit retry pattern
```js
if (resp.status === 429) {
  const retryAfter = parseInt(resp.headers.get('retry-after') || '5', 10);
  const backoff = retryAfter * 1000 * attempt;
  if (attempt < retries) {
    console.error(`⏳ Rate limited — retrying in ${(backoff/1000).toFixed(0)}s`);
    await new Promise(r => setTimeout(r, backoff));
    continue;
  }
}
```

## Output Style

### Console formatting
- Emoji prefixes: `📋` items, `✅` success, `💬` comments, `📎` attachments, `⏱️` time, `🏷️` types
- Padded columns with `.padEnd()` for alignment
- Item counts at bottom: `\n${items.length} of ${total} items`
- Monospace IDs: `#${String(id).padEnd(6)}`
- Truncate long text: `text.substring(0, 200) + '...'`

### No markdown tables in output
Platform formatting rules:
- **Discord/WhatsApp:** Use bullet lists, not tables
- **Discord links:** Wrap in `<>` to suppress embeds
- **Terminal:** Padded columns are fine

## File Structure

```
openclaw-skill-{{name}}/
├── .github/
│   └── ISSUE_TEMPLATE/
│       └── bug_report.md       # Standard bug report template
├── scripts/
│   └── {{name}}.mjs           # Single CLI file (all commands)
├── docs/
│   ├── API-COVERAGE.md         # Supported vs unsupported API resources
│   ├── CHECKLIST.md            # Pre-publish quality gates
│   ├── CONVENTIONS.md          # ALT-F1 skill conventions
│   └── PUBLISHING.md           # ClawHub publish guide
├── references/                  # Optional: setup guides, API docs, examples
│   └── setup-guide.md          # (e.g. SharePoint cert auth walkthrough)
├── .env.example                # Required + optional vars (commented)
├── .gitignore                  # node_modules, .env, *.log, secrets
├── LICENSE                     # MIT
├── package.json                # ESM, bin, deps, engines >= 18
├── README.md                   # Badges, TOC, standard sections
└── SKILL.md                    # Frontmatter + OpenClaw instructions
```

## README Structure (standard order)

1. **Title** — `# openclaw-skill-{{name}}`
2. **Badges** — License, Node.js, Service, OpenClaw, ClawHub, Security, last-commit, issues, stars
3. **Description** — one line
4. **By-line** — `By [Abdelkrim BOUJRAF](...) / ALT-F1 SRL, Brussels 🇧🇪 🇲🇦`
5. **Table of Contents**
6. **Features**
7. **Quick Start** — clone, install, configure, use (4 steps)
8. **Setup** — prerequisites, credentials, env vars
9. **Commands** — entity table + examples
10. **Security** — auth, `--confirm`, rate limit, no secrets
11. **API Coverage** — link to `docs/API-COVERAGE.md`
12. **ClawHub** — slug + install command
13. **License** — MIT
14. **Author** — with 🇧🇪 🇲🇦, GitHub, X links
15. **Contributing**

## SKILL.md Frontmatter

```yaml
---
name: skill-name-by-altf1be
description: "Concise description with entities, actions, auth method."
homepage: https://github.com/ALT-F1-OpenClaw/openclaw-skill-{{name}}
metadata:
  {"openclaw": {"emoji": "🔧", "requires": {"env": ["HOST", "TOKEN"]}, "optional": {"env": ["MAX_RESULTS"]}, "primaryEnv": "HOST"}}
---
```

**Rules:**
- `name` = ClawHub slug (always ends with `-by-altf1be`)
- `description` = one sentence, include entities + auth method
- `metadata.requires.env` = vars that MUST be set
- `metadata.optional.env` = vars with defaults (new! — Jira/OpenProject use this)
- `metadata.primaryEnv` = the key env var for the service
- NO `license:` field — ClawHub enforces MIT-0

## package.json

```json
{
  "name": "openclaw-skill-{{name}}",
  "version": "1.0.0",
  "type": "module",
  "bin": { "{{name}}": "./scripts/{{name}}.mjs" },
  "dependencies": {
    "commander": "^12.0.0",
    "dotenv": "^16.0.0"
  },
  "engines": { "node": ">=18.0.0" }
}
```

## Versioning

- SemVer: `MAJOR.MINOR.PATCH`
- Git tags: `v1.0.0`, `v1.1.0`, etc.
- Bump with `npm version minor --no-git-tag-version`, then commit + tag + push

## ClawHub Publishing

```bash
clawhub publish . --slug {{slug}} --name "{{Name}} by altf1be" --version 1.0.0
```

**Known issue:** CLI v0.7.0 has `acceptLicenseTerms` bug ([#660](https://github.com/openclaw/clawhub/issues/660)).

---

## Natural Language Usage Section

Production skills (SharePoint, X/Twitter) include a "Usage with OpenClaw" section in README:
```markdown
### Usage with OpenClaw

Once installed as a skill, you can use natural language:

> "List all items"
> "Create a new item called X"
> "Delete item #42"
```
This helps users understand the skill works with conversational commands, not just CLI.

## References Directory (optional)

For skills that require complex setup (e.g. SharePoint cert auth, OAuth flows):
- Add `references/` directory with detailed guides
- Link from SKILL.md/README: `See [references/setup-guide.md](references/setup-guide.md)`
- Keeps SKILL.md concise while providing deep documentation

---

*Last updated: 2026-03-31 — based on 7 production ALT-F1 OpenClaw skills*


path: docs/PUBLISHING.md
content: # Publishing to ClawHub

## Prerequisites

1. ClawHub account + CLI: `npm install -g clawhub`
2. Login: `clawhub login`
3. Verify: `clawhub whoami`

## Slug Convention

Format: `{{service}}-by-altf1be`

Examples:
- `atlassian-jira-by-altf1be`
- `openproject-by-altf1be`
- `hubspot-by-altf1be`
- `sharepoint-by-altf1be`
- `x-twitter-by-altf1be`
- `m365-task-manager-by-altf1be`

## Publish Command

```bash
clawhub publish . \
  --slug {{slug}} \
  --name "{{Service Name}} by altf1be" \
  --version 1.0.0 \
  --changelog "Initial release: CRUD items, comments, attachments"
```

## Version Updates

```bash
# 1. Bump version
npm version minor --no-git-tag-version

# 2. Commit + tag
git add -A
git commit -m "feat: description of changes"
git tag v1.1.0
git push origin main --tags

# 3. Publish update
clawhub publish . \
  --slug {{slug}} \
  --version 1.1.0 \
  --changelog "Added: feature X, Y. Fixed: bug Z"
```

## Important Rules

- **License:** ClawHub enforces MIT-0 for all published skills. Do NOT add `license:` to SKILL.md frontmatter.
- **SKILL.md** is required — it's what ClawHub reads for metadata.
- **`scripts/` dir** must contain the executable CLI file.

## Known Issues

- **CLI v0.7.0 bug:** `acceptLicenseTerms: invalid value` — tracked at [openclaw/clawhub#660](https://github.com/openclaw/clawhub/issues/660). Publishing may intermittently fail.

## After Publishing

- Verify on ClawHub: `https://clawhub.ai/skills/{{slug}}`
- Install test: `clawhub install {{slug}}`
- Search test: `clawhub search {{service}}`

## Files Included in Publish

ClawHub packages these files:
- `SKILL.md` (required)
- `scripts/` directory
- `package.json`
- `README.md`
- `.env.example`

Files excluded (via `.gitignore`):
- `node_modules/`
- `.env`
- `*.log`

---

*See also: [CHECKLIST.md](./CHECKLIST.md) for pre-publish quality gates*


path: package.json
content: {
  "name": "openclaw-skill-atlassian-bitbucket",
  "version": "1.0.0",
  "description": "OpenClaw skill for Atlassian Bitbucket Cloud — full CRUD via REST API 2.0",
  "type": "module",
  "bin": {
    "bitbucket": "./scripts/bitbucket.mjs"
  },
  "scripts": {
    "start": "node scripts/bitbucket.mjs",
    "help": "node scripts/bitbucket.mjs --help"
  },
  "keywords": [
    "openclaw",
    "bitbucket",
    "atlassian",
    "bitbucket-cloud",
    "ai-skill"
  ],
  "author": "Abdelkrim BOUJRAF <[REDACTED_SECRET]> (https://www.alt-f1.be)",
  "license": "MIT",
  "homepage": "https://www.alt-f1.be",
  "repository": {
    "type": "git",
    "url": "https://github.com/ALT-F1-OpenClaw/openclaw-skill-atlassian-bitbucket-by-altf1be.git"
  },
  "dependencies": {
    "commander": "^12.0.0",
    "dotenv": "^16.0.0"
  },
  "engines": {
    "node": ">=18.0.0"
  }
}


path: references/README.md
content: # References

Optional directory for extended documentation:

- **Setup guides** — step-by-step walkthroughs for complex auth (e.g. certificate auth, OAuth flows)
- **API documentation** — additional API reference material
- **Architecture diagrams** — system integration diagrams
- **Examples** — sample configs, thread files, workflow templates

## When to use this directory

Use `references/` when your skill needs documentation that is too long for SKILL.md or README.md but essential for setup.

Examples from production skills:
- SharePoint: `references/setup-guide.md` — full Entra app + certificate + Sites.Selected walkthrough

## Convention

- Link from SKILL.md: `See [references/setup-guide.md](references/setup-guide.md) for the full guide.`
- Keep SKILL.md concise — move deep setup docs here
- This directory is included in ClawHub publishes


path: references/bitbucket-endpoints.json
content: tag: Addon
method: DELETE
path: /addon
summary: Delete an app

tag: Addon
method: PUT
path: /addon
summary: Update an installed app

tag: Addon
method: GET
path: /addon/linkers
summary: List linkers for an app

tag: Addon
method: GET
path: /addon/linkers/{linker_key}
summary: Get a linker for an app

tag: Addon
method: DELETE
path: /addon/linkers/{linker_key}/values
summary: Delete all linker values

tag: Addon
method: GET
path: /addon/linkers/{linker_key}/values
summary: List linker values for a linker

tag: Addon
method: POST
path: /addon/linkers/{linker_key}/values
summary: Create a linker value

tag: Addon
method: PUT
path: /addon/linkers/{linker_key}/values
summary: Update a linker value

tag: Addon
method: DELETE
path: /addon/linkers/{linker_key}/values/{value_id}
summary: Delete a linker value

tag: Addon
method: GET
path: /addon/linkers/{linker_key}/values/{value_id}
summary: Get a linker value

tag: Branch restrictions
method: GET
path: /repositories/{workspace}/{repo_slug}/branch-restrictions
summary: List branch restrictions

tag: Branch restrictions
method: POST
path: /repositories/{workspace}/{repo_slug}/branch-restrictions
summary: Create a branch restriction rule

tag: Branch restrictions
method: DELETE
path: /repositories/{workspace}/{repo_slug}/branch-restrictions/{id}
summary: Delete a branch restriction rule

tag: Branch restrictions
method: GET
path: /repositories/{workspace}/{repo_slug}/branch-restrictions/{id}
summary: Get a branch restriction rule

tag: Branch restrictions
method: PUT
path: /repositories/{workspace}/{repo_slug}/branch-restrictions/{id}
summary: Update a branch restriction rule

tag: Branching model
method: GET
path: /repositories/{workspace}/{repo_slug}/branching-model
summary: Get the branching model for a repository

tag: Branching model
method: GET
path: /repositories/{workspace}/{repo_slug}/branching-model/settings
summary: Get the branching model config for a repository

tag: Branching model
method: PUT
path: /repositories/{workspace}/{repo_slug}/branching-model/settings
summary: Update the branching model config for a repository

tag: Branching model
method: GET
path: /repositories/{workspace}/{repo_slug}/effective-branching-model
summary: Get the effective, or currently applied, branching model for a repository

tag: Branching model
method: GET
path: /workspaces/{workspace}/projects/{project_key}/branching-model
summary: Get the branching model for a project

tag: Branching model
method: GET
path: /workspaces/{workspace}/projects/{project_key}/branching-model/settings
summary: Get the branching model config for a project

tag: Branching model
method: PUT
path: /workspaces/{workspace}/projects/{project_key}/branching-model/settings
summary: Update the branching model config for a project

tag: Commit statuses
method: GET
path: /repositories/{workspace}/{repo_slug}/commit/{commit}/statuses
summary: List commit statuses for a commit

tag: Commit statuses
method: POST
path: /repositories/{workspace}/{repo_slug}/commit/{commit}/statuses/build
summary: Create a build status for a commit

tag: Commit statuses
method: GET
path: /repositories/{workspace}/{repo_slug}/commit/{commit}/statuses/build/{key}
summary: Get a build status for a commit

tag: Commit statuses
method: PUT
path: /repositories/{workspace}/{repo_slug}/commit/{commit}/statuses/build/{key}
summary: Update a build status for a commit

tag: Commits
method: GET
path: /repositories/{workspace}/{repo_slug}/commit/{commit}
summary: Get a commit

tag: Commits
method: DELETE
path: /repositories/{workspace}/{repo_slug}/commit/{commit}/approve
summary: Unapprove a commit

tag: Commits
method: POST
path: /repositories/{workspace}/{repo_slug}/commit/{commit}/approve
summary: Approve a commit

tag: Commits
method: GET
path: /repositories/{workspace}/{repo_slug}/commit/{commit}/comments
summary: List a commit's comments

tag: Commits
method: POST
path: /repositories/{workspace}/{repo_slug}/commit/{commit}/comments
summary: Create comment for a commit

tag: Commits
method: DELETE
path: /repositories/{workspace}/{repo_slug}/commit/{commit}/comments/{comment_id}
summary: Delete a commit comment

tag: Commits
method: GET
path: /repositories/{workspace}/{repo_slug}/commit/{commit}/comments/{comment_id}
summary: Get a commit comment

tag: Commits
method: PUT
path: /repositories/{workspace}/{repo_slug}/commit/{commit}/comments/{comment_id}
summary: Update a commit comment

tag: Commits
method: GET
path: /repositories/{workspace}/{repo_slug}/commits
summary: List commits

tag: Commits
method: POST
path: /repositories/{workspace}/{repo_slug}/commits
summary: List commits with include/exclude

tag: Commits
method: GET
path: /repositories/{workspace}/{repo_slug}/commits/{revision}
summary: List commits for revision

tag: Commits
method: POST
path: /repositories/{workspace}/{repo_slug}/commits/{revision}
summary: List commits for revision using include/exclude

tag: Commits
method: GET
path: /repositories/{workspace}/{repo_slug}/diff/{spec}
summary: Compare two commits

tag: Commits
method: GET
path: /repositories/{workspace}/{repo_slug}/diffstat/{spec}
summary: Compare two commit diff stats

tag: Commits
method: GET
path: /repositories/{workspace}/{repo_slug}/merge-base/{revspec}
summary: Get the common ancestor between two commits

tag: Commits
method: GET
path: /repositories/{workspace}/{repo_slug}/patch/{spec}
summary: Get a patch for two commits

tag: Deployments
method: GET
path: /repositories/{workspace}/{repo_slug}/deploy-keys
summary: List repository deploy keys

tag: Deployments
method: POST
path: /repositories/{workspace}/{repo_slug}/deploy-keys
summary: Add a repository deploy key

tag: Deployments
method: DELETE
path: /repositories/{workspace}/{repo_slug}/deploy-keys/{key_id}
summary: Delete a repository deploy key

tag: Deployments
method: GET
path: /repositories/{workspace}/{repo_slug}/deploy-keys/{key_id}
summary: Get a repository deploy key

tag: Deployments
method: PUT
path: /repositories/{workspace}/{repo_slug}/deploy-keys/{key_id}
summary: Update a repository deploy key

tag: Deployments
method: GET
path: /repositories/{workspace}/{repo_slug}/deployments
operationId: getDeploymentsForRepository
summary: List deployments

tag: Deployments
method: GET
path: /repositories/{workspace}/{repo_slug}/deployments/{deployment_uuid}
operationId: getDeploymentForRepository
summary: Get a deployment

tag: Deployments
method: GET
path: /repositories/{workspace}/{repo_slug}/environments
operationId: getEnvironmentsForRepository
summary: List environments

tag: Deployments
method: POST
path: /repositories/{workspace}/{repo_slug}/environments
operationId: createEnvironment
summary: Create an environment

tag: Deployments
method: GET
path: /repositories/{workspace}/{repo_slug}/environments/{environment_uuid}
operationId: getEnvironmentForRepository
summary: Get an environment

tag: Deployments
method: DELETE
path: /repositories/{workspace}/{repo_slug}/environments/{environment_uuid}
operationId: deleteEnvironmentForRepository
summary: Delete an environment

tag: Deployments
method: POST
path: /repositories/{workspace}/{repo_slug}/environments/{environment_uuid}/changes
operationId: updateEnvironmentForRepository
summary: Update an environment

tag: Deployments
method: GET
path: /workspaces/{workspace}/projects/{project_key}/deploy-keys
summary: List project deploy keys

tag: Deployments
method: POST
path: /workspaces/{workspace}/projects/{project_key}/deploy-keys
summary: Create a project deploy key

tag: Deployments
method: DELETE
path: /workspaces/{workspace}/projects/{project_key}/deploy-keys/{key_id}
summary: Delete a deploy key from a project

tag: Deployments
method: GET
path: /workspaces/{workspace}/projects/{project_key}/deploy-keys/{key_id}
summary: Get a project deploy key

tag: Downloads
method: GET
path: /repositories/{workspace}/{repo_slug}/downloads
summary: List download artifacts

tag: Downloads
method: POST
path: /repositories/{workspace}/{repo_slug}/downloads
summary: Upload a download artifact

tag: Downloads
method: DELETE
path: /repositories/{workspace}/{repo_slug}/downloads/{filename}
summary: Delete a download artifact

tag: Downloads
method: GET
path: /repositories/{workspace}/{repo_slug}/downloads/{filename}
summary: Get a download artifact link

tag: GPG
method: GET
path: /users/{selected_user}/gpg-keys
summary: List GPG keys

tag: GPG
method: POST
path: /users/{selected_user}/gpg-keys
summary: Add a new GPG key

tag: GPG
method: DELETE
path: /users/{selected_user}/gpg-keys/{fingerprint}
summary: Delete a GPG key

tag: GPG
method: GET
path: /users/{selected_user}/gpg-keys/{fingerprint}
summary: Get a GPG key

tag: Issue tracker
method: GET
path: /repositories/{workspace}/{repo_slug}/components
summary: List components

tag: Issue tracker
method: GET
path: /repositories/{workspace}/{repo_slug}/components/{component_id}
summary: Get a component for issues

tag: Issue tracker
method: GET
path: /repositories/{workspace}/{repo_slug}/issues
summary: List issues

tag: Issue tracker
method: POST
path: /repositories/{workspace}/{repo_slug}/issues
summary: Create an issue

tag: Issue tracker
method: DELETE
path: /repositories/{workspace}/{repo_slug}/issues/{issue_id}
summary: Delete an issue

tag: Issue tracker
method: GET
path: /repositories/{workspace}/{repo_slug}/issues/{issue_id}
summary: Get an issue

tag: Issue tracker
method: PUT
path: /repositories/{workspace}/{repo_slug}/issues/{issue_id}
summary: Update an issue

tag: Issue tracker
method: GET
path: /repositories/{workspace}/{repo_slug}/issues/{issue_id}/attachments
summary: List attachments for an issue

tag: Issue tracker
method: POST
path: /repositories/{workspace}/{repo_slug}/issues/{issue_id}/attachments
summary: Upload an attachment to an issue

tag: Issue tracker
method: DELETE
path: /repositories/{workspace}/{repo_slug}/issues/{issue_id}/attachments/{path}
summary: Delete an attachment for an issue

tag: Issue tracker
method: GET
path: /repositories/{workspace}/{repo_slug}/issues/{issue_id}/attachments/{path}
summary: Get attachment for an issue

tag: Issue tracker
method: GET
path: /repositories/{workspace}/{repo_slug}/issues/{issue_id}/changes
summary: List changes on an issue

tag: Issue tracker
method: POST
path: /repositories/{workspace}/{repo_slug}/issues/{issue_id}/changes
summary: Modify the state of an issue

tag: Issue tracker
method: GET
path: /repositories/{workspace}/{repo_slug}/issues/{issue_id}/changes/{change_id}
summary: Get issue change object

tag: Issue tracker
method: GET
path: /repositories/{workspace}/{repo_slug}/issues/{issue_id}/comments
summary: List comments on an issue

tag: Issue tracker
method: POST
path: /repositories/{workspace}/{repo_slug}/issues/{issue_id}/comments
summary: Create a comment on an issue

tag: Issue tracker
method: DELETE
path: /repositories/{workspace}/{repo_slug}/issues/{issue_id}/comments/{comment_id}
summary: Delete a comment on an issue

tag: Issue tracker
method: GET
path: /repositories/{workspace}/{repo_slug}/issues/{issue_id}/comments/{comment_id}
summary: Get a comment on an issue

tag: Issue tracker
method: PUT
path: /repositories/{workspace}/{repo_slug}/issues/{issue_id}/comments/{comment_id}
summary: Update a comment on an issue

tag: Issue tracker
method: DELETE
path: /repositories/{workspace}/{repo_slug}/issues/{issue_id}/vote
summary: Remove vote for an issue

tag: Issue tracker
method: GET
path: /repositories/{workspace}/{repo_slug}/issues/{issue_id}/vote
summary: Check if current user voted for an issue

tag: Issue tracker
method: PUT
path: /repositories/{workspace}/{repo_slug}/issues/{issue_id}/vote
summary: Vote for an issue

tag: Issue tracker
method: DELETE
path: /repositories/{workspace}/{repo_slug}/issues/{issue_id}/watch
summary: Stop watching an issue

tag: Issue tracker
method: GET
path: /repositories/{workspace}/{repo_slug}/issues/{issue_id}/watch
summary: Check if current user is watching a issue

tag: Issue tracker
method: PUT
path: /repositories/{workspace}/{repo_slug}/issues/{issue_id}/watch
summary: Watch an issue

tag: Issue tracker
method: POST
path: /repositories/{workspace}/{repo_slug}/issues/export
summary: Export issues

tag: Issue tracker
method: GET
path: /repositories/{workspace}/{repo_slug}/issues/export/{repo_name}-issues-{task_id}.zip
summary: Check issue export status

tag: Issue tracker
method: GET
path: /repositories/{workspace}/{repo_slug}/issues/import
summary: Check issue import status

tag: Issue tracker
method: POST
path: /repositories/{workspace}/{repo_slug}/issues/import
summary: Import issues

tag: Issue tracker
method: GET
path: /repositories/{workspace}/{repo_slug}/milestones
summary: List milestones

tag: Issue tracker
method: GET
path: /repositories/{workspace}/{repo_slug}/milestones/{milestone_id}
summary: Get a milestone

tag: Issue tracker
method: GET
path: /repositories/{workspace}/{repo_slug}/versions
summary: List defined versions for issues

tag: Issue tracker
method: GET
path: /repositories/{workspace}/{repo_slug}/versions/{version_id}
summary: Get a defined version for issues

tag: Pipelines
method: GET
path: /repositories/{workspace}/{repo_slug}/deployments_config/environments/{environment_uuid}/variables
operationId: getDeploymentVariables
summary: List variables for an environment

tag: Pipelines
method: POST
path: /repositories/{workspace}/{repo_slug}/deployments_config/environments/{environment_uuid}/variables
operationId: createDeploymentVariable
summary: Create a variable for an environment

tag: Pipelines
method: PUT
path: /repositories/{workspace}/{repo_slug}/deployments_config/environments/{environment_uuid}/variables/{variable_uuid}
operationId: updateDeploymentVariable
summary: Update a variable for an environment

tag: Pipelines
method: DELETE
path: /repositories/{workspace}/{repo_slug}/deployments_config/environments/{environment_uuid}/variables/{variable_uuid}
operationId: deleteDeploymentVariable
summary: Delete a variable for an environment

tag: Pipelines
method: GET
path: /repositories/{workspace}/{repo_slug}/pipelines
operationId: getPipelinesForRepository
summary: List pipelines

tag: Pipelines
method: POST
path: /repositories/{workspace}/{repo_slug}/pipelines
operationId: createPipelineForRepository
summary: Run a pipeline

tag: Pipelines
method: GET
path: /repositories/{workspace}/{repo_slug}/pipelines_config
operationId: getRepositoryPipelineConfig
summary: Get configuration

tag: Pipelines
method: PUT
path: /repositories/{workspace}/{repo_slug}/pipelines_config
operationId: updateRepositoryPipelineConfig
summary: Update configuration

tag: Pipelines
method: PUT
path: /repositories/{workspace}/{repo_slug}/pipelines_config/build_number
operationId: updateRepositoryBuildNumber
summary: Update the next build number

tag: Pipelines
method: POST
path: /repositories/{workspace}/{repo_slug}/pipelines_config/schedules
operationId: createRepositoryPipelineSchedule
summary: Create a schedule

tag: Pipelines
method: GET
path: /repositories/{workspace}/{repo_slug}/pipelines_config/schedules
operationId: getRepositoryPipelineSchedules
summary: List schedules

tag: Pipelines
method: GET
path: /repositories/{workspace}/{repo_slug}/pipelines_config/schedules/{schedule_uuid}
operationId: getRepositoryPipelineSchedule
summary: Get a schedule

tag: Pipelines
method: PUT
path: /repositories/{workspace}/{repo_slug}/pipelines_config/schedules/{schedule_uuid}
operationId: updateRepositoryPipelineSchedule
summary: Update a schedule

tag: Pipelines
method: DELETE
path: /repositories/{workspace}/{repo_slug}/pipelines_config/schedules/{schedule_uuid}
operationId: deleteRepositoryPipelineSchedule
summary: Delete a schedule

tag: Pipelines
method: GET
path: /repositories/{workspace}/{repo_slug}/pipelines_config/schedules/{schedule_uuid}/executions
operationId: getRepositoryPipelineScheduleExecutions
summary: List executions of a schedule

tag: Pipelines
method: GET
path: /repositories/{workspace}/{repo_slug}/pipelines_config/ssh/key_pair
operationId: getRepositoryPipelineSshKeyPair
summary: Get SSH key pair

tag: Pipelines
method: PUT
path: /repositories/{workspace}/{repo_slug}/pipelines_config/ssh/key_pair
operationId: updateRepositoryPipelineKeyPair
summary: Update SSH key pair

tag: Pipelines
method: DELETE
path: /repositories/{workspace}/{repo_slug}/pipelines_config/ssh/key_pair
operationId: deleteRepositoryPipelineKeyPair
summary: Delete SSH key pair

tag: Pipelines
method: GET
path: /repositories/{workspace}/{repo_slug}/pipelines_config/ssh/known_hosts
operationId: getRepositoryPipelineKnownHosts
summary: List known hosts

tag: Pipelines
method: POST
path: /repositories/{workspace}/{repo_slug}/pipelines_config/ssh/known_hosts
operationId: createRepositoryPipelineKnownHost
summary: Create a known host

tag: Pipelines
method: GET
path: /repositories/{workspace}/{repo_slug}/pipelines_config/ssh/known_hosts/{known_host_uuid}
operationId: getRepositoryPipelineKnownHost
summary: Get a known host

tag: Pipelines
method: PUT
path: /repositories/{workspace}/{repo_slug}/pipelines_config/ssh/known_hosts/{known_host_uuid}
operationId: updateRepositoryPipelineKnownHost
summary: Update a known host

tag: Pipelines
method: DELETE
path: /repositories/{workspace}/{repo_slug}/pipelines_config/ssh/known_hosts/{known_host_uuid}
operationId: deleteRepositoryPipelineKnownHost
summary: Delete a known host

tag: Pipelines
method: GET
path: /repositories/{workspace}/{repo_slug}/pipelines_config/variables
operationId: getRepositoryPipelineVariables
summary: List variables for a repository

tag: Pipelines
method: POST
path: /repositories/{workspace}/{repo_slug}/pipelines_config/variables
operationId: createRepositoryPipelineVariable
summary: Create a variable for a repository

tag: Pipelines
method: GET
path: /repositories/{workspace}/{repo_slug}/pipelines_config/variables/{variable_uuid}
operationId: getRepositoryPipelineVariable
summary: Get a variable for a repository

tag: Pipelines
method: PUT
path: /repositories/{workspace}/{repo_slug}/pipelines_config/variables/{variable_uuid}
operationId: updateRepositoryPipelineVariable
summary: Update a variable for a repository

tag: Pipelines
method: DELETE
path: /repositories/{workspace}/{repo_slug}/pipelines_config/variables/{variable_uuid}
operationId: deleteRepositoryPipelineVariable
summary: Delete a variable for a repository

tag: Pipelines
method: GET
path: /repositories/{workspace}/{repo_slug}/pipelines-config/caches
operationId: getRepositoryPipelineCaches
summary: List caches

tag: Pipelines
method: DELETE
path: /repositories/{workspace}/{repo_slug}/pipelines-config/caches
operationId: deleteRepositoryPipelineCaches
summary: Delete caches

tag: Pipelines
method: DELETE
path: /repositories/{workspace}/{repo_slug}/pipelines-config/caches/{cache_uuid}
operationId: deleteRepositoryPipelineCache
summary: Delete a cache

tag: Pipelines
method: GET
path: /repositories/{workspace}/{repo_slug}/pipelines-config/caches/{cache_uuid}/content-uri
operationId: getRepositoryPipelineCacheContentURI
summary: Get cache content URI

tag: Pipelines
method: GET
path: /repositories/{workspace}/{repo_slug}/pipelines-config/runners
operationId: getRepositoryRunners
summary: Get repository runners

tag: Pipelines
method: POST
path: /repositories/{workspace}/{repo_slug}/pipelines-config/runners
operationId: createRepositoryRunner
summary: Create repository runner

tag: Pipelines
method: GET
path: /repositories/{workspace}/{repo_slug}/pipelines-config/runners/{runner_uuid}
operationId: getRepositoryRunner
summary: Get repository runner

tag: Pipelines
method: PUT
path: /repositories/{workspace}/{repo_slug}/pipelines-config/runners/{runner_uuid}
operationId: updateRepositoryRunner
summary: Update repository runner

tag: Pipelines
method: DELETE
path: /repositories/{workspace}/{repo_slug}/pipelines-config/runners/{runner_uuid}
operationId: deleteRepositoryRunner
summary: Delete repository runner

tag: Pipelines
method: GET
path: /repositories/{workspace}/{repo_slug}/pipelines/{pipeline_uuid}
operationId: getPipelineForRepository
summary: Get a pipeline

tag: Pipelines
method: GET
path: /repositories/{workspace}/{repo_slug}/pipelines/{pipeline_uuid}/steps
operationId: getPipelineStepsForRepository
summary: List steps for a pipeline

tag: Pipelines
method: GET
path: /repositories/{workspace}/{repo_slug}/pipelines/{pipeline_uuid}/steps/{step_uuid}
operationId: getPipelineStepForRepository
summary: Get a step of a pipeline

tag: Pipelines
method: GET
path: /repositories/{workspace}/{repo_slug}/pipelines/{pipeline_uuid}/steps/{step_uuid}/log
operationId: getPipelineStepLogForRepository
summary: Get log file for a step

tag: Pipelines
method: GET
path: /repositories/{workspace}/{repo_slug}/pipelines/{pipeline_uuid}/steps/{step_uuid}/logs/{log_uuid}
operationId: getPipelineContainerLog
summary: Get the logs for the build container or a service container for a given step of a pipeline.

tag: Pipelines
method: GET
path: /repositories/{workspace}/{repo_slug}/pipelines/{pipeline_uuid}/steps/{step_uuid}/test_reports
operationId: getPipelineTestReports
summary: Get a summary of test reports for a given step of a pipeline.

tag: Pipelines
method: GET
path: /repositories/{workspace}/{repo_slug}/pipelines/{pipeline_uuid}/steps/{step_uuid}/test_reports/test_cases
operationId: getPipelineTestReportTestCases
summary: Get test cases for a given step of a pipeline.

tag: Pipelines
method: GET
path: /repositories/{workspace}/{repo_slug}/pipelines/{pipeline_uuid}/steps/{step_uuid}/test_reports/test_cases/{test_case_uuid}/test_case_reasons
operationId: getPipelineTestReportTestCaseReasons
summary: Get test case reasons (output) for a given test case in a step of a pipeline.

tag: Pipelines
method: POST
path: /repositories/{workspace}/{repo_slug}/pipelines/{pipeline_uuid}/stopPipeline
operationId: stopPipeline
summary: Stop a pipeline

tag: Pipelines
method: GET
path: /teams/{username}/pipelines_config/variables
operationId: getPipelineVariablesForTeam
summary: List variables for an account

tag: Pipelines
method: POST
path: /teams/{username}/pipelines_config/variables
operationId: createPipelineVariableForTeam
summary: Create a variable for a user

tag: Pipelines
method: GET
path: /teams/{username}/pipelines_config/variables/{variable_uuid}
operationId: getPipelineVariableForTeam
summary: Get a variable for a team

tag: Pipelines
method: PUT
path: /teams/{username}/pipelines_config/variables/{variable_uuid}
operationId: updatePipelineVariableForTeam
summary: Update a variable for a team

tag: Pipelines
method: DELETE
path: /teams/{username}/pipelines_config/variables/{variable_uuid}
operationId: deletePipelineVariableForTeam
summary: Delete a variable for a team

tag: Pipelines
method: GET
path: /users/{selected_user}/pipelines_config/variables
operationId: getPipelineVariablesForUser
summary: List variables for a user

tag: Pipelines
method: POST
path: /users/{selected_user}/pipelines_config/variables
operationId: createPipelineVariableForUser
summary: Create a variable for a user

tag: Pipelines
method: GET
path: /users/{selected_user}/pipelines_config/variables/{variable_uuid}
operationId: getPipelineVariableForUser
summary: Get a variable for a user

tag: Pipelines
method: PUT
path: /users/{selected_user}/pipelines_config/variables/{variable_uuid}
operationId: updatePipelineVariableForUser
summary: Update a variable for a user

tag: Pipelines
method: DELETE
path: /users/{selected_user}/pipelines_config/variables/{variable_uuid}
operationId: deletePipelineVariableForUser
summary: Delete a variable for a user

tag: Pipelines
method: GET
path: /workspaces/{workspace}/pipelines-config/identity/oidc/.well-known/openid-configuration
operationId: getOIDCConfiguration
summary: Get OpenID configuration for OIDC in Pipelines

tag: Pipelines
method: GET
path: /workspaces/{workspace}/pipelines-config/identity/oidc/keys.json
operationId: getOIDCKeys
summary: Get keys for OIDC in Pipelines

tag: Pipelines
method: GET
path: /workspaces/{workspace}/pipelines-config/runners
operationId: getWorkspaceRunners
summary: Get workspace runners

tag: Pipelines
method: POST
path: /workspaces/{workspace}/pipelines-config/runners
operationId: createWorkspaceRunner
summary: Create workspace runner

tag: Pipelines
method: GET
path: /workspaces/{workspace}/pipelines-config/runners/{runner_uuid}
operationId: getWorkspaceRunner
summary: Get workspace runner

tag: Pipelines
method: PUT
path: /workspaces/{workspace}/pipelines-config/runners/{runner_uuid}
operationId: updateWorkspaceRunner
summary: Update workspace runner

tag: Pipelines
method: DELETE
path: /workspaces/{workspace}/pipelines-config/runners/{runner_uuid}
operationId: deleteWorkspaceRunner
summary: Delete workspace runner

tag: Pipelines
method: GET
path: /workspaces/{workspace}/pipelines-config/variables
operationId: getPipelineVariablesForWorkspace
summary: List variables for a workspace

tag: Pipelines
method: POST
path: /workspaces/{workspace}/pipelines-config/variables
operationId: createPipelineVariableForWorkspace
summary: Create a variable for a workspace

tag: Pipelines
method: GET
path: /workspaces/{workspace}/pipelines-config/variables/{variable_uuid}
operationId: getPipelineVariableForWorkspace
summary: Get variable for a workspace

tag: Pipelines
method: PUT
path: /workspaces/{workspace}/pipelines-config/variables/{variable_uuid}
operationId: updatePipelineVariableForWorkspace
summary: Update variable for a workspace

tag: Pipelines
method: DELETE
path: /workspaces/{workspace}/pipelines-config/variables/{variable_uuid}
operationId: deletePipelineVariableForWorkspace
summary: Delete a variable for a workspace

tag: Projects
method: POST
path: /workspaces/{workspace}/projects
summary: Create a project in a workspace

tag: Projects
method: DELETE
path: /workspaces/{workspace}/projects/{project_key}
summary: Delete a project for a workspace

tag: Projects
method: GET
path: /workspaces/{workspace}/projects/{project_key}
summary: Get a project for a workspace

tag: Projects
method: PUT
path: /workspaces/{workspace}/projects/{project_key}
summary: Update a project for a workspace

tag: Projects
method: GET
path: /workspaces/{workspace}/projects/{project_key}/default-reviewers
summary: List the default reviewers in a project

tag: Projects
method: DELETE
path: /workspaces/{workspace}/projects/{project_key}/default-reviewers/{selected_user}
summary: Remove the specific user from the project's default reviewers

tag: Projects
method: GET
path: /workspaces/{workspace}/projects/{project_key}/default-reviewers/{selected_user}
summary: Get a default reviewer

tag: Projects
method: PUT
path: /workspaces/{workspace}/projects/{project_key}/default-reviewers/{selected_user}
summary: Add the specific user as a default reviewer for the project

tag: Projects
method: GET
path: /workspaces/{workspace}/projects/{project_key}/permissions-config/groups
summary: List explicit group permissions for a project

tag: Projects
method: DELETE
path: /workspaces/{workspace}/projects/{project_key}/permissions-config/groups/{group_slug}
summary: Delete an explicit group permission for a project

tag: Projects
method: GET
path: /workspaces/{workspace}/projects/{project_key}/permissions-config/groups/{group_slug}
summary: Get an explicit group permission for a project

tag: Projects
method: PUT
path: /workspaces/{workspace}/projects/{project_key}/permissions-config/groups/{group_slug}
summary: Update an explicit group permission for a project

tag: Projects
method: GET
path: /workspaces/{workspace}/projects/{project_key}/permissions-config/users
summary: List explicit user permissions for a project

tag: Projects
method: DELETE
path: /workspaces/{workspace}/projects/{project_key}/permissions-config/users/{selected_user_id}
summary: Delete an explicit user permission for a project

tag: Projects
method: GET
path: /workspaces/{workspace}/projects/{project_key}/permissions-config/users/{selected_user_id}
summary: Get an explicit user permission for a project

tag: Projects
method: PUT
path: /workspaces/{workspace}/projects/{project_key}/permissions-config/users/{selected_user_id}
summary: Update an explicit user permission for a project

tag: properties
method: PUT
path: /repositories/{workspace}/{repo_slug}/commit/{commit}/properties/{app_key}/{property_name}
operationId: updateCommitHostedPropertyValue
summary: Update a commit application property

tag: properties
method: DELETE
path: /repositories/{workspace}/{repo_slug}/commit/{commit}/properties/{app_key}/{property_name}
operationId: deleteCommitHostedPropertyValue
summary: Delete a commit application property

tag: properties
method: GET
path: /repositories/{workspace}/{repo_slug}/commit/{commit}/properties/{app_key}/{property_name}
operationId: getCommitHostedPropertyValue
summary: Get a commit application property

tag: properties
method: PUT
path: /repositories/{workspace}/{repo_slug}/properties/{app_key}/{property_name}
operationId: updateRepositoryHostedPropertyValue
summary: Update a repository application property

tag: properties
method: DELETE
path: /repositories/{workspace}/{repo_slug}/properties/{app_key}/{property_name}
operationId: deleteRepositoryHostedPropertyValue
summary: Delete a repository application property

tag: properties
method: GET
path: /repositories/{workspace}/{repo_slug}/properties/{app_key}/{property_name}
operationId: getRepositoryHostedPropertyValue
summary: Get a repository application property

tag: properties
method: PUT
path: /repositories/{workspace}/{repo_slug}/pullrequests/{pullrequest_id}/properties/{app_key}/{property_name}
operationId: updatePullRequestHostedPropertyValue
summary: Update a pull request application property

tag: properties
method: DELETE
path: /repositories/{workspace}/{repo_slug}/pullrequests/{pullrequest_id}/properties/{app_key}/{property_name}
operationId: deletePullRequestHostedPropertyValue
summary: Delete a pull request application property

tag: properties
method: GET
path: /repositories/{workspace}/{repo_slug}/pullrequests/{pullrequest_id}/properties/{app_key}/{property_name}
operationId: getPullRequestHostedPropertyValue
summary: Get a pull request application property

tag: properties
method: PUT
path: /users/{selected_user}/properties/{app_key}/{property_name}
operationId: updateUserHostedPropertyValue
summary: Update a user application property

tag: properties
method: DELETE
path: /users/{selected_user}/properties/{app_key}/{property_name}
operationId: deleteUserHostedPropertyValue
summary: Delete a user application property

tag: properties
method: GET
path: /users/{selected_user}/properties/{app_key}/{property_name}
operationId: retrieveUserHostedPropertyValue
summary: Get a user application property

tag: Pullrequests
method: GET
path: /repositories/{workspace}/{repo_slug}/commit/{commit}/pullrequests
operationId: getPullrequestsForCommit
summary: List pull requests that contain a commit

tag: Pullrequests
method: GET
path: /repositories/{workspace}/{repo_slug}/default-reviewers
summary: List default reviewers

tag: Pullrequests
method: DELETE
path: /repositories/{workspace}/{repo_slug}/default-reviewers/{target_username}
summary: Remove a user from the default reviewers

tag: Pullrequests
method: GET
path: /repositories/{workspace}/{repo_slug}/default-reviewers/{target_username}
summary: Get a default reviewer

tag: Pullrequests
method: PUT
path: /repositories/{workspace}/{repo_slug}/default-reviewers/{target_username}
summary: Add a user to the default reviewers

tag: Pullrequests
method: GET
path: /repositories/{workspace}/{repo_slug}/effective-default-reviewers
summary: List effective default reviewers

tag: Pullrequests
method: GET
path: /repositories/{workspace}/{repo_slug}/pullrequests
summary: List pull requests

tag: Pullrequests
method: POST
path: /repositories/{workspace}/{repo_slug}/pullrequests
summary: Create a pull request

tag: Pullrequests
method: GET
path: /repositories/{workspace}/{repo_slug}/pullrequests/{pull_request_id}
summary: Get a pull request

tag: Pullrequests
method: PUT
path: /repositories/{workspace}/{repo_slug}/pullrequests/{pull_request_id}
summary: Update a pull request

tag: Pullrequests
method: GET
path: /repositories/{workspace}/{repo_slug}/pullrequests/{pull_request_id}/activity
summary: List a pull request activity log

tag: Pullrequests
method: DELETE
path: /repositories/{workspace}/{repo_slug}/pullrequests/{pull_request_id}/approve
summary: Unapprove a pull request

tag: Pullrequests
method: POST
path: /repositories/{workspace}/{repo_slug}/pullrequests/{pull_request_id}/approve
summary: Approve a pull request

tag: Pullrequests
method: GET
path: /repositories/{workspace}/{repo_slug}/pullrequests/{pull_request_id}/comments
summary: List comments on a pull request

tag: Pullrequests
method: POST
path: /repositories/{workspace}/{repo_slug}/pullrequests/{pull_request_id}/comments
summary: Create a comment on a pull request

tag: Pullrequests
method: DELETE
path: /repositories/{workspace}/{repo_slug}/pullrequests/{pull_request_id}/comments/{comment_id}
summary: Delete a comment on a pull request

tag: Pullrequests
method: GET
path: /repositories/{workspace}/{repo_slug}/pullrequests/{pull_request_id}/comments/{comment_id}
summary: Get a comment on a pull request

tag: Pullrequests
method: PUT
path: /repositories/{workspace}/{repo_slug}/pullrequests/{pull_request_id}/comments/{comment_id}
summary: Update a comment on a pull request

tag: Pullrequests
method: DELETE
path: /repositories/{workspace}/{repo_slug}/pullrequests/{pull_request_id}/comments/{comment_id}/resolve
summary: Reopen a comment thread

tag: Pullrequests
method: POST
path: /repositories/{workspace}/{repo_slug}/pullrequests/{pull_request_id}/comments/{comment_id}/resolve
summary: Resolve a comment thread

tag: Pullrequests
method: GET
path: /repositories/{workspace}/{repo_slug}/pullrequests/{pull_request_id}/commits
summary: List commits on a pull request

tag: Pullrequests
method: POST
path: /repositories/{workspace}/{repo_slug}/pullrequests/{pull_request_id}/decline
summary: Decline a pull request

tag: Pullrequests
method: GET
path: /repositories/{workspace}/{repo_slug}/pullrequests/{pull_request_id}/diff
summary: List changes in a pull request

tag: Pullrequests
method: GET
path: /repositories/{workspace}/{repo_slug}/pullrequests/{pull_request_id}/diffstat
summary: Get the diff stat for a pull request

tag: Pullrequests
method: POST
path: /repositories/{workspace}/{repo_slug}/pullrequests/{pull_request_id}/merge
summary: Merge a pull request

tag: Pullrequests
method: GET
path: /repositories/{workspace}/{repo_slug}/pullrequests/{pull_request_id}/merge/task-status/{task_id}
summary: Get the merge task status for a pull request

tag: Pullrequests
method: GET
path: /repositories/{workspace}/{repo_slug}/pullrequests/{pull_request_id}/patch
summary: Get the patch for a pull request

tag: Pullrequests
method: DELETE
path: /repositories/{workspace}/{repo_slug}/pullrequests/{pull_request_id}/request-changes
summary: Remove change request for a pull request

tag: Pullrequests
method: POST
path: /repositories/{workspace}/{repo_slug}/pullrequests/{pull_request_id}/request-changes
summary: Request changes for a pull request

tag: Pullrequests
method: GET
path: /repositories/{workspace}/{repo_slug}/pullrequests/{pull_request_id}/statuses
summary: List commit statuses for a pull request

tag: Pullrequests
method: GET
path: /repositories/{workspace}/{repo_slug}/pullrequests/{pull_request_id}/tasks
summary: List tasks on a pull request

tag: Pullrequests
method: POST
path: /repositories/{workspace}/{repo_slug}/pullrequests/{pull_request_id}/tasks
summary: Create a task on a pull request

tag: Pullrequests
method: DELETE
path: /repositories/{workspace}/{repo_slug}/pullrequests/{pull_request_id}/tasks/{task_id}
summary: Delete a task on a pull request

tag: Pullrequests
method: GET
path: /repositories/{workspace}/{repo_slug}/pullrequests/{pull_request_id}/tasks/{task_id}
summary: Get a task on a pull request

tag: Pullrequests
method: PUT
path: /repositories/{workspace}/{repo_slug}/pullrequests/{pull_request_id}/tasks/{task_id}
summary: Update a task on a pull request

tag: Pullrequests
method: GET
path: /repositories/{workspace}/{repo_slug}/pullrequests/activity
summary: List a pull request activity log

tag: Refs
method: GET
path: /repositories/{workspace}/{repo_slug}/refs
summary: List branches and tags

tag: Refs
method: GET
path: /repositories/{workspace}/{repo_slug}/refs/branches
summary: List open branches

tag: Refs
method: POST
path: /repositories/{workspace}/{repo_slug}/refs/branches
summary: Create a branch

tag: Refs
method: DELETE
path: /repositories/{workspace}/{repo_slug}/refs/branches/{name}
summary: Delete a branch

tag: Refs
method: GET
path: /repositories/{workspace}/{repo_slug}/refs/branches/{name}
summary: Get a branch

tag: Refs
method: GET
path: /repositories/{workspace}/{repo_slug}/refs/tags
summary: List tags

tag: Refs
method: POST
path: /repositories/{workspace}/{repo_slug}/refs/tags
summary: Create a tag

tag: Refs
method: DELETE
path: /repositories/{workspace}/{repo_slug}/refs/tags/{name}
summary: Delete a tag

tag: Refs
method: GET
path: /repositories/{workspace}/{repo_slug}/refs/tags/{name}
summary: Get a tag

tag: Reports
method: GET
path: /repositories/{workspace}/{repo_slug}/commit/{commit}/reports
operationId: getReportsForCommit
summary: List reports

tag: Reports
method: PUT
path: /repositories/{workspace}/{repo_slug}/commit/{commit}/reports/{reportId}
operationId: createOrUpdateReport
summary: Create or update a report

tag: Reports
method: GET
path: /repositories/{workspace}/{repo_slug}/commit/{commit}/reports/{reportId}
operationId: getReport
summary: Get a report

tag: Reports
method: DELETE
path: /repositories/{workspace}/{repo_slug}/commit/{commit}/reports/{reportId}
operationId: deleteReport
summary: Delete a report

tag: Reports
method: GET
path: /repositories/{workspace}/{repo_slug}/commit/{commit}/reports/{reportId}/annotations
operationId: getAnnotationsForReport
summary: List annotations

tag: Reports
method: POST
path: /repositories/{workspace}/{repo_slug}/commit/{commit}/reports/{reportId}/annotations
operationId: bulkCreateOrUpdateAnnotations
summary: Bulk create or update annotations

tag: Reports
method: GET
path: /repositories/{workspace}/{repo_slug}/commit/{commit}/reports/{reportId}/annotations/{annotationId}
operationId: getAnnotation
summary: Get an annotation

tag: Reports
method: PUT
path: /repositories/{workspace}/{repo_slug}/commit/{commit}/reports/{reportId}/annotations/{annotationId}
operationId: createOrUpdateAnnotation
summary: Create or update an annotation

tag: Reports
method: DELETE
path: /repositories/{workspace}/{repo_slug}/commit/{commit}/reports/{reportId}/annotations/{annotationId}
operationId: deleteAnnotation
summary: Delete an annotation

tag: Repositories
method: GET
path: /repositories
summary: List public repositories

tag: Repositories
method: GET
path: /repositories/{workspace}
summary: List repositories in a workspace

tag: Repositories
method: DELETE
path: /repositories/{workspace}/{repo_slug}
summary: Delete a repository

tag: Repositories
method: GET
path: /repositories/{workspace}/{repo_slug}
summary: Get a repository

tag: Repositories
method: POST
path: /repositories/{workspace}/{repo_slug}
summary: Create a repository

tag: Repositories
method: PUT
path: /repositories/{workspace}/{repo_slug}
summary: Update a repository

tag: Repositories
method: GET
path: /repositories/{workspace}/{repo_slug}/forks
summary: List repository forks

tag: Repositories
method: POST
path: /repositories/{workspace}/{repo_slug}/forks
summary: Fork a repository

tag: Repositories
method: GET
path: /repositories/{workspace}/{repo_slug}/hooks
summary: List webhooks for a repository

tag: Repositories
method: POST
path: /repositories/{workspace}/{repo_slug}/hooks
summary: Create a webhook for a repository

tag: Repositories
method: DELETE
path: /repositories/{workspace}/{repo_slug}/hooks/{uid}
summary: Delete a webhook for a repository

tag: Repositories
method: GET
path: /repositories/{workspace}/{repo_slug}/hooks/{uid}
summary: Get a webhook for a repository

tag: Repositories
method: PUT
path: /repositories/{workspace}/{repo_slug}/hooks/{uid}
summary: Update a webhook for a repository

tag: Repositories
method: GET
path: /repositories/{workspace}/{repo_slug}/override-settings
summary: Retrieve the inheritance state for repository settings

tag: Repositories
method: PUT
path: /repositories/{workspace}/{repo_slug}/override-settings
summary: Set the inheritance state for repository settings
                

tag: Repositories
method: GET
path: /repositories/{workspace}/{repo_slug}/permissions-config/groups
summary: List explicit group permissions for a repository

tag: Repositories
method: DELETE
path: /repositories/{workspace}/{repo_slug}/permissions-config/groups/{group_slug}
summary: Delete an explicit group permission for a repository

tag: Repositories
method: GET
path: /repositories/{workspace}/{repo_slug}/permissions-config/groups/{group_slug}
summary: Get an explicit group permission for a repository

tag: Repositories
method: PUT
path: /repositories/{workspace}/{repo_slug}/permissions-config/groups/{group_slug}
summary: Update an explicit group permission for a repository

tag: Repositories
method: GET
path: /repositories/{workspace}/{repo_slug}/permissions-config/users
summary: List explicit user permissions for a repository

tag: Repositories
method: DELETE
path: /repositories/{workspace}/{repo_slug}/permissions-config/users/{selected_user_id}
summary: Delete an explicit user permission for a repository

tag: Repositories
method: GET
path: /repositories/{workspace}/{repo_slug}/permissions-config/users/{selected_user_id}
summary: Get an explicit user permission for a repository

tag: Repositories
method: PUT
path: /repositories/{workspace}/{repo_slug}/permissions-config/users/{selected_user_id}
summary: Update an explicit user permission for a repository

tag: Repositories
method: GET
path: /repositories/{workspace}/{repo_slug}/watchers
summary: List repositories watchers

tag: Repositories
method: GET
path: /user/permissions/repositories
summary: List repository permissions for a user

tag: Repositories
method: GET
path: /user/workspaces/{workspace}/permissions/repositories
summary: List repository permissions in a workspace for a user

tag: Search
method: GET
path: /teams/{username}/search/code
operationId: searchTeam
summary: Search for code in a team's repositories

tag: Search
method: GET
path: /users/{selected_user}/search/code
operationId: searchAccount
summary: Search for code in a user's repositories

tag: Search
method: GET
path: /workspaces/{workspace}/search/code
operationId: searchWorkspace
summary: Search for code in a workspace

tag: Snippets
method: GET
path: /snippets
summary: List snippets

tag: Snippets
method: POST
path: /snippets
summary: Create a snippet

tag: Snippets
method: GET
path: /snippets/{workspace}
summary: List snippets in a workspace

tag: Snippets
method: POST
path: /snippets/{workspace}
summary: Create a snippet for a workspace

tag: Snippets
method: DELETE
path: /snippets/{workspace}/{encoded_id}
summary: Delete a snippet

tag: Snippets
method: GET
path: /snippets/{workspace}/{encoded_id}
summary: Get a snippet

tag: Snippets
method: PUT
path: /snippets/{workspace}/{encoded_id}
summary: Update a snippet

tag: Snippets
method: DELETE
path: /snippets/{workspace}/{encoded_id}/{node_id}
summary: Delete a previous revision of a snippet

tag: Snippets
method: GET
path: /snippets/{workspace}/{encoded_id}/{node_id}
summary: Get a previous revision of a snippet

tag: Snippets
method: PUT
path: /snippets/{workspace}/{encoded_id}/{node_id}
summary: Update a previous revision of a snippet

tag: Snippets
method: GET
path: /snippets/{workspace}/{encoded_id}/{node_id}/files/{path}
summary: Get a snippet's raw file

tag: Snippets
method: GET
path: /snippets/{workspace}/{encoded_id}/{revision}/diff
summary: Get snippet changes between versions

tag: Snippets
method: GET
path: /snippets/{workspace}/{encoded_id}/{revision}/patch
summary: Get snippet patch between versions

tag: Snippets
method: GET
path: /snippets/{workspace}/{encoded_id}/comments
summary: List comments on a snippet

tag: Snippets
method: POST
path: /snippets/{workspace}/{encoded_id}/comments
summary: Create a comment on a snippet

tag: Snippets
method: DELETE
path: /snippets/{workspace}/{encoded_id}/comments/{comment_id}
summary: Delete a comment on a snippet

tag: Snippets
method: GET
path: /snippets/{workspace}/{encoded_id}/comments/{comment_id}
summary: Get a comment on a snippet

tag: Snippets
method: PUT
path: /snippets/{workspace}/{encoded_id}/comments/{comment_id}
summary: Update a comment on a snippet

tag: Snippets
method: GET
path: /snippets/{workspace}/{encoded_id}/commits
summary: List snippet changes

tag: Snippets
method: GET
path: /snippets/{workspace}/{encoded_id}/commits/{revision}
summary: Get a previous snippet change

tag: Snippets
method: GET
path: /snippets/{workspace}/{encoded_id}/files/{path}
summary: Get a snippet's raw file at HEAD

tag: Snippets
method: DELETE
path: /snippets/{workspace}/{encoded_id}/watch
summary: Stop watching a snippet

tag: Snippets
method: GET
path: /snippets/{workspace}/{encoded_id}/watch
summary: Check if the current user is watching a snippet

tag: Snippets
method: PUT
path: /snippets/{workspace}/{encoded_id}/watch
summary: Watch a snippet

tag: Snippets
method: GET
path: /snippets/{workspace}/{encoded_id}/watchers
summary: List users watching a snippet

tag: Source
method: GET
path: /repositories/{workspace}/{repo_slug}/filehistory/{commit}/{path}
summary: List commits that modified a file

tag: Source
method: GET
path: /repositories/{workspace}/{repo_slug}/src
summary: Get the root directory of the main branch

tag: Source
method: POST
path: /repositories/{workspace}/{repo_slug}/src
summary: Create a commit by uploading a file

tag: Source
method: GET
path: /repositories/{workspace}/{repo_slug}/src/{commit}/{path}
summary: Get file or directory contents

tag: SSH
method: GET
path: /users/{selected_user}/ssh-keys
summary: List SSH keys

tag: SSH
method: POST
path: /users/{selected_user}/ssh-keys
summary: Add a new SSH key

tag: SSH
method: DELETE
path: /users/{selected_user}/ssh-keys/{key_id}
summary: Delete a SSH key

tag: SSH
method: GET
path: /users/{selected_user}/ssh-keys/{key_id}
summary: Get a SSH key

tag: SSH
method: PUT
path: /users/{selected_user}/ssh-keys/{key_id}
summary: Update a SSH key

tag: Users
method: GET
path: /user
summary: Get current user

tag: Users
method: GET
path: /user/emails
summary: List email addresses for current user

tag: Users
method: GET
path: /user/emails/{email}
summary: Get an email address for current user

tag: Users
method: GET
path: /users/{selected_user}
summary: Get a user

tag: Webhooks
method: GET
path: /hook_events
summary: Get a webhook resource

tag: Webhooks
method: GET
path: /hook_events/{subject_type}
summary: List subscribable webhook types

tag: Workspaces
method: GET
path: /user/permissions/workspaces
summary: List workspaces for the current user

tag: Workspaces
method: GET
path: /user/workspaces
summary: List workspaces for the current user

tag: Workspaces
method: GET
path: /user/workspaces/{workspace}/permission
summary: Get user permission on a workspace

tag: Workspaces
method: GET
path: /workspaces
summary: List workspaces for user

tag: Workspaces
method: GET
path: /workspaces/{workspace}
summary: Get a workspace

tag: Workspaces
method: GET
path: /workspaces/{workspace}/hooks
summary: List webhooks for a workspace

tag: Workspaces
method: POST
path: /workspaces/{workspace}/hooks
summary: Create a webhook for a workspace

tag: Workspaces
method: DELETE
path: /workspaces/{workspace}/hooks/{uid}
summary: Delete a webhook for a workspace

tag: Workspaces
method: GET
path: /workspaces/{workspace}/hooks/{uid}
summary: Get a webhook for a workspace

tag: Workspaces
method: PUT
path: /workspaces/{workspace}/hooks/{uid}
summary: Update a webhook for a workspace

tag: Workspaces
method: GET
path: /workspaces/{workspace}/members
summary: List users in a workspace

tag: Workspaces
method: GET
path: /workspaces/{workspace}/members/{member}
summary: Get user membership for a workspace

tag: Workspaces
method: GET
path: /workspaces/{workspace}/permissions
summary: List user permissions in a workspace

tag: Workspaces
method: GET
path: /workspaces/{workspace}/permissions/repositories
summary: List all repository permissions for a workspace

tag: Workspaces
method: GET
path: /workspaces/{workspace}/permissions/repositories/{repo_slug}
summary: List a repository permissions for a workspace

tag: Workspaces
method: GET
path: /workspaces/{workspace}/projects
summary: List projects in a workspace

tag: Workspaces
method: GET
path: /workspaces/{workspace}/pullrequests/{selected_user}
summary: List workspace pull requests for a user

Security scan verdicts — ClawScan: clean | static analysis: suspicious | VirusTotal: clean | SkillSpector: suspicious (CRITICAL)