@ngocsangairvds/vsaf 3.1.27 → 3.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +2 -2
- package/src/global.js +70 -10
- package/tools/skills/vds-scripts-skill/.openskills.json +6 -0
- package/tools/skills/vds-scripts-skill/QUALITY.md +44 -0
- package/tools/skills/vds-scripts-skill/SKILL.md +135 -0
- package/tools/skills/vds-scripts-skill/references/audit-commands.md +171 -0
- package/tools/skills/vds-scripts-skill/references/capability-index.md +34 -0
- package/tools/skills/vds-scripts-skill/references/development-commands.md +12 -0
- package/tools/skills/vds-scripts-skill/references/google-sheets.md +73 -0
- package/tools/skills/vds-scripts-skill/references/integration-commands.md +17 -0
- package/tools/skills/vds-scripts-skill/references/platform-bootstrap.md +31 -0
- package/tools/skills/vds-scripts-skill/references/specialist-routing.md +14 -0
- package/tools/skills/vds-scripts-skill/references/validation-commands.md +15 -0
- package/tools/skills/vsaf-build/SKILL.md +32 -2
- package/tools/skills/vsaf-ship/SKILL.md +41 -10
- package/tools/skills/vsaf-test/SKILL.md +8 -0
- package/tools/vds-scripts/.mcp.json +11 -0
- package/tools/vds-scripts/.secrets.baseline +133 -0
- package/tools/vds-scripts/AGENTS.md +152 -0
- package/tools/vds-scripts/CLAUDE.md +101 -0
- package/tools/vds-scripts/CLI_COMMAND_OPTIMIZATION.md +156 -0
- package/tools/vds-scripts/PACKAGE_P125B_IMPLEMENTATION_SUMMARY.md +131 -0
- package/tools/vds-scripts/PROJECT_COMPLETION_SUMMARY.md +45 -0
- package/tools/vds-scripts/README.md +97 -0
- package/tools/vds-scripts/bitbucket_manifest_mapping.toml +34 -0
- package/tools/vds-scripts/bitbucket_orchestrator/ARCHITECTURE_ANALYSIS.md +258 -0
- package/tools/vds-scripts/bitbucket_orchestrator/BITBUCKET_API_PRACTICES.md +393 -0
- package/tools/vds-scripts/bitbucket_orchestrator/EVALUATION_REPORT.md +61 -0
- package/tools/vds-scripts/bitbucket_orchestrator/FEATURES.md +908 -0
- package/tools/vds-scripts/bitbucket_orchestrator/README.md +687 -0
- package/tools/vds-scripts/bitbucket_orchestrator/pyproject.toml +40 -0
- package/tools/vds-scripts/bitbucket_orchestrator/src/vds_bitbucket_orchestrator/__init__.py +20 -0
- package/tools/vds-scripts/bitbucket_orchestrator/src/vds_bitbucket_orchestrator/async_client.py +657 -0
- package/tools/vds-scripts/bitbucket_orchestrator/src/vds_bitbucket_orchestrator/cli.py +2108 -0
- package/tools/vds-scripts/bitbucket_orchestrator/src/vds_bitbucket_orchestrator/client.py +2534 -0
- package/tools/vds-scripts/bitbucket_orchestrator/src/vds_bitbucket_orchestrator/config.py +171 -0
- package/tools/vds-scripts/bitbucket_orchestrator/src/vds_bitbucket_orchestrator/errors.py +67 -0
- package/tools/vds-scripts/bitbucket_orchestrator/src/vds_bitbucket_orchestrator/factory.py +185 -0
- package/tools/vds-scripts/bitbucket_orchestrator/src/vds_bitbucket_orchestrator/protocols.py +244 -0
- package/tools/vds-scripts/bitbucket_orchestrator/tests/__init__.py +8 -0
- package/tools/vds-scripts/bitbucket_orchestrator/tests/conftest.py +65 -0
- package/tools/vds-scripts/bitbucket_orchestrator/tests/test_advanced_search.py +151 -0
- package/tools/vds-scripts/bitbucket_orchestrator/tests/test_async_client.py +546 -0
- package/tools/vds-scripts/bitbucket_orchestrator/tests/test_branch_permissions.py +145 -0
- package/tools/vds-scripts/bitbucket_orchestrator/tests/test_cli.py +115 -0
- package/tools/vds-scripts/bitbucket_orchestrator/tests/test_client.py +157 -0
- package/tools/vds-scripts/bitbucket_orchestrator/tests/test_client_branch_conditions.py +79 -0
- package/tools/vds-scripts/bitbucket_orchestrator/tests/test_client_code_advanced.py +163 -0
- package/tools/vds-scripts/bitbucket_orchestrator/tests/test_client_code_file.py +32 -0
- package/tools/vds-scripts/bitbucket_orchestrator/tests/test_client_deployment_environments.py +194 -0
- package/tools/vds-scripts/bitbucket_orchestrator/tests/test_client_issues.py +164 -0
- package/tools/vds-scripts/bitbucket_orchestrator/tests/test_client_pipelines_advanced.py +179 -0
- package/tools/vds-scripts/bitbucket_orchestrator/tests/test_client_pr_blockers.py +119 -0
- package/tools/vds-scripts/bitbucket_orchestrator/tests/test_client_repository_variables.py +156 -0
- package/tools/vds-scripts/bitbucket_orchestrator/tests/test_code.py +98 -0
- package/tools/vds-scripts/bitbucket_orchestrator/tests/test_code_advanced.py +282 -0
- package/tools/vds-scripts/bitbucket_orchestrator/tests/test_code_insights.py +335 -0
- package/tools/vds-scripts/bitbucket_orchestrator/tests/test_conditions.py +147 -0
- package/tools/vds-scripts/bitbucket_orchestrator/tests/test_config.py +131 -0
- package/tools/vds-scripts/bitbucket_orchestrator/tests/test_deployment_env.py +352 -0
- package/tools/vds-scripts/bitbucket_orchestrator/tests/test_factory.py +371 -0
- package/tools/vds-scripts/bitbucket_orchestrator/tests/test_fork_operations.py +204 -0
- package/tools/vds-scripts/bitbucket_orchestrator/tests/test_issue_cli.py +261 -0
- package/tools/vds-scripts/bitbucket_orchestrator/tests/test_pipeline_advanced.py +270 -0
- package/tools/vds-scripts/bitbucket_orchestrator/tests/test_pr_blocker.py +204 -0
- package/tools/vds-scripts/bitbucket_orchestrator/tests/test_protocols.py +334 -0
- package/tools/vds-scripts/bitbucket_orchestrator/tests/test_repo_settings.py +343 -0
- package/tools/vds-scripts/bitbucket_orchestrator/tests/test_repo_variables.py +270 -0
- package/tools/vds-scripts/bitbucket_orchestrator/tests/test_webhooks.py +189 -0
- package/tools/vds-scripts/bitbucket_orchestrator/tests/test_workspace.py +233 -0
- package/tools/vds-scripts/bitbucket_orchestrator/uv.lock +742 -0
- package/tools/vds-scripts/confluence_orchestrator/Dockerfile +19 -0
- package/tools/vds-scripts/confluence_orchestrator/README.md +412 -0
- package/tools/vds-scripts/confluence_orchestrator/SYNC_SCRIPTS.md +127 -0
- package/tools/vds-scripts/confluence_orchestrator/SYNC_STANDARDIZATION.md +108 -0
- package/tools/vds-scripts/confluence_orchestrator/pyproject.toml +48 -0
- package/tools/vds-scripts/confluence_orchestrator/src/confluence_orchestrator/__init__.py +20 -0
- package/tools/vds-scripts/confluence_orchestrator/src/confluence_orchestrator/cli.py +2532 -0
- package/tools/vds-scripts/confluence_orchestrator/src/confluence_orchestrator/config.py +175 -0
- package/tools/vds-scripts/confluence_orchestrator/src/confluence_orchestrator/content.py +290 -0
- package/tools/vds-scripts/confluence_orchestrator/src/confluence_orchestrator/content_v2.py +94 -0
- package/tools/vds-scripts/confluence_orchestrator/src/confluence_orchestrator/crawl_tree.py +1835 -0
- package/tools/vds-scripts/confluence_orchestrator/src/confluence_orchestrator/errors.py +80 -0
- package/tools/vds-scripts/confluence_orchestrator/src/confluence_orchestrator/eventing.py +109 -0
- package/tools/vds-scripts/confluence_orchestrator/src/confluence_orchestrator/http.py +1114 -0
- package/tools/vds-scripts/confluence_orchestrator/src/confluence_orchestrator/orchestration.py +165 -0
- package/tools/vds-scripts/confluence_orchestrator/src/confluence_orchestrator/reporting.py +78 -0
- package/tools/vds-scripts/confluence_orchestrator/src/confluence_orchestrator/tree.py +121 -0
- package/tools/vds-scripts/confluence_orchestrator/sync_pdfs_from_markdown.py +213 -0
- package/tools/vds-scripts/confluence_orchestrator/sync_pdfs_to_confluence.py +305 -0
- package/tools/vds-scripts/confluence_orchestrator/sync_png_attachments.py +305 -0
- package/tools/vds-scripts/confluence_orchestrator/tests/__init__.py +0 -0
- package/tools/vds-scripts/confluence_orchestrator/tests/conftest.py +8 -0
- package/tools/vds-scripts/confluence_orchestrator/tests/test_advanced_content.py +224 -0
- package/tools/vds-scripts/confluence_orchestrator/tests/test_advanced_search.py +188 -0
- package/tools/vds-scripts/confluence_orchestrator/tests/test_cache_management.py +247 -0
- package/tools/vds-scripts/confluence_orchestrator/tests/test_cli.py +499 -0
- package/tools/vds-scripts/confluence_orchestrator/tests/test_config.py +83 -0
- package/tools/vds-scripts/confluence_orchestrator/tests/test_content.py +186 -0
- package/tools/vds-scripts/confluence_orchestrator/tests/test_content_flags.py +27 -0
- package/tools/vds-scripts/confluence_orchestrator/tests/test_crawl_tree.py +2250 -0
- package/tools/vds-scripts/confluence_orchestrator/tests/test_draft_management.py +223 -0
- package/tools/vds-scripts/confluence_orchestrator/tests/test_eventing.py +71 -0
- package/tools/vds-scripts/confluence_orchestrator/tests/test_eventing_chaos.py +37 -0
- package/tools/vds-scripts/confluence_orchestrator/tests/test_eventing_rate_limit.py +44 -0
- package/tools/vds-scripts/confluence_orchestrator/tests/test_eventing_timeout.py +49 -0
- package/tools/vds-scripts/confluence_orchestrator/tests/test_export.py +230 -0
- package/tools/vds-scripts/confluence_orchestrator/tests/test_history.py +204 -0
- package/tools/vds-scripts/confluence_orchestrator/tests/test_http.py +117 -0
- package/tools/vds-scripts/confluence_orchestrator/tests/test_orchestration.py +91 -0
- package/tools/vds-scripts/confluence_orchestrator/tests/test_reporting.py +24 -0
- package/tools/vds-scripts/confluence_orchestrator/tests/test_search_cql.py +34 -0
- package/tools/vds-scripts/confluence_orchestrator/tests/test_space_management.py +237 -0
- package/tools/vds-scripts/confluence_orchestrator/tests/test_space_permissions.py +332 -0
- package/tools/vds-scripts/confluence_orchestrator/tests/test_user_group_management.py +388 -0
- package/tools/vds-scripts/confluence_orchestrator/uv.lock +1023 -0
- package/tools/vds-scripts/git_orchestrator/ENHANCEMENT_SUMMARY.md +119 -0
- package/tools/vds-scripts/git_orchestrator/README.md +280 -0
- package/tools/vds-scripts/git_orchestrator/VERIFICATION_REPORT.md +152 -0
- package/tools/vds-scripts/git_orchestrator/pyproject.toml +35 -0
- package/tools/vds-scripts/git_orchestrator/src/vds_git_orchestrator/__init__.py +7 -0
- package/tools/vds-scripts/git_orchestrator/src/vds_git_orchestrator/__main__.py +4 -0
- package/tools/vds-scripts/git_orchestrator/src/vds_git_orchestrator/cli.py +847 -0
- package/tools/vds-scripts/git_orchestrator/src/vds_git_orchestrator/logging_config.py +63 -0
- package/tools/vds-scripts/git_orchestrator/src/vds_git_orchestrator/manifest.py +129 -0
- package/tools/vds-scripts/git_orchestrator/src/vds_git_orchestrator/orchestrator.py +819 -0
- package/tools/vds-scripts/git_orchestrator/src/vds_git_orchestrator/reporting.py +53 -0
- package/tools/vds-scripts/git_orchestrator/tests/__init__.py +0 -0
- package/tools/vds-scripts/git_orchestrator/tests/test_cli_settings.py +21 -0
- package/tools/vds-scripts/git_orchestrator/tests/test_integration.py +74 -0
- package/tools/vds-scripts/git_orchestrator/tests/test_manifest.py +79 -0
- package/tools/vds-scripts/git_orchestrator/tests/test_orchestrator.py +204 -0
- package/tools/vds-scripts/git_orchestrator/tests/test_public_api.py +236 -0
- package/tools/vds-scripts/git_orchestrator/tests/test_resilience.py +345 -0
- package/tools/vds-scripts/git_orchestrator/uv.lock +271 -0
- package/tools/vds-scripts/jira_orchestrator/README.md +770 -0
- package/tools/vds-scripts/jira_orchestrator/pyproject.toml +39 -0
- package/tools/vds-scripts/jira_orchestrator/src/vds_jira_orchestrator/__init__.py +1 -0
- package/tools/vds-scripts/jira_orchestrator/src/vds_jira_orchestrator/adapter.py +1320 -0
- package/tools/vds-scripts/jira_orchestrator/src/vds_jira_orchestrator/cli.py +2271 -0
- package/tools/vds-scripts/jira_orchestrator/src/vds_jira_orchestrator/config.py +138 -0
- package/tools/vds-scripts/jira_orchestrator/src/vds_jira_orchestrator/errors.py +67 -0
- package/tools/vds-scripts/jira_orchestrator/src/vds_jira_orchestrator/reporting.py +65 -0
- package/tools/vds-scripts/jira_orchestrator/tests/__init__.py +1 -0
- package/tools/vds-scripts/jira_orchestrator/tests/conftest.py +86 -0
- package/tools/vds-scripts/jira_orchestrator/tests/test_adapter_agile_list_payloads.py +54 -0
- package/tools/vds-scripts/jira_orchestrator/tests/test_adapter_bulk_operations.py +69 -0
- package/tools/vds-scripts/jira_orchestrator/tests/test_adapter_components.py +57 -0
- package/tools/vds-scripts/jira_orchestrator/tests/test_adapter_createmeta.py +45 -0
- package/tools/vds-scripts/jira_orchestrator/tests/test_adapter_dashboard.py +117 -0
- package/tools/vds-scripts/jira_orchestrator/tests/test_adapter_issue_properties.py +54 -0
- package/tools/vds-scripts/jira_orchestrator/tests/test_adapter_permissions_compat.py +42 -0
- package/tools/vds-scripts/jira_orchestrator/tests/test_adapter_reindex.py +42 -0
- package/tools/vds-scripts/jira_orchestrator/tests/test_adapter_remote_links.py +76 -0
- package/tools/vds-scripts/jira_orchestrator/tests/test_adapter_transitions.py +91 -0
- package/tools/vds-scripts/jira_orchestrator/tests/test_adapter_user_management.py +110 -0
- package/tools/vds-scripts/jira_orchestrator/tests/test_adapter_version_management.py +133 -0
- package/tools/vds-scripts/jira_orchestrator/tests/test_adapter_watchers.py +41 -0
- package/tools/vds-scripts/jira_orchestrator/tests/test_advanced_search.py +164 -0
- package/tools/vds-scripts/jira_orchestrator/tests/test_agile.py +256 -0
- package/tools/vds-scripts/jira_orchestrator/tests/test_application_properties.py +193 -0
- package/tools/vds-scripts/jira_orchestrator/tests/test_backlog.py +91 -0
- package/tools/vds-scripts/jira_orchestrator/tests/test_bulk_operations.py +277 -0
- package/tools/vds-scripts/jira_orchestrator/tests/test_cli.py +106 -0
- package/tools/vds-scripts/jira_orchestrator/tests/test_components.py +106 -0
- package/tools/vds-scripts/jira_orchestrator/tests/test_config.py +164 -0
- package/tools/vds-scripts/jira_orchestrator/tests/test_dashboard.py +122 -0
- package/tools/vds-scripts/jira_orchestrator/tests/test_discover_fields.py +207 -0
- package/tools/vds-scripts/jira_orchestrator/tests/test_filter_management.py +333 -0
- package/tools/vds-scripts/jira_orchestrator/tests/test_issue_archiving.py +164 -0
- package/tools/vds-scripts/jira_orchestrator/tests/test_issue_links.py +257 -0
- package/tools/vds-scripts/jira_orchestrator/tests/test_issue_properties.py +171 -0
- package/tools/vds-scripts/jira_orchestrator/tests/test_link_types.py +314 -0
- package/tools/vds-scripts/jira_orchestrator/tests/test_parse_set.py +37 -0
- package/tools/vds-scripts/jira_orchestrator/tests/test_permissions.py +273 -0
- package/tools/vds-scripts/jira_orchestrator/tests/test_reindex.py +81 -0
- package/tools/vds-scripts/jira_orchestrator/tests/test_remote_links.py +254 -0
- package/tools/vds-scripts/jira_orchestrator/tests/test_security_schemes.py +170 -0
- package/tools/vds-scripts/jira_orchestrator/tests/test_transitions_changelog.py +114 -0
- package/tools/vds-scripts/jira_orchestrator/tests/test_user_management.py +226 -0
- package/tools/vds-scripts/jira_orchestrator/tests/test_version_management.py +339 -0
- package/tools/vds-scripts/jira_orchestrator/tests/test_watchers.py +101 -0
- package/tools/vds-scripts/jira_orchestrator/tests/test_worklog.py +223 -0
- package/tools/vds-scripts/jira_orchestrator/uv.lock +738 -0
- package/tools/vds-scripts/mcp_server/Dockerfile +34 -0
- package/tools/vds-scripts/mcp_server/README.md +140 -0
- package/tools/vds-scripts/mcp_server/pyproject.toml +42 -0
- package/tools/vds-scripts/mcp_server/src/vds_mcp_server/__init__.py +4 -0
- package/tools/vds-scripts/mcp_server/src/vds_mcp_server/config.py +36 -0
- package/tools/vds-scripts/mcp_server/src/vds_mcp_server/server.py +66 -0
- package/tools/vds-scripts/mcp_server/src/vds_mcp_server/tools/__init__.py +14 -0
- package/tools/vds-scripts/mcp_server/src/vds_mcp_server/tools/bitbucket_tools.py +47 -0
- package/tools/vds-scripts/mcp_server/src/vds_mcp_server/tools/confluence_tools.py +59 -0
- package/tools/vds-scripts/mcp_server/src/vds_mcp_server/tools/git_tools.py +71 -0
- package/tools/vds-scripts/mcp_server/src/vds_mcp_server/tools/jira_tools.py +63 -0
- package/tools/vds-scripts/mcp_server/tests/__init__.py +2 -0
- package/tools/vds-scripts/mcp_server/tests/conftest.py +29 -0
- package/tools/vds-scripts/mcp_server/tests/unit/__init__.py +2 -0
- package/tools/vds-scripts/mcp_server/tests/unit/test_bitbucket_tools.py +25 -0
- package/tools/vds-scripts/mcp_server/tests/unit/test_confluence_tools.py +25 -0
- package/tools/vds-scripts/mcp_server/tests/unit/test_git_tools.py +32 -0
- package/tools/vds-scripts/mcp_server/tests/unit/test_jira_tools.py +32 -0
- package/tools/vds-scripts/mcp_server/tests/verification/__init__.py +2 -0
- package/tools/vds-scripts/mcp_server/tests/verification/test_mcp_confluence_tools.py +40 -0
- package/tools/vds-scripts/mcp_server/tests/verification/test_mcp_jira_tools.py +37 -0
- package/tools/vds-scripts/mcp_server/tests/verification/test_mcp_tool_registration.py +47 -0
- package/tools/vds-scripts/mcp_server/uv.lock +1032 -0
- package/tools/vds-scripts/mypy.ini +5 -0
- package/tools/vds-scripts/pyproject.toml +29 -0
- package/tools/vds-scripts/repo-manifest.yaml +273 -0
- package/tools/vds-scripts/repo-manifest.yaml.example +25 -0
- package/tools/vds-scripts/scripts/BRD-Validation-API.postman_collection.json +706 -0
- package/tools/vds-scripts/scripts/BRD-Validation-README.md +308 -0
- package/tools/vds-scripts/scripts/README.md +162 -0
- package/tools/vds-scripts/scripts/bootstrap_uv.sh +30 -0
- package/tools/vds-scripts/scripts/brd-validation-environment.json +51 -0
- package/tools/vds-scripts/scripts/brd-validation-test-results.json +13023 -0
- package/tools/vds-scripts/scripts/brd_coverage_report.json +276 -0
- package/tools/vds-scripts/scripts/create_memory_session.py +35 -0
- package/tools/vds-scripts/scripts/deployment/load_docker_images_offline.sh +90 -0
- package/tools/vds-scripts/scripts/final_completion_report.md +139 -0
- package/tools/vds-scripts/scripts/folder_structure_report.json +321 -0
- package/tools/vds-scripts/scripts/generate_completion_report.py +125 -0
- package/tools/vds-scripts/scripts/generate_intellij_modules.py +150 -0
- package/tools/vds-scripts/scripts/link_integrity_report.json +807 -0
- package/tools/vds-scripts/scripts/move_audit_artifact_pages.py +255 -0
- package/tools/vds-scripts/scripts/move_audit_artifact_pages_rest.py +165 -0
- package/tools/vds-scripts/scripts/move_wrong_dept_pages.py +216 -0
- package/tools/vds-scripts/scripts/save_intellij_memories.py +120 -0
- package/tools/vds-scripts/scripts/save_memories_to_vds_ai.py +83 -0
- package/tools/vds-scripts/scripts/save_memories_vds_style.py +129 -0
- package/tools/vds-scripts/scripts/search_intellij_memories.py +50 -0
- package/tools/vds-scripts/scripts/setup_intellij_workspace.py +65 -0
- package/tools/vds-scripts/scripts/target-state-automation/README.md +89 -0
- package/tools/vds-scripts/scripts/target-state-automation/confluence_sync_coordinator.sh +27 -0
- package/tools/vds-scripts/scripts/target-state-automation/coordination.sh +114 -0
- package/tools/vds-scripts/scripts/target-state-automation/diagram_coordinator.sh +25 -0
- package/tools/vds-scripts/scripts/target-state-automation/docs_root.sh +22 -0
- package/tools/vds-scripts/scripts/target-state-automation/generate_diagrams.sh +22 -0
- package/tools/vds-scripts/scripts/target-state-automation/markdown_coordinator.sh +25 -0
- package/tools/vds-scripts/scripts/target-state-automation/progress_dashboard.sh +17 -0
- package/tools/vds-scripts/scripts/target-state-automation/schema_coordinator.sh +25 -0
- package/tools/vds-scripts/scripts/target-state-automation/sync_confluence.sh +30 -0
- package/tools/vds-scripts/scripts/target-state-automation/update_dependencies.sh +19 -0
- package/tools/vds-scripts/scripts/target-state-automation/validate_links.sh +86 -0
- package/tools/vds-scripts/scripts/target-state-automation/validate_markdown.sh +52 -0
- package/tools/vds-scripts/scripts/target-state-automation/validate_schemas.sh +26 -0
- package/tools/vds-scripts/scripts/target-state-automation/validate_structure.sh +98 -0
- package/tools/vds-scripts/scripts/update_modules_xml.py +190 -0
- package/tools/vds-scripts/scripts/uv-workspace-alignment-verification-2026-03-25.md +128 -0
- package/tools/vds-scripts/scripts/validate_brd_coverage.py +179 -0
- package/tools/vds-scripts/scripts/validate_folder_structure.py +240 -0
- package/tools/vds-scripts/scripts/validate_link_integrity.py +272 -0
- package/tools/vds-scripts/scripts/vds_sh_helpers.sh +180 -0
- package/tools/vds-scripts/scripts/verification/phase2_portable_paths_ubuntu_docker.sh +26 -0
- package/tools/vds-scripts/scripts/worktree_uv.sh +48 -0
- package/tools/vds-scripts/uv.lock +8 -0
- package/tools/vds-scripts/vds_cli/README.md +126 -0
- package/tools/vds-scripts/vds_cli/VERIFICATION_REPORT.md +41 -0
- package/tools/vds-scripts/vds_cli/pyproject.toml +38 -0
- package/tools/vds-scripts/vds_cli/src/vds_cli/__init__.py +3 -0
- package/tools/vds-scripts/vds_cli/src/vds_cli/cli.py +173 -0
- package/tools/vds-scripts/vds_cli/src/vds_cli/docs_sync.py +1203 -0
- package/tools/vds-scripts/vds_cli/src/vds_cli/env.py +41 -0
- package/tools/vds-scripts/vds_cli/src/vds_cli/google_sheets_orchestrator/__init__.py +3 -0
- package/tools/vds-scripts/vds_cli/src/vds_cli/google_sheets_orchestrator/google_sheets_orchestrator.py +198 -0
- package/tools/vds-scripts/vds_cli/src/vds_cli/router.py +93 -0
- package/tools/vds-scripts/vds_cli/src/vds_cli/sync_api.py +647 -0
- package/tools/vds-scripts/vds_cli/src/vds_cli/sync_service.py +266 -0
- package/tools/vds-scripts/vds_cli/tests/__init__.py +2 -0
- package/tools/vds-scripts/vds_cli/tests/conftest.py +49 -0
- package/tools/vds-scripts/vds_cli/tests/unit/__init__.py +2 -0
- package/tools/vds-scripts/vds_cli/tests/unit/test_cli.py +143 -0
- package/tools/vds-scripts/vds_cli/tests/unit/test_docs_sync.py +422 -0
- package/tools/vds-scripts/vds_cli/tests/unit/test_env.py +51 -0
- package/tools/vds-scripts/vds_cli/tests/unit/test_router.py +72 -0
- package/tools/vds-scripts/vds_cli/tests/unit/test_sync_api.py +357 -0
- package/tools/vds-scripts/vds_cli/tests/unit/test_sync_service.py +160 -0
- package/tools/vds-scripts/vds_cli/tests/verification/__init__.py +2 -0
- package/tools/vds-scripts/vds_cli/tests/verification/test_bitbucket_real.py +33 -0
- package/tools/vds-scripts/vds_cli/tests/verification/test_confluence_real.py +35 -0
- package/tools/vds-scripts/vds_cli/tests/verification/test_jira_real.py +41 -0
- package/tools/vds-scripts/vds_cli/uv.lock +524 -0
- package/tools/vds-scripts/vds_cli_common/README.md +190 -0
- package/tools/vds-scripts/vds_cli_common/pyproject.toml +92 -0
- package/tools/vds-scripts/vds_cli_common/src/vds_cli_common/__init__.py +34 -0
- package/tools/vds-scripts/vds_cli_common/src/vds_cli_common/completers.py +139 -0
- package/tools/vds-scripts/vds_cli_common/src/vds_cli_common/context.py +201 -0
- package/tools/vds-scripts/vds_cli_common/src/vds_cli_common/env.py +119 -0
- package/tools/vds-scripts/vds_cli_common/src/vds_cli_common/errors.py +318 -0
- package/tools/vds-scripts/vds_cli_common/src/vds_cli_common/output.py +284 -0
- package/tools/vds-scripts/vds_cli_common/src/vds_cli_common/paths.py +78 -0
- package/tools/vds-scripts/vds_cli_common/src/vds_cli_common/testing.py +213 -0
- package/tools/vds-scripts/vds_cli_common/src/vds_cli_common/version.py +85 -0
- package/tools/vds-scripts/vds_cli_common/tests/__init__.py +1 -0
- package/tools/vds-scripts/vds_cli_common/tests/test_completers.py +148 -0
- package/tools/vds-scripts/vds_cli_common/tests/test_context.py +192 -0
- package/tools/vds-scripts/vds_cli_common/tests/test_env.py +102 -0
- package/tools/vds-scripts/vds_cli_common/tests/test_errors.py +186 -0
- package/tools/vds-scripts/vds_cli_common/tests/test_output.py +229 -0
- package/tools/vds-scripts/vds_cli_common/tests/test_paths.py +61 -0
- package/tools/vds-scripts/vds_cli_common/tests/test_testing.py +138 -0
- package/tools/vds-scripts/vds_cli_common/tests/test_version.py +64 -0
|
@@ -0,0 +1,908 @@
|
|
|
1
|
+
# VDS Bitbucket Orchestrator - Complete Feature Overview
|
|
2
|
+
|
|
3
|
+
**Last Updated**: 2026-01-21
|
|
4
|
+
**Version**: Current (with PR management enhancements)
|
|
5
|
+
**Status**: Production-ready (manual API validation pending)
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Overview
|
|
10
|
+
|
|
11
|
+
The VDS Bitbucket Orchestrator is a comprehensive Python toolkit for Bitbucket operations using the `atlassian-python-api` SDK. It provides a unified CLI interface for repository management, pull requests, pipelines, permissions, and Bitbucket automation across both **Bitbucket Server/Data Center** and **Bitbucket Cloud**.
|
|
12
|
+
|
|
13
|
+
**Key Capabilities**:
|
|
14
|
+
- ✅ **34 CLI commands** covering all major Bitbucket operations
|
|
15
|
+
- ✅ **Full PR lifecycle management** (create, approve, merge, decline, comment, diff, activities)
|
|
16
|
+
- ✅ **Dual mode support** (Server/Data Center + Cloud)
|
|
17
|
+
- ✅ **Agent-friendly output** (JSON, markdown reports, structured logging)
|
|
18
|
+
- ✅ **Comprehensive error handling** with retry logic
|
|
19
|
+
- ✅ **289/289 tests passing**
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## Feature Categories
|
|
24
|
+
|
|
25
|
+
### 1. Project Operations (2 commands)
|
|
26
|
+
|
|
27
|
+
#### `projects`
|
|
28
|
+
List all Bitbucket projects with filtering and pagination.
|
|
29
|
+
|
|
30
|
+
**Features**:
|
|
31
|
+
- Filter by keyword
|
|
32
|
+
- Limit results
|
|
33
|
+
- JSON output support
|
|
34
|
+
- Markdown reports
|
|
35
|
+
|
|
36
|
+
**Example**:
|
|
37
|
+
```bash
|
|
38
|
+
uv run --project vds_cli vds-cli bitbucket projects --limit 50
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
#### `create-project`
|
|
42
|
+
Create a new Bitbucket project.
|
|
43
|
+
|
|
44
|
+
**Features**:
|
|
45
|
+
- Project key and name
|
|
46
|
+
- Optional description
|
|
47
|
+
- JSON output
|
|
48
|
+
- Markdown reports
|
|
49
|
+
|
|
50
|
+
**Example**:
|
|
51
|
+
```bash
|
|
52
|
+
uv run --project vds_cli vds-cli bitbucket create-project PROJECT_KEY "Project Name" \
|
|
53
|
+
--description "Project description"
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
---
|
|
57
|
+
|
|
58
|
+
### 2. Repository Operations (3 commands)
|
|
59
|
+
|
|
60
|
+
#### `repositories`
|
|
61
|
+
List repositories in a project with filtering and pagination.
|
|
62
|
+
|
|
63
|
+
**Features**:
|
|
64
|
+
- Filter by keyword
|
|
65
|
+
- Limit results
|
|
66
|
+
- JSON output
|
|
67
|
+
- Markdown reports
|
|
68
|
+
|
|
69
|
+
**Example**:
|
|
70
|
+
```bash
|
|
71
|
+
uv run --project vds_cli vds-cli bitbucket repositories PROJECT_KEY --limit 25
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
#### Repository Management (Python Client)
|
|
75
|
+
Full CRUD operations via `BitbucketClient`:
|
|
76
|
+
- `create_repository()` - Create repository
|
|
77
|
+
- `get_repository()` - Get repository details
|
|
78
|
+
- `update_repository()` - Update repository settings
|
|
79
|
+
- `delete_repository()` - Delete repository (dangerous!)
|
|
80
|
+
|
|
81
|
+
#### `fork`
|
|
82
|
+
Fork repository operations.
|
|
83
|
+
|
|
84
|
+
**Features**:
|
|
85
|
+
- Fork within same project
|
|
86
|
+
- Fork to new project
|
|
87
|
+
- List forks of a repository
|
|
88
|
+
- Requires `--yes` for confirmation
|
|
89
|
+
|
|
90
|
+
**Example**:
|
|
91
|
+
```bash
|
|
92
|
+
# Fork within same project
|
|
93
|
+
uv run --project vds_cli vds-cli bitbucket fork create PROJECT_KEY REPO_SLUG \
|
|
94
|
+
--new-repo REPO_FORK --yes
|
|
95
|
+
|
|
96
|
+
# Fork to new project
|
|
97
|
+
uv run --project vds_cli vds-cli bitbucket fork create PROJECT_KEY REPO_SLUG \
|
|
98
|
+
--new-project NEW_PROJECT_KEY --new-repo NEW_REPO_SLUG --yes
|
|
99
|
+
|
|
100
|
+
# List forks
|
|
101
|
+
uv run --project vds_cli vds-cli bitbucket fork list PROJECT_KEY REPO_SLUG
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
---
|
|
105
|
+
|
|
106
|
+
### 3. Pull Request Operations (12 commands)
|
|
107
|
+
|
|
108
|
+
#### `pull-requests`
|
|
109
|
+
List pull requests with filtering.
|
|
110
|
+
|
|
111
|
+
**Features**:
|
|
112
|
+
- Filter by state (OPEN, MERGED, DECLINED)
|
|
113
|
+
- Sort order (newest, oldest)
|
|
114
|
+
- Limit results
|
|
115
|
+
- JSON output
|
|
116
|
+
|
|
117
|
+
**Example**:
|
|
118
|
+
```bash
|
|
119
|
+
uv run --project vds_cli vds-cli bitbucket pull-requests PROJECT_KEY REPO_SLUG \
|
|
120
|
+
--state OPEN --order newest --limit 100
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
#### `create-pr` ⭐ **Enhanced**
|
|
124
|
+
Create pull requests with full workflow support.
|
|
125
|
+
|
|
126
|
+
**Features**:
|
|
127
|
+
- Same-project and cross-project PRs
|
|
128
|
+
- Draft PR support (best-effort with fallback)
|
|
129
|
+
- Include required reviewers from policy
|
|
130
|
+
- Custom reviewers list
|
|
131
|
+
- Title, description, source/target branches
|
|
132
|
+
- JSON output with PR ID and URL
|
|
133
|
+
- Markdown reports with timestamps
|
|
134
|
+
|
|
135
|
+
**Enhancements Beyond Spec**:
|
|
136
|
+
- `--include-required-reviewers` flag (auto-include required reviewers)
|
|
137
|
+
|
|
138
|
+
**Example**:
|
|
139
|
+
```bash
|
|
140
|
+
# Standard PR
|
|
141
|
+
uv run --project vds_cli vds-cli bitbucket create-pr EKYC ekyc-business \
|
|
142
|
+
"Fix boundary timers" fix/ekyc-psj-fix-001 \
|
|
143
|
+
--target release --description "Fixes ENGINE-09005" --reviewers "user1,user2"
|
|
144
|
+
|
|
145
|
+
# Draft PR with required reviewers
|
|
146
|
+
uv run --project vds_cli vds-cli bitbucket create-pr EKYC ekyc-business \
|
|
147
|
+
"Draft: Payment validation" feature/payment-validation \
|
|
148
|
+
--target develop --draft --include-required-reviewers
|
|
149
|
+
|
|
150
|
+
# Cross-project PR
|
|
151
|
+
uv run --project vds_cli vds-cli bitbucket create-pr EKYC ekyc-business \
|
|
152
|
+
"Cross project PR" feature/branch \
|
|
153
|
+
--source-project PLATFORM --source-repo platform-repo \
|
|
154
|
+
--dest-project INSURANCE --dest-repo insurance-repo --target release
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
#### `get-pr` ⭐ **Enhanced**
|
|
158
|
+
Get detailed PR information with mergeability status.
|
|
159
|
+
|
|
160
|
+
**Features**:
|
|
161
|
+
- Full PR metadata (title, description, author, reviewers, state)
|
|
162
|
+
- Mergeability status (can merge, conflicts, vetoes)
|
|
163
|
+
- Optional commit list expansion (best-effort)
|
|
164
|
+
- Commit limit control
|
|
165
|
+
- JSON output
|
|
166
|
+
- Markdown reports
|
|
167
|
+
|
|
168
|
+
**Example**:
|
|
169
|
+
```bash
|
|
170
|
+
# Basic PR details
|
|
171
|
+
uv run --project vds_cli vds-cli bitbucket get-pr EKYC ekyc-business 154
|
|
172
|
+
|
|
173
|
+
# With commit list
|
|
174
|
+
uv run --project vds_cli vds-cli bitbucket get-pr EKYC ekyc-business 154 \
|
|
175
|
+
--include-commits --commit-limit 20
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
#### `approve-pr` ⭐ **Enhanced**
|
|
179
|
+
Approve pull requests.
|
|
180
|
+
|
|
181
|
+
**Features**:
|
|
182
|
+
- Requires `--yes` flag for safety
|
|
183
|
+
- JSON output
|
|
184
|
+
- Markdown reports with ISO 8601 timestamps (`approved_at`)
|
|
185
|
+
|
|
186
|
+
**Example**:
|
|
187
|
+
```bash
|
|
188
|
+
uv run --project vds_cli vds-cli bitbucket approve-pr EKYC ekyc-business 154 --yes
|
|
189
|
+
```
|
|
190
|
+
|
|
191
|
+
#### `unapprove-pr` ⭐ **Enhanced**
|
|
192
|
+
Remove approval from pull requests.
|
|
193
|
+
|
|
194
|
+
**Features**:
|
|
195
|
+
- Requires `--yes` flag for safety
|
|
196
|
+
- JSON output
|
|
197
|
+
- Markdown reports with ISO 8601 timestamps (`unapproved_at`)
|
|
198
|
+
|
|
199
|
+
**Example**:
|
|
200
|
+
```bash
|
|
201
|
+
uv run --project vds_cli vds-cli bitbucket unapprove-pr EKYC ekyc-business 154 --yes
|
|
202
|
+
```
|
|
203
|
+
|
|
204
|
+
#### `merge-pr` ⭐ **Enhanced**
|
|
205
|
+
Merge pull requests with strategy selection and safety checks.
|
|
206
|
+
|
|
207
|
+
**Features**:
|
|
208
|
+
- Merge strategies: `merge-commit`, `squash`, `fast-forward`, `rebase` (best-effort)
|
|
209
|
+
- Pre-merge approval check (warns if no approvals)
|
|
210
|
+
- Server-side validation (conflicts, permissions, build status)
|
|
211
|
+
- Optimistic locking via version parameter
|
|
212
|
+
- Custom merge commit message
|
|
213
|
+
- Auto-close source branch option
|
|
214
|
+
- Requires `--yes` flag
|
|
215
|
+
- JSON output
|
|
216
|
+
- Markdown reports
|
|
217
|
+
|
|
218
|
+
**Enhancements Beyond Spec**:
|
|
219
|
+
- `--message` / `-m` for custom merge commit message
|
|
220
|
+
- `--close-source-branch` to close source branch after merge
|
|
221
|
+
- `rebase` strategy (best-effort alias for fast-forward with warning)
|
|
222
|
+
|
|
223
|
+
**Example**:
|
|
224
|
+
```bash
|
|
225
|
+
# Standard merge
|
|
226
|
+
uv run --project vds_cli vds-cli bitbucket merge-pr EKYC ekyc-business 154 --yes
|
|
227
|
+
|
|
228
|
+
# Squash merge with custom message and close branch
|
|
229
|
+
uv run --project vds_cli vds-cli bitbucket merge-pr EKYC ekyc-business 154 \
|
|
230
|
+
--strategy squash --message "Squash merge PR #154" --close-source-branch --yes
|
|
231
|
+
|
|
232
|
+
# Skip approval check (not recommended)
|
|
233
|
+
uv run --project vds_cli vds-cli bitbucket merge-pr EKYC ekyc-business 154 \
|
|
234
|
+
--skip-approval-check --yes
|
|
235
|
+
```
|
|
236
|
+
|
|
237
|
+
#### `decline-pr` ⭐ **Enhanced**
|
|
238
|
+
Decline/reject pull requests.
|
|
239
|
+
|
|
240
|
+
**Features**:
|
|
241
|
+
- Optional decline reason/comment (adds comment before declining)
|
|
242
|
+
- Requires `--yes` flag
|
|
243
|
+
- JSON output
|
|
244
|
+
- Markdown reports with ISO 8601 timestamps (`declined_at`)
|
|
245
|
+
|
|
246
|
+
**Example**:
|
|
247
|
+
```bash
|
|
248
|
+
uv run --project vds_cli vds-cli bitbucket decline-pr EKYC ekyc-business 154 \
|
|
249
|
+
--reason "Not meeting requirements" --yes
|
|
250
|
+
```
|
|
251
|
+
|
|
252
|
+
#### `comment-pr` ⭐ **Best-Effort**
|
|
253
|
+
Add comments to pull requests.
|
|
254
|
+
|
|
255
|
+
**Features**:
|
|
256
|
+
- General PR comments
|
|
257
|
+
- Inline comments (best-effort: `--file` + `--line`, falls back to general comment with context)
|
|
258
|
+
- Reply to comments (best-effort: `--reply-to`, falls back to general comment)
|
|
259
|
+
- Markdown formatting support
|
|
260
|
+
- JSON output with comment ID
|
|
261
|
+
- Markdown reports
|
|
262
|
+
|
|
263
|
+
**Example**:
|
|
264
|
+
```bash
|
|
265
|
+
# General comment
|
|
266
|
+
uv run --project vds_cli vds-cli bitbucket comment-pr EKYC ekyc-business 154 \
|
|
267
|
+
--text "LGTM! Ready to merge."
|
|
268
|
+
|
|
269
|
+
# Inline-style comment (best-effort)
|
|
270
|
+
uv run --project vds_cli vds-cli bitbucket comment-pr EKYC ekyc-business 154 \
|
|
271
|
+
--text "Fix this typo" --file "src/main.java" --line 42
|
|
272
|
+
|
|
273
|
+
# Reply to comment (best-effort)
|
|
274
|
+
uv run --project vds_cli vds-cli bitbucket comment-pr EKYC ekyc-business 154 \
|
|
275
|
+
--text "Good catch!" --reply-to 123
|
|
276
|
+
```
|
|
277
|
+
|
|
278
|
+
#### `pr-comments`
|
|
279
|
+
List PR comments (simple version, derived from activities).
|
|
280
|
+
|
|
281
|
+
**Features**:
|
|
282
|
+
- Limit results
|
|
283
|
+
- JSON output
|
|
284
|
+
- Markdown reports
|
|
285
|
+
|
|
286
|
+
**Example**:
|
|
287
|
+
```bash
|
|
288
|
+
uv run --project vds_cli vds-cli bitbucket pr-comments EKYC ekyc-business 154 --limit 20
|
|
289
|
+
```
|
|
290
|
+
|
|
291
|
+
#### `list-pr-comments`
|
|
292
|
+
List PR comments with threaded fields (parent, severity, etc.).
|
|
293
|
+
|
|
294
|
+
**Features**:
|
|
295
|
+
- Limit results
|
|
296
|
+
- Threaded comment fields when available
|
|
297
|
+
- JSON output
|
|
298
|
+
- Markdown reports
|
|
299
|
+
|
|
300
|
+
**Example**:
|
|
301
|
+
```bash
|
|
302
|
+
uv run --project vds_cli vds-cli bitbucket list-pr-comments EKYC ekyc-business 154 --limit 20
|
|
303
|
+
```
|
|
304
|
+
|
|
305
|
+
#### `pr-diff` ⭐ **Best-Effort**
|
|
306
|
+
View PR diffs with multiple output formats.
|
|
307
|
+
|
|
308
|
+
**Features**:
|
|
309
|
+
- Summary format (default): File-level change list + UI URL
|
|
310
|
+
- Unified diff format (best-effort: `--unified`, only when API provides hunks)
|
|
311
|
+
- File-specific filtering (`--file`)
|
|
312
|
+
- Context lines control (`--context`)
|
|
313
|
+
- Output to file (`--output`: JSON for summary, plain text for unified)
|
|
314
|
+
- Color control (`--no-color`)
|
|
315
|
+
- JSON output
|
|
316
|
+
|
|
317
|
+
**Example**:
|
|
318
|
+
```bash
|
|
319
|
+
# Summary format
|
|
320
|
+
uv run --project vds_cli vds-cli bitbucket pr-diff EKYC ekyc-business 154
|
|
321
|
+
|
|
322
|
+
# File-specific with JSON output
|
|
323
|
+
uv run --project vds_cli vds-cli bitbucket pr-diff EKYC ekyc-business 154 \
|
|
324
|
+
--file "src/main/resources/application.yml" --output /tmp/pr_154_diff.json --no-color
|
|
325
|
+
|
|
326
|
+
# Unified diff (best-effort)
|
|
327
|
+
uv run --project vds_cli vds-cli bitbucket pr-diff EKYC ekyc-business 154 \
|
|
328
|
+
--unified --context 3 --no-color --output /tmp/pr_154.patch
|
|
329
|
+
```
|
|
330
|
+
|
|
331
|
+
#### `pr-activities`
|
|
332
|
+
List PR activities with filtering.
|
|
333
|
+
|
|
334
|
+
**Features**:
|
|
335
|
+
- Filter by activity type (`--type`: COMMENTED, APPROVED, MERGED, etc.)
|
|
336
|
+
- Limit results
|
|
337
|
+
- JSON output
|
|
338
|
+
- Markdown reports
|
|
339
|
+
|
|
340
|
+
**Example**:
|
|
341
|
+
```bash
|
|
342
|
+
# All activities
|
|
343
|
+
uv run --project vds_cli vds-cli bitbucket pr-activities EKYC ekyc-business 154 --limit 10
|
|
344
|
+
|
|
345
|
+
# Only comments
|
|
346
|
+
uv run --project vds_cli vds-cli bitbucket pr-activities EKYC ekyc-business 154 \
|
|
347
|
+
--type COMMENTED --limit 10
|
|
348
|
+
```
|
|
349
|
+
|
|
350
|
+
---
|
|
351
|
+
|
|
352
|
+
### 4. User and Group Management (3 commands)
|
|
353
|
+
|
|
354
|
+
#### `groups`
|
|
355
|
+
List all Bitbucket groups.
|
|
356
|
+
|
|
357
|
+
**Features**:
|
|
358
|
+
- Filter by keyword
|
|
359
|
+
- Limit results
|
|
360
|
+
- JSON output
|
|
361
|
+
|
|
362
|
+
**Example**:
|
|
363
|
+
```bash
|
|
364
|
+
uv run --project vds_cli vds-cli bitbucket groups --filter "developers" --limit 50
|
|
365
|
+
```
|
|
366
|
+
|
|
367
|
+
#### `project-users`
|
|
368
|
+
List users with permissions for a project.
|
|
369
|
+
|
|
370
|
+
**Features**:
|
|
371
|
+
- Filter by keyword
|
|
372
|
+
- Limit results
|
|
373
|
+
- JSON output
|
|
374
|
+
|
|
375
|
+
**Example**:
|
|
376
|
+
```bash
|
|
377
|
+
uv run --project vds_cli vds-cli bitbucket project-users PROJECT_KEY \
|
|
378
|
+
--filter "john" --limit 25
|
|
379
|
+
```
|
|
380
|
+
|
|
381
|
+
#### `project-groups`
|
|
382
|
+
List groups with permissions for a project.
|
|
383
|
+
|
|
384
|
+
**Features**:
|
|
385
|
+
- Filter by keyword
|
|
386
|
+
- Limit results
|
|
387
|
+
- JSON output
|
|
388
|
+
|
|
389
|
+
**Example**:
|
|
390
|
+
```bash
|
|
391
|
+
uv run --project vds_cli vds-cli bitbucket project-groups PROJECT_KEY \
|
|
392
|
+
--filter "developers" --limit 25
|
|
393
|
+
```
|
|
394
|
+
|
|
395
|
+
---
|
|
396
|
+
|
|
397
|
+
### 5. Permission Management (3 commands)
|
|
398
|
+
|
|
399
|
+
#### `grant-group-repo`
|
|
400
|
+
Grant group permissions to a repository.
|
|
401
|
+
|
|
402
|
+
**Features**:
|
|
403
|
+
- Permission levels (read, write, admin)
|
|
404
|
+
- JSON output
|
|
405
|
+
|
|
406
|
+
**Example**:
|
|
407
|
+
```bash
|
|
408
|
+
uv run --project vds_cli vds-cli bitbucket grant-group-repo PROJECT_KEY REPO_SLUG \
|
|
409
|
+
GROUP_NAME write
|
|
410
|
+
```
|
|
411
|
+
|
|
412
|
+
#### `branch-permissions`
|
|
413
|
+
Branch permissions management.
|
|
414
|
+
|
|
415
|
+
**Features**:
|
|
416
|
+
- Get permission by ID
|
|
417
|
+
- Set permissions (matcher type, matcher value, permission type)
|
|
418
|
+
- Delete permissions
|
|
419
|
+
- Requires `--yes` for write operations
|
|
420
|
+
|
|
421
|
+
**Example**:
|
|
422
|
+
```bash
|
|
423
|
+
# Get permission
|
|
424
|
+
uv run --project vds_cli vds-cli bitbucket branch-permissions get PROJECT_KEY --permission-id 1
|
|
425
|
+
|
|
426
|
+
# Set permission
|
|
427
|
+
uv run --project vds_cli vds-cli bitbucket branch-permissions set PROJECT_KEY \
|
|
428
|
+
--matcher-type BRANCH --matcher-value "refs/heads/master" \
|
|
429
|
+
--permission-type READ_ONLY --yes
|
|
430
|
+
|
|
431
|
+
# Delete permission
|
|
432
|
+
uv run --project vds_cli vds-cli bitbucket branch-permissions delete PROJECT_KEY \
|
|
433
|
+
--permission-id 1 --yes
|
|
434
|
+
```
|
|
435
|
+
|
|
436
|
+
#### `conditions`
|
|
437
|
+
Conditions-Reviewers management.
|
|
438
|
+
|
|
439
|
+
**Features**:
|
|
440
|
+
- List conditions (project-level or repo-level)
|
|
441
|
+
- Get condition by ID
|
|
442
|
+
- Create condition from JSON file
|
|
443
|
+
- Delete condition
|
|
444
|
+
- Requires `--yes` for write operations
|
|
445
|
+
|
|
446
|
+
**Example**:
|
|
447
|
+
```bash
|
|
448
|
+
# List project conditions
|
|
449
|
+
uv run --project vds_cli vds-cli bitbucket conditions list PROJECT_KEY
|
|
450
|
+
|
|
451
|
+
# Get condition
|
|
452
|
+
uv run --project vds_cli vds-cli bitbucket conditions get PROJECT_KEY --condition-id 1
|
|
453
|
+
|
|
454
|
+
# Create condition
|
|
455
|
+
uv run --project vds_cli vds-cli bitbucket conditions create PROJECT_KEY \
|
|
456
|
+
--condition-file condition.json --yes
|
|
457
|
+
|
|
458
|
+
# List repo conditions
|
|
459
|
+
uv run --project vds_cli vds-cli bitbucket conditions list PROJECT_KEY --repo REPO_SLUG
|
|
460
|
+
```
|
|
461
|
+
|
|
462
|
+
---
|
|
463
|
+
|
|
464
|
+
### 6. Code Operations (2 commands)
|
|
465
|
+
|
|
466
|
+
#### `code`
|
|
467
|
+
Basic code/file content operations.
|
|
468
|
+
|
|
469
|
+
**Features**:
|
|
470
|
+
- Get file content (`file` action)
|
|
471
|
+
- List commits (`commits` action)
|
|
472
|
+
- Get diff between commits (`diff` action)
|
|
473
|
+
- Get changelog between refs (`changelog` action)
|
|
474
|
+
|
|
475
|
+
**Example**:
|
|
476
|
+
```bash
|
|
477
|
+
# Get file content
|
|
478
|
+
uv run --project vds_cli vds-cli bitbucket code file PROJECT_KEY REPO_SLUG \
|
|
479
|
+
--file "path/to/file.py"
|
|
480
|
+
|
|
481
|
+
# List commits
|
|
482
|
+
uv run --project vds_cli vds-cli bitbucket code commits PROJECT_KEY REPO_SLUG --limit 50
|
|
483
|
+
|
|
484
|
+
# Get diff
|
|
485
|
+
uv run --project vds_cli vds-cli bitbucket code diff PROJECT_KEY REPO_SLUG \
|
|
486
|
+
--file "path/to/file.py" --hash-oldest abc123 --hash-newest def456
|
|
487
|
+
|
|
488
|
+
# Get changelog
|
|
489
|
+
uv run --project vds_cli vds-cli bitbucket code changelog PROJECT_KEY REPO_SLUG \
|
|
490
|
+
--ref-from master --ref-to develop
|
|
491
|
+
```
|
|
492
|
+
|
|
493
|
+
#### `code-advanced`
|
|
494
|
+
Advanced code operations.
|
|
495
|
+
|
|
496
|
+
**Features**:
|
|
497
|
+
- List files in repository (`file-list` action)
|
|
498
|
+
- Get commit information (`commit-info` action)
|
|
499
|
+
- Get commit changes (`commit-changes` action)
|
|
500
|
+
- Search code (Cloud-only: `search` action)
|
|
501
|
+
- Advanced code search with repository filter (Cloud-only: `search-advanced` action)
|
|
502
|
+
|
|
503
|
+
**Example**:
|
|
504
|
+
```bash
|
|
505
|
+
# List files
|
|
506
|
+
uv run --project vds_cli vds-cli bitbucket code-advanced file-list \
|
|
507
|
+
--project-key PROJECT_KEY --repository-slug REPO_SLUG \
|
|
508
|
+
--sub-folder "src" --query "*.py" --start 0 --limit 100
|
|
509
|
+
|
|
510
|
+
# Get commit info
|
|
511
|
+
uv run --project vds_cli vds-cli bitbucket code-advanced commit-info \
|
|
512
|
+
--project-key PROJECT_KEY --repository-slug REPO_SLUG \
|
|
513
|
+
--commit "abc123" --path "file.py"
|
|
514
|
+
|
|
515
|
+
# Search code (Cloud-only)
|
|
516
|
+
uv run --project vds_cli vds-cli bitbucket code-advanced search \
|
|
517
|
+
--team "workspace" --search-query "def test_function" --page 1 --limit 20
|
|
518
|
+
```
|
|
519
|
+
|
|
520
|
+
---
|
|
521
|
+
|
|
522
|
+
### 7. Pipeline Operations (2 commands) - Cloud Only
|
|
523
|
+
|
|
524
|
+
#### `pipelines`
|
|
525
|
+
List pipelines.
|
|
526
|
+
|
|
527
|
+
**Features**:
|
|
528
|
+
- Filter by state
|
|
529
|
+
- Limit results
|
|
530
|
+
- JSON output
|
|
531
|
+
|
|
532
|
+
**Example**:
|
|
533
|
+
```bash
|
|
534
|
+
uv run --project vds_cli vds-cli bitbucket pipelines WORKSPACE REPOSITORY --limit 10
|
|
535
|
+
```
|
|
536
|
+
|
|
537
|
+
#### `pipeline-advanced`
|
|
538
|
+
Advanced pipeline operations.
|
|
539
|
+
|
|
540
|
+
**Features**:
|
|
541
|
+
- Get pipeline details (`get` action)
|
|
542
|
+
- List pipeline steps (`steps` action)
|
|
543
|
+
- Get specific step (`step` action)
|
|
544
|
+
- Fetch step logs (`log` action) with byte range support
|
|
545
|
+
- Stop running pipeline (`stop` action, requires `--yes`)
|
|
546
|
+
|
|
547
|
+
**Example**:
|
|
548
|
+
```bash
|
|
549
|
+
# Get pipeline details
|
|
550
|
+
uv run --project vds_cli vds-cli bitbucket pipeline-advanced get \
|
|
551
|
+
--workspace team-slug --repo-slug repo-slug --pipeline-uuid {uuid} --no-markdown
|
|
552
|
+
|
|
553
|
+
# Get step log
|
|
554
|
+
uv run --project vds_cli vds-cli bitbucket pipeline-advanced log \
|
|
555
|
+
--workspace team-slug --repo-slug repo-slug \
|
|
556
|
+
--pipeline-uuid {uuid} --step-uuid {step-uuid} \
|
|
557
|
+
--start 0 --end 5000 --output ./logs/{uuid}-{step-uuid}.log
|
|
558
|
+
|
|
559
|
+
# Stop pipeline
|
|
560
|
+
uv run --project vds_cli vds-cli bitbucket pipeline-advanced stop \
|
|
561
|
+
--workspace team-slug --repo-slug repo-slug --pipeline-uuid {uuid} --yes
|
|
562
|
+
```
|
|
563
|
+
|
|
564
|
+
---
|
|
565
|
+
|
|
566
|
+
### 8. Webhook Management (1 command) - Cloud Only
|
|
567
|
+
|
|
568
|
+
#### `webhooks`
|
|
569
|
+
Manage repository webhooks.
|
|
570
|
+
|
|
571
|
+
**Features**:
|
|
572
|
+
- List webhooks (filter by event, include statistics)
|
|
573
|
+
- Create webhook (requires `--yes`)
|
|
574
|
+
- Update webhook (name, URL, events, active/inactive)
|
|
575
|
+
- Delete webhook (requires `--yes`)
|
|
576
|
+
|
|
577
|
+
**Example**:
|
|
578
|
+
```bash
|
|
579
|
+
# List webhooks
|
|
580
|
+
uv run --project vds_cli vds-cli bitbucket webhooks list PROJECT_KEY REPO_SLUG \
|
|
581
|
+
--filter-event "repo:push"
|
|
582
|
+
|
|
583
|
+
# Create webhook
|
|
584
|
+
uv run --project vds_cli vds-cli bitbucket webhooks create PROJECT_KEY REPO_SLUG \
|
|
585
|
+
--name "CI Hook" --url "https://ci.example.com/bitbucket" \
|
|
586
|
+
--event repo:push --event pr:opened --yes
|
|
587
|
+
|
|
588
|
+
# Update webhook
|
|
589
|
+
uv run --project vds_cli vds-cli bitbucket webhooks update PROJECT_KEY REPO_SLUG \
|
|
590
|
+
--webhook-id 42 --name "Updated Hook" --set-inactive --yes
|
|
591
|
+
|
|
592
|
+
# Delete webhook
|
|
593
|
+
uv run --project vds_cli vds-cli bitbucket webhooks delete PROJECT_KEY REPO_SLUG \
|
|
594
|
+
--webhook-id 42 --yes
|
|
595
|
+
```
|
|
596
|
+
|
|
597
|
+
---
|
|
598
|
+
|
|
599
|
+
### 9. Cloud Workspace Operations (1 command) - Cloud Only
|
|
600
|
+
|
|
601
|
+
#### `workspace`
|
|
602
|
+
Manage Cloud workspaces.
|
|
603
|
+
|
|
604
|
+
**Features**:
|
|
605
|
+
- List all workspaces
|
|
606
|
+
- Get workspace details
|
|
607
|
+
- Get workspace permissions
|
|
608
|
+
- Get repository permissions in workspace
|
|
609
|
+
- List projects in workspace
|
|
610
|
+
- Get specific project from workspace
|
|
611
|
+
|
|
612
|
+
**Example**:
|
|
613
|
+
```bash
|
|
614
|
+
# List workspaces
|
|
615
|
+
uv run --project vds_cli vds-cli bitbucket workspace list
|
|
616
|
+
|
|
617
|
+
# Get workspace details
|
|
618
|
+
uv run --project vds_cli vds-cli bitbucket workspace get --workspace-slug workspace1
|
|
619
|
+
|
|
620
|
+
# Get workspace permissions
|
|
621
|
+
uv run --project vds_cli vds-cli bitbucket workspace permissions --workspace-slug workspace1
|
|
622
|
+
|
|
623
|
+
# List projects in workspace
|
|
624
|
+
uv run --project vds_cli vds-cli bitbucket workspace projects --workspace-slug workspace1
|
|
625
|
+
```
|
|
626
|
+
|
|
627
|
+
---
|
|
628
|
+
|
|
629
|
+
### 10. Repository Variables (1 command) - Cloud Only
|
|
630
|
+
|
|
631
|
+
#### `repo-variables`
|
|
632
|
+
Manage repository-level pipeline variables.
|
|
633
|
+
|
|
634
|
+
**Features**:
|
|
635
|
+
- List variables (`list` action)
|
|
636
|
+
- Get variable by UUID (`get` action)
|
|
637
|
+
- Create variable (`create` action, requires `--yes`)
|
|
638
|
+
- Update variable (`update` action, requires `--yes`)
|
|
639
|
+
- Delete variable (`delete` action, requires `--yes`)
|
|
640
|
+
- Support for secured variables
|
|
641
|
+
|
|
642
|
+
**Example**:
|
|
643
|
+
```bash
|
|
644
|
+
# List variables
|
|
645
|
+
uv run --project vds_cli vds-cli bitbucket repo-variables list \
|
|
646
|
+
--workspace team-slug --repo-slug repo-slug --no-markdown
|
|
647
|
+
|
|
648
|
+
# Create secured variable
|
|
649
|
+
uv run --project vds_cli vds-cli bitbucket repo-variables create \
|
|
650
|
+
--workspace team-slug --repo-slug repo-slug \
|
|
651
|
+
--key API_TOKEN --value "super-secret" --secured true --yes --no-markdown
|
|
652
|
+
|
|
653
|
+
# Update variable
|
|
654
|
+
uv run --project vds_cli vds-cli bitbucket repo-variables update \
|
|
655
|
+
--workspace team-slug --repo-slug repo-slug \
|
|
656
|
+
--uuid {variable-uuid} --value "rotate-me" --yes --no-markdown
|
|
657
|
+
```
|
|
658
|
+
|
|
659
|
+
---
|
|
660
|
+
|
|
661
|
+
### 11. Deployment Environments (1 command) - Cloud Only
|
|
662
|
+
|
|
663
|
+
#### `deployment-env`
|
|
664
|
+
Manage deployment environments and their variables.
|
|
665
|
+
|
|
666
|
+
**Features**:
|
|
667
|
+
- List environments (`list` action)
|
|
668
|
+
- Get environment (`get` action)
|
|
669
|
+
- Manage environment variables (`vars` sub-action):
|
|
670
|
+
- List variables (`list`)
|
|
671
|
+
- Create variable (`create`, requires `--yes`)
|
|
672
|
+
- Update variable (`update`, requires `--yes`)
|
|
673
|
+
- Delete variable (`delete`, requires `--yes`)
|
|
674
|
+
|
|
675
|
+
**Example**:
|
|
676
|
+
```bash
|
|
677
|
+
# List environments
|
|
678
|
+
uv run --project vds_cli vds-cli bitbucket deployment-env list \
|
|
679
|
+
--workspace team-slug --repo-slug repo-slug
|
|
680
|
+
|
|
681
|
+
# Create environment variable
|
|
682
|
+
uv run --project vds_cli vds-cli bitbucket deployment-env vars create \
|
|
683
|
+
--workspace team-slug --repo-slug repo-slug --env-uuid {env-uuid} \
|
|
684
|
+
--key DB_HOST --value "db.example.com" --yes
|
|
685
|
+
```
|
|
686
|
+
|
|
687
|
+
---
|
|
688
|
+
|
|
689
|
+
### 12. Repository Issues (1 command) - Cloud Only
|
|
690
|
+
|
|
691
|
+
#### `issue`
|
|
692
|
+
Manage repository issues when Bitbucket Issues tracker is enabled.
|
|
693
|
+
|
|
694
|
+
**Features**:
|
|
695
|
+
- List issues (`list` action) with query/sort
|
|
696
|
+
- Get issue (`get` action)
|
|
697
|
+
- Create issue (`create` action)
|
|
698
|
+
- Update issue (`update` action: title, state, kind, priority, description)
|
|
699
|
+
- Delete issue (`delete` action, requires `--yes`)
|
|
700
|
+
|
|
701
|
+
**Example**:
|
|
702
|
+
```bash
|
|
703
|
+
# List issues
|
|
704
|
+
uv run --project vds_cli vds-cli bitbucket issue list \
|
|
705
|
+
--workspace team-slug --repo-slug repo-slug \
|
|
706
|
+
--query 'state = "open"' --sort -updated_on --no-markdown
|
|
707
|
+
|
|
708
|
+
# Create issue
|
|
709
|
+
uv run --project vds_cli vds-cli bitbucket issue create \
|
|
710
|
+
--workspace team-slug --repo-slug repo-slug \
|
|
711
|
+
--title "Production bug" --description "Steps to reproduce..." \
|
|
712
|
+
--kind bug --priority critical --no-markdown
|
|
713
|
+
|
|
714
|
+
# Update issue
|
|
715
|
+
uv run --project vds_cli vds-cli bitbucket issue update \
|
|
716
|
+
--workspace team-slug --repo-slug repo-slug --issue-id 123 \
|
|
717
|
+
--state resolved --no-markdown
|
|
718
|
+
```
|
|
719
|
+
|
|
720
|
+
---
|
|
721
|
+
|
|
722
|
+
### 13. Pull Request Blockers (1 command) - Cloud Only
|
|
723
|
+
|
|
724
|
+
#### `pr-blocker`
|
|
725
|
+
Manage blocker comments on pull requests.
|
|
726
|
+
|
|
727
|
+
**Features**:
|
|
728
|
+
- List blockers (`list` action)
|
|
729
|
+
- Add blocker (`add` action) with optional reason/severity
|
|
730
|
+
- Delete blocker (`delete` action, requires `--yes`)
|
|
731
|
+
|
|
732
|
+
**Example**:
|
|
733
|
+
```bash
|
|
734
|
+
# List blockers
|
|
735
|
+
uv run --project vds_cli vds-cli bitbucket pr-blocker list \
|
|
736
|
+
--workspace team-slug --repo-slug repo-slug --pull-request-id 123 --no-markdown
|
|
737
|
+
|
|
738
|
+
# Add blocker
|
|
739
|
+
uv run --project vds_cli vds-cli bitbucket pr-blocker add \
|
|
740
|
+
--workspace team-slug --repo-slug repo-slug --pull-request-id 123 \
|
|
741
|
+
--message "Pending security review" --reason "Security" --severity HIGH --no-markdown
|
|
742
|
+
|
|
743
|
+
# Delete blocker
|
|
744
|
+
uv run --project vds_cli vds-cli bitbucket pr-blocker delete \
|
|
745
|
+
--workspace team-slug --repo-slug repo-slug --pull-request-id 123 \
|
|
746
|
+
--blocker-uuid {blocker-uuid} --yes --no-markdown
|
|
747
|
+
```
|
|
748
|
+
|
|
749
|
+
---
|
|
750
|
+
|
|
751
|
+
### 14. Code Insights (1 command) - Cloud Only
|
|
752
|
+
|
|
753
|
+
#### `code-insights`
|
|
754
|
+
Manage Code Insights reports.
|
|
755
|
+
|
|
756
|
+
**Features**:
|
|
757
|
+
- Get report (`get` action)
|
|
758
|
+
- Create report (`create` action, requires `--yes`)
|
|
759
|
+
- Add annotations to report (`annotate` action, requires `--yes`)
|
|
760
|
+
- Delete report (`delete` action, requires `--yes`)
|
|
761
|
+
|
|
762
|
+
**Example**:
|
|
763
|
+
```bash
|
|
764
|
+
# Get report
|
|
765
|
+
uv run --project vds_cli vds-cli bitbucket code-insights get PROJECT_KEY REPO_SLUG COMMIT_ID \
|
|
766
|
+
--report-key "test-report"
|
|
767
|
+
|
|
768
|
+
# Create report
|
|
769
|
+
uv run --project vds_cli vds-cli bitbucket code-insights create PROJECT_KEY REPO_SLUG COMMIT_ID \
|
|
770
|
+
--report-key "coverage-report" --title "Coverage Report" \
|
|
771
|
+
--reporter "coverage-tool" --result "PASSED" \
|
|
772
|
+
--data-file coverage-data.json --report-type "COVERAGE" --yes
|
|
773
|
+
|
|
774
|
+
# Add annotations
|
|
775
|
+
uv run --project vds_cli vds-cli bitbucket code-insights annotate PROJECT_KEY REPO_SLUG COMMIT_ID \
|
|
776
|
+
--report-key "test-report" --annotations-file annotations.json --yes
|
|
777
|
+
```
|
|
778
|
+
|
|
779
|
+
---
|
|
780
|
+
|
|
781
|
+
### 15. Repository Settings (1 command)
|
|
782
|
+
|
|
783
|
+
#### `repo-settings`
|
|
784
|
+
Manage repository settings.
|
|
785
|
+
|
|
786
|
+
**Features**:
|
|
787
|
+
- Branching model (`branching-model` sub-action):
|
|
788
|
+
- Get model
|
|
789
|
+
- Set model from JSON file
|
|
790
|
+
- Enable/disable model
|
|
791
|
+
- Default branch (`default-branch` sub-action):
|
|
792
|
+
- Get default branch
|
|
793
|
+
- Set default branch
|
|
794
|
+
- Repository hooks (`hooks` sub-action):
|
|
795
|
+
- List hooks
|
|
796
|
+
- Enable/disable hooks
|
|
797
|
+
- Git LFS (`lfs` sub-action):
|
|
798
|
+
- Get LFS status
|
|
799
|
+
- Enable/disable LFS
|
|
800
|
+
|
|
801
|
+
**Example**:
|
|
802
|
+
```bash
|
|
803
|
+
# Get branching model
|
|
804
|
+
uv run --project vds_cli vds-cli bitbucket repo-settings branching-model get PROJECT_KEY REPO_SLUG
|
|
805
|
+
|
|
806
|
+
# Set default branch
|
|
807
|
+
uv run --project vds_cli vds-cli bitbucket repo-settings default-branch set PROJECT_KEY REPO_SLUG \
|
|
808
|
+
--branch "main" --yes
|
|
809
|
+
|
|
810
|
+
# Enable hook
|
|
811
|
+
uv run --project vds_cli vds-cli bitbucket repo-settings hooks enable PROJECT_KEY REPO_SLUG \
|
|
812
|
+
--hook-key "com.atlassian.bitbucket.server.bitbucket-bundle:force-push-hook" --yes
|
|
813
|
+
```
|
|
814
|
+
|
|
815
|
+
---
|
|
816
|
+
|
|
817
|
+
## Core Infrastructure Features
|
|
818
|
+
|
|
819
|
+
### Dual Mode Support
|
|
820
|
+
- **Bitbucket Server/Data Center**: Full support for on-premises deployments
|
|
821
|
+
- **Bitbucket Cloud**: Full support for cloud workspaces
|
|
822
|
+
- Automatic mode detection based on URL and configuration
|
|
823
|
+
|
|
824
|
+
### Authentication
|
|
825
|
+
- HTTP Basic Auth (username/password)
|
|
826
|
+
- Bearer Token authentication
|
|
827
|
+
- Automatic credential loading from the shared VDS env file (`VDS_ENV_FILE` or `<config-root>/.env`, with `~/.vds/.env` as the active Unix-like default)
|
|
828
|
+
- Secure credential handling (no exposure in logs)
|
|
829
|
+
|
|
830
|
+
### Error Handling
|
|
831
|
+
- Comprehensive error hierarchy:
|
|
832
|
+
- `BitbucketClientError` (base)
|
|
833
|
+
- `BitbucketAuthError` (401)
|
|
834
|
+
- `BitbucketNotFoundError` (404)
|
|
835
|
+
- `BitbucketConflictError` (409)
|
|
836
|
+
- `BitbucketRateLimitedError` (429)
|
|
837
|
+
- `BitbucketTransportError` (network)
|
|
838
|
+
- `BitbucketRetryError` (retry exhaustion)
|
|
839
|
+
- Automatic retry with exponential backoff
|
|
840
|
+
- Context-aware error messages
|
|
841
|
+
|
|
842
|
+
### Output Formats
|
|
843
|
+
- **JSON Output**: Clean JSON via `--json-only` flag
|
|
844
|
+
- **Markdown Reports**: Automatic report generation (unless `--no-reports`)
|
|
845
|
+
- **Structured Logging**: Optional JSON logs via `--structured-logs`
|
|
846
|
+
- **Color Control**: `--no-color` / `--color` flags
|
|
847
|
+
|
|
848
|
+
### Agent-Friendly Features
|
|
849
|
+
- Non-interactive by default
|
|
850
|
+
- `--yes` flags required for destructive operations
|
|
851
|
+
- Consistent exit codes
|
|
852
|
+
- Machine-readable JSON output
|
|
853
|
+
- Comprehensive error messages
|
|
854
|
+
|
|
855
|
+
### Testing
|
|
856
|
+
- **289/289 tests passing** (scoped to `bitbucket_orchestrator/tests`)
|
|
857
|
+
- Comprehensive unit test coverage
|
|
858
|
+
- Integration test scenarios
|
|
859
|
+
- Error handling test coverage
|
|
860
|
+
|
|
861
|
+
---
|
|
862
|
+
|
|
863
|
+
## Summary Statistics
|
|
864
|
+
|
|
865
|
+
| Category | Commands | Status |
|
|
866
|
+
|----------|----------|--------|
|
|
867
|
+
| **Project Operations** | 2 | ✅ Complete |
|
|
868
|
+
| **Repository Operations** | 3 | ✅ Complete |
|
|
869
|
+
| **Pull Request Operations** | 12 | ✅ Complete (with enhancements) |
|
|
870
|
+
| **User/Group Management** | 3 | ✅ Complete |
|
|
871
|
+
| **Permission Management** | 3 | ✅ Complete |
|
|
872
|
+
| **Code Operations** | 2 | ✅ Complete |
|
|
873
|
+
| **Pipeline Operations** | 2 | ✅ Complete (Cloud only) |
|
|
874
|
+
| **Webhook Management** | 1 | ✅ Complete (Cloud only) |
|
|
875
|
+
| **Workspace Operations** | 1 | ✅ Complete (Cloud only) |
|
|
876
|
+
| **Repository Variables** | 1 | ✅ Complete (Cloud only) |
|
|
877
|
+
| **Deployment Environments** | 1 | ✅ Complete (Cloud only) |
|
|
878
|
+
| **Repository Issues** | 1 | ✅ Complete (Cloud only) |
|
|
879
|
+
| **PR Blockers** | 1 | ✅ Complete (Cloud only) |
|
|
880
|
+
| **Code Insights** | 1 | ✅ Complete (Cloud only) |
|
|
881
|
+
| **Repository Settings** | 1 | ✅ Complete |
|
|
882
|
+
| **Total CLI Commands** | **34** | ✅ **All Complete** |
|
|
883
|
+
|
|
884
|
+
---
|
|
885
|
+
|
|
886
|
+
## Best Practices
|
|
887
|
+
|
|
888
|
+
1. **Always use `--yes` for destructive operations** (merge, decline, delete)
|
|
889
|
+
2. **Use `--json-only` for automation** (clean JSON output, no reports)
|
|
890
|
+
3. **Use `--no-reports` for interactive use** (keeps console output, avoids filesystem writes)
|
|
891
|
+
4. **Check mergeability before merging** (`get-pr` shows conflicts/vetoes)
|
|
892
|
+
5. **Use best-effort features gracefully** (draft PRs, inline comments, unified diff may fallback)
|
|
893
|
+
6. **Leverage cross-project PRs** for complex workflows
|
|
894
|
+
7. **Use `--include-required-reviewers`** to respect branch policies automatically
|
|
895
|
+
|
|
896
|
+
---
|
|
897
|
+
|
|
898
|
+
## Documentation References
|
|
899
|
+
|
|
900
|
+
- **Main README**: `README.md` (this directory)
|
|
901
|
+
- **API Practices**: `BITBUCKET_API_PRACTICES.md`
|
|
902
|
+
- **Architecture Analysis**: `ARCHITECTURE_ANALYSIS.md`
|
|
903
|
+
- **PR Management Spec**: `../../../.kiro/specs/bitbucket-pr-management-cli/`
|
|
904
|
+
|
|
905
|
+
---
|
|
906
|
+
|
|
907
|
+
**Last Updated**: 2026-01-21
|
|
908
|
+
**Maintainer**: VDS Platform Team
|