@vm3jack/mcp-server-azure-devops 1.0.0
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/LICENSE +21 -0
- package/README.md +265 -0
- package/dist/clients/azure-devops.d.ts +105 -0
- package/dist/clients/azure-devops.js +501 -0
- package/dist/clients/azure-devops.js.map +1 -0
- package/dist/clients/azure-devops.spec.unit.d.ts +1 -0
- package/dist/clients/azure-devops.spec.unit.js +42 -0
- package/dist/clients/azure-devops.spec.unit.js.map +1 -0
- package/dist/features/organizations/__test__/test-helpers.d.ts +13 -0
- package/dist/features/organizations/__test__/test-helpers.js +38 -0
- package/dist/features/organizations/__test__/test-helpers.js.map +1 -0
- package/dist/features/organizations/index.d.ts +13 -0
- package/dist/features/organizations/index.js +63 -0
- package/dist/features/organizations/index.js.map +1 -0
- package/dist/features/organizations/index.spec.unit.d.ts +1 -0
- package/dist/features/organizations/index.spec.unit.js +106 -0
- package/dist/features/organizations/index.spec.unit.js.map +1 -0
- package/dist/features/organizations/list-organizations/feature.d.ts +13 -0
- package/dist/features/organizations/list-organizations/feature.js +101 -0
- package/dist/features/organizations/list-organizations/feature.js.map +1 -0
- package/dist/features/organizations/list-organizations/feature.spec.int.d.ts +1 -0
- package/dist/features/organizations/list-organizations/feature.spec.int.js +34 -0
- package/dist/features/organizations/list-organizations/feature.spec.int.js.map +1 -0
- package/dist/features/organizations/list-organizations/feature.spec.unit.d.ts +1 -0
- package/dist/features/organizations/list-organizations/feature.spec.unit.js +115 -0
- package/dist/features/organizations/list-organizations/feature.spec.unit.js.map +1 -0
- package/dist/features/organizations/list-organizations/index.d.ts +2 -0
- package/dist/features/organizations/list-organizations/index.js +19 -0
- package/dist/features/organizations/list-organizations/index.js.map +1 -0
- package/dist/features/organizations/list-organizations/schema.d.ts +2 -0
- package/dist/features/organizations/list-organizations/schema.js +6 -0
- package/dist/features/organizations/list-organizations/schema.js.map +1 -0
- package/dist/features/organizations/schemas.d.ts +6 -0
- package/dist/features/organizations/schemas.js +10 -0
- package/dist/features/organizations/schemas.js.map +1 -0
- package/dist/features/organizations/tool-definitions.d.ts +5 -0
- package/dist/features/organizations/tool-definitions.js +16 -0
- package/dist/features/organizations/tool-definitions.js.map +1 -0
- package/dist/features/organizations/types.d.ts +21 -0
- package/dist/features/organizations/types.js +8 -0
- package/dist/features/organizations/types.js.map +1 -0
- package/dist/features/pipelines/artifacts.d.ts +11 -0
- package/dist/features/pipelines/artifacts.js +288 -0
- package/dist/features/pipelines/artifacts.js.map +1 -0
- package/dist/features/pipelines/artifacts.spec.unit.d.ts +1 -0
- package/dist/features/pipelines/artifacts.spec.unit.js +103 -0
- package/dist/features/pipelines/artifacts.spec.unit.js.map +1 -0
- package/dist/features/pipelines/download-pipeline-artifact/feature.d.ts +3 -0
- package/dist/features/pipelines/download-pipeline-artifact/feature.js +222 -0
- package/dist/features/pipelines/download-pipeline-artifact/feature.js.map +1 -0
- package/dist/features/pipelines/download-pipeline-artifact/feature.spec.unit.d.ts +1 -0
- package/dist/features/pipelines/download-pipeline-artifact/feature.spec.unit.js +65 -0
- package/dist/features/pipelines/download-pipeline-artifact/feature.spec.unit.js.map +1 -0
- package/dist/features/pipelines/download-pipeline-artifact/index.d.ts +2 -0
- package/dist/features/pipelines/download-pipeline-artifact/index.js +19 -0
- package/dist/features/pipelines/download-pipeline-artifact/index.js.map +1 -0
- package/dist/features/pipelines/download-pipeline-artifact/schema.d.ts +17 -0
- package/dist/features/pipelines/download-pipeline-artifact/schema.js +23 -0
- package/dist/features/pipelines/download-pipeline-artifact/schema.js.map +1 -0
- package/dist/features/pipelines/get-pipeline/feature.d.ts +10 -0
- package/dist/features/pipelines/get-pipeline/feature.js +46 -0
- package/dist/features/pipelines/get-pipeline/feature.js.map +1 -0
- package/dist/features/pipelines/get-pipeline/feature.spec.int.d.ts +1 -0
- package/dist/features/pipelines/get-pipeline/feature.spec.int.js +54 -0
- package/dist/features/pipelines/get-pipeline/feature.spec.int.js.map +1 -0
- package/dist/features/pipelines/get-pipeline/feature.spec.unit.d.ts +1 -0
- package/dist/features/pipelines/get-pipeline/feature.spec.unit.js +89 -0
- package/dist/features/pipelines/get-pipeline/feature.spec.unit.js.map +1 -0
- package/dist/features/pipelines/get-pipeline/index.d.ts +2 -0
- package/dist/features/pipelines/get-pipeline/index.js +19 -0
- package/dist/features/pipelines/get-pipeline/index.js.map +1 -0
- package/dist/features/pipelines/get-pipeline/schema.d.ts +17 -0
- package/dist/features/pipelines/get-pipeline/schema.js +29 -0
- package/dist/features/pipelines/get-pipeline/schema.js.map +1 -0
- package/dist/features/pipelines/get-pipeline-log/feature.d.ts +3 -0
- package/dist/features/pipelines/get-pipeline-log/feature.js +57 -0
- package/dist/features/pipelines/get-pipeline-log/feature.js.map +1 -0
- package/dist/features/pipelines/get-pipeline-log/feature.spec.unit.d.ts +1 -0
- package/dist/features/pipelines/get-pipeline-log/feature.spec.unit.js +81 -0
- package/dist/features/pipelines/get-pipeline-log/feature.spec.unit.js.map +1 -0
- package/dist/features/pipelines/get-pipeline-log/index.d.ts +2 -0
- package/dist/features/pipelines/get-pipeline-log/index.js +19 -0
- package/dist/features/pipelines/get-pipeline-log/index.js.map +1 -0
- package/dist/features/pipelines/get-pipeline-log/schema.d.ts +26 -0
- package/dist/features/pipelines/get-pipeline-log/schema.js +40 -0
- package/dist/features/pipelines/get-pipeline-log/schema.js.map +1 -0
- package/dist/features/pipelines/get-pipeline-run/feature.d.ts +3 -0
- package/dist/features/pipelines/get-pipeline-run/feature.js +76 -0
- package/dist/features/pipelines/get-pipeline-run/feature.js.map +1 -0
- package/dist/features/pipelines/get-pipeline-run/feature.spec.unit.d.ts +1 -0
- package/dist/features/pipelines/get-pipeline-run/feature.spec.unit.js +156 -0
- package/dist/features/pipelines/get-pipeline-run/feature.spec.unit.js.map +1 -0
- package/dist/features/pipelines/get-pipeline-run/index.d.ts +2 -0
- package/dist/features/pipelines/get-pipeline-run/index.js +19 -0
- package/dist/features/pipelines/get-pipeline-run/index.js.map +1 -0
- package/dist/features/pipelines/get-pipeline-run/schema.d.ts +14 -0
- package/dist/features/pipelines/get-pipeline-run/schema.js +19 -0
- package/dist/features/pipelines/get-pipeline-run/schema.js.map +1 -0
- package/dist/features/pipelines/helpers.d.ts +3 -0
- package/dist/features/pipelines/helpers.js +29 -0
- package/dist/features/pipelines/helpers.js.map +1 -0
- package/dist/features/pipelines/index.d.ts +19 -0
- package/dist/features/pipelines/index.js +156 -0
- package/dist/features/pipelines/index.js.map +1 -0
- package/dist/features/pipelines/index.spec.unit.d.ts +1 -0
- package/dist/features/pipelines/index.spec.unit.js +223 -0
- package/dist/features/pipelines/index.spec.unit.js.map +1 -0
- package/dist/features/pipelines/list-pipeline-runs/feature.d.ts +3 -0
- package/dist/features/pipelines/list-pipeline-runs/feature.js +98 -0
- package/dist/features/pipelines/list-pipeline-runs/feature.js.map +1 -0
- package/dist/features/pipelines/list-pipeline-runs/feature.spec.unit.d.ts +1 -0
- package/dist/features/pipelines/list-pipeline-runs/feature.spec.unit.js +148 -0
- package/dist/features/pipelines/list-pipeline-runs/feature.spec.unit.js.map +1 -0
- package/dist/features/pipelines/list-pipeline-runs/index.d.ts +2 -0
- package/dist/features/pipelines/list-pipeline-runs/index.js +19 -0
- package/dist/features/pipelines/list-pipeline-runs/index.js.map +1 -0
- package/dist/features/pipelines/list-pipeline-runs/schema.d.ts +35 -0
- package/dist/features/pipelines/list-pipeline-runs/schema.js +50 -0
- package/dist/features/pipelines/list-pipeline-runs/schema.js.map +1 -0
- package/dist/features/pipelines/list-pipelines/feature.d.ts +10 -0
- package/dist/features/pipelines/list-pipelines/feature.js +42 -0
- package/dist/features/pipelines/list-pipelines/feature.js.map +1 -0
- package/dist/features/pipelines/list-pipelines/feature.spec.int.d.ts +1 -0
- package/dist/features/pipelines/list-pipelines/feature.spec.int.js +36 -0
- package/dist/features/pipelines/list-pipelines/feature.spec.int.js.map +1 -0
- package/dist/features/pipelines/list-pipelines/feature.spec.unit.d.ts +1 -0
- package/dist/features/pipelines/list-pipelines/feature.spec.unit.js +91 -0
- package/dist/features/pipelines/list-pipelines/feature.spec.unit.js.map +1 -0
- package/dist/features/pipelines/list-pipelines/index.d.ts +2 -0
- package/dist/features/pipelines/list-pipelines/index.js +19 -0
- package/dist/features/pipelines/list-pipelines/index.js.map +1 -0
- package/dist/features/pipelines/list-pipelines/schema.d.ts +17 -0
- package/dist/features/pipelines/list-pipelines/schema.js +23 -0
- package/dist/features/pipelines/list-pipelines/schema.js.map +1 -0
- package/dist/features/pipelines/pipeline-timeline/feature.d.ts +3 -0
- package/dist/features/pipelines/pipeline-timeline/feature.js +95 -0
- package/dist/features/pipelines/pipeline-timeline/feature.js.map +1 -0
- package/dist/features/pipelines/pipeline-timeline/feature.spec.unit.d.ts +1 -0
- package/dist/features/pipelines/pipeline-timeline/feature.spec.unit.js +100 -0
- package/dist/features/pipelines/pipeline-timeline/feature.spec.unit.js.map +1 -0
- package/dist/features/pipelines/pipeline-timeline/index.d.ts +2 -0
- package/dist/features/pipelines/pipeline-timeline/index.js +19 -0
- package/dist/features/pipelines/pipeline-timeline/index.js.map +1 -0
- package/dist/features/pipelines/pipeline-timeline/schema.d.ts +23 -0
- package/dist/features/pipelines/pipeline-timeline/schema.js +51 -0
- package/dist/features/pipelines/pipeline-timeline/schema.js.map +1 -0
- package/dist/features/pipelines/tool-definitions.d.ts +5 -0
- package/dist/features/pipelines/tool-definitions.js +66 -0
- package/dist/features/pipelines/tool-definitions.js.map +1 -0
- package/dist/features/pipelines/trigger-pipeline/feature.d.ts +10 -0
- package/dist/features/pipelines/trigger-pipeline/feature.js +65 -0
- package/dist/features/pipelines/trigger-pipeline/feature.js.map +1 -0
- package/dist/features/pipelines/trigger-pipeline/feature.spec.int.d.ts +1 -0
- package/dist/features/pipelines/trigger-pipeline/feature.spec.int.js +85 -0
- package/dist/features/pipelines/trigger-pipeline/feature.spec.int.js.map +1 -0
- package/dist/features/pipelines/trigger-pipeline/feature.spec.unit.d.ts +1 -0
- package/dist/features/pipelines/trigger-pipeline/feature.spec.unit.js +112 -0
- package/dist/features/pipelines/trigger-pipeline/feature.spec.unit.js.map +1 -0
- package/dist/features/pipelines/trigger-pipeline/index.d.ts +2 -0
- package/dist/features/pipelines/trigger-pipeline/index.js +8 -0
- package/dist/features/pipelines/trigger-pipeline/index.js.map +1 -0
- package/dist/features/pipelines/trigger-pipeline/schema.d.ts +41 -0
- package/dist/features/pipelines/trigger-pipeline/schema.js +45 -0
- package/dist/features/pipelines/trigger-pipeline/schema.js.map +1 -0
- package/dist/features/pipelines/types.d.ts +122 -0
- package/dist/features/pipelines/types.js +3 -0
- package/dist/features/pipelines/types.js.map +1 -0
- package/dist/features/projects/__test__/test-helpers.d.ts +13 -0
- package/dist/features/projects/__test__/test-helpers.js +35 -0
- package/dist/features/projects/__test__/test-helpers.js.map +1 -0
- package/dist/features/projects/get-project/feature.d.ts +11 -0
- package/dist/features/projects/get-project/feature.js +29 -0
- package/dist/features/projects/get-project/feature.js.map +1 -0
- package/dist/features/projects/get-project/feature.spec.int.d.ts +1 -0
- package/dist/features/projects/get-project/feature.spec.int.js +39 -0
- package/dist/features/projects/get-project/feature.spec.int.js.map +1 -0
- package/dist/features/projects/get-project/feature.spec.unit.d.ts +1 -0
- package/dist/features/projects/get-project/feature.spec.unit.js +41 -0
- package/dist/features/projects/get-project/feature.spec.unit.js.map +1 -0
- package/dist/features/projects/get-project/index.d.ts +2 -0
- package/dist/features/projects/get-project/index.js +19 -0
- package/dist/features/projects/get-project/index.js.map +1 -0
- package/dist/features/projects/get-project/schema.d.ts +2 -0
- package/dist/features/projects/get-project/schema.js +6 -0
- package/dist/features/projects/get-project/schema.js.map +1 -0
- package/dist/features/projects/get-project-details/feature.d.ts +78 -0
- package/dist/features/projects/get-project-details/feature.js +185 -0
- package/dist/features/projects/get-project-details/feature.js.map +1 -0
- package/dist/features/projects/get-project-details/feature.spec.int.d.ts +1 -0
- package/dist/features/projects/get-project-details/feature.spec.int.js +120 -0
- package/dist/features/projects/get-project-details/feature.spec.int.js.map +1 -0
- package/dist/features/projects/get-project-details/feature.spec.unit.d.ts +1 -0
- package/dist/features/projects/get-project-details/feature.spec.unit.js +379 -0
- package/dist/features/projects/get-project-details/feature.spec.unit.js.map +1 -0
- package/dist/features/projects/get-project-details/index.d.ts +2 -0
- package/dist/features/projects/get-project-details/index.js +8 -0
- package/dist/features/projects/get-project-details/index.js.map +1 -0
- package/dist/features/projects/get-project-details/schema.d.ts +2 -0
- package/dist/features/projects/get-project-details/schema.js +6 -0
- package/dist/features/projects/get-project-details/schema.js.map +1 -0
- package/dist/features/projects/index.d.ts +15 -0
- package/dist/features/projects/index.js +80 -0
- package/dist/features/projects/index.js.map +1 -0
- package/dist/features/projects/index.spec.unit.d.ts +1 -0
- package/dist/features/projects/index.spec.unit.js +131 -0
- package/dist/features/projects/index.spec.unit.js.map +1 -0
- package/dist/features/projects/list-projects/feature.d.ts +10 -0
- package/dist/features/projects/list-projects/feature.js +25 -0
- package/dist/features/projects/list-projects/feature.js.map +1 -0
- package/dist/features/projects/list-projects/feature.spec.int.d.ts +1 -0
- package/dist/features/projects/list-projects/feature.spec.int.js +54 -0
- package/dist/features/projects/list-projects/feature.spec.int.js.map +1 -0
- package/dist/features/projects/list-projects/index.d.ts +2 -0
- package/dist/features/projects/list-projects/index.js +19 -0
- package/dist/features/projects/list-projects/index.js.map +1 -0
- package/dist/features/projects/list-projects/schema.d.ts +2 -0
- package/dist/features/projects/list-projects/schema.js +6 -0
- package/dist/features/projects/list-projects/schema.js.map +1 -0
- package/dist/features/projects/schemas.d.ts +64 -0
- package/dist/features/projects/schemas.js +76 -0
- package/dist/features/projects/schemas.js.map +1 -0
- package/dist/features/projects/tool-definitions.d.ts +5 -0
- package/dist/features/projects/tool-definitions.js +26 -0
- package/dist/features/projects/tool-definitions.js.map +1 -0
- package/dist/features/projects/types.d.ts +11 -0
- package/dist/features/projects/types.js +3 -0
- package/dist/features/projects/types.js.map +1 -0
- package/dist/features/pull-requests/add-pull-request-comment/feature.d.ts +13 -0
- package/dist/features/pull-requests/add-pull-request-comment/feature.js +130 -0
- package/dist/features/pull-requests/add-pull-request-comment/feature.js.map +1 -0
- package/dist/features/pull-requests/add-pull-request-comment/feature.spec.int.d.ts +1 -0
- package/dist/features/pull-requests/add-pull-request-comment/feature.spec.int.js +186 -0
- package/dist/features/pull-requests/add-pull-request-comment/feature.spec.int.js.map +1 -0
- package/dist/features/pull-requests/add-pull-request-comment/feature.spec.unit.d.ts +1 -0
- package/dist/features/pull-requests/add-pull-request-comment/feature.spec.unit.js +259 -0
- package/dist/features/pull-requests/add-pull-request-comment/feature.spec.unit.js.map +1 -0
- package/dist/features/pull-requests/add-pull-request-comment/index.d.ts +1 -0
- package/dist/features/pull-requests/add-pull-request-comment/index.js +18 -0
- package/dist/features/pull-requests/add-pull-request-comment/index.js.map +1 -0
- package/dist/features/pull-requests/create-pull-request/feature.d.ts +12 -0
- package/dist/features/pull-requests/create-pull-request/feature.js +99 -0
- package/dist/features/pull-requests/create-pull-request/feature.js.map +1 -0
- package/dist/features/pull-requests/create-pull-request/feature.spec.int.d.ts +1 -0
- package/dist/features/pull-requests/create-pull-request/feature.spec.int.js +111 -0
- package/dist/features/pull-requests/create-pull-request/feature.spec.int.js.map +1 -0
- package/dist/features/pull-requests/create-pull-request/feature.spec.unit.d.ts +1 -0
- package/dist/features/pull-requests/create-pull-request/feature.spec.unit.js +112 -0
- package/dist/features/pull-requests/create-pull-request/feature.spec.unit.js.map +1 -0
- package/dist/features/pull-requests/create-pull-request/index.d.ts +2 -0
- package/dist/features/pull-requests/create-pull-request/index.js +19 -0
- package/dist/features/pull-requests/create-pull-request/index.js.map +1 -0
- package/dist/features/pull-requests/create-pull-request/schema.d.ts +2 -0
- package/dist/features/pull-requests/create-pull-request/schema.js +6 -0
- package/dist/features/pull-requests/create-pull-request/schema.js.map +1 -0
- package/dist/features/pull-requests/get-pull-request/feature.d.ts +6 -0
- package/dist/features/pull-requests/get-pull-request/feature.js +22 -0
- package/dist/features/pull-requests/get-pull-request/feature.js.map +1 -0
- package/dist/features/pull-requests/get-pull-request/feature.spec.int.d.ts +1 -0
- package/dist/features/pull-requests/get-pull-request/feature.spec.int.js +109 -0
- package/dist/features/pull-requests/get-pull-request/feature.spec.int.js.map +1 -0
- package/dist/features/pull-requests/get-pull-request/feature.spec.unit.d.ts +1 -0
- package/dist/features/pull-requests/get-pull-request/feature.spec.unit.js +37 -0
- package/dist/features/pull-requests/get-pull-request/feature.spec.unit.js.map +1 -0
- package/dist/features/pull-requests/get-pull-request/index.d.ts +2 -0
- package/dist/features/pull-requests/get-pull-request/index.js +19 -0
- package/dist/features/pull-requests/get-pull-request/index.js.map +1 -0
- package/dist/features/pull-requests/get-pull-request/schema.d.ts +1 -0
- package/dist/features/pull-requests/get-pull-request/schema.js +6 -0
- package/dist/features/pull-requests/get-pull-request/schema.js.map +1 -0
- package/dist/features/pull-requests/get-pull-request-changes/feature.d.ts +22 -0
- package/dist/features/pull-requests/get-pull-request-changes/feature.js +60 -0
- package/dist/features/pull-requests/get-pull-request-changes/feature.js.map +1 -0
- package/dist/features/pull-requests/get-pull-request-changes/feature.spec.unit.d.ts +1 -0
- package/dist/features/pull-requests/get-pull-request-changes/feature.spec.unit.js +77 -0
- package/dist/features/pull-requests/get-pull-request-changes/feature.spec.unit.js.map +1 -0
- package/dist/features/pull-requests/get-pull-request-changes/index.d.ts +1 -0
- package/dist/features/pull-requests/get-pull-request-changes/index.js +18 -0
- package/dist/features/pull-requests/get-pull-request-changes/index.js.map +1 -0
- package/dist/features/pull-requests/get-pull-request-checks/feature.d.ts +51 -0
- package/dist/features/pull-requests/get-pull-request-checks/feature.js +259 -0
- package/dist/features/pull-requests/get-pull-request-checks/feature.js.map +1 -0
- package/dist/features/pull-requests/get-pull-request-checks/feature.spec.unit.d.ts +1 -0
- package/dist/features/pull-requests/get-pull-request-checks/feature.spec.unit.js +138 -0
- package/dist/features/pull-requests/get-pull-request-checks/feature.spec.unit.js.map +1 -0
- package/dist/features/pull-requests/get-pull-request-checks/index.d.ts +1 -0
- package/dist/features/pull-requests/get-pull-request-checks/index.js +18 -0
- package/dist/features/pull-requests/get-pull-request-checks/index.js.map +1 -0
- package/dist/features/pull-requests/get-pull-request-comments/feature.d.ts +13 -0
- package/dist/features/pull-requests/get-pull-request-comments/feature.js +88 -0
- package/dist/features/pull-requests/get-pull-request-comments/feature.js.map +1 -0
- package/dist/features/pull-requests/get-pull-request-comments/feature.spec.int.d.ts +1 -0
- package/dist/features/pull-requests/get-pull-request-comments/feature.spec.int.js +216 -0
- package/dist/features/pull-requests/get-pull-request-comments/feature.spec.int.js.map +1 -0
- package/dist/features/pull-requests/get-pull-request-comments/feature.spec.unit.d.ts +1 -0
- package/dist/features/pull-requests/get-pull-request-comments/feature.spec.unit.js +340 -0
- package/dist/features/pull-requests/get-pull-request-comments/feature.spec.unit.js.map +1 -0
- package/dist/features/pull-requests/get-pull-request-comments/index.d.ts +1 -0
- package/dist/features/pull-requests/get-pull-request-comments/index.js +18 -0
- package/dist/features/pull-requests/get-pull-request-comments/index.js.map +1 -0
- package/dist/features/pull-requests/index.d.ts +20 -0
- package/dist/features/pull-requests/index.js +157 -0
- package/dist/features/pull-requests/index.js.map +1 -0
- package/dist/features/pull-requests/index.spec.unit.d.ts +1 -0
- package/dist/features/pull-requests/index.spec.unit.js +261 -0
- package/dist/features/pull-requests/index.spec.unit.js.map +1 -0
- package/dist/features/pull-requests/list-pull-requests/feature.d.ts +17 -0
- package/dist/features/pull-requests/list-pull-requests/feature.js +81 -0
- package/dist/features/pull-requests/list-pull-requests/feature.js.map +1 -0
- package/dist/features/pull-requests/list-pull-requests/feature.spec.int.d.ts +1 -0
- package/dist/features/pull-requests/list-pull-requests/feature.spec.int.js +124 -0
- package/dist/features/pull-requests/list-pull-requests/feature.spec.int.js.map +1 -0
- package/dist/features/pull-requests/list-pull-requests/feature.spec.unit.d.ts +1 -0
- package/dist/features/pull-requests/list-pull-requests/feature.spec.unit.js +180 -0
- package/dist/features/pull-requests/list-pull-requests/feature.spec.unit.js.map +1 -0
- package/dist/features/pull-requests/list-pull-requests/index.d.ts +2 -0
- package/dist/features/pull-requests/list-pull-requests/index.js +19 -0
- package/dist/features/pull-requests/list-pull-requests/index.js.map +1 -0
- package/dist/features/pull-requests/list-pull-requests/schema.d.ts +1 -0
- package/dist/features/pull-requests/list-pull-requests/schema.js +6 -0
- package/dist/features/pull-requests/list-pull-requests/schema.js.map +1 -0
- package/dist/features/pull-requests/schemas.d.ts +318 -0
- package/dist/features/pull-requests/schemas.js +283 -0
- package/dist/features/pull-requests/schemas.js.map +1 -0
- package/dist/features/pull-requests/tool-definitions.d.ts +5 -0
- package/dist/features/pull-requests/tool-definitions.js +55 -0
- package/dist/features/pull-requests/tool-definitions.js.map +1 -0
- package/dist/features/pull-requests/types.d.ts +100 -0
- package/dist/features/pull-requests/types.js +3 -0
- package/dist/features/pull-requests/types.js.map +1 -0
- package/dist/features/pull-requests/update-pull-request/feature.d.ts +9 -0
- package/dist/features/pull-requests/update-pull-request/feature.js +250 -0
- package/dist/features/pull-requests/update-pull-request/feature.js.map +1 -0
- package/dist/features/pull-requests/update-pull-request/feature.spec.int.d.ts +1 -0
- package/dist/features/pull-requests/update-pull-request/feature.spec.int.js +162 -0
- package/dist/features/pull-requests/update-pull-request/feature.spec.int.js.map +1 -0
- package/dist/features/pull-requests/update-pull-request/feature.spec.unit.d.ts +1 -0
- package/dist/features/pull-requests/update-pull-request/feature.spec.unit.js +280 -0
- package/dist/features/pull-requests/update-pull-request/feature.spec.unit.js.map +1 -0
- package/dist/features/pull-requests/update-pull-request/index.d.ts +1 -0
- package/dist/features/pull-requests/update-pull-request/index.js +18 -0
- package/dist/features/pull-requests/update-pull-request/index.js.map +1 -0
- package/dist/features/releases/create-release/feature.d.ts +3 -0
- package/dist/features/releases/create-release/feature.js +51 -0
- package/dist/features/releases/create-release/feature.js.map +1 -0
- package/dist/features/releases/create-release/index.d.ts +2 -0
- package/dist/features/releases/create-release/index.js +19 -0
- package/dist/features/releases/create-release/index.js.map +1 -0
- package/dist/features/releases/create-release/schema.d.ts +20 -0
- package/dist/features/releases/create-release/schema.js +24 -0
- package/dist/features/releases/create-release/schema.js.map +1 -0
- package/dist/features/releases/deploy-release-stage/feature.d.ts +9 -0
- package/dist/features/releases/deploy-release-stage/feature.js +38 -0
- package/dist/features/releases/deploy-release-stage/feature.js.map +1 -0
- package/dist/features/releases/deploy-release-stage/index.d.ts +2 -0
- package/dist/features/releases/deploy-release-stage/index.js +19 -0
- package/dist/features/releases/deploy-release-stage/index.js.map +1 -0
- package/dist/features/releases/deploy-release-stage/schema.d.ts +17 -0
- package/dist/features/releases/deploy-release-stage/schema.js +20 -0
- package/dist/features/releases/deploy-release-stage/schema.js.map +1 -0
- package/dist/features/releases/get-release/feature.d.ts +3 -0
- package/dist/features/releases/get-release/feature.js +34 -0
- package/dist/features/releases/get-release/feature.js.map +1 -0
- package/dist/features/releases/get-release/index.d.ts +2 -0
- package/dist/features/releases/get-release/index.js +19 -0
- package/dist/features/releases/get-release/index.js.map +1 -0
- package/dist/features/releases/get-release/schema.d.ts +11 -0
- package/dist/features/releases/get-release/schema.js +13 -0
- package/dist/features/releases/get-release/schema.js.map +1 -0
- package/dist/features/releases/get-release-definition/feature.d.ts +3 -0
- package/dist/features/releases/get-release-definition/feature.js +34 -0
- package/dist/features/releases/get-release-definition/feature.js.map +1 -0
- package/dist/features/releases/get-release-definition/index.d.ts +2 -0
- package/dist/features/releases/get-release-definition/index.js +19 -0
- package/dist/features/releases/get-release-definition/index.js.map +1 -0
- package/dist/features/releases/get-release-definition/schema.d.ts +11 -0
- package/dist/features/releases/get-release-definition/schema.js +13 -0
- package/dist/features/releases/get-release-definition/schema.js.map +1 -0
- package/dist/features/releases/index.d.ts +11 -0
- package/dist/features/releases/index.js +121 -0
- package/dist/features/releases/index.js.map +1 -0
- package/dist/features/releases/list-release-definitions/feature.d.ts +3 -0
- package/dist/features/releases/list-release-definitions/feature.js +31 -0
- package/dist/features/releases/list-release-definitions/feature.js.map +1 -0
- package/dist/features/releases/list-release-definitions/index.d.ts +2 -0
- package/dist/features/releases/list-release-definitions/index.js +19 -0
- package/dist/features/releases/list-release-definitions/index.js.map +1 -0
- package/dist/features/releases/list-release-definitions/schema.d.ts +17 -0
- package/dist/features/releases/list-release-definitions/schema.js +24 -0
- package/dist/features/releases/list-release-definitions/schema.js.map +1 -0
- package/dist/features/releases/list-releases/feature.d.ts +3 -0
- package/dist/features/releases/list-releases/feature.js +31 -0
- package/dist/features/releases/list-releases/feature.js.map +1 -0
- package/dist/features/releases/list-releases/index.d.ts +2 -0
- package/dist/features/releases/list-releases/index.js +19 -0
- package/dist/features/releases/list-releases/index.js.map +1 -0
- package/dist/features/releases/list-releases/schema.d.ts +26 -0
- package/dist/features/releases/list-releases/schema.js +30 -0
- package/dist/features/releases/list-releases/schema.js.map +1 -0
- package/dist/features/releases/tool-definitions.d.ts +2 -0
- package/dist/features/releases/tool-definitions.js +49 -0
- package/dist/features/releases/tool-definitions.js.map +1 -0
- package/dist/features/releases/types.d.ts +32 -0
- package/dist/features/releases/types.js +3 -0
- package/dist/features/releases/types.js.map +1 -0
- package/dist/features/repositories/__test__/test-helpers.d.ts +13 -0
- package/dist/features/repositories/__test__/test-helpers.js +35 -0
- package/dist/features/repositories/__test__/test-helpers.js.map +1 -0
- package/dist/features/repositories/create-branch/feature.d.ts +6 -0
- package/dist/features/repositories/create-branch/feature.js +33 -0
- package/dist/features/repositories/create-branch/feature.js.map +1 -0
- package/dist/features/repositories/create-branch/feature.spec.unit.d.ts +1 -0
- package/dist/features/repositories/create-branch/feature.spec.unit.js +36 -0
- package/dist/features/repositories/create-branch/feature.spec.unit.js.map +1 -0
- package/dist/features/repositories/create-branch/index.d.ts +1 -0
- package/dist/features/repositories/create-branch/index.js +18 -0
- package/dist/features/repositories/create-branch/index.js.map +1 -0
- package/dist/features/repositories/create-commit/feature.d.ts +6 -0
- package/dist/features/repositories/create-commit/feature.js +122 -0
- package/dist/features/repositories/create-commit/feature.js.map +1 -0
- package/dist/features/repositories/create-commit/feature.spec.unit.d.ts +1 -0
- package/dist/features/repositories/create-commit/feature.spec.unit.js +157 -0
- package/dist/features/repositories/create-commit/feature.spec.unit.js.map +1 -0
- package/dist/features/repositories/create-commit/index.d.ts +1 -0
- package/dist/features/repositories/create-commit/index.js +18 -0
- package/dist/features/repositories/create-commit/index.js.map +1 -0
- package/dist/features/repositories/get-all-repositories-tree/feature.d.ts +22 -0
- package/dist/features/repositories/get-all-repositories-tree/feature.js +303 -0
- package/dist/features/repositories/get-all-repositories-tree/feature.js.map +1 -0
- package/dist/features/repositories/get-all-repositories-tree/feature.spec.int.d.ts +1 -0
- package/dist/features/repositories/get-all-repositories-tree/feature.spec.int.js +89 -0
- package/dist/features/repositories/get-all-repositories-tree/feature.spec.int.js.map +1 -0
- package/dist/features/repositories/get-all-repositories-tree/feature.spec.unit.d.ts +1 -0
- package/dist/features/repositories/get-all-repositories-tree/feature.spec.unit.js +391 -0
- package/dist/features/repositories/get-all-repositories-tree/feature.spec.unit.js.map +1 -0
- package/dist/features/repositories/get-all-repositories-tree/index.d.ts +2 -0
- package/dist/features/repositories/get-all-repositories-tree/index.js +19 -0
- package/dist/features/repositories/get-all-repositories-tree/index.js.map +1 -0
- package/dist/features/repositories/get-all-repositories-tree/schema.d.ts +2 -0
- package/dist/features/repositories/get-all-repositories-tree/schema.js +6 -0
- package/dist/features/repositories/get-all-repositories-tree/schema.js.map +1 -0
- package/dist/features/repositories/get-file-content/feature.d.ts +23 -0
- package/dist/features/repositories/get-file-content/feature.js +96 -0
- package/dist/features/repositories/get-file-content/feature.js.map +1 -0
- package/dist/features/repositories/get-file-content/feature.spec.int.d.ts +1 -0
- package/dist/features/repositories/get-file-content/feature.spec.int.js +86 -0
- package/dist/features/repositories/get-file-content/feature.spec.int.js.map +1 -0
- package/dist/features/repositories/get-file-content/feature.spec.unit.d.ts +1 -0
- package/dist/features/repositories/get-file-content/feature.spec.unit.js +128 -0
- package/dist/features/repositories/get-file-content/feature.spec.unit.js.map +1 -0
- package/dist/features/repositories/get-file-content/index.d.ts +2 -0
- package/dist/features/repositories/get-file-content/index.js +19 -0
- package/dist/features/repositories/get-file-content/index.js.map +1 -0
- package/dist/features/repositories/get-file-content/schema.d.ts +2 -0
- package/dist/features/repositories/get-file-content/schema.js +6 -0
- package/dist/features/repositories/get-file-content/schema.js.map +1 -0
- package/dist/features/repositories/get-repository/feature.d.ts +12 -0
- package/dist/features/repositories/get-repository/feature.js +30 -0
- package/dist/features/repositories/get-repository/feature.js.map +1 -0
- package/dist/features/repositories/get-repository/feature.spec.int.d.ts +1 -0
- package/dist/features/repositories/get-repository/feature.spec.int.js +44 -0
- package/dist/features/repositories/get-repository/feature.spec.int.js.map +1 -0
- package/dist/features/repositories/get-repository/feature.spec.unit.d.ts +1 -0
- package/dist/features/repositories/get-repository/feature.spec.unit.js +41 -0
- package/dist/features/repositories/get-repository/feature.spec.unit.js.map +1 -0
- package/dist/features/repositories/get-repository/index.d.ts +2 -0
- package/dist/features/repositories/get-repository/index.js +19 -0
- package/dist/features/repositories/get-repository/index.js.map +1 -0
- package/dist/features/repositories/get-repository/schema.d.ts +2 -0
- package/dist/features/repositories/get-repository/schema.js +6 -0
- package/dist/features/repositories/get-repository/schema.js.map +1 -0
- package/dist/features/repositories/get-repository-details/feature.d.ts +11 -0
- package/dist/features/repositories/get-repository-details/feature.js +67 -0
- package/dist/features/repositories/get-repository-details/feature.js.map +1 -0
- package/dist/features/repositories/get-repository-details/feature.spec.int.d.ts +1 -0
- package/dist/features/repositories/get-repository-details/feature.spec.int.js +119 -0
- package/dist/features/repositories/get-repository-details/feature.spec.int.js.map +1 -0
- package/dist/features/repositories/get-repository-details/feature.spec.unit.d.ts +1 -0
- package/dist/features/repositories/get-repository-details/feature.spec.unit.js +255 -0
- package/dist/features/repositories/get-repository-details/feature.spec.unit.js.map +1 -0
- package/dist/features/repositories/get-repository-details/index.d.ts +2 -0
- package/dist/features/repositories/get-repository-details/index.js +19 -0
- package/dist/features/repositories/get-repository-details/index.js.map +1 -0
- package/dist/features/repositories/get-repository-details/schema.d.ts +2 -0
- package/dist/features/repositories/get-repository-details/schema.js +6 -0
- package/dist/features/repositories/get-repository-details/schema.js.map +1 -0
- package/dist/features/repositories/get-repository-tree/feature.d.ts +6 -0
- package/dist/features/repositories/get-repository-tree/feature.js +65 -0
- package/dist/features/repositories/get-repository-tree/feature.js.map +1 -0
- package/dist/features/repositories/get-repository-tree/feature.spec.unit.d.ts +1 -0
- package/dist/features/repositories/get-repository-tree/feature.spec.unit.js +69 -0
- package/dist/features/repositories/get-repository-tree/feature.spec.unit.js.map +1 -0
- package/dist/features/repositories/get-repository-tree/index.d.ts +1 -0
- package/dist/features/repositories/get-repository-tree/index.js +18 -0
- package/dist/features/repositories/get-repository-tree/index.js.map +1 -0
- package/dist/features/repositories/index.d.ts +21 -0
- package/dist/features/repositories/index.js +179 -0
- package/dist/features/repositories/index.js.map +1 -0
- package/dist/features/repositories/index.spec.unit.d.ts +1 -0
- package/dist/features/repositories/index.spec.unit.js +291 -0
- package/dist/features/repositories/index.spec.unit.js.map +1 -0
- package/dist/features/repositories/list-commits/feature.d.ts +6 -0
- package/dist/features/repositories/list-commits/feature.js +75 -0
- package/dist/features/repositories/list-commits/feature.js.map +1 -0
- package/dist/features/repositories/list-commits/feature.spec.unit.d.ts +1 -0
- package/dist/features/repositories/list-commits/feature.spec.unit.js +58 -0
- package/dist/features/repositories/list-commits/feature.spec.unit.js.map +1 -0
- package/dist/features/repositories/list-commits/index.d.ts +1 -0
- package/dist/features/repositories/list-commits/index.js +18 -0
- package/dist/features/repositories/list-commits/index.js.map +1 -0
- package/dist/features/repositories/list-repositories/feature.d.ts +10 -0
- package/dist/features/repositories/list-repositories/feature.js +25 -0
- package/dist/features/repositories/list-repositories/feature.js.map +1 -0
- package/dist/features/repositories/list-repositories/feature.spec.int.d.ts +1 -0
- package/dist/features/repositories/list-repositories/feature.spec.int.js +56 -0
- package/dist/features/repositories/list-repositories/feature.spec.int.js.map +1 -0
- package/dist/features/repositories/list-repositories/feature.spec.unit.d.ts +1 -0
- package/dist/features/repositories/list-repositories/feature.spec.unit.js +59 -0
- package/dist/features/repositories/list-repositories/feature.spec.unit.js.map +1 -0
- package/dist/features/repositories/list-repositories/index.d.ts +2 -0
- package/dist/features/repositories/list-repositories/index.js +19 -0
- package/dist/features/repositories/list-repositories/index.js.map +1 -0
- package/dist/features/repositories/list-repositories/schema.d.ts +2 -0
- package/dist/features/repositories/list-repositories/schema.js +6 -0
- package/dist/features/repositories/list-repositories/schema.js.map +1 -0
- package/dist/features/repositories/schemas.d.ts +237 -0
- package/dist/features/repositories/schemas.js +306 -0
- package/dist/features/repositories/schemas.js.map +1 -0
- package/dist/features/repositories/tool-definitions.d.ts +5 -0
- package/dist/features/repositories/tool-definitions.js +94 -0
- package/dist/features/repositories/tool-definitions.js.map +1 -0
- package/dist/features/repositories/types.d.ts +167 -0
- package/dist/features/repositories/types.js +3 -0
- package/dist/features/repositories/types.js.map +1 -0
- package/dist/features/search/index.d.ts +15 -0
- package/dist/features/search/index.js +65 -0
- package/dist/features/search/index.js.map +1 -0
- package/dist/features/search/index.spec.unit.d.ts +1 -0
- package/dist/features/search/index.spec.unit.js +143 -0
- package/dist/features/search/index.spec.unit.js.map +1 -0
- package/dist/features/search/schemas.d.ts +171 -0
- package/dist/features/search/schemas.js +159 -0
- package/dist/features/search/schemas.js.map +1 -0
- package/dist/features/search/schemas.spec.unit.d.ts +1 -0
- package/dist/features/search/schemas.spec.unit.js +39 -0
- package/dist/features/search/schemas.spec.unit.js.map +1 -0
- package/dist/features/search/search-code/feature.d.ts +10 -0
- package/dist/features/search/search-code/feature.js +177 -0
- package/dist/features/search/search-code/feature.js.map +1 -0
- package/dist/features/search/search-code/feature.spec.int.d.ts +1 -0
- package/dist/features/search/search-code/feature.spec.int.js +192 -0
- package/dist/features/search/search-code/feature.spec.int.js.map +1 -0
- package/dist/features/search/search-code/feature.spec.unit.d.ts +1 -0
- package/dist/features/search/search-code/feature.spec.unit.js +968 -0
- package/dist/features/search/search-code/feature.spec.unit.js.map +1 -0
- package/dist/features/search/search-code/index.d.ts +2 -0
- package/dist/features/search/search-code/index.js +19 -0
- package/dist/features/search/search-code/index.js.map +1 -0
- package/dist/features/search/search-wiki/feature.d.ts +10 -0
- package/dist/features/search/search-wiki/feature.js +132 -0
- package/dist/features/search/search-wiki/feature.js.map +1 -0
- package/dist/features/search/search-wiki/feature.spec.int.d.ts +1 -0
- package/dist/features/search/search-wiki/feature.spec.int.js +67 -0
- package/dist/features/search/search-wiki/feature.spec.int.js.map +1 -0
- package/dist/features/search/search-wiki/feature.spec.unit.d.ts +1 -0
- package/dist/features/search/search-wiki/feature.spec.unit.js +176 -0
- package/dist/features/search/search-wiki/feature.spec.unit.js.map +1 -0
- package/dist/features/search/search-wiki/index.d.ts +1 -0
- package/dist/features/search/search-wiki/index.js +18 -0
- package/dist/features/search/search-wiki/index.js.map +1 -0
- package/dist/features/search/search-work-items/feature.d.ts +10 -0
- package/dist/features/search/search-work-items/feature.js +118 -0
- package/dist/features/search/search-work-items/feature.js.map +1 -0
- package/dist/features/search/search-work-items/feature.spec.int.d.ts +1 -0
- package/dist/features/search/search-work-items/feature.spec.int.js +150 -0
- package/dist/features/search/search-work-items/feature.spec.int.js.map +1 -0
- package/dist/features/search/search-work-items/feature.spec.unit.d.ts +1 -0
- package/dist/features/search/search-work-items/feature.spec.unit.js +342 -0
- package/dist/features/search/search-work-items/feature.spec.unit.js.map +1 -0
- package/dist/features/search/search-work-items/index.d.ts +1 -0
- package/dist/features/search/search-work-items/index.js +18 -0
- package/dist/features/search/search-work-items/index.js.map +1 -0
- package/dist/features/search/tool-definitions.d.ts +5 -0
- package/dist/features/search/tool-definitions.js +26 -0
- package/dist/features/search/tool-definitions.js.map +1 -0
- package/dist/features/search/types.d.ts +537 -0
- package/dist/features/search/types.js +3 -0
- package/dist/features/search/types.js.map +1 -0
- package/dist/features/users/get-me/feature.d.ts +12 -0
- package/dist/features/users/get-me/feature.js +96 -0
- package/dist/features/users/get-me/feature.js.map +1 -0
- package/dist/features/users/get-me/feature.spec.int.d.ts +1 -0
- package/dist/features/users/get-me/feature.spec.int.js +33 -0
- package/dist/features/users/get-me/feature.spec.int.js.map +1 -0
- package/dist/features/users/get-me/feature.spec.unit.d.ts +1 -0
- package/dist/features/users/get-me/feature.spec.unit.js +164 -0
- package/dist/features/users/get-me/feature.spec.unit.js.map +1 -0
- package/dist/features/users/get-me/index.d.ts +2 -0
- package/dist/features/users/get-me/index.js +19 -0
- package/dist/features/users/get-me/index.js.map +1 -0
- package/dist/features/users/get-me/schema.d.ts +2 -0
- package/dist/features/users/get-me/schema.js +6 -0
- package/dist/features/users/get-me/schema.js.map +1 -0
- package/dist/features/users/index.d.ts +17 -0
- package/dist/features/users/index.js +52 -0
- package/dist/features/users/index.js.map +1 -0
- package/dist/features/users/index.spec.unit.d.ts +1 -0
- package/dist/features/users/index.spec.unit.js +71 -0
- package/dist/features/users/index.spec.unit.js.map +1 -0
- package/dist/features/users/schemas.d.ts +5 -0
- package/dist/features/users/schemas.js +9 -0
- package/dist/features/users/schemas.js.map +1 -0
- package/dist/features/users/tool-definitions.d.ts +5 -0
- package/dist/features/users/tool-definitions.js +16 -0
- package/dist/features/users/tool-definitions.js.map +1 -0
- package/dist/features/users/types.d.ts +17 -0
- package/dist/features/users/types.js +3 -0
- package/dist/features/users/types.js.map +1 -0
- package/dist/features/wikis/create-wiki/feature.d.ts +49 -0
- package/dist/features/wikis/create-wiki/feature.js +56 -0
- package/dist/features/wikis/create-wiki/feature.js.map +1 -0
- package/dist/features/wikis/create-wiki/feature.spec.int.d.ts +1 -0
- package/dist/features/wikis/create-wiki/feature.spec.int.js +44 -0
- package/dist/features/wikis/create-wiki/feature.spec.int.js.map +1 -0
- package/dist/features/wikis/create-wiki/feature.spec.unit.d.ts +1 -0
- package/dist/features/wikis/create-wiki/feature.spec.unit.js +168 -0
- package/dist/features/wikis/create-wiki/feature.spec.unit.js.map +1 -0
- package/dist/features/wikis/create-wiki/index.d.ts +2 -0
- package/dist/features/wikis/create-wiki/index.js +9 -0
- package/dist/features/wikis/create-wiki/index.js.map +1 -0
- package/dist/features/wikis/create-wiki/schema.d.ts +53 -0
- package/dist/features/wikis/create-wiki/schema.js +60 -0
- package/dist/features/wikis/create-wiki/schema.js.map +1 -0
- package/dist/features/wikis/create-wiki-page/feature.d.ts +18 -0
- package/dist/features/wikis/create-wiki-page/feature.js +95 -0
- package/dist/features/wikis/create-wiki-page/feature.js.map +1 -0
- package/dist/features/wikis/create-wiki-page/feature.spec.int.d.ts +1 -0
- package/dist/features/wikis/create-wiki-page/feature.spec.int.js +274 -0
- package/dist/features/wikis/create-wiki-page/feature.spec.int.js.map +1 -0
- package/dist/features/wikis/create-wiki-page/feature.spec.unit.d.ts +1 -0
- package/dist/features/wikis/create-wiki-page/feature.spec.unit.js +141 -0
- package/dist/features/wikis/create-wiki-page/feature.spec.unit.js.map +1 -0
- package/dist/features/wikis/create-wiki-page/index.d.ts +2 -0
- package/dist/features/wikis/create-wiki-page/index.js +8 -0
- package/dist/features/wikis/create-wiki-page/index.js.map +1 -0
- package/dist/features/wikis/create-wiki-page/schema.d.ts +26 -0
- package/dist/features/wikis/create-wiki-page/schema.js +36 -0
- package/dist/features/wikis/create-wiki-page/schema.js.map +1 -0
- package/dist/features/wikis/get-wiki-page/feature.d.ts +33 -0
- package/dist/features/wikis/get-wiki-page/feature.js +68 -0
- package/dist/features/wikis/get-wiki-page/feature.js.map +1 -0
- package/dist/features/wikis/get-wiki-page/feature.spec.int.d.ts +1 -0
- package/dist/features/wikis/get-wiki-page/feature.spec.int.js +58 -0
- package/dist/features/wikis/get-wiki-page/feature.spec.int.js.map +1 -0
- package/dist/features/wikis/get-wiki-page/feature.spec.unit.d.ts +1 -0
- package/dist/features/wikis/get-wiki-page/feature.spec.unit.js +121 -0
- package/dist/features/wikis/get-wiki-page/feature.spec.unit.js.map +1 -0
- package/dist/features/wikis/get-wiki-page/index.d.ts +2 -0
- package/dist/features/wikis/get-wiki-page/index.js +8 -0
- package/dist/features/wikis/get-wiki-page/index.js.map +1 -0
- package/dist/features/wikis/get-wiki-page/schema.d.ts +20 -0
- package/dist/features/wikis/get-wiki-page/schema.js +23 -0
- package/dist/features/wikis/get-wiki-page/schema.js.map +1 -0
- package/dist/features/wikis/get-wikis/feature.d.ts +25 -0
- package/dist/features/wikis/get-wikis/feature.js +37 -0
- package/dist/features/wikis/get-wikis/feature.js.map +1 -0
- package/dist/features/wikis/get-wikis/feature.spec.int.d.ts +1 -0
- package/dist/features/wikis/get-wikis/feature.spec.int.js +34 -0
- package/dist/features/wikis/get-wikis/feature.spec.int.js.map +1 -0
- package/dist/features/wikis/get-wikis/feature.spec.unit.d.ts +1 -0
- package/dist/features/wikis/get-wikis/feature.spec.unit.js +83 -0
- package/dist/features/wikis/get-wikis/feature.spec.unit.js.map +1 -0
- package/dist/features/wikis/get-wikis/index.d.ts +2 -0
- package/dist/features/wikis/get-wikis/index.js +8 -0
- package/dist/features/wikis/get-wikis/index.js.map +1 -0
- package/dist/features/wikis/get-wikis/schema.d.ts +14 -0
- package/dist/features/wikis/get-wikis/schema.js +21 -0
- package/dist/features/wikis/get-wikis/schema.js.map +1 -0
- package/dist/features/wikis/index.d.ts +16 -0
- package/dist/features/wikis/index.js +141 -0
- package/dist/features/wikis/index.js.map +1 -0
- package/dist/features/wikis/index.spec.unit.d.ts +1 -0
- package/dist/features/wikis/index.spec.unit.js +214 -0
- package/dist/features/wikis/index.spec.unit.js.map +1 -0
- package/dist/features/wikis/list-wiki-pages/feature.d.ts +20 -0
- package/dist/features/wikis/list-wiki-pages/feature.js +79 -0
- package/dist/features/wikis/list-wiki-pages/feature.js.map +1 -0
- package/dist/features/wikis/list-wiki-pages/feature.spec.int.d.ts +1 -0
- package/dist/features/wikis/list-wiki-pages/feature.spec.int.js +230 -0
- package/dist/features/wikis/list-wiki-pages/feature.spec.int.js.map +1 -0
- package/dist/features/wikis/list-wiki-pages/feature.spec.unit.d.ts +1 -0
- package/dist/features/wikis/list-wiki-pages/feature.spec.unit.js +427 -0
- package/dist/features/wikis/list-wiki-pages/feature.spec.unit.js.map +1 -0
- package/dist/features/wikis/list-wiki-pages/index.d.ts +2 -0
- package/dist/features/wikis/list-wiki-pages/index.js +8 -0
- package/dist/features/wikis/list-wiki-pages/index.js.map +1 -0
- package/dist/features/wikis/list-wiki-pages/schema.d.ts +18 -0
- package/dist/features/wikis/list-wiki-pages/schema.js +22 -0
- package/dist/features/wikis/list-wiki-pages/schema.js.map +1 -0
- package/dist/features/wikis/tool-definitions.d.ts +5 -0
- package/dist/features/wikis/tool-definitions.js +46 -0
- package/dist/features/wikis/tool-definitions.js.map +1 -0
- package/dist/features/wikis/update-wiki-page/feature.d.ts +12 -0
- package/dist/features/wikis/update-wiki-page/feature.js +63 -0
- package/dist/features/wikis/update-wiki-page/feature.js.map +1 -0
- package/dist/features/wikis/update-wiki-page/feature.spec.int.d.ts +1 -0
- package/dist/features/wikis/update-wiki-page/feature.spec.int.js +39 -0
- package/dist/features/wikis/update-wiki-page/feature.spec.int.js.map +1 -0
- package/dist/features/wikis/update-wiki-page/index.d.ts +2 -0
- package/dist/features/wikis/update-wiki-page/index.js +8 -0
- package/dist/features/wikis/update-wiki-page/index.js.map +1 -0
- package/dist/features/wikis/update-wiki-page/schema.d.ts +26 -0
- package/dist/features/wikis/update-wiki-page/schema.js +32 -0
- package/dist/features/wikis/update-wiki-page/schema.js.map +1 -0
- package/dist/features/work-items/__test__/fixtures.d.ts +9 -0
- package/dist/features/work-items/__test__/fixtures.js +28 -0
- package/dist/features/work-items/__test__/fixtures.js.map +1 -0
- package/dist/features/work-items/__test__/test-helpers.d.ts +13 -0
- package/dist/features/work-items/__test__/test-helpers.js +35 -0
- package/dist/features/work-items/__test__/test-helpers.js.map +1 -0
- package/dist/features/work-items/__test__/test-utils.d.ts +17 -0
- package/dist/features/work-items/__test__/test-utils.js +39 -0
- package/dist/features/work-items/__test__/test-utils.js.map +1 -0
- package/dist/features/work-items/create-work-item/feature.d.ts +12 -0
- package/dist/features/work-items/create-work-item/feature.js +99 -0
- package/dist/features/work-items/create-work-item/feature.js.map +1 -0
- package/dist/features/work-items/create-work-item/feature.spec.int.d.ts +1 -0
- package/dist/features/work-items/create-work-item/feature.spec.int.js +105 -0
- package/dist/features/work-items/create-work-item/feature.spec.int.js.map +1 -0
- package/dist/features/work-items/create-work-item/feature.spec.unit.d.ts +1 -0
- package/dist/features/work-items/create-work-item/feature.spec.unit.js +46 -0
- package/dist/features/work-items/create-work-item/feature.spec.unit.js.map +1 -0
- package/dist/features/work-items/create-work-item/index.d.ts +2 -0
- package/dist/features/work-items/create-work-item/index.js +19 -0
- package/dist/features/work-items/create-work-item/index.js.map +1 -0
- package/dist/features/work-items/create-work-item/schema.d.ts +2 -0
- package/dist/features/work-items/create-work-item/schema.js +6 -0
- package/dist/features/work-items/create-work-item/schema.js.map +1 -0
- package/dist/features/work-items/get-work-item/feature.d.ts +12 -0
- package/dist/features/work-items/get-work-item/feature.js +69 -0
- package/dist/features/work-items/get-work-item/feature.js.map +1 -0
- package/dist/features/work-items/get-work-item/feature.spec.int.d.ts +1 -0
- package/dist/features/work-items/get-work-item/feature.spec.int.js +138 -0
- package/dist/features/work-items/get-work-item/feature.spec.int.js.map +1 -0
- package/dist/features/work-items/get-work-item/feature.spec.unit.d.ts +1 -0
- package/dist/features/work-items/get-work-item/feature.spec.unit.js +31 -0
- package/dist/features/work-items/get-work-item/feature.spec.unit.js.map +1 -0
- package/dist/features/work-items/get-work-item/index.d.ts +2 -0
- package/dist/features/work-items/get-work-item/index.js +19 -0
- package/dist/features/work-items/get-work-item/index.js.map +1 -0
- package/dist/features/work-items/get-work-item/schema.d.ts +2 -0
- package/dist/features/work-items/get-work-item/schema.js +6 -0
- package/dist/features/work-items/get-work-item/schema.js.map +1 -0
- package/dist/features/work-items/index.d.ts +17 -0
- package/dist/features/work-items/index.js +122 -0
- package/dist/features/work-items/index.js.map +1 -0
- package/dist/features/work-items/index.spec.unit.d.ts +1 -0
- package/dist/features/work-items/index.spec.unit.js +232 -0
- package/dist/features/work-items/index.spec.unit.js.map +1 -0
- package/dist/features/work-items/list-work-items/feature.d.ts +10 -0
- package/dist/features/work-items/list-work-items/feature.js +89 -0
- package/dist/features/work-items/list-work-items/feature.js.map +1 -0
- package/dist/features/work-items/list-work-items/feature.spec.int.d.ts +1 -0
- package/dist/features/work-items/list-work-items/feature.spec.int.js +103 -0
- package/dist/features/work-items/list-work-items/feature.spec.int.js.map +1 -0
- package/dist/features/work-items/list-work-items/feature.spec.unit.d.ts +1 -0
- package/dist/features/work-items/list-work-items/feature.spec.unit.js +95 -0
- package/dist/features/work-items/list-work-items/feature.spec.unit.js.map +1 -0
- package/dist/features/work-items/list-work-items/index.d.ts +2 -0
- package/dist/features/work-items/list-work-items/index.js +19 -0
- package/dist/features/work-items/list-work-items/index.js.map +1 -0
- package/dist/features/work-items/list-work-items/schema.d.ts +2 -0
- package/dist/features/work-items/list-work-items/schema.js +6 -0
- package/dist/features/work-items/list-work-items/schema.js.map +1 -0
- package/dist/features/work-items/manage-work-item-link/feature.d.ts +24 -0
- package/dist/features/work-items/manage-work-item-link/feature.js +76 -0
- package/dist/features/work-items/manage-work-item-link/feature.js.map +1 -0
- package/dist/features/work-items/manage-work-item-link/feature.spec.int.d.ts +1 -0
- package/dist/features/work-items/manage-work-item-link/feature.spec.int.js +75 -0
- package/dist/features/work-items/manage-work-item-link/feature.spec.int.js.map +1 -0
- package/dist/features/work-items/manage-work-item-link/feature.spec.unit.d.ts +1 -0
- package/dist/features/work-items/manage-work-item-link/feature.spec.unit.js +137 -0
- package/dist/features/work-items/manage-work-item-link/feature.spec.unit.js.map +1 -0
- package/dist/features/work-items/manage-work-item-link/index.d.ts +2 -0
- package/dist/features/work-items/manage-work-item-link/index.js +8 -0
- package/dist/features/work-items/manage-work-item-link/index.js.map +1 -0
- package/dist/features/work-items/manage-work-item-link/schema.d.ts +2 -0
- package/dist/features/work-items/manage-work-item-link/schema.js +6 -0
- package/dist/features/work-items/manage-work-item-link/schema.js.map +1 -0
- package/dist/features/work-items/schemas.d.ts +147 -0
- package/dist/features/work-items/schemas.js +134 -0
- package/dist/features/work-items/schemas.js.map +1 -0
- package/dist/features/work-items/tool-definitions.d.ts +5 -0
- package/dist/features/work-items/tool-definitions.js +36 -0
- package/dist/features/work-items/tool-definitions.js.map +1 -0
- package/dist/features/work-items/types.d.ts +39 -0
- package/dist/features/work-items/types.js +3 -0
- package/dist/features/work-items/types.js.map +1 -0
- package/dist/features/work-items/update-work-item/feature.d.ts +12 -0
- package/dist/features/work-items/update-work-item/feature.js +103 -0
- package/dist/features/work-items/update-work-item/feature.js.map +1 -0
- package/dist/features/work-items/update-work-item/feature.spec.int.d.ts +1 -0
- package/dist/features/work-items/update-work-item/feature.spec.int.js +84 -0
- package/dist/features/work-items/update-work-item/feature.spec.int.js.map +1 -0
- package/dist/features/work-items/update-work-item/feature.spec.unit.d.ts +1 -0
- package/dist/features/work-items/update-work-item/feature.spec.unit.js +38 -0
- package/dist/features/work-items/update-work-item/feature.spec.unit.js.map +1 -0
- package/dist/features/work-items/update-work-item/index.d.ts +2 -0
- package/dist/features/work-items/update-work-item/index.js +19 -0
- package/dist/features/work-items/update-work-item/index.js.map +1 -0
- package/dist/features/work-items/update-work-item/schema.d.ts +2 -0
- package/dist/features/work-items/update-work-item/schema.js +6 -0
- package/dist/features/work-items/update-work-item/schema.js.map +1 -0
- package/dist/index.d.ts +14 -0
- package/dist/index.js +99 -0
- package/dist/index.js.map +1 -0
- package/dist/index.spec.unit.d.ts +1 -0
- package/dist/index.spec.unit.js +83 -0
- package/dist/index.spec.unit.js.map +1 -0
- package/dist/server.d.ts +21 -0
- package/dist/server.js +382 -0
- package/dist/server.js.map +1 -0
- package/dist/server.spec.e2e.d.ts +1 -0
- package/dist/server.spec.e2e.js +229 -0
- package/dist/server.spec.e2e.js.map +1 -0
- package/dist/setup-env.spec.unit.d.ts +1 -0
- package/dist/setup-env.spec.unit.js +146 -0
- package/dist/setup-env.spec.unit.js.map +1 -0
- package/dist/shared/api/client.d.ts +91 -0
- package/dist/shared/api/client.js +242 -0
- package/dist/shared/api/client.js.map +1 -0
- package/dist/shared/api/index.d.ts +1 -0
- package/dist/shared/api/index.js +18 -0
- package/dist/shared/api/index.js.map +1 -0
- package/dist/shared/auth/auth-factory.d.ts +43 -0
- package/dist/shared/auth/auth-factory.js +140 -0
- package/dist/shared/auth/auth-factory.js.map +1 -0
- package/dist/shared/auth/auth-factory.spec.unit.d.ts +1 -0
- package/dist/shared/auth/auth-factory.spec.unit.js +38 -0
- package/dist/shared/auth/auth-factory.spec.unit.js.map +1 -0
- package/dist/shared/auth/client-factory.d.ts +109 -0
- package/dist/shared/auth/client-factory.js +272 -0
- package/dist/shared/auth/client-factory.js.map +1 -0
- package/dist/shared/auth/index.d.ts +11 -0
- package/dist/shared/auth/index.js +18 -0
- package/dist/shared/auth/index.js.map +1 -0
- package/dist/shared/azure-devops-url.d.ts +17 -0
- package/dist/shared/azure-devops-url.js +120 -0
- package/dist/shared/azure-devops-url.js.map +1 -0
- package/dist/shared/azure-devops-url.spec.unit.d.ts +1 -0
- package/dist/shared/azure-devops-url.spec.unit.js +103 -0
- package/dist/shared/azure-devops-url.spec.unit.js.map +1 -0
- package/dist/shared/config/index.d.ts +1 -0
- package/dist/shared/config/index.js +18 -0
- package/dist/shared/config/index.js.map +1 -0
- package/dist/shared/config/version.d.ts +4 -0
- package/dist/shared/config/version.js +8 -0
- package/dist/shared/config/version.js.map +1 -0
- package/dist/shared/enums/index.d.ts +40 -0
- package/dist/shared/enums/index.js +87 -0
- package/dist/shared/enums/index.js.map +1 -0
- package/dist/shared/enums/index.spec.unit.d.ts +1 -0
- package/dist/shared/enums/index.spec.unit.js +75 -0
- package/dist/shared/enums/index.spec.unit.js.map +1 -0
- package/dist/shared/errors/azure-devops-errors.d.ts +107 -0
- package/dist/shared/errors/azure-devops-errors.js +161 -0
- package/dist/shared/errors/azure-devops-errors.js.map +1 -0
- package/dist/shared/errors/handle-request-error.d.ts +31 -0
- package/dist/shared/errors/handle-request-error.js +98 -0
- package/dist/shared/errors/handle-request-error.js.map +1 -0
- package/dist/shared/errors/index.d.ts +1 -0
- package/dist/shared/errors/index.js +18 -0
- package/dist/shared/errors/index.js.map +1 -0
- package/dist/shared/test/test-helpers.d.ts +20 -0
- package/dist/shared/test/test-helpers.js +57 -0
- package/dist/shared/test/test-helpers.js.map +1 -0
- package/dist/shared/types/config.d.ts +27 -0
- package/dist/shared/types/config.js +3 -0
- package/dist/shared/types/config.js.map +1 -0
- package/dist/shared/types/index.d.ts +1 -0
- package/dist/shared/types/index.js +18 -0
- package/dist/shared/types/index.js.map +1 -0
- package/dist/shared/types/request-handler.d.ts +21 -0
- package/dist/shared/types/request-handler.js +3 -0
- package/dist/shared/types/request-handler.js.map +1 -0
- package/dist/shared/types/tool-definition.d.ts +10 -0
- package/dist/shared/types/tool-definition.js +3 -0
- package/dist/shared/types/tool-definition.js.map +1 -0
- package/dist/shared/utils/serialize.d.ts +5 -0
- package/dist/shared/utils/serialize.js +15 -0
- package/dist/shared/utils/serialize.js.map +1 -0
- package/dist/utils/environment.d.ts +15 -0
- package/dist/utils/environment.js +52 -0
- package/dist/utils/environment.js.map +1 -0
- package/dist/utils/environment.spec.unit.d.ts +1 -0
- package/dist/utils/environment.spec.unit.js +64 -0
- package/dist/utils/environment.spec.unit.js.map +1 -0
- package/docs/SOLUTION_SUMMARY.md +145 -0
- package/docs/authentication.md +267 -0
- package/docs/azure-identity-authentication.md +187 -0
- package/docs/ci-setup.md +61 -0
- package/docs/examples/README.md +33 -0
- package/docs/examples/azure-cli-authentication.env +25 -0
- package/docs/examples/azure-identity-authentication.env +33 -0
- package/docs/examples/pat-authentication.env +24 -0
- package/docs/important-knowledge/azure-devops-rest-api-research.md +88 -0
- package/docs/important-knowledge/llm-tldr-cli.md +37 -0
- package/docs/npm-trusted-publishers-migration.md +142 -0
- package/docs/release-troubleshooting.md +153 -0
- package/docs/testing/README.md +140 -0
- package/docs/testing/setup.md +72 -0
- package/docs/tools/README.md +73 -0
- package/docs/tools/core-navigation.md +114 -0
- package/docs/tools/organizations.md +73 -0
- package/docs/tools/pipelines.md +532 -0
- package/docs/tools/projects.md +114 -0
- package/docs/tools/pull-requests.md +1108 -0
- package/docs/tools/repositories.md +610 -0
- package/docs/tools/resources.md +133 -0
- package/docs/tools/search.md +165 -0
- package/docs/tools/user-tools.md +39 -0
- package/docs/tools/wiki.md +192 -0
- package/docs/tools/work-items.md +182 -0
- package/package.json +125 -0
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
# Researching Azure DevOps REST APIs (Cloud + Server)
|
|
2
|
+
|
|
3
|
+
Source of truth: clone and browse the MicrosoftDocs REST API specs repo (Swagger 2.0 JSON).
|
|
4
|
+
If docs and specs disagree, treat specs as primary for request shapes and versions.
|
|
5
|
+
Repo: https://github.com/MicrosoftDocs/vsts-rest-api-specs.git
|
|
6
|
+
|
|
7
|
+
## Quick start
|
|
8
|
+
|
|
9
|
+
- Prefer cloning to a temporary location (ex: /tmp). Ask the human partner for a preferred location.
|
|
10
|
+
- Default path for this repo: ~/repos/vsts-rest-api-specs
|
|
11
|
+
|
|
12
|
+
```bash
|
|
13
|
+
# preferred: ask partner for target path
|
|
14
|
+
git clone https://github.com/MicrosoftDocs/vsts-rest-api-specs.git /tmp/vsts-rest-api-specs
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
## Repo layout (core)
|
|
18
|
+
|
|
19
|
+
```
|
|
20
|
+
vsts-rest-api-specs/
|
|
21
|
+
specification/
|
|
22
|
+
<area>/
|
|
23
|
+
<version>/
|
|
24
|
+
<area>.json
|
|
25
|
+
httpExamples/
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
Notes:
|
|
29
|
+
- Each `<area>` is an API area (build, git, wit, work, etc).
|
|
30
|
+
- Each `<version>` is an API version folder.
|
|
31
|
+
- Most version folders include a single `<area>.json` Swagger file and optional `httpExamples/`.
|
|
32
|
+
- `httpExamples/` contains request/response JSON (file names include HTTP method + operation).
|
|
33
|
+
|
|
34
|
+
## Versions: Services vs Server
|
|
35
|
+
|
|
36
|
+
- Azure DevOps Services (cloud): numeric folders like `5.0`, `6.1`, `7.2`.
|
|
37
|
+
- Azure DevOps Server (on‑prem): folders like `azure-devops-server-7.0`, `azure-devops-server-7.1`.
|
|
38
|
+
- Older TFS: folders like `tfs-4.1`.
|
|
39
|
+
|
|
40
|
+
Rule of thumb:
|
|
41
|
+
- Start with the exact server version folder if it exists.
|
|
42
|
+
- If missing, drop to the closest lower version for that area.
|
|
43
|
+
- Server lags Services; some areas are Services-only.
|
|
44
|
+
|
|
45
|
+
## How to find the right spec
|
|
46
|
+
|
|
47
|
+
1. Identify area: use `ls specification` to find the service name.
|
|
48
|
+
2. Pick version folder: cloud vs server rules above.
|
|
49
|
+
3. Open `<area>.json` and inspect:
|
|
50
|
+
- `info.version` (often includes `-preview` and optional `.n`)
|
|
51
|
+
- `paths` (endpoints)
|
|
52
|
+
- `parameters` (look for `api-Version-*` entries; descriptions include exact `api-version` values)
|
|
53
|
+
- `definitions` (request/response models)
|
|
54
|
+
4. Check `httpExamples/` for concrete request/response samples.
|
|
55
|
+
5. Use path placeholders: `{organization}` (Services) maps to org; on‑prem maps to collection.
|
|
56
|
+
|
|
57
|
+
## Helpful local searches
|
|
58
|
+
|
|
59
|
+
```bash
|
|
60
|
+
# find an area by name
|
|
61
|
+
rg --files -g 'git.json' specification
|
|
62
|
+
|
|
63
|
+
# scan endpoints for a keyword
|
|
64
|
+
rg -n "_apis" specification/git/7.2/git.json
|
|
65
|
+
|
|
66
|
+
# see path placeholders
|
|
67
|
+
rg -n '\\{organization\\}|\\{project\\}' specification/build/7.2/build.json
|
|
68
|
+
|
|
69
|
+
# find api-version parameters
|
|
70
|
+
rg -n '"api-version"' specification/build/7.2/build.json
|
|
71
|
+
|
|
72
|
+
# confirm area metadata
|
|
73
|
+
rg -n 'x-ms-vss-(area|resource-area-id)' specification/build/7.2/build.json
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
## Azure DevOps Server (on‑prem) specifics
|
|
77
|
+
|
|
78
|
+
- Specs still list `host: dev.azure.com` in many files; on‑prem uses your server host instead.
|
|
79
|
+
- Base path may include a collection segment (ex: `/tfs/{collection}`); use your server's actual base URL.
|
|
80
|
+
- Use the on‑prem version folder as the authority for routes and parameters.
|
|
81
|
+
- `api-version` is still required; use the exact value from the on‑prem spec.
|
|
82
|
+
- Check `httpExamples/` for base paths and collection/project shapes.
|
|
83
|
+
|
|
84
|
+
## Extra tips
|
|
85
|
+
|
|
86
|
+
- Many areas share naming: `build`, `git`, `wit`, `work`, `distributedTask`, `serviceEndpoint`, etc.
|
|
87
|
+
- Preview APIs show `-preview` in `info.version`; expect breaking changes.
|
|
88
|
+
- If you’re unsure which area owns an endpoint, search across specs with `rg -n`.
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
# llm-tldr CLI usage (uv)
|
|
2
|
+
|
|
3
|
+
Scope: CLI only. Skip MCP. Use uv instead of pip.
|
|
4
|
+
|
|
5
|
+
## Install (uv)
|
|
6
|
+
|
|
7
|
+
- Install once: `uv tool install llm-tldr`
|
|
8
|
+
|
|
9
|
+
## Core workflow
|
|
10
|
+
|
|
11
|
+
- `tldr tree <path>` for structure
|
|
12
|
+
- `tldr structure <path> --lang typescript` for symbols
|
|
13
|
+
- `tldr search "<regex>" <path>` for entry points
|
|
14
|
+
- `tldr extract <file> --function <name> --lang typescript` for focused details
|
|
15
|
+
- `tldr context <entry> --project . --lang typescript` for call graph context
|
|
16
|
+
|
|
17
|
+
## Indexing + daemon
|
|
18
|
+
|
|
19
|
+
- `tldr warm .` builds call graph cache
|
|
20
|
+
- `tldr daemon status` check daemon
|
|
21
|
+
- `tldr daemon notify <file> --project .` after edits (reindex after threshold)
|
|
22
|
+
|
|
23
|
+
## Semantic search (optional, heavy download)
|
|
24
|
+
|
|
25
|
+
- `tldr semantic index . --lang all --model all-MiniLM-L6-v2`
|
|
26
|
+
- `tldr semantic search "<query>" --path . --lang typescript`
|
|
27
|
+
|
|
28
|
+
## Example: URL-based server selection in this repo
|
|
29
|
+
|
|
30
|
+
1) Locate entry points:
|
|
31
|
+
- `tldr search "serverUrl|organizationUrl|extractOrgFromUrl" src`
|
|
32
|
+
2) Inspect extraction logic:
|
|
33
|
+
- `tldr extract src/features/users/get-me/feature.ts --function extractOrgFromUrl --lang typescript`
|
|
34
|
+
- `tldr extract src/features/search/search-code/feature.ts --function extractOrgFromUrl --lang typescript`
|
|
35
|
+
3) Check org derivation:
|
|
36
|
+
- `tldr extract src/utils/environment.ts --function getOrgNameFromUrl --lang typescript`
|
|
37
|
+
4) Summarize how URL patterns drive which host or org is used.
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
# NPM Trusted Publishers Migration Guide
|
|
2
|
+
|
|
3
|
+
This document explains the migration from token-based NPM publishing to NPM Trusted Publishers (Provenance) authentication.
|
|
4
|
+
|
|
5
|
+
## What Changed
|
|
6
|
+
|
|
7
|
+
### Workflow Changes
|
|
8
|
+
|
|
9
|
+
The `.github/workflows/release-please.yml` workflow has been updated to use NPM Trusted Publishers instead of token-based authentication:
|
|
10
|
+
|
|
11
|
+
**Before:**
|
|
12
|
+
```yaml
|
|
13
|
+
- name: Publish to npm
|
|
14
|
+
run: npm publish --access public
|
|
15
|
+
env:
|
|
16
|
+
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
**After:**
|
|
20
|
+
```yaml
|
|
21
|
+
- name: Publish to npm
|
|
22
|
+
run: npm publish --provenance --access public
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
### Key Differences
|
|
26
|
+
|
|
27
|
+
1. **No Secret Token Required**: The `NPM_TOKEN` secret is no longer needed
|
|
28
|
+
2. **Provenance Flag**: Added `--provenance` flag to enable trusted publishing
|
|
29
|
+
3. **OIDC Authentication**: Uses OpenID Connect (OIDC) tokens from GitHub Actions
|
|
30
|
+
4. **Enhanced Security**: Provides cryptographic proof of package origin
|
|
31
|
+
|
|
32
|
+
## Benefits of NPM Trusted Publishers
|
|
33
|
+
|
|
34
|
+
1. **Improved Security**: No long-lived tokens that can be leaked or stolen
|
|
35
|
+
2. **Supply Chain Transparency**: Automated provenance statements prove package authenticity
|
|
36
|
+
3. **Reduced Maintenance**: No need to rotate or manage NPM tokens
|
|
37
|
+
4. **Verifiable Builds**: Anyone can verify that packages were built by GitHub Actions from specific commits
|
|
38
|
+
|
|
39
|
+
## NPM Configuration Required
|
|
40
|
+
|
|
41
|
+
To complete the migration, you need to configure the package on npmjs.com:
|
|
42
|
+
|
|
43
|
+
### Step 1: Log into NPM
|
|
44
|
+
|
|
45
|
+
Go to https://www.npmjs.com/ and log in to your account.
|
|
46
|
+
|
|
47
|
+
### Step 2: Configure Trusted Publishers
|
|
48
|
+
|
|
49
|
+
1. Navigate to your package: https://www.npmjs.com/package/@tiberriver256/mcp-server-azure-devops
|
|
50
|
+
2. Click on "Settings" tab
|
|
51
|
+
3. Scroll to "Publishing access" section
|
|
52
|
+
4. Click "Add trusted publisher"
|
|
53
|
+
5. Select "GitHub Actions"
|
|
54
|
+
6. Fill in the details:
|
|
55
|
+
- **Repository owner**: `Tiberriver256`
|
|
56
|
+
- **Repository name**: `mcp-server-azure-devops`
|
|
57
|
+
- **Workflow**: `release-please.yml`
|
|
58
|
+
- **Environment** (optional): Leave empty unless using GitHub environments
|
|
59
|
+
7. Click "Add"
|
|
60
|
+
|
|
61
|
+
### Step 3: Verify Configuration
|
|
62
|
+
|
|
63
|
+
After adding the trusted publisher configuration:
|
|
64
|
+
1. The workflow will authenticate using OIDC tokens
|
|
65
|
+
2. No `NPM_TOKEN` secret is needed
|
|
66
|
+
3. Publishes will include provenance attestations
|
|
67
|
+
|
|
68
|
+
## GitHub Actions Requirements
|
|
69
|
+
|
|
70
|
+
The workflow already has the necessary permissions configured:
|
|
71
|
+
|
|
72
|
+
```yaml
|
|
73
|
+
permissions:
|
|
74
|
+
contents: write
|
|
75
|
+
pull-requests: write
|
|
76
|
+
issues: write
|
|
77
|
+
id-token: write # Required for OIDC authentication
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
The `id-token: write` permission allows GitHub Actions to generate OIDC tokens for authentication with NPM.
|
|
81
|
+
|
|
82
|
+
## Verification
|
|
83
|
+
|
|
84
|
+
After the next release, you can verify provenance is working:
|
|
85
|
+
|
|
86
|
+
### Check Provenance on NPM
|
|
87
|
+
|
|
88
|
+
1. Visit your package page on npmjs.com
|
|
89
|
+
2. Look for the "Provenance" badge on the package version
|
|
90
|
+
3. Click the badge to see the build details and GitHub Actions workflow information
|
|
91
|
+
|
|
92
|
+
### Using npm CLI
|
|
93
|
+
|
|
94
|
+
```bash
|
|
95
|
+
# View provenance information for a specific version
|
|
96
|
+
npm view @tiberriver256/mcp-server-azure-devops@VERSION --json | jq .dist.attestations
|
|
97
|
+
|
|
98
|
+
# Or check the latest version
|
|
99
|
+
npm view @tiberriver256/mcp-server-azure-devops --json | jq .dist.attestations
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
## Troubleshooting
|
|
103
|
+
|
|
104
|
+
### Publishing Fails with "Cannot verify OIDC token"
|
|
105
|
+
|
|
106
|
+
**Cause**: NPM Trusted Publishers is not configured for the package.
|
|
107
|
+
|
|
108
|
+
**Solution**: Follow [Step 2: Configure Trusted Publishers](#step-2-configure-trusted-publishers) above.
|
|
109
|
+
|
|
110
|
+
### Publishing Fails with "Missing id-token permission"
|
|
111
|
+
|
|
112
|
+
**Cause**: The workflow doesn't have the `id-token: write` permission.
|
|
113
|
+
|
|
114
|
+
**Solution**: This is already configured in the workflow. Ensure no environment-level permissions override it.
|
|
115
|
+
|
|
116
|
+
### NPM Still Asking for Token
|
|
117
|
+
|
|
118
|
+
**Cause**: The `--provenance` flag is not being used, or trusted publishers is not configured.
|
|
119
|
+
|
|
120
|
+
**Solution**:
|
|
121
|
+
1. Verify the workflow includes `--provenance` flag
|
|
122
|
+
2. Ensure trusted publishers is configured on npmjs.com
|
|
123
|
+
|
|
124
|
+
## Rolling Back
|
|
125
|
+
|
|
126
|
+
If you need to roll back to token-based publishing:
|
|
127
|
+
|
|
128
|
+
1. Revert the workflow changes
|
|
129
|
+
2. Add the `NPM_TOKEN` secret back to GitHub repository secrets
|
|
130
|
+
3. Remove the `--provenance` flag from the publish command
|
|
131
|
+
|
|
132
|
+
## Additional Resources
|
|
133
|
+
|
|
134
|
+
- [NPM Provenance Documentation](https://docs.npmjs.com/generating-provenance-statements)
|
|
135
|
+
- [GitHub Actions OIDC Documentation](https://docs.github.com/en/actions/deployment/security-hardening-your-deployments/about-security-hardening-with-openid-connect)
|
|
136
|
+
- [NPM Trusted Publishers Guide](https://github.blog/2023-04-19-introducing-npm-package-provenance/)
|
|
137
|
+
|
|
138
|
+
## Next Steps
|
|
139
|
+
|
|
140
|
+
1. **Configure NPM Trusted Publishers**: Follow the steps in [NPM Configuration Required](#npm-configuration-required)
|
|
141
|
+
2. **Test the Workflow**: Create a test release or manually trigger the workflow to verify publishing works
|
|
142
|
+
3. **Remove NPM_TOKEN Secret**: After confirming everything works, you can delete the `NPM_TOKEN` secret from GitHub repository settings (Settings > Secrets and variables > Actions)
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
# Release Troubleshooting Guide
|
|
2
|
+
|
|
3
|
+
This guide helps you resolve common issues with the release-please automation and npm publishing.
|
|
4
|
+
|
|
5
|
+
## Table of Contents
|
|
6
|
+
|
|
7
|
+
- [Understanding the Release Process](#understanding-the-release-process)
|
|
8
|
+
- [Common Issues](#common-issues)
|
|
9
|
+
- [Failed npm Publish](#failed-npm-publish)
|
|
10
|
+
- [Release Already Exists](#release-already-exists)
|
|
11
|
+
- [Manual Release Needed](#manual-release-needed)
|
|
12
|
+
- [Solutions](#solutions)
|
|
13
|
+
- [Re-publishing an Existing Release](#re-publishing-an-existing-release)
|
|
14
|
+
- [Force a New Release](#force-a-new-release)
|
|
15
|
+
|
|
16
|
+
## Understanding the Release Process
|
|
17
|
+
|
|
18
|
+
The release process uses [release-please](https://github.com/googleapis/release-please) to automate releases:
|
|
19
|
+
|
|
20
|
+
1. **Automated PR Creation**: When commits are pushed to `main`, release-please analyzes conventional commits and creates/updates a release PR
|
|
21
|
+
2. **Release Creation**: When the release PR is merged, release-please:
|
|
22
|
+
- Creates a GitHub release with the new version tag
|
|
23
|
+
- Updates `CHANGELOG.md`, `package.json`, and `.github/release-please-manifest.json`
|
|
24
|
+
3. **npm Publishing**: After a release is created, the workflow automatically:
|
|
25
|
+
- Checks out the tagged version
|
|
26
|
+
- Installs dependencies
|
|
27
|
+
- Builds the package
|
|
28
|
+
- Publishes to npm using [NPM Trusted Publishers](https://docs.npmjs.com/generating-provenance-statements) with provenance (no NPM_TOKEN needed)
|
|
29
|
+
|
|
30
|
+
## Common Issues
|
|
31
|
+
|
|
32
|
+
### Failed npm Publish
|
|
33
|
+
|
|
34
|
+
**Symptom**: GitHub release exists, but the package is not on npm.
|
|
35
|
+
|
|
36
|
+
**Cause**: The npm publish step failed (e.g., OIDC authentication error, network issue, npm downtime, or GitHub Actions permissions issue).
|
|
37
|
+
|
|
38
|
+
**How to verify**:
|
|
39
|
+
```bash
|
|
40
|
+
# Check if version exists on npm
|
|
41
|
+
npm view @tiberriver256/mcp-server-azure-devops@0.1.44
|
|
42
|
+
|
|
43
|
+
# Check latest version
|
|
44
|
+
npm view @tiberriver256/mcp-server-azure-devops version
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
**Solution**: [Re-publish the existing release](#re-publishing-an-existing-release)
|
|
48
|
+
|
|
49
|
+
### Release Already Exists
|
|
50
|
+
|
|
51
|
+
**Symptom**: Trying to re-run the workflow, but all publish steps are skipped.
|
|
52
|
+
|
|
53
|
+
**Cause**: Release-please tracks state via the manifest file (`.github/release-please-manifest.json`). If the version in the manifest matches `package.json`, it considers the release complete and doesn't set `release_created=true`.
|
|
54
|
+
|
|
55
|
+
**Solution**: [Re-publish the existing release](#re-publishing-an-existing-release) or [Force a new release](#force-a-new-release)
|
|
56
|
+
|
|
57
|
+
### Manual Release Needed
|
|
58
|
+
|
|
59
|
+
**Symptom**: Need to publish a hotfix or re-release immediately.
|
|
60
|
+
|
|
61
|
+
**Solution**: [Re-publish the existing release](#re-publishing-an-existing-release)
|
|
62
|
+
|
|
63
|
+
## Solutions
|
|
64
|
+
|
|
65
|
+
### Re-publishing an Existing Release
|
|
66
|
+
|
|
67
|
+
Use this when a GitHub release exists but npm publish failed. This will publish the existing tagged version to npm without creating a new release.
|
|
68
|
+
|
|
69
|
+
**Steps**:
|
|
70
|
+
|
|
71
|
+
1. Go to the [Actions tab](../../actions/workflows/release-please.yml) in GitHub
|
|
72
|
+
2. Click "Run workflow" dropdown (you'll see this on the right side)
|
|
73
|
+
3. Enter the **full git tag** in the "tag" field (e.g., `mcp-server-azure-devops-v0.1.44`)
|
|
74
|
+
- Find tags in the [releases page](../../releases) or [tags page](../../tags)
|
|
75
|
+
4. Click "Run workflow"
|
|
76
|
+
|
|
77
|
+
**What this does**:
|
|
78
|
+
- Checks out the exact code from that tag
|
|
79
|
+
- Builds the package
|
|
80
|
+
- Publishes to npm
|
|
81
|
+
- Does NOT create a new GitHub release
|
|
82
|
+
- Does NOT modify version files or CHANGELOG
|
|
83
|
+
|
|
84
|
+
**Example**:
|
|
85
|
+
```
|
|
86
|
+
Tag: mcp-server-azure-devops-v0.1.44
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
### Force a New Release
|
|
90
|
+
|
|
91
|
+
Use this when you need to create a completely new release (incrementing the version number).
|
|
92
|
+
|
|
93
|
+
**Option 1: Let release-please handle it (Recommended)**
|
|
94
|
+
|
|
95
|
+
1. Make a new commit with conventional commit format:
|
|
96
|
+
```bash
|
|
97
|
+
git commit --allow-empty -m "chore: trigger new release"
|
|
98
|
+
git push origin main
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
2. Release-please will create a new release PR
|
|
102
|
+
3. Merge the PR to trigger the release
|
|
103
|
+
|
|
104
|
+
**Option 2: Manual version bump**
|
|
105
|
+
|
|
106
|
+
1. Update version in `package.json`:
|
|
107
|
+
```bash
|
|
108
|
+
npm version patch # for 0.1.44 -> 0.1.45
|
|
109
|
+
# or
|
|
110
|
+
npm version minor # for 0.1.44 -> 0.2.0
|
|
111
|
+
# or
|
|
112
|
+
npm version major # for 0.1.44 -> 1.0.0
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
2. Update `.github/release-please-manifest.json` to match the new version
|
|
116
|
+
|
|
117
|
+
3. Update `CHANGELOG.md` with the new version section
|
|
118
|
+
|
|
119
|
+
4. Commit and push:
|
|
120
|
+
```bash
|
|
121
|
+
git add package.json package-lock.json .github/release-please-manifest.json CHANGELOG.md
|
|
122
|
+
git commit -m "chore: release v0.1.45"
|
|
123
|
+
git push origin main
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
5. Create a tag and release manually:
|
|
127
|
+
```bash
|
|
128
|
+
git tag mcp-server-azure-devops-v0.1.45
|
|
129
|
+
git push origin mcp-server-azure-devops-v0.1.45
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
6. Then use [Re-publish the existing release](#re-publishing-an-existing-release) to publish to npm
|
|
133
|
+
|
|
134
|
+
## Verification
|
|
135
|
+
|
|
136
|
+
After publishing, verify the package is available:
|
|
137
|
+
|
|
138
|
+
```bash
|
|
139
|
+
# Check specific version
|
|
140
|
+
npm view @tiberriver256/mcp-server-azure-devops@0.1.44
|
|
141
|
+
|
|
142
|
+
# Check latest version
|
|
143
|
+
npm view @tiberriver256/mcp-server-azure-devops version
|
|
144
|
+
|
|
145
|
+
# Try installing
|
|
146
|
+
npm install @tiberriver256/mcp-server-azure-devops@0.1.44
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
## Additional Resources
|
|
150
|
+
|
|
151
|
+
- [Release Please Documentation](https://github.com/googleapis/release-please)
|
|
152
|
+
- [Conventional Commits](https://www.conventionalcommits.org/)
|
|
153
|
+
- [npm Publishing Guide](https://docs.npmjs.com/cli/v9/commands/npm-publish)
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
# Testing Trophy Approach
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
|
|
5
|
+
This project follows the Testing Trophy approach advocated by Kent C. Dodds instead of the traditional Testing Pyramid. The Testing Trophy emphasizes tests that provide higher confidence with less maintenance cost, focusing on how users actually interact with our software.
|
|
6
|
+
|
|
7
|
+

|
|
8
|
+
|
|
9
|
+
## Key Principles
|
|
10
|
+
|
|
11
|
+
1. **"The more your tests resemble the way your software is used, the more confidence they can give you."** - Kent C. Dodds
|
|
12
|
+
2. Focus on testing behavior and interfaces rather than implementation details
|
|
13
|
+
3. Maximize return on investment where "return" is confidence and "investment" is time
|
|
14
|
+
4. Use arrange/act/assert pattern for all tests
|
|
15
|
+
5. Co-locate tests with the code they test following Feature Sliced Design
|
|
16
|
+
|
|
17
|
+
## Test Types
|
|
18
|
+
|
|
19
|
+
### Static Analysis (The Base)
|
|
20
|
+
|
|
21
|
+
- TypeScript for type checking
|
|
22
|
+
- ESLint for code quality and consistency
|
|
23
|
+
- Runtime type checking with Zod
|
|
24
|
+
- Formatter (Prettier)
|
|
25
|
+
|
|
26
|
+
These tools catch many issues before tests are even run and provide immediate feedback during development.
|
|
27
|
+
|
|
28
|
+
### Unit Tests (Small Layer)
|
|
29
|
+
|
|
30
|
+
- Located in `*.spec.unit.ts` files
|
|
31
|
+
- Co-located with the code they test
|
|
32
|
+
- Focus on testing complex business logic in isolation
|
|
33
|
+
- Minimal mocking where necessary
|
|
34
|
+
- Run with `npm run test:unit`
|
|
35
|
+
|
|
36
|
+
Unit tests should be used sparingly for complex logic that requires isolated testing. We don't aim for 100% coverage with unit tests.
|
|
37
|
+
|
|
38
|
+
### Integration Tests (Main Focus)
|
|
39
|
+
|
|
40
|
+
- Located in `*.spec.int.ts` files
|
|
41
|
+
- Co-located with the features they test
|
|
42
|
+
- Test how modules work together
|
|
43
|
+
- Focus on testing behavior, not implementation
|
|
44
|
+
- Run with `npm run test:int`
|
|
45
|
+
|
|
46
|
+
These provide the bulk of our test coverage and confidence. They verify that different parts of the system work together correctly.
|
|
47
|
+
|
|
48
|
+
### End-to-End Tests (Small Cap)
|
|
49
|
+
|
|
50
|
+
- Located in `*.spec.e2e.ts` files
|
|
51
|
+
- **Only exists at the server level** (e.g., `server.spec.e2e.ts`) where they use the MCP client
|
|
52
|
+
- Test complete user flows across the entire application
|
|
53
|
+
- Provide the highest confidence but are slower and more costly to maintain
|
|
54
|
+
- Run with `npm run test:e2e`
|
|
55
|
+
|
|
56
|
+
End-to-end tests should only be created for critical user journeys that span the entire application. They should use the MCP client from `@modelcontextprotocol/sdk` to test the server as a black box, similar to how real users would interact with it.
|
|
57
|
+
|
|
58
|
+
For testing interactions with external APIs like Azure DevOps, use integration tests (`*.spec.int.ts`) instead, which are co-located with the feature implementations.
|
|
59
|
+
|
|
60
|
+
## Test File Naming Convention
|
|
61
|
+
|
|
62
|
+
- `*.spec.unit.ts` - For minimal unit tests (essential logic only)
|
|
63
|
+
- `*.spec.int.ts` - For integration tests (main focus)
|
|
64
|
+
- `*.spec.e2e.ts` - For end-to-end tests
|
|
65
|
+
|
|
66
|
+
## Test Location
|
|
67
|
+
|
|
68
|
+
We co-locate unit and integration tests with the code they're testing following Feature Sliced Design principles:
|
|
69
|
+
|
|
70
|
+
```
|
|
71
|
+
src/
|
|
72
|
+
features/
|
|
73
|
+
feature-name/
|
|
74
|
+
feature.ts
|
|
75
|
+
feature.spec.unit.ts # Unit tests
|
|
76
|
+
feature.spec.int.ts # Integration tests
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
E2E tests are only located at the server level since they test the full application:
|
|
80
|
+
|
|
81
|
+
```
|
|
82
|
+
src/
|
|
83
|
+
server.ts
|
|
84
|
+
server.spec.e2e.ts # E2E tests using the MCP client
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
This way, tests stay close to the code they're testing, making it easier to:
|
|
88
|
+
- Find tests when working on a feature
|
|
89
|
+
- Understand the relationship between tests and code
|
|
90
|
+
- Refactor code and tests together
|
|
91
|
+
- Maintain consistency between implementations and tests
|
|
92
|
+
|
|
93
|
+
## The Arrange/Act/Assert Pattern
|
|
94
|
+
|
|
95
|
+
All tests should follow the Arrange/Act/Assert pattern:
|
|
96
|
+
|
|
97
|
+
```typescript
|
|
98
|
+
test('should do something', () => {
|
|
99
|
+
// Arrange - set up the test
|
|
100
|
+
const input = 'something';
|
|
101
|
+
|
|
102
|
+
// Act - perform the action being tested
|
|
103
|
+
const result = doSomething(input);
|
|
104
|
+
|
|
105
|
+
// Assert - check that the action had the expected result
|
|
106
|
+
expect(result).toBe('expected output');
|
|
107
|
+
});
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
## Running Tests
|
|
111
|
+
|
|
112
|
+
- Run all tests: `npm test`
|
|
113
|
+
- Run unit tests: `npm run test:unit`
|
|
114
|
+
- Run integration tests: `npm run test:int`
|
|
115
|
+
- Run E2E tests: `npm run test:e2e`
|
|
116
|
+
|
|
117
|
+
## CI/CD Integration
|
|
118
|
+
|
|
119
|
+
Our CI/CD pipeline runs all test levels to ensure code quality:
|
|
120
|
+
|
|
121
|
+
1. Static analysis with TypeScript and ESLint
|
|
122
|
+
2. Unit tests
|
|
123
|
+
3. Integration tests
|
|
124
|
+
4. End-to-end tests
|
|
125
|
+
|
|
126
|
+
## Best Practices
|
|
127
|
+
|
|
128
|
+
1. Focus on integration tests for the bulk of your test coverage
|
|
129
|
+
2. Write unit tests only for complex business logic
|
|
130
|
+
3. Avoid testing implementation details
|
|
131
|
+
4. Use real dependencies when possible rather than mocks
|
|
132
|
+
5. Keep E2E tests focused on critical user flows
|
|
133
|
+
6. Use the arrange/act/assert pattern consistently
|
|
134
|
+
7. Co-locate tests with the code they're testing
|
|
135
|
+
|
|
136
|
+
## References
|
|
137
|
+
|
|
138
|
+
- [The Testing Trophy and Testing Classifications](https://kentcdodds.com/blog/the-testing-trophy-and-testing-classifications) by Kent C. Dodds
|
|
139
|
+
- [Testing of Microservices](https://engineering.atspotify.com/2018/01/testing-of-microservices/) (Testing Honeycomb approach) by Spotify Engineering
|
|
140
|
+
- [Feature Sliced Design](https://feature-sliced.design/) for co-location of tests with feature implementations
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
# Testing Setup Guide
|
|
2
|
+
|
|
3
|
+
## Environment Variables
|
|
4
|
+
|
|
5
|
+
Tests that interact with Azure DevOps APIs (integration and e2e tests) require environment variables to run properly. These variables are automatically loaded from your `.env` file during test execution.
|
|
6
|
+
|
|
7
|
+
Required variables:
|
|
8
|
+
```
|
|
9
|
+
AZURE_DEVOPS_ORG_URL=https://dev.azure.com/your-organization
|
|
10
|
+
AZURE_DEVOPS_PAT=your-personal-access-token
|
|
11
|
+
AZURE_DEVOPS_DEFAULT_PROJECT=your-project-name
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
## Test Structure
|
|
15
|
+
|
|
16
|
+
Tests in this project are co-located with the code they're testing:
|
|
17
|
+
|
|
18
|
+
```
|
|
19
|
+
src/
|
|
20
|
+
features/
|
|
21
|
+
feature-name/
|
|
22
|
+
feature.ts
|
|
23
|
+
feature.spec.unit.ts # Unit tests
|
|
24
|
+
feature.spec.int.ts # Integration tests
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
E2E tests are only located at the server level:
|
|
28
|
+
|
|
29
|
+
```
|
|
30
|
+
src/
|
|
31
|
+
server.ts
|
|
32
|
+
server.spec.e2e.ts # E2E tests
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
## Import Pattern
|
|
36
|
+
|
|
37
|
+
We use path aliases to make imports cleaner and easier to maintain. Instead of relative imports like:
|
|
38
|
+
|
|
39
|
+
```typescript
|
|
40
|
+
import { someFunction } from '../../../../shared/utils';
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
You can use the `@/` path alias:
|
|
44
|
+
|
|
45
|
+
```typescript
|
|
46
|
+
import { someFunction } from '@/shared/utils';
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
### Test Helpers
|
|
50
|
+
|
|
51
|
+
Test helpers are located in a centralized location for all tests:
|
|
52
|
+
|
|
53
|
+
```typescript
|
|
54
|
+
import { getTestConnection, shouldSkipIntegrationTest } from '@/shared/test/test-helpers';
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
## Running Tests
|
|
58
|
+
|
|
59
|
+
- Unit tests: `npm run test:unit`
|
|
60
|
+
- Integration tests: `npm run test:int`
|
|
61
|
+
- E2E tests: `npm run test:e2e`
|
|
62
|
+
- All tests: `npm test`
|
|
63
|
+
|
|
64
|
+
## VSCode Integration
|
|
65
|
+
|
|
66
|
+
The project includes VSCode settings that:
|
|
67
|
+
|
|
68
|
+
1. Show proper test icons for `*.spec.*.ts` files
|
|
69
|
+
2. Enable file nesting to group test files with their implementation
|
|
70
|
+
3. Configure TypeScript to prefer path aliases over relative imports
|
|
71
|
+
|
|
72
|
+
These settings are stored in `.vscode/settings.json`.
|