@achieveai/azuredevops-mcp 1.3.17 → 1.3.19

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 (119) hide show
  1. package/README.md +76 -0
  2. package/dist/Interfaces/Common.js +37 -1
  3. package/dist/Interfaces/Common.js.map +1 -1
  4. package/dist/Services/AzureDevOpsService.js +234 -32
  5. package/dist/Services/AzureDevOpsService.js.map +1 -1
  6. package/dist/Services/BoardsSprintsService.js +111 -13
  7. package/dist/Services/BoardsSprintsService.js.map +1 -1
  8. package/dist/Services/BuildService.js +157 -24
  9. package/dist/Services/BuildService.js.map +1 -1
  10. package/dist/Services/GitService.js +26 -3
  11. package/dist/Services/GitService.js.map +1 -1
  12. package/dist/Services/ProjectService.js +47 -6
  13. package/dist/Services/ProjectService.js.map +1 -1
  14. package/dist/Services/WorkItemService.js +183 -170
  15. package/dist/Services/WorkItemService.js.map +1 -1
  16. package/dist/Tools/BoardsSprintsTools.js +2 -8
  17. package/dist/Tools/BoardsSprintsTools.js.map +1 -1
  18. package/dist/Tools/BuildTools.js +5 -8
  19. package/dist/Tools/BuildTools.js.map +1 -1
  20. package/dist/Tools/GitTools.js +177 -62
  21. package/dist/Tools/GitTools.js.map +1 -1
  22. package/dist/Tools/WorkItemTools.js +110 -172
  23. package/dist/Tools/WorkItemTools.js.map +1 -1
  24. package/dist/index.js +31 -26
  25. package/dist/index.js.map +1 -1
  26. package/dist/utils/apiUsageGuidance.js +336 -0
  27. package/dist/utils/apiUsageGuidance.js.map +1 -0
  28. package/dist/utils/formatHelpers.js +15 -0
  29. package/dist/utils/formatHelpers.js.map +1 -1
  30. package/package.json +3 -3
  31. package/dist/Services/BuildService.project.test.js +0 -91
  32. package/dist/Services/BuildService.project.test.js.map +0 -1
  33. package/dist/Services/GitService.project.test.js +0 -407
  34. package/dist/Services/GitService.project.test.js.map +0 -1
  35. package/dist/package.json +0 -59
  36. package/dist/src/Interfaces/AIAssisted.js +0 -3
  37. package/dist/src/Interfaces/AIAssisted.js.map +0 -1
  38. package/dist/src/Interfaces/ArtifactManagement.js +0 -3
  39. package/dist/src/Interfaces/ArtifactManagement.js.map +0 -1
  40. package/dist/src/Interfaces/AzureDevOps.js +0 -3
  41. package/dist/src/Interfaces/AzureDevOps.js.map +0 -1
  42. package/dist/src/Interfaces/BoardsAndSprints.js +0 -3
  43. package/dist/src/Interfaces/BoardsAndSprints.js.map +0 -1
  44. package/dist/src/Interfaces/CodeAndRepositories.js +0 -3
  45. package/dist/src/Interfaces/CodeAndRepositories.js.map +0 -1
  46. package/dist/src/Interfaces/Common.js +0 -134
  47. package/dist/src/Interfaces/Common.js.map +0 -1
  48. package/dist/src/Interfaces/CostResourceManagement.js +0 -3
  49. package/dist/src/Interfaces/CostResourceManagement.js.map +0 -1
  50. package/dist/src/Interfaces/DevSecOps.js +0 -3
  51. package/dist/src/Interfaces/DevSecOps.js.map +0 -1
  52. package/dist/src/Interfaces/ExternalIntegrations.js +0 -3
  53. package/dist/src/Interfaces/ExternalIntegrations.js.map +0 -1
  54. package/dist/src/Interfaces/HybridCrossPlatform.js +0 -3
  55. package/dist/src/Interfaces/HybridCrossPlatform.js.map +0 -1
  56. package/dist/src/Interfaces/Pipelines.js +0 -3
  57. package/dist/src/Interfaces/Pipelines.js.map +0 -1
  58. package/dist/src/Interfaces/ProjectManagement.js +0 -3
  59. package/dist/src/Interfaces/ProjectManagement.js.map +0 -1
  60. package/dist/src/Interfaces/TestingCapabilities.js +0 -3
  61. package/dist/src/Interfaces/TestingCapabilities.js.map +0 -1
  62. package/dist/src/Interfaces/Wiki.js +0 -3
  63. package/dist/src/Interfaces/Wiki.js.map +0 -1
  64. package/dist/src/Interfaces/WorkItems.js +0 -3
  65. package/dist/src/Interfaces/WorkItems.js.map +0 -1
  66. package/dist/src/Services/AIAssistedDevelopmentService.js +0 -195
  67. package/dist/src/Services/AIAssistedDevelopmentService.js.map +0 -1
  68. package/dist/src/Services/ArtifactManagementService.js +0 -346
  69. package/dist/src/Services/ArtifactManagementService.js.map +0 -1
  70. package/dist/src/Services/AzureDevOpsService.js +0 -385
  71. package/dist/src/Services/AzureDevOpsService.js.map +0 -1
  72. package/dist/src/Services/BoardsSprintsService.js +0 -339
  73. package/dist/src/Services/BoardsSprintsService.js.map +0 -1
  74. package/dist/src/Services/BuildService.js +0 -405
  75. package/dist/src/Services/BuildService.js.map +0 -1
  76. package/dist/src/Services/DevSecOpsService.js +0 -307
  77. package/dist/src/Services/DevSecOpsService.js.map +0 -1
  78. package/dist/src/Services/EntraAuthHandler.js +0 -337
  79. package/dist/src/Services/EntraAuthHandler.js.map +0 -1
  80. package/dist/src/Services/GitService.js +0 -1595
  81. package/dist/src/Services/GitService.js.map +0 -1
  82. package/dist/src/Services/ProjectService.js +0 -257
  83. package/dist/src/Services/ProjectService.js.map +0 -1
  84. package/dist/src/Services/TestingCapabilitiesService.js +0 -149
  85. package/dist/src/Services/TestingCapabilitiesService.js.map +0 -1
  86. package/dist/src/Services/WikiService.js +0 -90
  87. package/dist/src/Services/WikiService.js.map +0 -1
  88. package/dist/src/Services/WorkItemService.js +0 -885
  89. package/dist/src/Services/WorkItemService.js.map +0 -1
  90. package/dist/src/Tools/AIAssistedDevelopmentTools.js +0 -137
  91. package/dist/src/Tools/AIAssistedDevelopmentTools.js.map +0 -1
  92. package/dist/src/Tools/ArtifactManagementTools.js +0 -140
  93. package/dist/src/Tools/ArtifactManagementTools.js.map +0 -1
  94. package/dist/src/Tools/BoardsSprintsTools.js +0 -338
  95. package/dist/src/Tools/BoardsSprintsTools.js.map +0 -1
  96. package/dist/src/Tools/BuildTools.js +0 -468
  97. package/dist/src/Tools/BuildTools.js.map +0 -1
  98. package/dist/src/Tools/DevSecOpsTools.js +0 -147
  99. package/dist/src/Tools/DevSecOpsTools.js.map +0 -1
  100. package/dist/src/Tools/GitTools.js +0 -1475
  101. package/dist/src/Tools/GitTools.js.map +0 -1
  102. package/dist/src/Tools/ProjectTools.js +0 -360
  103. package/dist/src/Tools/ProjectTools.js.map +0 -1
  104. package/dist/src/Tools/TestingCapabilitiesTools.js +0 -157
  105. package/dist/src/Tools/TestingCapabilitiesTools.js.map +0 -1
  106. package/dist/src/Tools/WikiTools.js +0 -137
  107. package/dist/src/Tools/WikiTools.js.map +0 -1
  108. package/dist/src/Tools/WorkItemTools.js +0 -862
  109. package/dist/src/Tools/WorkItemTools.js.map +0 -1
  110. package/dist/src/config.js +0 -176
  111. package/dist/src/config.js.map +0 -1
  112. package/dist/src/index.js +0 -1716
  113. package/dist/src/index.js.map +0 -1
  114. package/dist/src/utils/formatHelpers.js +0 -257
  115. package/dist/src/utils/formatHelpers.js.map +0 -1
  116. package/dist/src/utils/getClassMethods.js +0 -8
  117. package/dist/src/utils/getClassMethods.js.map +0 -1
  118. package/dist/src/utils/repositoryResolver.js +0 -40
  119. package/dist/src/utils/repositoryResolver.js.map +0 -1
@@ -1,147 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.DevSecOpsToolMethods = exports.DevSecOpsTools = void 0;
7
- const DevSecOpsService_1 = require("../Services/DevSecOpsService");
8
- const Common_1 = require("../Interfaces/Common");
9
- const getClassMethods_1 = __importDefault(require("../utils/getClassMethods"));
10
- class DevSecOpsTools {
11
- constructor(config) {
12
- this.service = new DevSecOpsService_1.DevSecOpsService(config);
13
- }
14
- async runSecurityScan(params) {
15
- try {
16
- const result = await this.service.runSecurityScan(params);
17
- return (0, Common_1.formatMcpResponse)(result, `Security scan initiated for repository ${params.repository}`);
18
- }
19
- catch (error) {
20
- console.error('Error running security scan:', error);
21
- return (0, Common_1.formatErrorResponse)(error);
22
- }
23
- }
24
- async getSecurityScanResults(params) {
25
- try {
26
- const result = await this.service.getSecurityScanResults(params);
27
- return (0, Common_1.formatMcpResponse)(result, `Security scan results for scan ${params.scanId}`);
28
- }
29
- catch (error) {
30
- console.error('Error getting security scan results:', error);
31
- return (0, Common_1.formatErrorResponse)(error);
32
- }
33
- }
34
- async trackSecurityVulnerabilities(params) {
35
- try {
36
- const result = await this.service.trackSecurityVulnerabilities(params);
37
- return (0, Common_1.formatMcpResponse)(result, "Security vulnerabilities tracking information");
38
- }
39
- catch (error) {
40
- console.error('Error tracking security vulnerabilities:', error);
41
- return (0, Common_1.formatErrorResponse)(error);
42
- }
43
- }
44
- async generateSecurityCompliance(params) {
45
- try {
46
- const result = await this.service.generateSecurityCompliance(params);
47
- return (0, Common_1.formatMcpResponse)(result, `Security compliance report for ${params.standardType || 'owasp'} standard`);
48
- }
49
- catch (error) {
50
- console.error('Error generating security compliance report:', error);
51
- return (0, Common_1.formatErrorResponse)(error);
52
- }
53
- }
54
- async integrateSarifResults(params) {
55
- try {
56
- const result = await this.service.integrateSarifResults(params);
57
- return (0, Common_1.formatMcpResponse)(result, `SARIF results integrated from ${params.sarifFilePath}`);
58
- }
59
- catch (error) {
60
- console.error('Error integrating SARIF results:', error);
61
- return (0, Common_1.formatErrorResponse)(error);
62
- }
63
- }
64
- async runComplianceChecks(params) {
65
- try {
66
- const result = await this.service.runComplianceChecks(params);
67
- return (0, Common_1.formatMcpResponse)(result, `Compliance checks for ${params.complianceStandard} standard`);
68
- }
69
- catch (error) {
70
- console.error('Error running compliance checks:', error);
71
- return (0, Common_1.formatErrorResponse)(error);
72
- }
73
- }
74
- async getComplianceStatus(params) {
75
- try {
76
- const result = await this.service.getComplianceStatus(params);
77
- return (0, Common_1.formatMcpResponse)(result, `Compliance status for ${params.standardId || 'all standards'}`);
78
- }
79
- catch (error) {
80
- console.error('Error getting compliance status:', error);
81
- return (0, Common_1.formatErrorResponse)(error);
82
- }
83
- }
84
- async createComplianceReport(params) {
85
- try {
86
- const result = await this.service.createComplianceReport(params);
87
- return (0, Common_1.formatMcpResponse)(result, `Compliance report created for ${params.standardId}`);
88
- }
89
- catch (error) {
90
- console.error('Error creating compliance report:', error);
91
- return (0, Common_1.formatErrorResponse)(error);
92
- }
93
- }
94
- async manageSecurityPolicies(params) {
95
- try {
96
- const result = await this.service.manageSecurityPolicies(params);
97
- return (0, Common_1.formatMcpResponse)(result, `Security policy '${params.policyName}' ${params.action}d`);
98
- }
99
- catch (error) {
100
- console.error('Error managing security policies:', error);
101
- return (0, Common_1.formatErrorResponse)(error);
102
- }
103
- }
104
- async trackSecurityAwareness(params) {
105
- try {
106
- const result = await this.service.trackSecurityAwareness(params);
107
- return (0, Common_1.formatMcpResponse)(result, `Security awareness tracking for ${params.teamId || 'all teams'}`);
108
- }
109
- catch (error) {
110
- console.error('Error tracking security awareness:', error);
111
- return (0, Common_1.formatErrorResponse)(error);
112
- }
113
- }
114
- async rotateSecrets(params) {
115
- try {
116
- const result = await this.service.rotateSecrets(params);
117
- return (0, Common_1.formatMcpResponse)(result, `Secrets rotation for ${params.secretName || 'all applicable secrets'}`);
118
- }
119
- catch (error) {
120
- console.error('Error rotating secrets:', error);
121
- return (0, Common_1.formatErrorResponse)(error);
122
- }
123
- }
124
- async auditSecretUsage(params) {
125
- try {
126
- const result = await this.service.auditSecretUsage(params);
127
- return (0, Common_1.formatMcpResponse)(result, `Secret usage audit for ${params.secretName || 'all secrets'}`);
128
- }
129
- catch (error) {
130
- console.error('Error auditing secret usage:', error);
131
- return (0, Common_1.formatErrorResponse)(error);
132
- }
133
- }
134
- async vaultIntegration(params) {
135
- try {
136
- const result = await this.service.vaultIntegration(params);
137
- return (0, Common_1.formatMcpResponse)(result, `Vault integration: ${params.action} operation on ${params.vaultUrl}`);
138
- }
139
- catch (error) {
140
- console.error('Error with vault integration:', error);
141
- return (0, Common_1.formatErrorResponse)(error);
142
- }
143
- }
144
- }
145
- exports.DevSecOpsTools = DevSecOpsTools;
146
- exports.DevSecOpsToolMethods = (0, getClassMethods_1.default)(DevSecOpsTools.prototype);
147
- //# sourceMappingURL=DevSecOpsTools.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"DevSecOpsTools.js","sourceRoot":"","sources":["../../../src/Tools/DevSecOpsTools.ts"],"names":[],"mappings":"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"}