@ngocsangairvds/vsaf 3.1.26 → 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.
Files changed (305) hide show
  1. package/package.json +2 -2
  2. package/src/global.js +70 -10
  3. package/tools/skills/vds-scripts-skill/.openskills.json +6 -0
  4. package/tools/skills/vds-scripts-skill/QUALITY.md +44 -0
  5. package/tools/skills/vds-scripts-skill/SKILL.md +135 -0
  6. package/tools/skills/vds-scripts-skill/references/audit-commands.md +171 -0
  7. package/tools/skills/vds-scripts-skill/references/capability-index.md +34 -0
  8. package/tools/skills/vds-scripts-skill/references/development-commands.md +12 -0
  9. package/tools/skills/vds-scripts-skill/references/google-sheets.md +73 -0
  10. package/tools/skills/vds-scripts-skill/references/integration-commands.md +17 -0
  11. package/tools/skills/vds-scripts-skill/references/platform-bootstrap.md +31 -0
  12. package/tools/skills/vds-scripts-skill/references/specialist-routing.md +14 -0
  13. package/tools/skills/vds-scripts-skill/references/validation-commands.md +15 -0
  14. package/tools/skills/vsaf-build/SKILL.md +32 -2
  15. package/tools/skills/vsaf-push-prd/SKILL.md +43 -40
  16. package/tools/skills/vsaf-push-srs/SKILL.md +44 -41
  17. package/tools/skills/vsaf-ship/SKILL.md +41 -10
  18. package/tools/skills/vsaf-test/SKILL.md +8 -0
  19. package/tools/vds-scripts/.mcp.json +11 -0
  20. package/tools/vds-scripts/.secrets.baseline +133 -0
  21. package/tools/vds-scripts/AGENTS.md +152 -0
  22. package/tools/vds-scripts/CLAUDE.md +101 -0
  23. package/tools/vds-scripts/CLI_COMMAND_OPTIMIZATION.md +156 -0
  24. package/tools/vds-scripts/PACKAGE_P125B_IMPLEMENTATION_SUMMARY.md +131 -0
  25. package/tools/vds-scripts/PROJECT_COMPLETION_SUMMARY.md +45 -0
  26. package/tools/vds-scripts/README.md +97 -0
  27. package/tools/vds-scripts/bitbucket_manifest_mapping.toml +34 -0
  28. package/tools/vds-scripts/bitbucket_orchestrator/ARCHITECTURE_ANALYSIS.md +258 -0
  29. package/tools/vds-scripts/bitbucket_orchestrator/BITBUCKET_API_PRACTICES.md +393 -0
  30. package/tools/vds-scripts/bitbucket_orchestrator/EVALUATION_REPORT.md +61 -0
  31. package/tools/vds-scripts/bitbucket_orchestrator/FEATURES.md +908 -0
  32. package/tools/vds-scripts/bitbucket_orchestrator/README.md +687 -0
  33. package/tools/vds-scripts/bitbucket_orchestrator/pyproject.toml +40 -0
  34. package/tools/vds-scripts/bitbucket_orchestrator/src/vds_bitbucket_orchestrator/__init__.py +20 -0
  35. package/tools/vds-scripts/bitbucket_orchestrator/src/vds_bitbucket_orchestrator/async_client.py +657 -0
  36. package/tools/vds-scripts/bitbucket_orchestrator/src/vds_bitbucket_orchestrator/cli.py +2108 -0
  37. package/tools/vds-scripts/bitbucket_orchestrator/src/vds_bitbucket_orchestrator/client.py +2534 -0
  38. package/tools/vds-scripts/bitbucket_orchestrator/src/vds_bitbucket_orchestrator/config.py +171 -0
  39. package/tools/vds-scripts/bitbucket_orchestrator/src/vds_bitbucket_orchestrator/errors.py +67 -0
  40. package/tools/vds-scripts/bitbucket_orchestrator/src/vds_bitbucket_orchestrator/factory.py +185 -0
  41. package/tools/vds-scripts/bitbucket_orchestrator/src/vds_bitbucket_orchestrator/protocols.py +244 -0
  42. package/tools/vds-scripts/bitbucket_orchestrator/tests/__init__.py +8 -0
  43. package/tools/vds-scripts/bitbucket_orchestrator/tests/conftest.py +65 -0
  44. package/tools/vds-scripts/bitbucket_orchestrator/tests/test_advanced_search.py +151 -0
  45. package/tools/vds-scripts/bitbucket_orchestrator/tests/test_async_client.py +546 -0
  46. package/tools/vds-scripts/bitbucket_orchestrator/tests/test_branch_permissions.py +145 -0
  47. package/tools/vds-scripts/bitbucket_orchestrator/tests/test_cli.py +115 -0
  48. package/tools/vds-scripts/bitbucket_orchestrator/tests/test_client.py +157 -0
  49. package/tools/vds-scripts/bitbucket_orchestrator/tests/test_client_branch_conditions.py +79 -0
  50. package/tools/vds-scripts/bitbucket_orchestrator/tests/test_client_code_advanced.py +163 -0
  51. package/tools/vds-scripts/bitbucket_orchestrator/tests/test_client_code_file.py +32 -0
  52. package/tools/vds-scripts/bitbucket_orchestrator/tests/test_client_deployment_environments.py +194 -0
  53. package/tools/vds-scripts/bitbucket_orchestrator/tests/test_client_issues.py +164 -0
  54. package/tools/vds-scripts/bitbucket_orchestrator/tests/test_client_pipelines_advanced.py +179 -0
  55. package/tools/vds-scripts/bitbucket_orchestrator/tests/test_client_pr_blockers.py +119 -0
  56. package/tools/vds-scripts/bitbucket_orchestrator/tests/test_client_repository_variables.py +156 -0
  57. package/tools/vds-scripts/bitbucket_orchestrator/tests/test_code.py +98 -0
  58. package/tools/vds-scripts/bitbucket_orchestrator/tests/test_code_advanced.py +282 -0
  59. package/tools/vds-scripts/bitbucket_orchestrator/tests/test_code_insights.py +335 -0
  60. package/tools/vds-scripts/bitbucket_orchestrator/tests/test_conditions.py +147 -0
  61. package/tools/vds-scripts/bitbucket_orchestrator/tests/test_config.py +131 -0
  62. package/tools/vds-scripts/bitbucket_orchestrator/tests/test_deployment_env.py +352 -0
  63. package/tools/vds-scripts/bitbucket_orchestrator/tests/test_factory.py +371 -0
  64. package/tools/vds-scripts/bitbucket_orchestrator/tests/test_fork_operations.py +204 -0
  65. package/tools/vds-scripts/bitbucket_orchestrator/tests/test_issue_cli.py +261 -0
  66. package/tools/vds-scripts/bitbucket_orchestrator/tests/test_pipeline_advanced.py +270 -0
  67. package/tools/vds-scripts/bitbucket_orchestrator/tests/test_pr_blocker.py +204 -0
  68. package/tools/vds-scripts/bitbucket_orchestrator/tests/test_protocols.py +334 -0
  69. package/tools/vds-scripts/bitbucket_orchestrator/tests/test_repo_settings.py +343 -0
  70. package/tools/vds-scripts/bitbucket_orchestrator/tests/test_repo_variables.py +270 -0
  71. package/tools/vds-scripts/bitbucket_orchestrator/tests/test_webhooks.py +189 -0
  72. package/tools/vds-scripts/bitbucket_orchestrator/tests/test_workspace.py +233 -0
  73. package/tools/vds-scripts/bitbucket_orchestrator/uv.lock +742 -0
  74. package/tools/vds-scripts/confluence_orchestrator/Dockerfile +19 -0
  75. package/tools/vds-scripts/confluence_orchestrator/README.md +412 -0
  76. package/tools/vds-scripts/confluence_orchestrator/SYNC_SCRIPTS.md +127 -0
  77. package/tools/vds-scripts/confluence_orchestrator/SYNC_STANDARDIZATION.md +108 -0
  78. package/tools/vds-scripts/confluence_orchestrator/pyproject.toml +48 -0
  79. package/tools/vds-scripts/confluence_orchestrator/src/confluence_orchestrator/__init__.py +20 -0
  80. package/tools/vds-scripts/confluence_orchestrator/src/confluence_orchestrator/cli.py +2532 -0
  81. package/tools/vds-scripts/confluence_orchestrator/src/confluence_orchestrator/config.py +175 -0
  82. package/tools/vds-scripts/confluence_orchestrator/src/confluence_orchestrator/content.py +290 -0
  83. package/tools/vds-scripts/confluence_orchestrator/src/confluence_orchestrator/content_v2.py +94 -0
  84. package/tools/vds-scripts/confluence_orchestrator/src/confluence_orchestrator/crawl_tree.py +1835 -0
  85. package/tools/vds-scripts/confluence_orchestrator/src/confluence_orchestrator/errors.py +80 -0
  86. package/tools/vds-scripts/confluence_orchestrator/src/confluence_orchestrator/eventing.py +109 -0
  87. package/tools/vds-scripts/confluence_orchestrator/src/confluence_orchestrator/http.py +1114 -0
  88. package/tools/vds-scripts/confluence_orchestrator/src/confluence_orchestrator/orchestration.py +165 -0
  89. package/tools/vds-scripts/confluence_orchestrator/src/confluence_orchestrator/reporting.py +78 -0
  90. package/tools/vds-scripts/confluence_orchestrator/src/confluence_orchestrator/tree.py +121 -0
  91. package/tools/vds-scripts/confluence_orchestrator/sync_pdfs_from_markdown.py +213 -0
  92. package/tools/vds-scripts/confluence_orchestrator/sync_pdfs_to_confluence.py +305 -0
  93. package/tools/vds-scripts/confluence_orchestrator/sync_png_attachments.py +305 -0
  94. package/tools/vds-scripts/confluence_orchestrator/tests/__init__.py +0 -0
  95. package/tools/vds-scripts/confluence_orchestrator/tests/conftest.py +8 -0
  96. package/tools/vds-scripts/confluence_orchestrator/tests/test_advanced_content.py +224 -0
  97. package/tools/vds-scripts/confluence_orchestrator/tests/test_advanced_search.py +188 -0
  98. package/tools/vds-scripts/confluence_orchestrator/tests/test_cache_management.py +247 -0
  99. package/tools/vds-scripts/confluence_orchestrator/tests/test_cli.py +499 -0
  100. package/tools/vds-scripts/confluence_orchestrator/tests/test_config.py +83 -0
  101. package/tools/vds-scripts/confluence_orchestrator/tests/test_content.py +186 -0
  102. package/tools/vds-scripts/confluence_orchestrator/tests/test_content_flags.py +27 -0
  103. package/tools/vds-scripts/confluence_orchestrator/tests/test_crawl_tree.py +2250 -0
  104. package/tools/vds-scripts/confluence_orchestrator/tests/test_draft_management.py +223 -0
  105. package/tools/vds-scripts/confluence_orchestrator/tests/test_eventing.py +71 -0
  106. package/tools/vds-scripts/confluence_orchestrator/tests/test_eventing_chaos.py +37 -0
  107. package/tools/vds-scripts/confluence_orchestrator/tests/test_eventing_rate_limit.py +44 -0
  108. package/tools/vds-scripts/confluence_orchestrator/tests/test_eventing_timeout.py +49 -0
  109. package/tools/vds-scripts/confluence_orchestrator/tests/test_export.py +230 -0
  110. package/tools/vds-scripts/confluence_orchestrator/tests/test_history.py +204 -0
  111. package/tools/vds-scripts/confluence_orchestrator/tests/test_http.py +117 -0
  112. package/tools/vds-scripts/confluence_orchestrator/tests/test_orchestration.py +91 -0
  113. package/tools/vds-scripts/confluence_orchestrator/tests/test_reporting.py +24 -0
  114. package/tools/vds-scripts/confluence_orchestrator/tests/test_search_cql.py +34 -0
  115. package/tools/vds-scripts/confluence_orchestrator/tests/test_space_management.py +237 -0
  116. package/tools/vds-scripts/confluence_orchestrator/tests/test_space_permissions.py +332 -0
  117. package/tools/vds-scripts/confluence_orchestrator/tests/test_user_group_management.py +388 -0
  118. package/tools/vds-scripts/confluence_orchestrator/uv.lock +1023 -0
  119. package/tools/vds-scripts/git_orchestrator/ENHANCEMENT_SUMMARY.md +119 -0
  120. package/tools/vds-scripts/git_orchestrator/README.md +280 -0
  121. package/tools/vds-scripts/git_orchestrator/VERIFICATION_REPORT.md +152 -0
  122. package/tools/vds-scripts/git_orchestrator/pyproject.toml +35 -0
  123. package/tools/vds-scripts/git_orchestrator/src/vds_git_orchestrator/__init__.py +7 -0
  124. package/tools/vds-scripts/git_orchestrator/src/vds_git_orchestrator/__main__.py +4 -0
  125. package/tools/vds-scripts/git_orchestrator/src/vds_git_orchestrator/cli.py +847 -0
  126. package/tools/vds-scripts/git_orchestrator/src/vds_git_orchestrator/logging_config.py +63 -0
  127. package/tools/vds-scripts/git_orchestrator/src/vds_git_orchestrator/manifest.py +129 -0
  128. package/tools/vds-scripts/git_orchestrator/src/vds_git_orchestrator/orchestrator.py +819 -0
  129. package/tools/vds-scripts/git_orchestrator/src/vds_git_orchestrator/reporting.py +53 -0
  130. package/tools/vds-scripts/git_orchestrator/tests/__init__.py +0 -0
  131. package/tools/vds-scripts/git_orchestrator/tests/test_cli_settings.py +21 -0
  132. package/tools/vds-scripts/git_orchestrator/tests/test_integration.py +74 -0
  133. package/tools/vds-scripts/git_orchestrator/tests/test_manifest.py +79 -0
  134. package/tools/vds-scripts/git_orchestrator/tests/test_orchestrator.py +204 -0
  135. package/tools/vds-scripts/git_orchestrator/tests/test_public_api.py +236 -0
  136. package/tools/vds-scripts/git_orchestrator/tests/test_resilience.py +345 -0
  137. package/tools/vds-scripts/git_orchestrator/uv.lock +271 -0
  138. package/tools/vds-scripts/jira_orchestrator/README.md +770 -0
  139. package/tools/vds-scripts/jira_orchestrator/pyproject.toml +39 -0
  140. package/tools/vds-scripts/jira_orchestrator/src/vds_jira_orchestrator/__init__.py +1 -0
  141. package/tools/vds-scripts/jira_orchestrator/src/vds_jira_orchestrator/adapter.py +1320 -0
  142. package/tools/vds-scripts/jira_orchestrator/src/vds_jira_orchestrator/cli.py +2271 -0
  143. package/tools/vds-scripts/jira_orchestrator/src/vds_jira_orchestrator/config.py +138 -0
  144. package/tools/vds-scripts/jira_orchestrator/src/vds_jira_orchestrator/errors.py +67 -0
  145. package/tools/vds-scripts/jira_orchestrator/src/vds_jira_orchestrator/reporting.py +65 -0
  146. package/tools/vds-scripts/jira_orchestrator/tests/__init__.py +1 -0
  147. package/tools/vds-scripts/jira_orchestrator/tests/conftest.py +86 -0
  148. package/tools/vds-scripts/jira_orchestrator/tests/test_adapter_agile_list_payloads.py +54 -0
  149. package/tools/vds-scripts/jira_orchestrator/tests/test_adapter_bulk_operations.py +69 -0
  150. package/tools/vds-scripts/jira_orchestrator/tests/test_adapter_components.py +57 -0
  151. package/tools/vds-scripts/jira_orchestrator/tests/test_adapter_createmeta.py +45 -0
  152. package/tools/vds-scripts/jira_orchestrator/tests/test_adapter_dashboard.py +117 -0
  153. package/tools/vds-scripts/jira_orchestrator/tests/test_adapter_issue_properties.py +54 -0
  154. package/tools/vds-scripts/jira_orchestrator/tests/test_adapter_permissions_compat.py +42 -0
  155. package/tools/vds-scripts/jira_orchestrator/tests/test_adapter_reindex.py +42 -0
  156. package/tools/vds-scripts/jira_orchestrator/tests/test_adapter_remote_links.py +76 -0
  157. package/tools/vds-scripts/jira_orchestrator/tests/test_adapter_transitions.py +91 -0
  158. package/tools/vds-scripts/jira_orchestrator/tests/test_adapter_user_management.py +110 -0
  159. package/tools/vds-scripts/jira_orchestrator/tests/test_adapter_version_management.py +133 -0
  160. package/tools/vds-scripts/jira_orchestrator/tests/test_adapter_watchers.py +41 -0
  161. package/tools/vds-scripts/jira_orchestrator/tests/test_advanced_search.py +164 -0
  162. package/tools/vds-scripts/jira_orchestrator/tests/test_agile.py +256 -0
  163. package/tools/vds-scripts/jira_orchestrator/tests/test_application_properties.py +193 -0
  164. package/tools/vds-scripts/jira_orchestrator/tests/test_backlog.py +91 -0
  165. package/tools/vds-scripts/jira_orchestrator/tests/test_bulk_operations.py +277 -0
  166. package/tools/vds-scripts/jira_orchestrator/tests/test_cli.py +106 -0
  167. package/tools/vds-scripts/jira_orchestrator/tests/test_components.py +106 -0
  168. package/tools/vds-scripts/jira_orchestrator/tests/test_config.py +164 -0
  169. package/tools/vds-scripts/jira_orchestrator/tests/test_dashboard.py +122 -0
  170. package/tools/vds-scripts/jira_orchestrator/tests/test_discover_fields.py +207 -0
  171. package/tools/vds-scripts/jira_orchestrator/tests/test_filter_management.py +333 -0
  172. package/tools/vds-scripts/jira_orchestrator/tests/test_issue_archiving.py +164 -0
  173. package/tools/vds-scripts/jira_orchestrator/tests/test_issue_links.py +257 -0
  174. package/tools/vds-scripts/jira_orchestrator/tests/test_issue_properties.py +171 -0
  175. package/tools/vds-scripts/jira_orchestrator/tests/test_link_types.py +314 -0
  176. package/tools/vds-scripts/jira_orchestrator/tests/test_parse_set.py +37 -0
  177. package/tools/vds-scripts/jira_orchestrator/tests/test_permissions.py +273 -0
  178. package/tools/vds-scripts/jira_orchestrator/tests/test_reindex.py +81 -0
  179. package/tools/vds-scripts/jira_orchestrator/tests/test_remote_links.py +254 -0
  180. package/tools/vds-scripts/jira_orchestrator/tests/test_security_schemes.py +170 -0
  181. package/tools/vds-scripts/jira_orchestrator/tests/test_transitions_changelog.py +114 -0
  182. package/tools/vds-scripts/jira_orchestrator/tests/test_user_management.py +226 -0
  183. package/tools/vds-scripts/jira_orchestrator/tests/test_version_management.py +339 -0
  184. package/tools/vds-scripts/jira_orchestrator/tests/test_watchers.py +101 -0
  185. package/tools/vds-scripts/jira_orchestrator/tests/test_worklog.py +223 -0
  186. package/tools/vds-scripts/jira_orchestrator/uv.lock +738 -0
  187. package/tools/vds-scripts/mcp_server/Dockerfile +34 -0
  188. package/tools/vds-scripts/mcp_server/README.md +140 -0
  189. package/tools/vds-scripts/mcp_server/pyproject.toml +42 -0
  190. package/tools/vds-scripts/mcp_server/src/vds_mcp_server/__init__.py +4 -0
  191. package/tools/vds-scripts/mcp_server/src/vds_mcp_server/config.py +36 -0
  192. package/tools/vds-scripts/mcp_server/src/vds_mcp_server/server.py +66 -0
  193. package/tools/vds-scripts/mcp_server/src/vds_mcp_server/tools/__init__.py +14 -0
  194. package/tools/vds-scripts/mcp_server/src/vds_mcp_server/tools/bitbucket_tools.py +47 -0
  195. package/tools/vds-scripts/mcp_server/src/vds_mcp_server/tools/confluence_tools.py +59 -0
  196. package/tools/vds-scripts/mcp_server/src/vds_mcp_server/tools/git_tools.py +71 -0
  197. package/tools/vds-scripts/mcp_server/src/vds_mcp_server/tools/jira_tools.py +63 -0
  198. package/tools/vds-scripts/mcp_server/tests/__init__.py +2 -0
  199. package/tools/vds-scripts/mcp_server/tests/conftest.py +29 -0
  200. package/tools/vds-scripts/mcp_server/tests/unit/__init__.py +2 -0
  201. package/tools/vds-scripts/mcp_server/tests/unit/test_bitbucket_tools.py +25 -0
  202. package/tools/vds-scripts/mcp_server/tests/unit/test_confluence_tools.py +25 -0
  203. package/tools/vds-scripts/mcp_server/tests/unit/test_git_tools.py +32 -0
  204. package/tools/vds-scripts/mcp_server/tests/unit/test_jira_tools.py +32 -0
  205. package/tools/vds-scripts/mcp_server/tests/verification/__init__.py +2 -0
  206. package/tools/vds-scripts/mcp_server/tests/verification/test_mcp_confluence_tools.py +40 -0
  207. package/tools/vds-scripts/mcp_server/tests/verification/test_mcp_jira_tools.py +37 -0
  208. package/tools/vds-scripts/mcp_server/tests/verification/test_mcp_tool_registration.py +47 -0
  209. package/tools/vds-scripts/mcp_server/uv.lock +1032 -0
  210. package/tools/vds-scripts/mypy.ini +5 -0
  211. package/tools/vds-scripts/pyproject.toml +29 -0
  212. package/tools/vds-scripts/repo-manifest.yaml +273 -0
  213. package/tools/vds-scripts/repo-manifest.yaml.example +25 -0
  214. package/tools/vds-scripts/scripts/BRD-Validation-API.postman_collection.json +706 -0
  215. package/tools/vds-scripts/scripts/BRD-Validation-README.md +308 -0
  216. package/tools/vds-scripts/scripts/README.md +162 -0
  217. package/tools/vds-scripts/scripts/bootstrap_uv.sh +30 -0
  218. package/tools/vds-scripts/scripts/brd-validation-environment.json +51 -0
  219. package/tools/vds-scripts/scripts/brd-validation-test-results.json +13023 -0
  220. package/tools/vds-scripts/scripts/brd_coverage_report.json +276 -0
  221. package/tools/vds-scripts/scripts/create_memory_session.py +35 -0
  222. package/tools/vds-scripts/scripts/deployment/load_docker_images_offline.sh +90 -0
  223. package/tools/vds-scripts/scripts/final_completion_report.md +139 -0
  224. package/tools/vds-scripts/scripts/folder_structure_report.json +321 -0
  225. package/tools/vds-scripts/scripts/generate_completion_report.py +125 -0
  226. package/tools/vds-scripts/scripts/generate_intellij_modules.py +150 -0
  227. package/tools/vds-scripts/scripts/link_integrity_report.json +807 -0
  228. package/tools/vds-scripts/scripts/move_audit_artifact_pages.py +255 -0
  229. package/tools/vds-scripts/scripts/move_audit_artifact_pages_rest.py +165 -0
  230. package/tools/vds-scripts/scripts/move_wrong_dept_pages.py +216 -0
  231. package/tools/vds-scripts/scripts/save_intellij_memories.py +120 -0
  232. package/tools/vds-scripts/scripts/save_memories_to_vds_ai.py +83 -0
  233. package/tools/vds-scripts/scripts/save_memories_vds_style.py +129 -0
  234. package/tools/vds-scripts/scripts/search_intellij_memories.py +50 -0
  235. package/tools/vds-scripts/scripts/setup_intellij_workspace.py +65 -0
  236. package/tools/vds-scripts/scripts/target-state-automation/README.md +89 -0
  237. package/tools/vds-scripts/scripts/target-state-automation/confluence_sync_coordinator.sh +27 -0
  238. package/tools/vds-scripts/scripts/target-state-automation/coordination.sh +114 -0
  239. package/tools/vds-scripts/scripts/target-state-automation/diagram_coordinator.sh +25 -0
  240. package/tools/vds-scripts/scripts/target-state-automation/docs_root.sh +22 -0
  241. package/tools/vds-scripts/scripts/target-state-automation/generate_diagrams.sh +22 -0
  242. package/tools/vds-scripts/scripts/target-state-automation/markdown_coordinator.sh +25 -0
  243. package/tools/vds-scripts/scripts/target-state-automation/progress_dashboard.sh +17 -0
  244. package/tools/vds-scripts/scripts/target-state-automation/schema_coordinator.sh +25 -0
  245. package/tools/vds-scripts/scripts/target-state-automation/sync_confluence.sh +30 -0
  246. package/tools/vds-scripts/scripts/target-state-automation/update_dependencies.sh +19 -0
  247. package/tools/vds-scripts/scripts/target-state-automation/validate_links.sh +86 -0
  248. package/tools/vds-scripts/scripts/target-state-automation/validate_markdown.sh +52 -0
  249. package/tools/vds-scripts/scripts/target-state-automation/validate_schemas.sh +26 -0
  250. package/tools/vds-scripts/scripts/target-state-automation/validate_structure.sh +98 -0
  251. package/tools/vds-scripts/scripts/update_modules_xml.py +190 -0
  252. package/tools/vds-scripts/scripts/uv-workspace-alignment-verification-2026-03-25.md +128 -0
  253. package/tools/vds-scripts/scripts/validate_brd_coverage.py +179 -0
  254. package/tools/vds-scripts/scripts/validate_folder_structure.py +240 -0
  255. package/tools/vds-scripts/scripts/validate_link_integrity.py +272 -0
  256. package/tools/vds-scripts/scripts/vds_sh_helpers.sh +180 -0
  257. package/tools/vds-scripts/scripts/verification/phase2_portable_paths_ubuntu_docker.sh +26 -0
  258. package/tools/vds-scripts/scripts/worktree_uv.sh +48 -0
  259. package/tools/vds-scripts/uv.lock +8 -0
  260. package/tools/vds-scripts/vds_cli/README.md +126 -0
  261. package/tools/vds-scripts/vds_cli/VERIFICATION_REPORT.md +41 -0
  262. package/tools/vds-scripts/vds_cli/pyproject.toml +38 -0
  263. package/tools/vds-scripts/vds_cli/src/vds_cli/__init__.py +3 -0
  264. package/tools/vds-scripts/vds_cli/src/vds_cli/cli.py +173 -0
  265. package/tools/vds-scripts/vds_cli/src/vds_cli/docs_sync.py +1203 -0
  266. package/tools/vds-scripts/vds_cli/src/vds_cli/env.py +41 -0
  267. package/tools/vds-scripts/vds_cli/src/vds_cli/google_sheets_orchestrator/__init__.py +3 -0
  268. package/tools/vds-scripts/vds_cli/src/vds_cli/google_sheets_orchestrator/google_sheets_orchestrator.py +198 -0
  269. package/tools/vds-scripts/vds_cli/src/vds_cli/router.py +93 -0
  270. package/tools/vds-scripts/vds_cli/src/vds_cli/sync_api.py +647 -0
  271. package/tools/vds-scripts/vds_cli/src/vds_cli/sync_service.py +266 -0
  272. package/tools/vds-scripts/vds_cli/tests/__init__.py +2 -0
  273. package/tools/vds-scripts/vds_cli/tests/conftest.py +49 -0
  274. package/tools/vds-scripts/vds_cli/tests/unit/__init__.py +2 -0
  275. package/tools/vds-scripts/vds_cli/tests/unit/test_cli.py +143 -0
  276. package/tools/vds-scripts/vds_cli/tests/unit/test_docs_sync.py +422 -0
  277. package/tools/vds-scripts/vds_cli/tests/unit/test_env.py +51 -0
  278. package/tools/vds-scripts/vds_cli/tests/unit/test_router.py +72 -0
  279. package/tools/vds-scripts/vds_cli/tests/unit/test_sync_api.py +357 -0
  280. package/tools/vds-scripts/vds_cli/tests/unit/test_sync_service.py +160 -0
  281. package/tools/vds-scripts/vds_cli/tests/verification/__init__.py +2 -0
  282. package/tools/vds-scripts/vds_cli/tests/verification/test_bitbucket_real.py +33 -0
  283. package/tools/vds-scripts/vds_cli/tests/verification/test_confluence_real.py +35 -0
  284. package/tools/vds-scripts/vds_cli/tests/verification/test_jira_real.py +41 -0
  285. package/tools/vds-scripts/vds_cli/uv.lock +524 -0
  286. package/tools/vds-scripts/vds_cli_common/README.md +190 -0
  287. package/tools/vds-scripts/vds_cli_common/pyproject.toml +92 -0
  288. package/tools/vds-scripts/vds_cli_common/src/vds_cli_common/__init__.py +34 -0
  289. package/tools/vds-scripts/vds_cli_common/src/vds_cli_common/completers.py +139 -0
  290. package/tools/vds-scripts/vds_cli_common/src/vds_cli_common/context.py +201 -0
  291. package/tools/vds-scripts/vds_cli_common/src/vds_cli_common/env.py +119 -0
  292. package/tools/vds-scripts/vds_cli_common/src/vds_cli_common/errors.py +318 -0
  293. package/tools/vds-scripts/vds_cli_common/src/vds_cli_common/output.py +284 -0
  294. package/tools/vds-scripts/vds_cli_common/src/vds_cli_common/paths.py +78 -0
  295. package/tools/vds-scripts/vds_cli_common/src/vds_cli_common/testing.py +213 -0
  296. package/tools/vds-scripts/vds_cli_common/src/vds_cli_common/version.py +85 -0
  297. package/tools/vds-scripts/vds_cli_common/tests/__init__.py +1 -0
  298. package/tools/vds-scripts/vds_cli_common/tests/test_completers.py +148 -0
  299. package/tools/vds-scripts/vds_cli_common/tests/test_context.py +192 -0
  300. package/tools/vds-scripts/vds_cli_common/tests/test_env.py +102 -0
  301. package/tools/vds-scripts/vds_cli_common/tests/test_errors.py +186 -0
  302. package/tools/vds-scripts/vds_cli_common/tests/test_output.py +229 -0
  303. package/tools/vds-scripts/vds_cli_common/tests/test_paths.py +61 -0
  304. package/tools/vds-scripts/vds_cli_common/tests/test_testing.py +138 -0
  305. package/tools/vds-scripts/vds_cli_common/tests/test_version.py +64 -0
@@ -0,0 +1,770 @@
1
+ # VDS JIRA Orchestrator
2
+
3
+ Python toolkit for JIRA operations using the `atlassian-python-api` SDK. Provides a unified CLI interface for issue
4
+ tracking, project management, and JIRA automation.
5
+
6
+ ## Quick Start
7
+
8
+ ```bash
9
+ cd vds-scripts
10
+ # Optional: sync all orchestrators once
11
+ ./scripts/bootstrap_uv.sh
12
+
13
+ # Package-specific sync & tests
14
+ uv sync --project jira_orchestrator --extra dev
15
+ uv run --project jira_orchestrator pytest
16
+ ```
17
+
18
+ Run the CLI directly (uv automatically loads the project environment once it has been synced at least once):
19
+
20
+ ```bash
21
+ # Using uv run (console script)
22
+ uv run --project jira_orchestrator vds-jira-cli --help
23
+
24
+ # Using the unified VDS CLI
25
+ uv run --project vds_cli vds-cli env load
26
+ uv run --project vds_cli vds-cli jira search "project = NTTC" --limit 20
27
+ uv run --project vds_cli vds-cli jira issue NTTC-123
28
+ uv run --project vds_cli vds-cli jira projects --limit 50
29
+ ```
30
+
31
+ **Agent-friendly output**
32
+ - When using `vds-cli`, put Typer flags after `--` (e.g. `vds-cli jira -- --json-only projects`).
33
+ - `--json-only` emits clean JSON only (no reports/markdown, logs suppressed).
34
+ - `--no-reports` keeps normal console output but avoids writing report files.
35
+
36
+ ## Available Commands
37
+
38
+ ### Read Operations
39
+
40
+ - **`projects`** - List all JIRA projects
41
+
42
+ ```bash
43
+ uv run --project vds_cli vds-cli jira projects --limit 50
44
+ # Optional filters:
45
+ # --search "keyword" (matches name or key, case-insensitive)
46
+ # --limit 10 (applied after filtering)
47
+ ```
48
+
49
+ - **`search`** - Search issues using JQL
50
+
51
+ ```bash
52
+ # Basic search
53
+ uv run --project vds_cli vds-cli jira search "project = NTTC AND status = Open" --limit 50
54
+ uv run --project vds_cli vds-cli jira search "assignee = currentUser()" --fields "summary,status,priority"
55
+
56
+ # Advanced search with pagination
57
+ uv run --project vds_cli vds-cli jira search "project = NTTC" --advanced --start 10 --limit 25
58
+ uv run --project vds_cli vds-cli jira search "project = NTTC" --start 0 --limit 50 --fields "summary,status"
59
+ ```
60
+
61
+ > **Cloud requirement**: Atlassian's May 2025 change requires `enhanced_jql` for all Cloud tenants. The CLI detects
62
+ > `*.atlassian.net` base URLs and automatically routes searches through the enhanced endpoint (see announcement:
63
+ > <https://support.atlassian.com/cloud-migration/docs/changes-to-search-api-july-2024/>).\
64
+ > **Advanced search**: Use `--advanced` flag or `--start` parameter to enable pagination support. The `--start`
65
+ > parameter automatically enables advanced search mode.
66
+
67
+ - **`search-by-filter`** - Search issues using a saved filter
68
+
69
+ ```bash
70
+ # Search using filter ID
71
+ uv run --project vds_cli vds-cli jira search-by-filter 10000 --limit 50
72
+
73
+ # Search with pagination
74
+ uv run --project vds_cli vds-cli jira search-by-filter 10000 --start 20 --limit 25 --fields "summary,status,priority"
75
+ ```
76
+
77
+ > **Note**: Uses the JQL from the saved filter to perform the search. Supports pagination and field selection.
78
+
79
+ - **`issue`** - Get issue details
80
+
81
+ ```bash
82
+ uv run --project vds_cli vds-cli jira issue NTTC-123
83
+ ```
84
+
85
+ - **`bulk-update`** - Bulk update multiple issues
86
+
87
+ ```bash
88
+ # Bulk update with JSON fields
89
+ uv run --project vds_cli vds-cli jira bulk-update \
90
+ --issue-keys "NTTC-1,NTTC-2,NTTC-3" \
91
+ --fields '{"summary":"Updated summary"}' \
92
+ --yes
93
+
94
+ # Bulk update with fields file
95
+ uv run --project vds_cli vds-cli jira bulk-update \
96
+ --issue-keys "NTTC-1,NTTC-2" \
97
+ --fields-file ./fields.json \
98
+ --yes
99
+
100
+ # Bulk update all fields (default)
101
+ uv run --project vds_cli vds-cli jira bulk-update \
102
+ --issue-keys "NTTC-1,NTTC-2" \
103
+ --yes
104
+ ```
105
+
106
+ > **Notes**:
107
+ >
108
+ > - Requires `--yes` flag for confirmation
109
+ > - `--fields` accepts JSON string or `"*all"` (default) for all fields
110
+ > - `--fields-file` accepts a JSON file containing field updates
111
+ > - Multiple issue keys should be comma-separated
112
+
113
+ - **`field-append`** - Append value to issue field (for multi-select fields)
114
+
115
+ ```bash
116
+ # Append value with JSON string
117
+ uv run --project vds_cli vds-cli jira field-append \
118
+ --issue-key NTTC-123 \
119
+ --field customfield_10000 \
120
+ --value '{"name":"value"}' \
121
+ --yes
122
+
123
+ # Append value with file
124
+ uv run --project vds_cli vds-cli jira field-append \
125
+ --issue-key NTTC-123 \
126
+ --field customfield_10000 \
127
+ --value-file ./value.json \
128
+ --yes
129
+
130
+ # Append without notifying users
131
+ uv run --project vds_cli vds-cli jira field-append \
132
+ --issue-key NTTC-123 \
133
+ --field customfield_10000 \
134
+ --value '{"name":"value"}' \
135
+ --no-notify \
136
+ --yes
137
+ ```
138
+
139
+ > **Notes**:
140
+ >
141
+ > - Requires `--yes` flag for confirmation
142
+ > - `--value` must be a JSON object (dict)
143
+ > - `--value-file` accepts a JSON file containing the value object
144
+ > - Use `--no-notify` to prevent user notifications
145
+ > - Primarily used for multi-select custom fields
146
+
147
+ - **`issue-archive`** - Archive an issue
148
+
149
+ ```bash
150
+ uv run --project vds_cli vds-cli jira issue-archive --issue-key NTTC-123 --yes
151
+ ```
152
+
153
+ > **Warning**: Archiving an issue removes it from normal views. Use `issue-restore` to restore archived issues.
154
+
155
+ - **`issue-restore`** - Restore an archived issue
156
+
157
+ ```bash
158
+ uv run --project vds_cli vds-cli jira issue-restore --issue-key NTTC-123 --yes
159
+ ```
160
+
161
+ > **Notes**:
162
+ >
163
+ > - Requires `--yes` flag for confirmation
164
+ > - Restores previously archived issues back to normal state
165
+
166
+ - **`property`** - Manage JIRA application properties
167
+
168
+ ```bash
169
+ # Get property by key
170
+ uv run --project vds_cli vds-cli jira property get --key "jira.lf.date.dmy"
171
+
172
+ # Get property with filters
173
+ uv run --project vds_cli vds-cli jira property get \
174
+ --key "jira.lf.*" \
175
+ --permission-level SYSTEM \
176
+ --key-filter "jira.lf.*"
177
+
178
+ # Set property
179
+ uv run --project vds_cli vds-cli jira property set \
180
+ --property-id "jira.lf.date.dmy" \
181
+ --value "true" \
182
+ --yes
183
+ ```
184
+
185
+ > **Notes**:
186
+ >
187
+ > - `get` action supports optional `--key`, `--permission-level`, and `--key-filter` parameters
188
+ > - `set` action requires `--property-id`, `--value`, and `--yes` flag
189
+
190
+ - **`settings`** - Manage JIRA settings
191
+
192
+ ```bash
193
+ # Get advanced settings
194
+ uv run --project vds_cli vds-cli jira settings advanced
195
+ ```
196
+
197
+ > Returns advanced JIRA configuration settings.
198
+
199
+ - **`createmeta`** - Get create metadata for issue creation
200
+
201
+ ```bash
202
+ uv run --project vds_cli vds-cli jira createmeta --project NTTC --issuetype Task
203
+ ```
204
+
205
+ - **`custom-fields`** - List custom fields
206
+
207
+ ```bash
208
+ uv run --project vds_cli vds-cli jira custom-fields --search "Story Points" --limit 10
209
+ ```
210
+
211
+ - **`board`** - Agile board operations
212
+
213
+ ```bash
214
+ uv run --project vds_cli vds-cli jira board list --project NTTC --limit 10
215
+ uv run --project vds_cli vds-cli jira board get --board-id 1
216
+ uv run --project vds_cli vds-cli jira board create --name "Sprint Board" --type scrum --filter-id 100 --yes
217
+ uv run --project vds_cli vds-cli jira board issues --board-id 1
218
+ uv run --project vds_cli vds-cli jira board properties --board-id 1
219
+ uv run --project vds_cli vds-cli jira board velocity --board-id 1
220
+ ```
221
+
222
+ - **`epic`** - Epic operations
223
+
224
+ ```bash
225
+ uv run --project vds_cli vds-cli jira epic issues --epic-key NTTC-100
226
+ uv run --project vds_cli vds-cli jira epic list --board-id 1 --limit 20
227
+ uv run --project vds_cli vds-cli jira epic issues-for-epic --board-id 1 --epic-id 100
228
+ ```
229
+
230
+ - **`sprint`** - Sprint operations
231
+
232
+ ```bash
233
+ uv run --project vds_cli vds-cli jira sprint list --board-id 1 --limit 10
234
+ uv run --project vds_cli vds-cli jira sprint issues --board-id 1 --state active
235
+ uv run --project vds_cli vds-cli jira sprint versions --board-id 1
236
+ uv run --project vds_cli vds-cli jira sprint create --name "Sprint 1" --board-id 1 --start-date "2025-01-01" --end-date "2025-01-14" --goal "Complete features" --yes
237
+ uv run --project vds_cli vds-cli jira sprint rename --sprint-id 100 --name "Updated Sprint" --yes
238
+ uv run --project vds_cli vds-cli jira sprint add-issues --sprint-id 100 --issues "NTTC-123,NTTC-124" --yes
239
+ ```
240
+
241
+ - **`reindex`** - Reindex operations
242
+
243
+ ```bash
244
+ uv run --project vds_cli vds-cli jira reindex status
245
+ uv run --project vds_cli vds-cli jira reindex start --yes
246
+ uv run --project vds_cli vds-cli jira reindex with-type BACKGROUND --yes
247
+ ```
248
+
249
+ - **`worklog`** - Worklog operations (time tracking)
250
+
251
+ ```bash
252
+ # Get worklogs for an issue
253
+ uv run --project vds_cli vds-cli jira worklog get --issue-key NTTC-123
254
+
255
+ # Add worklog entry
256
+ uv run --project vds_cli vds-cli jira worklog add \
257
+ --issue-key NTTC-123 \
258
+ --time-spent "2h 30m" \
259
+ --comment "Implemented feature X" \
260
+ --started "2025-11-12T10:00:00Z" \
261
+ --yes
262
+
263
+ # Add worklog with time in seconds
264
+ uv run --project vds_cli vds-cli jira worklog add \
265
+ --issue-key NTTC-123 \
266
+ --time-sec 7200 \
267
+ --comment "Code review" \
268
+ --yes
269
+
270
+ # Get updated worklogs since timestamp
271
+ uv run --project vds_cli vds-cli jira worklog updated --since "2025-11-12 10:00:00"
272
+
273
+ # Get deleted worklogs since timestamp
274
+ uv run --project vds_cli vds-cli jira worklog deleted --since "2025-11-12 10:00:00"
275
+ ```
276
+
277
+ - **`transitions`** - Get available transitions for an issue
278
+
279
+ ```bash
280
+ uv run --project vds_cli vds-cli jira transitions NTTC-123
281
+ ```
282
+
283
+ - **`changelog`** - Get issue change history
284
+
285
+ ```bash
286
+ # Get complete changelog
287
+ uv run --project vds_cli vds-cli jira changelog get NTTC-123
288
+
289
+ # Get changelog with pagination
290
+ uv run --project vds_cli vds-cli jira changelog get NTTC-123 --start 0 --limit 50
291
+
292
+ # Get status change history only
293
+ uv run --project vds_cli vds-cli jira changelog status NTTC-123
294
+ ```
295
+
296
+ - **`dashboard`** - Dashboard operations
297
+
298
+ ```bash
299
+ # Get dashboard by ID
300
+ uv run --project vds_cli vds-cli jira dashboard get --dashboard-id 10000
301
+
302
+ # List dashboards
303
+ uv run --project vds_cli vds-cli jira dashboard list
304
+
305
+ # List dashboards with filter and pagination
306
+ uv run --project vds_cli vds-cli jira dashboard list --filter "project" --start 0 --limit 50
307
+ ```
308
+
309
+ - **`filter`** - Filter management operations
310
+
311
+ ```bash
312
+ # List all filters
313
+ uv run --project vds_cli vds-cli jira filter list
314
+
315
+ # List filters by owner
316
+ uv run --project vds_cli vds-cli jira filter list --owner username
317
+
318
+ # Get filter by ID
319
+ uv run --project vds_cli vds-cli jira filter get --filter-id 10000
320
+
321
+ # Create a new filter
322
+ uv run --project vds_cli vds-cli jira filter create \
323
+ --name "My Filter" \
324
+ --jql "project = NTTC AND status = Open" \
325
+ --description "Open issues in NTTC project" \
326
+ --favourite \
327
+ --yes
328
+
329
+ # Update filter (name, JQL, description, or favourite status)
330
+ uv run --project vds_cli vds-cli jira filter update \
331
+ --filter-id 10000 \
332
+ --name "Updated Filter Name" \
333
+ --yes
334
+
335
+ # Delete filter
336
+ uv run --project vds_cli vds-cli jira filter delete --filter-id 10000 --yes
337
+ ```
338
+
339
+ > **Notes**:
340
+ >
341
+ > - Write operations (create, update, delete) require `--yes` flag for confirmation
342
+ > - `update` requires at least one of: `--name`, `--jql`, `--description`, or `--favourite`
343
+ > - If `--jql` is not provided in `update`, the existing JQL is preserved
344
+
345
+ - **`link-type`** - Issue link type operations
346
+
347
+ ```bash
348
+ # List all issue link types
349
+ uv run --project vds_cli vds-cli jira link-type list
350
+
351
+ # Get specific link type by ID
352
+ uv run --project vds_cli vds-cli jira link-type get --link-type-id 10000
353
+
354
+ # Create new link type
355
+ uv run --project vds_cli vds-cli jira link-type create \
356
+ --name "Tests" \
357
+ --inward "is tested by" \
358
+ --outward "tests" \
359
+ --yes
360
+
361
+ # Create link type from JSON file
362
+ uv run --project vds_cli vds-cli jira link-type create \
363
+ --data-file link_type.json \
364
+ --yes
365
+
366
+ # Update link type
367
+ uv run --project vds_cli vds-cli jira link-type update \
368
+ --link-type-id 10000 \
369
+ --name "Tests Updated" \
370
+ --inward "is tested by" \
371
+ --outward "tests" \
372
+ --yes
373
+
374
+ # Delete link type
375
+ uv run --project vds_cli vds-cli jira link-type delete --link-type-id 10000 --yes
376
+ ```
377
+
378
+ - **`remote-link`** - Issue remote link operations
379
+
380
+ ```bash
381
+ # List remote links for an issue
382
+ uv run --project vds_cli vds-cli jira remote-link list --issue-key NTTC-123
383
+
384
+ # Create a remote link (with confirmation)
385
+ uv run --project vds_cli vds-cli jira remote-link create \
386
+ --issue-key NTTC-123 \
387
+ --url https://status.example.com/NTTC-123 \
388
+ --title "Status Page" \
389
+ --relationship "is documented by" \
390
+ --yes
391
+
392
+ # Update an existing remote link
393
+ uv run --project vds_cli vds-cli jira remote-link update \
394
+ --issue-key NTTC-123 \
395
+ --remote-link-id 10 \
396
+ --url https://status.example.com/NTTC-123?updated=true \
397
+ --yes
398
+
399
+ # Delete a remote link
400
+ uv run --project vds_cli vds-cli jira remote-link delete --issue-key NTTC-123 --remote-link-id 10 --yes
401
+ ```
402
+
403
+ - **`issue-property`** - Issue property operations
404
+
405
+ ```bash
406
+ # List property keys for an issue
407
+ uv run --project vds_cli vds-cli jira issue-property list --issue-key NTTC-123
408
+
409
+ # Get a specific property
410
+ uv run --project vds_cli vds-cli jira issue-property get --issue-key NTTC-123 --property-key deploy.info
411
+
412
+ # Set a property using inline JSON (requires confirmation)
413
+ uv run --project vds_cli vds-cli jira issue-property set \
414
+ --issue-key NTTC-123 \
415
+ --property-key deploy.info \
416
+ --value '{"env": "prod", "version": "1.2.3"}' \
417
+ --yes
418
+
419
+ # Set a property from JSON file
420
+ uv run --project vds_cli vds-cli jira issue-property set \
421
+ --issue-key NTTC-123 \
422
+ --property-key deploy.info \
423
+ --data-file deploy_info.json \
424
+ --yes
425
+
426
+ # Delete a property
427
+ uv run --project vds_cli vds-cli jira issue-property delete --issue-key NTTC-123 --property-key deploy.info --yes
428
+ ```
429
+
430
+ - **`watcher`** - Issue watcher operations
431
+
432
+ ```bash
433
+ # List watchers
434
+ uv run --project vds_cli vds-cli jira watcher list --issue-key NTTC-123
435
+
436
+ # Add watcher (username/accountId) with confirmation
437
+ uv run --project vds_cli vds-cli jira watcher add --issue-key NTTC-123 --account user@example.com --yes
438
+
439
+ # Remove watcher
440
+ uv run --project vds_cli vds-cli jira watcher remove --issue-key NTTC-123 --account user@example.com --yes
441
+ ```
442
+
443
+ - **`component`** - Project component operations
444
+
445
+ ```bash
446
+ # Get a component
447
+ uv run --project vds_cli vds-cli jira component get --component-id 10000
448
+
449
+ # Create a component (requires confirmation)
450
+ uv run --project vds_cli vds-cli jira component create \
451
+ --project-key NTTC \
452
+ --name "Payments" \
453
+ --description "Handles payment flows" \
454
+ --yes
455
+
456
+ # Update a component
457
+ uv run --project vds_cli vds-cli jira component update \
458
+ --component-id 10000 \
459
+ --name "Payments Core" \
460
+ --yes
461
+
462
+ # Delete a component
463
+ uv run --project vds_cli vds-cli jira component delete --component-id 10000 --yes
464
+ ```
465
+
466
+ - **`user`** - User management operations
467
+
468
+ ```bash
469
+ # Search for users (Cloud: email/displayName, DC: username)
470
+ uv run --project vds_cli vds-cli jira user search --query "test@example.com"
471
+ uv run --project vds_cli vds-cli jira user search --query "John Doe" --start 0 --limit 20
472
+ uv run --project vds_cli vds-cli jira user search --query "test" --include-inactive
473
+
474
+ # Get user groups (Cloud only - requires account ID)
475
+ uv run --project vds_cli vds-cli jira user groups --account-id "5d5f5e5d5e5d5e5d5e5d5e5d"
476
+
477
+ # Deactivate a user (Jira 8.3.0+, requires confirmation)
478
+ uv run --project vds_cli vds-cli jira user deactivate --username "testuser" --yes
479
+ ```
480
+
481
+ > **Cloud/DC Differences**:
482
+ >
483
+ > - `user search`: In Cloud, searches by email/displayName/accountId. In DC, searches by username.
484
+ > - `user groups`: **Cloud only** - requires account ID (not username). Returns error on Server/DC.
485
+ > - `user deactivate`: Requires Jira 8.3.0+ and `--yes` flag for confirmation.
486
+
487
+ - **`version`** - Project version management operations
488
+
489
+ ```bash
490
+ # List project versions with pagination and filtering
491
+ uv run --project vds_cli vds-cli jira version list --project-key NTTC
492
+ uv run --project vds_cli vds-cli jira version list --project-key NTTC --start 0 --limit 20
493
+ uv run --project vds_cli vds-cli jira version list --project-key NTTC --order-by name --query "1.0" --status released
494
+
495
+ # Create a new version (requires confirmation)
496
+ uv run --project vds_cli vds-cli jira version create \
497
+ --project-key NTTC \
498
+ --project-id 10000 \
499
+ --name "1.0.0" \
500
+ --yes
501
+ uv run --project vds_cli vds-cli jira version create \
502
+ --project-key NTTC \
503
+ --project-id 10000 \
504
+ --name "1.0.0" \
505
+ --archived \
506
+ --released \
507
+ --yes
508
+
509
+ # Update a version (requires confirmation and at least one field)
510
+ uv run --project vds_cli vds-cli jira version update \
511
+ --version-id 10000 \
512
+ --name "1.0.1" \
513
+ --yes
514
+ uv run --project vds_cli vds-cli jira version update \
515
+ --version-id 10000 \
516
+ --description "Updated description" \
517
+ --archived \
518
+ --start-date "2025-01-01" \
519
+ --release-date "2025-01-31" \
520
+ --yes
521
+ ```
522
+
523
+ > **Notes**:
524
+ >
525
+ > - `version list`: Supports pagination (`--start`, `--limit`), sorting (`--order-by`: `sequence`, `name`,
526
+ > `startDate`, `releaseDate`), and filtering (`--query`, `--status`).
527
+ > - `version create`: Requires `--project-key`, `--project-id`, `--name`, and `--yes` flag. Use `--archived` and
528
+ > `--released` flags to set version state.
529
+ > - `version update`: Requires `--version-id`, `--yes` flag, and at least one update field (`--name`, `--description`,
530
+ > `--archived`, `--released`, `--start-date`, `--release-date`).
531
+
532
+ - **`security-scheme`** - Issue security scheme operations
533
+
534
+ ```bash
535
+ # List all security schemes
536
+ uv run --project vds_cli vds-cli jira security-scheme list
537
+
538
+ # Get specific security scheme by ID
539
+ uv run --project vds_cli vds-cli jira security-scheme get --scheme-id 10000
540
+
541
+ # Get security scheme with only levels
542
+ uv run --project vds_cli vds-cli jira security-scheme get --scheme-id 10000 --only-levels
543
+ ```
544
+
545
+ - **`permissions`** - Permission operations
546
+
547
+ ```bash
548
+ # Get all permission types
549
+ uv run --project vds_cli vds-cli jira permissions all
550
+
551
+ # Check permissions (global)
552
+ uv run --project vds_cli vds-cli jira permissions check --permissions "ADMINISTER_PROJECTS,BROWSE_PROJECTS"
553
+
554
+ # Check permissions in project context
555
+ uv run --project vds_cli vds-cli jira permissions check \
556
+ --permissions "ADMINISTER_PROJECTS" \
557
+ --project-key NTTC
558
+
559
+ # Check permissions in issue context
560
+ uv run --project vds_cli vds-cli jira permissions check \
561
+ --permissions "EDIT_ISSUES" \
562
+ --issue-key NTTC-123
563
+ ```
564
+
565
+ - **`permission-scheme`** - Get project permission scheme
566
+
567
+ ```bash
568
+ # Get project permission scheme
569
+ uv run --project vds_cli vds-cli jira permission-scheme NTTC
570
+
571
+ # Get with expanded fields
572
+ uv run --project vds_cli vds-cli jira permission-scheme NTTC --expand "permissions,user,group"
573
+ ```
574
+
575
+ - **`issue-security-scheme`** - Get project issue security scheme
576
+
577
+ ```bash
578
+ # Get project issue security scheme
579
+ uv run --project vds_cli vds-cli jira issue-security-scheme NTTC
580
+
581
+ # Get with only levels
582
+ uv run --project vds_cli vds-cli jira issue-security-scheme NTTC --only-levels
583
+ ```
584
+
585
+ ### Write Operations
586
+
587
+ - **`create`** - Create a new issue
588
+
589
+ ```bash
590
+ uv run --project vds_cli vds-cli jira create \
591
+ --project NTTC \
592
+ --issuetype Task \
593
+ --summary "Implement feature X" \
594
+ --description "Detailed description here" \
595
+ --assignee username \
596
+ --labels "backend,high-priority" \
597
+ --set customfield_12345=10001 \
598
+ --yes
599
+ ```
600
+
601
+ - **`update`** - Update issue fields
602
+
603
+ ```bash
604
+ uv run --project vds_cli vds-cli jira update NTTC-123 \
605
+ --set summary="Updated summary" \
606
+ --add-label "urgent" \
607
+ --remove-label "low-priority" \
608
+ --yes
609
+ ```
610
+
611
+ - **`comment`** - Add comment to issue
612
+
613
+ ```bash
614
+ uv run --project vds_cli vds-cli jira comment NTTC-123 \
615
+ --message "This is a comment" \
616
+ --yes
617
+ ```
618
+
619
+ - **`transition`** - Transition issue status
620
+
621
+ ```bash
622
+ uv run --project vds_cli vds-cli jira transition NTTC-123 \
623
+ --to "In Progress" \
624
+ --admin \
625
+ --yes
626
+ ```
627
+
628
+ - **`delete`** - Delete an issue (requires --yes and --force)
629
+
630
+ ```bash
631
+ uv run --project vds_cli vds-cli jira delete NTTC-123 --yes --force
632
+ ```
633
+
634
+ ## Configuration
635
+
636
+ The orchestrator uses environment variables from `~/.vds/.env`:
637
+
638
+ ```bash
639
+ # Required for authentication
640
+ VDS_USERNAME=your-username
641
+ VDS_PASSWORD=your-password
642
+
643
+ # Optional: Use token instead of username/password
644
+ JIRA_TOKEN=your-api-token
645
+
646
+ # JIRA base URL (defaults to https://jira.digital.vn)
647
+ JIRA_BASE_URL=https://jira.digital.vn
648
+ ```
649
+
650
+ ## Project Layout
651
+
652
+ - `src/vds_jira_orchestrator/config.py` – Environment configuration and settings
653
+ - `src/vds_jira_orchestrator/adapter.py` – JIRA adapter using atlassian-python-api SDK
654
+ - `src/vds_jira_orchestrator/cli.py` – Typer CLI interface
655
+ - `src/vds_jira_orchestrator/errors.py` – Custom error types
656
+ - `src/vds_jira_orchestrator/reporting.py` – JSON/Markdown run reports
657
+ - `tests/` – pytest test suite
658
+
659
+ ## Feature Coverage
660
+
661
+ The orchestrator implements **120+ methods** covering core JIRA operations. For a complete feature coverage reference
662
+ and SDK comparison, see [`ATLASSIAN_FEATURES_REFERENCE.md`](../ATLASSIAN_FEATURES_REFERENCE.md).
663
+
664
+ **Current Coverage**: ~90% of atlassian-python-api SDK features
665
+
666
+ **Recently Added**:
667
+
668
+ - ✅ Application Properties (property get/set, settings advanced) - **NEW**
669
+ - ✅ Issue Archiving (issue-archive, issue-restore) - **NEW**
670
+ - ✅ Bulk Operations (bulk-update, field-append) - **NEW**
671
+ - ✅ Version Management (list, create, update) - **NEW**
672
+ - ✅ User Management (search, groups, deactivate) - **NEW**
673
+ - ✅ Issue Link Types management (list, get, create, update, delete) - **NEW**
674
+ - ✅ Issue Security Schemes (list, get) - **NEW**
675
+ - ✅ Advanced Permission Operations (permissions all/check, permission-scheme, issue-security-scheme) - **NEW**
676
+ - ✅ Agile/Scrum operations (boards, epics) - **NEW**
677
+ - ✅ Board properties and velocity management - **NEW**
678
+ - ✅ Sprint management - **NEW**
679
+ - ✅ Backlog operations - **NEW**
680
+ - ✅ Worklog management (time tracking) - **NEW**
681
+ - ✅ Issue transitions & changelog - **NEW**
682
+ - ✅ Advanced search operations (search with pagination, search-by-filter) - **NEW**
683
+ - ✅ Filter management (list, get, create, update, delete) - **NEW**
684
+ - ✅ Dashboard operations - **NEW**
685
+ - ✅ Reindexing operations - **NEW**
686
+
687
+ **Missing High-Priority Features**:
688
+
689
+ - None (all high-priority features complete)
690
+
691
+ ## Advanced Features
692
+
693
+ The `JiraAdapter` class provides many additional methods beyond the CLI:
694
+
695
+ - **Attachments**: `add_attachment()`, `get_attachments()`, `download_attachments()`
696
+ - **Project Operations**: `get_project()`, `get_project_components()`, `get_project_versions()`
697
+ - **Version Management**: `get_project_versions_paginated()`, `add_version()`, `update_version()`
698
+ - CLI: `jira version list`, `jira version create`, `jira version update`
699
+ - **User Management**: `get_user()`, `find_users()`, `get_myself()`, `get_user_groups()` (Cloud only),
700
+ `deactivate_user()` (Jira 8.3.0+)
701
+ - CLI: `jira user search`, `jira user groups`, `jira user deactivate`
702
+ - **Application Properties**: `get_property()`, `set_property()`, `get_advanced_settings()`
703
+ - CLI: `jira property get`, `jira property set`, `jira settings advanced`
704
+ - **Issue Archiving**: `issue_archive()`, `issue_restore()`
705
+ - **Bulk Operations**: `bulk_update_issue_field()`, `issue_field_value_append()`, `match_jql()`
706
+ - CLI: `jira bulk-update`, `jira field-append`
707
+ - **Custom Fields**: `get_custom_fields()`, `get_issue_field_value()`
708
+ - **Group Management**: `create_group()`, `remove_group()`, `add_user_to_group()`
709
+ - **Agile Boards**: `get_all_agile_boards()`, `create_agile_board()`, `get_agile_board()`, `get_issues_for_board()`
710
+ - **Board Properties**: `get_agile_board_properties()`, `set_agile_board_property()`,
711
+ `get_agile_board_refined_velocity()`
712
+ - **Epics**: `epic_issues()`, `get_epics()`, `get_issues_for_epic()`
713
+ - **Sprints**: `get_all_sprints_from_board()`, `create_sprint()`, `rename_sprint()`, `add_issues_to_sprint()`
714
+ - **Reindexing**: `reindex()`, `reindex_status()`, `reindex_with_type()`
715
+
716
+ These can be accessed programmatically by importing the adapter:
717
+
718
+ ```python
719
+ from vds_jira_orchestrator.adapter import JiraAdapter
720
+ from vds_jira_orchestrator.config import JiraSettings
721
+
722
+ settings = JiraSettings()
723
+ adapter = JiraAdapter(
724
+ url=str(settings.base_url),
725
+ username=settings.username,
726
+ password=settings.password
727
+ )
728
+ issues = adapter.jql("project = NTTC", limit=100)
729
+ ```
730
+
731
+ ## Run Reports
732
+
733
+ Run reports are written to `vds-scripts/reports/jira_runs/YYYY/MM/DD/<timestamp>.json` (plus Markdown unless
734
+ `--no-markdown` is used).
735
+
736
+ ## Linting
737
+
738
+ We use Ruff for linting/formatting:
739
+
740
+ ```bash
741
+ uv run --extra dev ruff check
742
+ uv run --extra dev ruff format
743
+ ```
744
+
745
+ ## Testing
746
+
747
+ ```bash
748
+ # Run all tests
749
+ uv run --extra dev pytest
750
+
751
+ # Run specific test file
752
+ uv run --extra dev pytest tests/test_cli.py
753
+
754
+ # Run with coverage
755
+ uv run --extra dev pytest --cov=src/vds_jira_orchestrator
756
+ ```
757
+
758
+ ## Error Handling
759
+
760
+ The orchestrator provides structured error types:
761
+
762
+ - `JiraAuthError` - Authentication failures
763
+ - `JiraNotFound` - Resource not found (404)
764
+ - `JiraRateLimited` - Rate limit exceeded (429)
765
+ - `JiraConflictError` - Conflict errors (409)
766
+ - `JiraResponseError` - Server errors (500)
767
+ - `JiraTransportError` - Network/connection errors
768
+ - `JiraAdapterError` - General adapter errors
769
+
770
+ All errors include context information for debugging.