@veracity/codeguardian-mcp 0.1.5 → 0.1.6
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/README.md +10 -1
- package/asset/assa.pipeline.task.prompt.md +183 -0
- package/dist/index.js +3 -3
- package/dist/index.js.map +1 -1
- package/dist/prompts.d.ts +1 -1
- package/dist/prompts.d.ts.map +1 -1
- package/dist/prompts.js +95 -4
- package/dist/prompts.js.map +1 -1
- package/dist/resources.d.ts +1 -1
- package/dist/resources.d.ts.map +1 -1
- package/dist/resources.js +46 -4
- package/dist/resources.js.map +1 -1
- package/dist/tools/ado.d.ts.map +1 -1
- package/dist/tools/ado.js +63 -31
- package/dist/tools/ado.js.map +1 -1
- package/dist/tools/assa.d.ts +2 -0
- package/dist/tools/assa.d.ts.map +1 -0
- package/dist/tools/assa.js +77 -0
- package/dist/tools/assa.js.map +1 -0
- package/dist/tools.d.ts.map +1 -1
- package/dist/tools.js +3 -0
- package/dist/tools.js.map +1 -1
- package/dist/utils.d.ts +14 -0
- package/dist/utils.d.ts.map +1 -0
- package/dist/utils.js +42 -0
- package/dist/utils.js.map +1 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -38,6 +38,15 @@ This MCP server provides the following tools:
|
|
|
38
38
|
- `rightFileEndOffset` (optional): Character offset on the ending line
|
|
39
39
|
- Returns: Created thread information including thread ID, comments, and status
|
|
40
40
|
|
|
41
|
+
### ASSA Tools
|
|
42
|
+
|
|
43
|
+
1. **assa_copy_config_to_workspace** - Copy assa.yml configuration file from Azure DevOps to workspace
|
|
44
|
+
- Parameters:
|
|
45
|
+
- `workspaceRoot` (required): Absolute path to the workspace root folder where assa.yml should be copied
|
|
46
|
+
- `overwrite` (optional): Whether to overwrite the file if it already exists (defaults to false)
|
|
47
|
+
- Returns: Success message with file location or error if file already exists
|
|
48
|
+
- Description: Retrieves the assa.yml configuration file from the Innersource/code-guardian repository (<https://dev.azure.com/dnvgl-one/Innersource/_git/code-guardian?path=/assa/assa.yml>) and copies it to the workspace root folder. This file is required for ASSA (Automated Security and Standards Analysis) to function properly.
|
|
49
|
+
|
|
41
50
|
## Prerequisites
|
|
42
51
|
|
|
43
52
|
- Node.js 18 or higher
|
|
@@ -63,8 +72,8 @@ Easily install the CodeGuardian MCP Server for Visual Studio:
|
|
|
63
72
|
|
|
64
73
|
[](vsweb+mcp:/install?name=codeguardian&config=%7B%20%22type%22%3A%20%22stdio%22%2C%20%22command%22%3A%20%22npx%22%2C%20%22args%22%3A%20%5B%22-y%22%2C%20%22%40veracity%2Fcodeguardian-mcp%22%5D%7D)
|
|
65
74
|
|
|
66
|
-
|
|
67
75
|
If you're unable to install by clicking the button above, please copy and paste the link below into your browser.
|
|
76
|
+
|
|
68
77
|
```html
|
|
69
78
|
vsweb+mcp:/install?name=codeguardian&config=%7B%20%22type%22%3A%20%22stdio%22%2C%20%22command%22%3A%20%22npx%22%2C%20%22args%22%3A%20%5B%22-y%22%2C%20%22%40veracity%2Fcodeguardian-mcp%22%5D%7D
|
|
70
79
|
```
|
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: 'Instructions for adding ASSA task to Azure DevOps build pipelines'
|
|
3
|
+
applyTo: '**/*.yml'
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Adding ASSA Task to Azure DevOps Build Pipeline
|
|
7
|
+
|
|
8
|
+
This guide provides instructions for integrating the ASSA (Automated Security Scanning and Analysis) task into your Azure DevOps build pipeline.
|
|
9
|
+
|
|
10
|
+
## Prerequisites
|
|
11
|
+
|
|
12
|
+
- Azure DevOps organization and project
|
|
13
|
+
- ASSA extension installed in your Azure DevOps organization
|
|
14
|
+
- ASSA configuration file (`assa.yml`) in your repository
|
|
15
|
+
|
|
16
|
+
## Configuration File Location
|
|
17
|
+
|
|
18
|
+
The ASSA task requires a configuration file named `assa.yml`. This file should be committed to your repository and the path should be specified in the pipeline task configuration.
|
|
19
|
+
|
|
20
|
+
Common locations:
|
|
21
|
+
|
|
22
|
+
- Root directory: `assa.yml`
|
|
23
|
+
- Config directory: `config/assa.yml`
|
|
24
|
+
- Build directory: `.azuredevops/assa.yml`
|
|
25
|
+
- CI directory: `.ci/assa.yml`
|
|
26
|
+
|
|
27
|
+
## Adding ASSA Task to Pipeline
|
|
28
|
+
|
|
29
|
+
Add the following task to your Azure DevOps YAML pipeline:
|
|
30
|
+
|
|
31
|
+
```yaml
|
|
32
|
+
- task: ASSA@0
|
|
33
|
+
inputs:
|
|
34
|
+
assaPath: 'assa.yml'
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
### Configuration Parameters
|
|
38
|
+
|
|
39
|
+
- **assaPath**: (Required) Path to the ASSA configuration file relative to the repository root
|
|
40
|
+
- Example: `'assa.yml'` for root directory
|
|
41
|
+
- Example: `'config/assa.yml'` for config subdirectory
|
|
42
|
+
- Example: `'$(Build.SourcesDirectory)/assa.yml'` using pipeline variables
|
|
43
|
+
|
|
44
|
+
## Integration Examples
|
|
45
|
+
|
|
46
|
+
### Example 1: Basic Integration
|
|
47
|
+
|
|
48
|
+
Add ASSA task after the build step:
|
|
49
|
+
|
|
50
|
+
```yaml
|
|
51
|
+
trigger:
|
|
52
|
+
- main
|
|
53
|
+
|
|
54
|
+
pool:
|
|
55
|
+
vmImage: 'ubuntu-latest'
|
|
56
|
+
|
|
57
|
+
steps:
|
|
58
|
+
- task: UseDotNet@2
|
|
59
|
+
inputs:
|
|
60
|
+
version: '8.x'
|
|
61
|
+
|
|
62
|
+
- task: DotNetCoreCLI@2
|
|
63
|
+
inputs:
|
|
64
|
+
command: 'build'
|
|
65
|
+
projects: '**/*.csproj'
|
|
66
|
+
|
|
67
|
+
- task: ASSA@0
|
|
68
|
+
inputs:
|
|
69
|
+
assaPath: 'assa.yml'
|
|
70
|
+
displayName: 'Run ASSA Security Scan'
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
### Example 2: Integration with Custom Configuration Path
|
|
74
|
+
|
|
75
|
+
```yaml
|
|
76
|
+
steps:
|
|
77
|
+
- checkout: self
|
|
78
|
+
|
|
79
|
+
- task: ASSA@0
|
|
80
|
+
inputs:
|
|
81
|
+
assaPath: 'config/assa.yml'
|
|
82
|
+
displayName: 'Run ASSA Analysis'
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
### Example 3: Multi-Stage Pipeline
|
|
86
|
+
|
|
87
|
+
```yaml
|
|
88
|
+
stages:
|
|
89
|
+
- stage: Build
|
|
90
|
+
jobs:
|
|
91
|
+
- job: BuildJob
|
|
92
|
+
steps:
|
|
93
|
+
- task: DotNetCoreCLI@2
|
|
94
|
+
inputs:
|
|
95
|
+
command: 'build'
|
|
96
|
+
|
|
97
|
+
- stage: SecurityScan
|
|
98
|
+
dependsOn: Build
|
|
99
|
+
jobs:
|
|
100
|
+
- job: SecurityScanJob
|
|
101
|
+
steps:
|
|
102
|
+
- task: ASSA@0
|
|
103
|
+
inputs:
|
|
104
|
+
assaPath: 'assa.yml'
|
|
105
|
+
displayName: 'ASSA Security Analysis'
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
### Example 4: Conditional Execution
|
|
109
|
+
|
|
110
|
+
Run ASSA only on main branch:
|
|
111
|
+
|
|
112
|
+
```yaml
|
|
113
|
+
- task: ASSA@0
|
|
114
|
+
inputs:
|
|
115
|
+
assaPath: 'assa.yml'
|
|
116
|
+
condition: eq(variables['Build.SourceBranch'], 'refs/heads/main')
|
|
117
|
+
displayName: 'Run ASSA on Main Branch'
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
### Example 5: With Continue On Error
|
|
121
|
+
|
|
122
|
+
Allow pipeline to continue even if ASSA fails:
|
|
123
|
+
|
|
124
|
+
```yaml
|
|
125
|
+
- task: ASSA@0
|
|
126
|
+
inputs:
|
|
127
|
+
assaPath: 'assa.yml'
|
|
128
|
+
continueOnError: true
|
|
129
|
+
displayName: 'Run ASSA (Non-Blocking)'
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
## Best Practices
|
|
133
|
+
|
|
134
|
+
### Path Configuration
|
|
135
|
+
|
|
136
|
+
- **Use relative paths**: Specify paths relative to the repository root
|
|
137
|
+
- **Verify file exists**: Ensure `assa.yml` is committed to source control before running the pipeline
|
|
138
|
+
- **Use forward slashes**: Use `/` for path separators even on Windows agents
|
|
139
|
+
|
|
140
|
+
### Task Placement
|
|
141
|
+
|
|
142
|
+
- **After build**: Place ASSA task after build steps to analyze compiled artifacts
|
|
143
|
+
- **Before deployment**: Run ASSA before deployment stages to catch issues early
|
|
144
|
+
- **Separate stage**: Consider running ASSA in a dedicated security stage for better organization
|
|
145
|
+
|
|
146
|
+
### Error Handling
|
|
147
|
+
|
|
148
|
+
- **Default behavior**: Pipeline will fail if ASSA detects critical issues
|
|
149
|
+
- **Non-blocking mode**: Use `continueOnError: true` for informational scanning
|
|
150
|
+
- **Conditional execution**: Use conditions to control when ASSA runs
|
|
151
|
+
|
|
152
|
+
## Troubleshooting
|
|
153
|
+
|
|
154
|
+
### Common Issues
|
|
155
|
+
|
|
156
|
+
**Issue**: "ASSA configuration file not found"
|
|
157
|
+
|
|
158
|
+
- **Solution**: Verify the `assaPath` points to the correct location
|
|
159
|
+
- **Check**: Ensure `assa.yml` is committed and pushed to the repository
|
|
160
|
+
|
|
161
|
+
**Issue**: "ASSA task not found"
|
|
162
|
+
|
|
163
|
+
- **Solution**: Install the ASSA extension in your Azure DevOps organization
|
|
164
|
+
- **Check**: Organization Settings > Extensions > Browse Marketplace
|
|
165
|
+
|
|
166
|
+
**Issue**: "Permission denied"
|
|
167
|
+
|
|
168
|
+
- **Solution**: Ensure the build service account has read access to the repository
|
|
169
|
+
- **Check**: Project Settings > Repositories > Security
|
|
170
|
+
|
|
171
|
+
## Verification
|
|
172
|
+
|
|
173
|
+
After adding the ASSA task to your pipeline:
|
|
174
|
+
|
|
175
|
+
1. Commit and push the pipeline changes
|
|
176
|
+
2. Trigger a build manually or through a commit
|
|
177
|
+
3. Monitor the pipeline execution in Azure DevOps
|
|
178
|
+
4. Review the ASSA task output in the pipeline logs
|
|
179
|
+
5. Check for any security findings or recommendations
|
|
180
|
+
|
|
181
|
+
## Additional Configuration
|
|
182
|
+
|
|
183
|
+
For advanced ASSA configuration options, refer to the `assa.yml` configuration file documentation and customize the scanning rules, thresholds, and reporting options according to your project requirements.
|
package/dist/index.js
CHANGED
|
@@ -5,7 +5,7 @@ import { createAuthenticator } from "./auth.js";
|
|
|
5
5
|
import { configureAllTools } from "./tools.js";
|
|
6
6
|
import { configurePrompts } from "./prompts.js";
|
|
7
7
|
import { configureResources } from "./resources.js";
|
|
8
|
-
const packageVersion = "0.1.
|
|
8
|
+
const packageVersion = "0.1.6";
|
|
9
9
|
try {
|
|
10
10
|
const server = new McpServer({
|
|
11
11
|
name: "CodeGuardian MCP Server",
|
|
@@ -18,9 +18,9 @@ try {
|
|
|
18
18
|
// Configure all tools with the authenticator
|
|
19
19
|
configureAllTools(server, authenticator);
|
|
20
20
|
// Configure prompts
|
|
21
|
-
configurePrompts(server);
|
|
21
|
+
configurePrompts(server, authenticator);
|
|
22
22
|
// Configure resources
|
|
23
|
-
configureResources(server);
|
|
23
|
+
configureResources(server, authenticator);
|
|
24
24
|
// Connect using stdio transport
|
|
25
25
|
const transport = new StdioServerTransport();
|
|
26
26
|
await server.connect(transport);
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAEpD,MAAM,cAAc,GAAG,aAAa,CAAC;AAErC,IAAI,CAAC;IACH,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC;QAC3B,IAAI,EAAE,yBAAyB;QAC/B,OAAO,EAAE,cAAc;KACxB,CAAC,CAAC;IAEH,OAAO,CAAC,GAAG,CAAC,4BAA4B,cAAc,EAAE,CAAC,CAAC;IAC1D,OAAO,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAC;IAEjD,uBAAuB;IACvB,MAAM,aAAa,GAAG,mBAAmB,EAAE,CAAC;IAE5C,6CAA6C;IAC7C,iBAAiB,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IAEzC,oBAAoB;IACpB,gBAAgB,CAAC,MAAM,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAEpD,MAAM,cAAc,GAAG,aAAa,CAAC;AAErC,IAAI,CAAC;IACH,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC;QAC3B,IAAI,EAAE,yBAAyB;QAC/B,OAAO,EAAE,cAAc;KACxB,CAAC,CAAC;IAEH,OAAO,CAAC,GAAG,CAAC,4BAA4B,cAAc,EAAE,CAAC,CAAC;IAC1D,OAAO,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAC;IAEjD,uBAAuB;IACvB,MAAM,aAAa,GAAG,mBAAmB,EAAE,CAAC;IAE5C,6CAA6C;IAC7C,iBAAiB,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IAEzC,oBAAoB;IACpB,gBAAgB,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IAExC,sBAAsB;IACtB,kBAAkB,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IAE1C,gCAAgC;IAChC,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;IAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAEhC,OAAO,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAC;AAC1D,CAAC;AAAC,OAAO,KAAK,EAAE,CAAC;IACf,OAAO,CAAC,KAAK,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;IACrC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC"}
|
package/dist/prompts.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
2
|
-
export declare function configurePrompts(server: McpServer): void;
|
|
2
|
+
export declare function configurePrompts(server: McpServer, tokenProvider?: () => Promise<string>): void;
|
|
3
3
|
//# sourceMappingURL=prompts.d.ts.map
|
package/dist/prompts.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../src/prompts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;
|
|
1
|
+
{"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../src/prompts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAUpE,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,SAAS,EAAE,aAAa,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,QAyLxF"}
|
package/dist/prompts.js
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
|
-
import { readFile } from "fs/promises";
|
|
3
|
-
import { join, dirname } from "path";
|
|
4
|
-
import { fileURLToPath } from "url";
|
|
2
|
+
import { readFile } from "node:fs/promises";
|
|
3
|
+
import { join, dirname } from "node:path";
|
|
4
|
+
import { fileURLToPath } from "node:url";
|
|
5
|
+
import { streamToString } from './utils.js';
|
|
5
6
|
const __filename = fileURLToPath(import.meta.url);
|
|
6
7
|
const __dirname = dirname(__filename);
|
|
7
|
-
export function configurePrompts(server) {
|
|
8
|
+
export function configurePrompts(server, tokenProvider) {
|
|
8
9
|
server.prompt("dotnet-pr-review", "Professional .NET code reviewer instructions", {
|
|
9
10
|
prUrl: z.string().describe("The URL of the Pull Request to review"),
|
|
10
11
|
}, async ({ prUrl }) => {
|
|
@@ -61,5 +62,95 @@ export function configurePrompts(server) {
|
|
|
61
62
|
]
|
|
62
63
|
};
|
|
63
64
|
});
|
|
65
|
+
// server.prompt(
|
|
66
|
+
// "assa-pipeline-task",
|
|
67
|
+
// "Instructions for adding ASSA task to Azure DevOps build pipelines",
|
|
68
|
+
// {},
|
|
69
|
+
// async () => {
|
|
70
|
+
// const promptPath = join(__dirname, "..", "asset", "assa.pipeline.task.prompt.md");
|
|
71
|
+
// const content = await readFile(promptPath, "utf-8");
|
|
72
|
+
// return {
|
|
73
|
+
// messages: [
|
|
74
|
+
// {
|
|
75
|
+
// role: "user",
|
|
76
|
+
// content: {
|
|
77
|
+
// type: "resource",
|
|
78
|
+
// resource: {
|
|
79
|
+
// uri: "prompt://assa-pipeline-task",
|
|
80
|
+
// mimeType: "text/markdown",
|
|
81
|
+
// text: content
|
|
82
|
+
// }
|
|
83
|
+
// }
|
|
84
|
+
// },
|
|
85
|
+
// {
|
|
86
|
+
// role: "user",
|
|
87
|
+
// content: {
|
|
88
|
+
// type: "text",
|
|
89
|
+
// text: "Please read the instructions above to add the ASSA task to Azure DevOps build pipelines."
|
|
90
|
+
// }
|
|
91
|
+
// }
|
|
92
|
+
// ]
|
|
93
|
+
// };
|
|
94
|
+
// }
|
|
95
|
+
// );
|
|
96
|
+
// ASSA Review prompt - loads instructions from Azure DevOps
|
|
97
|
+
if (tokenProvider) {
|
|
98
|
+
server.prompt("assa-review", "Automated Security and Standards Analysis review instructions", {}, async () => {
|
|
99
|
+
try {
|
|
100
|
+
const accessToken = await tokenProvider();
|
|
101
|
+
const authHandler = (await import('azure-devops-node-api')).getBearerHandler(accessToken);
|
|
102
|
+
const orgUrl = 'https://dev.azure.com/dnvgl-one';
|
|
103
|
+
const connection = new (await import('azure-devops-node-api')).WebApi(orgUrl, authHandler);
|
|
104
|
+
const gitApi = await connection.getGitApi();
|
|
105
|
+
const project = 'Innersource';
|
|
106
|
+
const repositoryId = 'code-guardian';
|
|
107
|
+
const filePath = '/assa/assa.instructions.md';
|
|
108
|
+
const versionDescriptor = {
|
|
109
|
+
version: 'main',
|
|
110
|
+
versionType: 0 // GitVersionType.Branch
|
|
111
|
+
};
|
|
112
|
+
const stream = await gitApi.getItemContent(repositoryId, filePath, project, undefined, undefined, false, false, false, versionDescriptor);
|
|
113
|
+
if (!stream) {
|
|
114
|
+
throw new Error('Failed to retrieve ASSA instructions from Azure DevOps');
|
|
115
|
+
}
|
|
116
|
+
const content = await streamToString(stream);
|
|
117
|
+
const messages = [
|
|
118
|
+
{
|
|
119
|
+
role: "user",
|
|
120
|
+
content: {
|
|
121
|
+
type: "resource",
|
|
122
|
+
resource: {
|
|
123
|
+
uri: "instructions://assa",
|
|
124
|
+
mimeType: "text/markdown",
|
|
125
|
+
text: content
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
];
|
|
130
|
+
messages.push({
|
|
131
|
+
role: "user",
|
|
132
|
+
content: {
|
|
133
|
+
type: "text",
|
|
134
|
+
text: "Please read the ASSA instructions above and perform an ASSA review."
|
|
135
|
+
}
|
|
136
|
+
});
|
|
137
|
+
return { messages };
|
|
138
|
+
}
|
|
139
|
+
catch (error) {
|
|
140
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
141
|
+
return {
|
|
142
|
+
messages: [
|
|
143
|
+
{
|
|
144
|
+
role: "user",
|
|
145
|
+
content: {
|
|
146
|
+
type: "text",
|
|
147
|
+
text: `Error loading ASSA instructions from Azure DevOps: ${errorMessage}`
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
]
|
|
151
|
+
};
|
|
152
|
+
}
|
|
153
|
+
});
|
|
154
|
+
}
|
|
64
155
|
}
|
|
65
156
|
//# sourceMappingURL=prompts.js.map
|
package/dist/prompts.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompts.js","sourceRoot":"","sources":["../src/prompts.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,QAAQ,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"prompts.js","sourceRoot":"","sources":["../src/prompts.ts"],"names":[],"mappings":"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"}
|
package/dist/resources.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
2
|
-
export declare function configureResources(server: McpServer): void;
|
|
2
|
+
export declare function configureResources(server: McpServer, tokenProvider?: () => Promise<string>): void;
|
|
3
3
|
//# sourceMappingURL=resources.d.ts.map
|
package/dist/resources.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resources.d.ts","sourceRoot":"","sources":["../src/resources.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAoB,MAAM,yCAAyC,CAAC;
|
|
1
|
+
{"version":3,"file":"resources.d.ts","sourceRoot":"","sources":["../src/resources.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAoB,MAAM,yCAAyC,CAAC;AAStF,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,SAAS,EAAE,aAAa,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,QA8G1F"}
|
package/dist/resources.js
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import { ResourceTemplate } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
2
|
-
import { readFile } from "fs/promises";
|
|
3
|
-
import { join, dirname } from "path";
|
|
4
|
-
import { fileURLToPath } from "url";
|
|
2
|
+
import { readFile } from "node:fs/promises";
|
|
3
|
+
import { join, dirname } from "node:path";
|
|
4
|
+
import { fileURLToPath } from "node:url";
|
|
5
|
+
import { streamToString } from './utils.js';
|
|
5
6
|
const __filename = fileURLToPath(import.meta.url);
|
|
6
7
|
const __dirname = dirname(__filename);
|
|
7
|
-
export function configureResources(server) {
|
|
8
|
+
export function configureResources(server, tokenProvider) {
|
|
8
9
|
server.registerResource("dotnet-pr-review-prompt", new ResourceTemplate("prompt://dotnet-pr-review", { list: undefined }), {
|
|
9
10
|
title: ".NET PR Review Prompt",
|
|
10
11
|
description: "Instructions for reviewing .NET Pull Requests",
|
|
@@ -39,5 +40,46 @@ export function configureResources(server) {
|
|
|
39
40
|
]
|
|
40
41
|
};
|
|
41
42
|
});
|
|
43
|
+
// Register ASSA instructions resource from Azure DevOps
|
|
44
|
+
if (tokenProvider) {
|
|
45
|
+
server.registerResource("assa-instructions", new ResourceTemplate("instructions://assa", { list: undefined }), {
|
|
46
|
+
title: "ASSA Instructions",
|
|
47
|
+
description: "Application Security Self-Assessment (ASSA) instructions from Azure DevOps",
|
|
48
|
+
mimeType: "text/markdown",
|
|
49
|
+
}, async (uri) => {
|
|
50
|
+
try {
|
|
51
|
+
const accessToken = await tokenProvider();
|
|
52
|
+
const authHandler = (await import('azure-devops-node-api')).getBearerHandler(accessToken);
|
|
53
|
+
const orgUrl = 'https://dev.azure.com/dnvgl-one';
|
|
54
|
+
const connection = new (await import('azure-devops-node-api')).WebApi(orgUrl, authHandler);
|
|
55
|
+
const gitApi = await connection.getGitApi();
|
|
56
|
+
const project = 'Innersource';
|
|
57
|
+
const repositoryId = 'code-guardian';
|
|
58
|
+
const filePath = '/assa/assa.instructions.md';
|
|
59
|
+
const versionDescriptor = {
|
|
60
|
+
version: 'main',
|
|
61
|
+
versionType: 0 // GitVersionType.Branch
|
|
62
|
+
};
|
|
63
|
+
const stream = await gitApi.getItemContent(repositoryId, filePath, project, undefined, undefined, false, false, false, versionDescriptor);
|
|
64
|
+
if (!stream) {
|
|
65
|
+
throw new Error('Failed to retrieve file content from Azure DevOps');
|
|
66
|
+
}
|
|
67
|
+
const content = await streamToString(stream);
|
|
68
|
+
return {
|
|
69
|
+
contents: [
|
|
70
|
+
{
|
|
71
|
+
uri: uri.href,
|
|
72
|
+
text: content,
|
|
73
|
+
mimeType: "text/markdown"
|
|
74
|
+
}
|
|
75
|
+
]
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
catch (error) {
|
|
79
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
80
|
+
throw new Error(`Failed to fetch ASSA instructions from Azure DevOps: ${errorMessage}`);
|
|
81
|
+
}
|
|
82
|
+
});
|
|
83
|
+
}
|
|
42
84
|
}
|
|
43
85
|
//# sourceMappingURL=resources.js.map
|
package/dist/resources.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resources.js","sourceRoot":"","sources":["../src/resources.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,gBAAgB,EAAE,MAAM,yCAAyC,CAAC;AACtF,OAAO,EAAE,QAAQ,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"resources.js","sourceRoot":"","sources":["../src/resources.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/ado.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ado.d.ts","sourceRoot":"","sources":["../../src/tools/ado.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ado.d.ts","sourceRoot":"","sources":["../../src/tools/ado.ts"],"names":[],"mappings":"AAsfA,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,GAAG,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,QA8QlF"}
|
package/dist/tools/ado.js
CHANGED
|
@@ -1,13 +1,6 @@
|
|
|
1
|
-
import * as azdev from 'azure-devops-node-api';
|
|
2
1
|
import * as diff from 'diff';
|
|
3
2
|
import { z } from "zod";
|
|
4
|
-
|
|
5
|
-
async function getAzureDevOpsConnection(organization, tokenProvider) {
|
|
6
|
-
const accessToken = await tokenProvider();
|
|
7
|
-
const authHandler = azdev.getBearerHandler(accessToken);
|
|
8
|
-
const orgUrl = `https://dev.azure.com/${organization}`;
|
|
9
|
-
return new azdev.WebApi(orgUrl, authHandler);
|
|
10
|
-
}
|
|
3
|
+
import { getAzureDevOpsConnection, streamToString } from '../utils.js';
|
|
11
4
|
// Shared utility functions
|
|
12
5
|
function isValidFilePath(filePath) {
|
|
13
6
|
if (!filePath) {
|
|
@@ -48,14 +41,6 @@ async function checkItemExists(gitApi, project, repositoryId, filePath, versionD
|
|
|
48
41
|
return false;
|
|
49
42
|
}
|
|
50
43
|
}
|
|
51
|
-
async function streamToString(stream) {
|
|
52
|
-
const chunks = [];
|
|
53
|
-
return new Promise((resolve, reject) => {
|
|
54
|
-
stream.on('data', (chunk) => chunks.push(Buffer.from(chunk)));
|
|
55
|
-
stream.on('error', (err) => reject(new Error(`Stream error: ${err}`)));
|
|
56
|
-
stream.on('end', () => resolve(Buffer.concat(chunks).toString('utf8')));
|
|
57
|
-
});
|
|
58
|
-
}
|
|
59
44
|
/**
|
|
60
45
|
* Clean file content to handle special characters that can affect line counting and processing
|
|
61
46
|
* @param content Raw file content
|
|
@@ -208,6 +193,55 @@ async function getPullRequestFileChanges(gitApi, project, repositoryId, targetBr
|
|
|
208
193
|
throw new Error(`Failed to get pull request file changes: ${error instanceof Error ? error.message : String(error)}`);
|
|
209
194
|
}
|
|
210
195
|
}
|
|
196
|
+
/**
|
|
197
|
+
* Fetch file content from ADO API, with fallback to provided content
|
|
198
|
+
* @param gitApi Azure DevOps Git API instance
|
|
199
|
+
* @param project Project name or ID
|
|
200
|
+
* @param repositoryId Repository ID
|
|
201
|
+
* @param pullRequestId Pull request ID
|
|
202
|
+
* @param filePath File path to fetch
|
|
203
|
+
* @param fallbackContent Optional fallback content if API call fails
|
|
204
|
+
* @returns File content from API or fallback
|
|
205
|
+
*/
|
|
206
|
+
async function getFileContentWithFallback(gitApi, project, repositoryId, pullRequestId, filePath, fallbackContent) {
|
|
207
|
+
try {
|
|
208
|
+
const pullRequest = await gitApi.getPullRequest(repositoryId, pullRequestId, project);
|
|
209
|
+
const sourceBranchCommit = pullRequest.lastMergeSourceCommit?.commitId;
|
|
210
|
+
if (sourceBranchCommit) {
|
|
211
|
+
const fetchedContent = await getFileContentAtCommit(gitApi, project, repositoryId, filePath, sourceBranchCommit);
|
|
212
|
+
if (fetchedContent) {
|
|
213
|
+
console.log(`Successfully fetched file content from ADO API for ${filePath}`);
|
|
214
|
+
return fetchedContent;
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
if (fallbackContent) {
|
|
218
|
+
console.warn(`Could not fetch file content from ADO API for ${filePath}, using provided sourceFileContent as fallback`);
|
|
219
|
+
return fallbackContent;
|
|
220
|
+
}
|
|
221
|
+
throw new Error(`Could not fetch file content from ADO API and no sourceFileContent was provided as fallback`);
|
|
222
|
+
}
|
|
223
|
+
catch (error) {
|
|
224
|
+
if (fallbackContent) {
|
|
225
|
+
console.warn(`Failed to fetch file content from ADO API for ${filePath}, using provided sourceFileContent as fallback:`, error);
|
|
226
|
+
return fallbackContent;
|
|
227
|
+
}
|
|
228
|
+
throw new Error(`Failed to fetch file content from ADO API and no sourceFileContent was provided as fallback: ${error instanceof Error ? error.message : String(error)}`);
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
/**
|
|
232
|
+
* Calculate line positions for a code block within file content
|
|
233
|
+
* @param fileContent Full file content
|
|
234
|
+
* @param fencedCodeBlock Code block to locate
|
|
235
|
+
* @param filePath File path for error messages
|
|
236
|
+
* @returns Calculated line positions
|
|
237
|
+
*/
|
|
238
|
+
function calculateLinePositions(fileContent, fencedCodeBlock, filePath) {
|
|
239
|
+
const linePositions = findCodeBlockInSource(fileContent, fencedCodeBlock);
|
|
240
|
+
if (!linePositions) {
|
|
241
|
+
throw new Error(`Could not find the provided fenced code block in the file content for ${filePath}`);
|
|
242
|
+
}
|
|
243
|
+
return linePositions;
|
|
244
|
+
}
|
|
211
245
|
// Helper function to validate thread position parameters
|
|
212
246
|
function validateThreadPosition(rightFileStartLine, rightFileStartOffset, rightFileEndLine, rightFileEndOffset) {
|
|
213
247
|
if (rightFileStartLine !== undefined && rightFileStartLine < 1) {
|
|
@@ -381,38 +415,36 @@ export function configureAdoTools(server, tokenProvider) {
|
|
|
381
415
|
.optional()
|
|
382
416
|
.default("Active")
|
|
383
417
|
.describe("The status of the comment thread. Defaults to 'Active'."),
|
|
384
|
-
|
|
385
|
-
fencedCodeBlock: z.string().describe("The content of a fenced code block to locate within the source file. When provided with sourceFileContent, rightFileStartLine and rightFileEndLine will be automatically calculated."),
|
|
418
|
+
fencedCodeBlock: z.string().describe("The content of a fenced code block to locate within the source file. When provided, rightFileStartLine and rightFileEndLine will be automatically calculated by fetching file content from ADO API."),
|
|
386
419
|
rightFileStartLine: z.number().describe("Position of first character of the thread's span in right file. The line number of a thread's position. Starts at 1. "),
|
|
387
420
|
rightFileStartOffset: z.number().optional().default(1).describe("Position of first character of the thread's span in right file. The character offset of a thread's position inside of a line. Starts at 1. Must only be set if rightFileStartLine is also specified."),
|
|
388
421
|
rightFileEndLine: z.number().describe("Position of last character of the thread's span in right file. The line number of a thread's position. Starts at 1. Must only be set if rightFileStartLine is also specified. "),
|
|
389
422
|
rightFileEndOffset: z.number().optional().default(1).describe("Position of last character of the thread's span in right file. The character offset of a thread's position inside of a line. Must only be set if rightFileEndLine is also specified. "),
|
|
390
423
|
}, async (args) => {
|
|
391
424
|
try {
|
|
392
|
-
const { organization, project, repositoryId, pullRequestId, content, filePath, status = "Active",
|
|
425
|
+
const { organization, project, repositoryId, pullRequestId, content, filePath, status = "Active", fencedCodeBlock, rightFileStartLine, rightFileStartOffset, rightFileEndLine, rightFileEndOffset } = args;
|
|
393
426
|
// Validate required parameters
|
|
394
427
|
if (!organization || !project || !repositoryId || !pullRequestId || !content) {
|
|
395
428
|
throw new Error('Missing required parameters. Please provide organization, project, repositoryId, pullRequestId, and content.');
|
|
396
429
|
}
|
|
397
|
-
//
|
|
430
|
+
// Get Azure DevOps connection
|
|
431
|
+
const connection = await getAzureDevOpsConnection(organization, tokenProvider);
|
|
432
|
+
const gitApi = await connection.getGitApi();
|
|
433
|
+
// Calculate line positions if fencedCodeBlock is provided
|
|
398
434
|
let calculatedStartLine = rightFileStartLine;
|
|
399
435
|
let calculatedEndLine = rightFileEndLine;
|
|
400
436
|
let calculatedStartOffset = rightFileStartOffset;
|
|
401
437
|
let calculatedEndOffset = rightFileEndOffset;
|
|
402
|
-
if (
|
|
403
|
-
const
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
}
|
|
438
|
+
if (fencedCodeBlock && filePath) {
|
|
439
|
+
const fileContentToUse = await getFileContentWithFallback(gitApi, project, repositoryId, pullRequestId, filePath);
|
|
440
|
+
const linePositions = calculateLinePositions(fileContentToUse, fencedCodeBlock, filePath);
|
|
441
|
+
calculatedStartLine = linePositions.startLine;
|
|
442
|
+
calculatedEndLine = linePositions.endLine;
|
|
443
|
+
calculatedStartOffset = linePositions.startOffset;
|
|
444
|
+
calculatedEndOffset = linePositions.endOffset;
|
|
410
445
|
}
|
|
411
446
|
// Validate thread position parameters
|
|
412
447
|
validateThreadPosition(calculatedStartLine, calculatedStartOffset, calculatedEndLine, calculatedEndOffset);
|
|
413
|
-
// Get Azure DevOps connection
|
|
414
|
-
const connection = await getAzureDevOpsConnection(organization, tokenProvider);
|
|
415
|
-
const gitApi = await connection.getGitApi();
|
|
416
448
|
// Build thread context
|
|
417
449
|
const threadContext = buildThreadContext(filePath, calculatedStartLine, calculatedStartOffset, calculatedEndLine, calculatedEndOffset);
|
|
418
450
|
// Create thread
|
package/dist/tools/ado.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ado.js","sourceRoot":"","sources":["../../src/tools/ado.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ado.js","sourceRoot":"","sources":["../../src/tools/ado.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAE7B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,wBAAwB,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAEvE,2BAA2B;AAC3B,SAAS,eAAe,CAAC,QAAgB;IACrC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACZ,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,uDAAuD;IACvD,MAAM,aAAa,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC;IAE7C,oBAAoB;IACpB,MAAM,gBAAgB,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM;QAClF,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9E,IAAI,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,aAAa,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;QAC5D,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,4CAA4C;IAC5C,IAAI,QAAQ,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;QACxB,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,6DAA6D;IAC7D,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACrD,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,OAAO,IAAI,CAAC;AAChB,CAAC;AAED,KAAK,UAAU,eAAe,CAC1B,MAAe,EACf,OAAe,EACf,YAAoB,EACpB,QAAgB,EAChB,iBAAsB;IAEtB,IAAI,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,CAC/B,YAAY,EACZ,QAAQ,EACR,OAAO,EACP,SAAS,EAAE,YAAY;QACvB,SAAS,EAAE,iBAAiB;QAC5B,KAAK,EAAE,yBAAyB;QAChC,KAAK,EAAE,wBAAwB;QAC/B,KAAK,EAAE,WAAW;QAClB,iBAAiB,CACpB,CAAC;QACF,mEAAmE;QACnE,OAAO,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC;IAC1B,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACT,MAAM,YAAY,GAAG,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAChE,OAAO,CAAC,KAAK,CAAC,yBAAyB,QAAQ,KAAK,YAAY,EAAE,CAAC,CAAC;QACpE,OAAO,KAAK,CAAC;IACjB,CAAC;AACL,CAAC;AAED;;;;GAIG;AACH,SAAS,gBAAgB,CAAC,OAAe;IACrC,IAAI,CAAC,OAAO,EAAE,CAAC;QACX,OAAO,EAAE,CAAC;IACd,CAAC;IAED,OAAO,OAAO;QACV,+CAA+C;SAC9C,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC;QACvB,uBAAuB;SACtB,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC;QACvB,qEAAqE;SACpE,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;AACjC,CAAC;AAED,KAAK,UAAU,sBAAsB,CACjC,MAAe,EACf,OAAe,EACf,YAAoB,EACpB,QAAgB,EAChB,QAAgB;IAEhB,IAAI,CAAC,QAAQ,EAAE,CAAC;QACZ,OAAO,EAAE,CAAC;IACd,CAAC;IAED,IAAI,CAAC;QACD,MAAM,iBAAiB,GAAG;YACtB,OAAO,EAAE,QAAQ;YACjB,WAAW,EAAE,CAAC,CAAC,wBAAwB;SAC1C,CAAC;QAEF,6BAA6B;QAC7B,MAAM,UAAU,GAAG,MAAM,eAAe,CAAC,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,iBAAiB,CAAC,CAAC;QACrG,IAAI,CAAC,UAAU,EAAE,CAAC;YACd,OAAO,CAAC,IAAI,CAAC,QAAQ,QAAQ,6BAA6B,QAAQ,EAAE,CAAC,CAAC;YACtE,OAAO,EAAE,CAAC;QACd,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,cAAc,CACtC,YAAY,EACZ,QAAQ,EACR,OAAO,EACP,SAAS,EAAE,YAAY;QACvB,SAAS,EAAE,iBAAiB;QAC5B,KAAK,EAAE,yBAAyB;QAChC,KAAK,EAAE,wBAAwB;QAC/B,KAAK,EAAE,WAAW;QAClB,iBAAiB,CACpB,CAAC;QACF,IAAI,MAAM,EAAE,CAAC;YACT,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,MAAM,CAAC,CAAC;YAC7C,0EAA0E;YAC1E,OAAO,gBAAgB,CAAC,OAAO,CAAC,CAAC;QACrC,CAAC;QACD,OAAO,EAAE,CAAC;IACd,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACT,2CAA2C;QAC3C,MAAM,YAAY,GAAG,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAEhE,IAAI,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,YAAY,CAAC,QAAQ,CAAC,yCAAyC,CAAC,EAAE,CAAC;YACxG,OAAO,CAAC,IAAI,CAAC,QAAQ,QAAQ,6BAA6B,QAAQ,mBAAmB,CAAC,CAAC;YACvF,OAAO,EAAE,CAAC;QACd,CAAC;aAAM,IAAI,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,YAAY,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;YACjF,OAAO,CAAC,IAAI,CAAC,QAAQ,QAAQ,wBAAwB,QAAQ,EAAE,CAAC,CAAC;YACjE,OAAO,EAAE,CAAC;QACd,CAAC;aAAM,IAAI,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,YAAY,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;YACpF,OAAO,CAAC,IAAI,CAAC,+BAA+B,QAAQ,cAAc,QAAQ,EAAE,CAAC,CAAC;YAC9E,OAAO,EAAE,CAAC;QACd,CAAC;aAAM,CAAC;YACJ,OAAO,CAAC,IAAI,CAAC,6BAA6B,QAAQ,cAAc,QAAQ,GAAG,EAAE,YAAY,CAAC,CAAC;YAC3F,OAAO,EAAE,CAAC;QACd,CAAC;IACL,CAAC;AACL,CAAC;AAGD,KAAK,UAAU,oBAAoB,CAC/B,MAAe,EACf,YAAoB,EACpB,OAAe,EACf,MAAW,EACX,eAA4B;IAE5B,IAAI,CAAC;QACD,MAAM,aAAa,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,QAAQ,EAAE,YAAY,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;QAC1F,IAAI,CAAC,aAAa,EAAE,OAAO,EAAE,CAAC;YAC1B,OAAO;QACX,CAAC;QAED,KAAK,MAAM,MAAM,IAAI,aAAa,CAAC,OAAO,EAAE,CAAC;YACzC,iBAAiB,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;QAC/C,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,OAAO,CAAC,IAAI,CAAC,oCAAoC,MAAM,CAAC,QAAQ,GAAG,EAAE,KAAK,CAAC,CAAC;IAChF,CAAC;AACL,CAAC;AAED,SAAS,iBAAiB,CAAC,MAAW,EAAE,eAA4B;IAChE,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,EAAE,IAAI;QAClB,MAAM,CAAC,IAAI,EAAE,aAAa,KAAK,MAAM;QACrC,MAAM,CAAC,UAAU,KAAK,GAAG;QACzB,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAErD,IAAI,CAAC,WAAW,EAAE,CAAC;QACf,OAAO;IACX,CAAC;IAED,IAAI,MAAM,CAAC,UAAU,KAAK,EAAE,EAAE,CAAC;QAC3B,4CAA4C;QAC5C,eAAe,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC7C,CAAC;SAAM,CAAC;QACJ,wBAAwB;QACxB,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1C,CAAC;AACL,CAAC;AAED,KAAK,UAAU,mBAAmB,CAC9B,MAAe,EACf,OAAe,EACf,YAAoB,EACpB,OAAc;IAEd,MAAM,eAAe,GAAG,IAAI,GAAG,EAAU,CAAC;IAC1C,OAAO,CAAC,GAAG,CAAC,cAAc,OAAO,CAAC,MAAM,8BAA8B,CAAC,CAAC;IAExE,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC3B,MAAM,oBAAoB,CAAC,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,EAAE,eAAe,CAAC,CAAC;IACvF,CAAC;IAED,OAAO,eAAe,CAAC;AAC3B,CAAC;AAED,KAAK,UAAU,kBAAkB,CAC7B,MAAe,EACf,OAAe,EACf,YAAoB,EACpB,QAAgB,EAChB,kBAA0B,EAC1B,kBAA0B;IAE1B,IAAI,CAAC;QACD,MAAM,mBAAmB,GAAG,MAAM,sBAAsB,CAAC,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,kBAAkB,CAAC,CAAC;QACtH,MAAM,mBAAmB,GAAG,MAAM,sBAAsB,CAAC,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,kBAAkB,CAAC,CAAC;QACtH,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,mBAAmB,IAAI,EAAE,EAAE,mBAAmB,IAAI,EAAE,EAAE,IAAI,GAAG,QAAQ,EAAE,IAAI,GAAG,QAAQ,CAAC,CAAC;QAEvI,OAAO;YACH,IAAI,EAAE,QAAQ;YACd,MAAM,EAAE,mBAAmB;YAC3B,IAAI,EAAE,WAAW;SACpB,CAAC;IACN,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC5E,OAAO,CAAC,IAAI,CAAC,yBAAyB,QAAQ,GAAG,EAAE,YAAY,CAAC,CAAC;QAEjE,OAAO;YACH,QAAQ,EAAE,QAAQ;YAClB,KAAK,EAAE,0BAA0B,YAAY,EAAE;YAC/C,IAAI,EAAE,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC;gBACrC,qEAAqE,CAAC,CAAC;gBACvE,sDAAsD;SAC7D,CAAC;IACN,CAAC;AACL,CAAC;AAED,KAAK,UAAU,yBAAyB,CACpC,MAAe,EACf,OAAe,EACf,YAAoB,EACpB,kBAA0B,EAC1B,kBAA0B,EAC1B,OAAc;IAEd,IAAI,CAAC;QACD,MAAM,eAAe,GAAG,MAAM,mBAAmB,CAAC,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC;QAE1F,IAAI,eAAe,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;YAC7B,OAAO;gBACH,YAAY,EAAE,CAAC;gBACf,KAAK,EAAE,EAAE;gBACT,OAAO,EAAE,iEAAiE;aAC7E,CAAC;QACN,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,SAAS,eAAe,CAAC,IAAI,0CAA0C,CAAC,CAAC;QACrF,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;QAE7D,MAAM,gBAAgB,GAAG,MAAM,OAAO,CAAC,GAAG,CACtC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CACrB,kBAAkB,CAAC,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,kBAAkB,EAAE,kBAAkB,CAAC,CACtG,CACJ,CAAC;QAEF,OAAO;YACH,YAAY,EAAE,SAAS,CAAC,MAAM;YAC9B,eAAe,EAAE,eAAe,CAAC,IAAI;YACrC,gBAAgB,EAAE,OAAO,CAAC,MAAM;YAChC,KAAK,EAAE,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC;SAClD,CAAC;IAEN,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,4CAA4C,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAC1H,CAAC;AACL,CAAC;AAED;;;;;;;;;GASG;AACH,KAAK,UAAU,0BAA0B,CACrC,MAAe,EACf,OAAe,EACf,YAAoB,EACpB,aAAqB,EACrB,QAAgB,EAChB,eAAwB;IAExB,IAAI,CAAC;QACD,MAAM,WAAW,GAAG,MAAM,MAAM,CAAC,cAAc,CAAC,YAAY,EAAE,aAAa,EAAE,OAAO,CAAC,CAAC;QACtF,MAAM,kBAAkB,GAAG,WAAW,CAAC,qBAAqB,EAAE,QAAQ,CAAC;QAEvE,IAAI,kBAAkB,EAAE,CAAC;YACrB,MAAM,cAAc,GAAG,MAAM,sBAAsB,CAC/C,MAAM,EACN,OAAO,EACP,YAAY,EACZ,QAAQ,EACR,kBAAkB,CACrB,CAAC;YAEF,IAAI,cAAc,EAAE,CAAC;gBACjB,OAAO,CAAC,GAAG,CAAC,sDAAsD,QAAQ,EAAE,CAAC,CAAC;gBAC9E,OAAO,cAAc,CAAC;YAC1B,CAAC;QACL,CAAC;QAED,IAAI,eAAe,EAAE,CAAC;YAClB,OAAO,CAAC,IAAI,CAAC,iDAAiD,QAAQ,gDAAgD,CAAC,CAAC;YACxH,OAAO,eAAe,CAAC;QAC3B,CAAC;QAED,MAAM,IAAI,KAAK,CAAC,6FAA6F,CAAC,CAAC;IACnH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,IAAI,eAAe,EAAE,CAAC;YAClB,OAAO,CAAC,IAAI,CAAC,iDAAiD,QAAQ,iDAAiD,EAAE,KAAK,CAAC,CAAC;YAChI,OAAO,eAAe,CAAC;QAC3B,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,gGAAgG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAC9K,CAAC;AACL,CAAC;AAED;;;;;;GAMG;AACH,SAAS,sBAAsB,CAC3B,WAAmB,EACnB,eAAuB,EACvB,QAAgB;IAEhB,MAAM,aAAa,GAAG,qBAAqB,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC;IAE1E,IAAI,CAAC,aAAa,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CAAC,yEAAyE,QAAQ,EAAE,CAAC,CAAC;IACzG,CAAC;IAED,OAAO,aAAa,CAAC;AACzB,CAAC;AAED,yDAAyD;AACzD,SAAS,sBAAsB,CAC3B,kBAA2B,EAC3B,oBAA6B,EAC7B,gBAAyB,EACzB,kBAA2B;IAE3B,IAAI,kBAAkB,KAAK,SAAS,IAAI,kBAAkB,GAAG,CAAC,EAAE,CAAC;QAC7D,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAC;IAC9E,CAAC;IACD,IAAI,oBAAoB,KAAK,SAAS,IAAI,oBAAoB,GAAG,CAAC,EAAE,CAAC;QACjE,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAC;IAChF,CAAC;IACD,IAAI,gBAAgB,KAAK,SAAS,EAAE,CAAC;QACjC,IAAI,kBAAkB,KAAK,SAAS,EAAE,CAAC;YACnC,MAAM,IAAI,KAAK,CAAC,kFAAkF,CAAC,CAAC;QACxG,CAAC;QACD,IAAI,gBAAgB,GAAG,CAAC,EAAE,CAAC;YACvB,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;QAC5E,CAAC;IACL,CAAC;IACD,IAAI,kBAAkB,KAAK,SAAS,IAAI,kBAAkB,GAAG,CAAC,EAAE,CAAC;QAC7D,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAC;IAC9E,CAAC;AACL,CAAC;AAED,0CAA0C;AAC1C,SAAS,kBAAkB,CACvB,QAAiB,EACjB,kBAA2B,EAC3B,oBAA6B,EAC7B,gBAAyB,EACzB,kBAA2B;IAE3B,MAAM,kBAAkB,GAAG,QAAQ,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,QAAQ,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC;IAC7F,MAAM,aAAa,GAAQ,EAAE,QAAQ,EAAE,kBAAkB,EAAE,CAAC;IAE5D,IAAI,kBAAkB,KAAK,SAAS,EAAE,CAAC;QACnC,aAAa,CAAC,cAAc,GAAG,EAAE,IAAI,EAAE,kBAAkB,EAAE,CAAC;QAC5D,IAAI,oBAAoB,KAAK,SAAS,EAAE,CAAC;YACrC,aAAa,CAAC,cAAc,CAAC,MAAM,GAAG,oBAAoB,CAAC;QAC/D,CAAC;IACL,CAAC;IAED,IAAI,gBAAgB,KAAK,SAAS,EAAE,CAAC;QACjC,aAAa,CAAC,YAAY,GAAG,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAC;QACxD,IAAI,kBAAkB,KAAK,SAAS,EAAE,CAAC;YACnC,aAAa,CAAC,YAAY,CAAC,MAAM,GAAG,kBAAkB,CAAC;QAC3D,CAAC;IACL,CAAC;IAED,OAAO,aAAa,CAAC;AACzB,CAAC;AAED,8CAA8C;AAC9C,SAAS,qBAAqB,CAAC,MAAW;IACtC,OAAO;QACH,EAAE,EAAE,MAAM,CAAC,EAAE;QACb,aAAa,EAAE,MAAM,CAAC,aAAa;QACnC,eAAe,EAAE,MAAM,CAAC,eAAe;QACvC,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,OAAY,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,GAAG,CAAC,CAAC,OAAY,EAAE,EAAE,CAAC,CAAC;YAC5F,EAAE,EAAE,OAAO,CAAC,EAAE;YACd,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,aAAa,EAAE,OAAO,CAAC,aAAa;YACpC,eAAe,EAAE,OAAO,CAAC,eAAe;YACxC,MAAM,EAAE;gBACJ,WAAW,EAAE,OAAO,CAAC,MAAM,EAAE,WAAW;gBACxC,UAAU,EAAE,OAAO,CAAC,MAAM,EAAE,UAAU;aACzC;SACJ,CAAC,CAAC;KACN,CAAC;AACN,CAAC;AAED,sCAAsC;AACtC,SAAS,oBAAoB,CAAC,MAAc;IACxC,MAAM,SAAS,GAA2B;QACtC,SAAS,EAAE,CAAC;QACZ,QAAQ,EAAE,CAAC;QACX,OAAO,EAAE,CAAC;QACV,SAAS,EAAE,CAAC;QACZ,QAAQ,EAAE,CAAC;QACX,UAAU,EAAE,CAAC;QACb,SAAS,EAAE,CAAC;KACf,CAAC;IACF,OAAO,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,oBAAoB;AACvD,CAAC;AAED;;;;;GAKG;AACH,SAAS,qBAAqB,CAAC,iBAAyB,EAAE,eAAuB;IAC7E,IAAI,CAAC,iBAAiB,IAAI,CAAC,eAAe,EAAE,CAAC;QACzC,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,iCAAiC;IACjC,MAAM,WAAW,GAAG,iBAAiB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACrD,MAAM,cAAc,GAAG,eAAe,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAEtD,uEAAuE;IACvE,IAAI,cAAc,GAAG,CAAC,CAAC;IACvB,IAAI,YAAY,GAAG,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC;IAE7C,OAAO,cAAc,IAAI,YAAY,IAAI,cAAc,CAAC,cAAc,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;QACpF,cAAc,EAAE,CAAC;IACrB,CAAC;IACD,OAAO,YAAY,IAAI,cAAc,IAAI,cAAc,CAAC,YAAY,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;QAClF,YAAY,EAAE,CAAC;IACnB,CAAC;IAED,IAAI,cAAc,GAAG,YAAY,EAAE,CAAC;QAChC,OAAO,IAAI,CAAC,CAAC,yCAAyC;IAC1D,CAAC;IAED,MAAM,qBAAqB,GAAG,cAAc,CAAC,KAAK,CAAC,cAAc,EAAE,YAAY,GAAG,CAAC,CAAC,CAAC;IAErF,+CAA+C;IAC/C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,WAAW,CAAC,MAAM,GAAG,qBAAqB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC1E,IAAI,KAAK,GAAG,IAAI,CAAC;QAEjB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,qBAAqB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACpD,mEAAmE;YACnE,IAAI,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,qBAAqB,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;gBAChE,KAAK,GAAG,KAAK,CAAC;gBACd,MAAM;YACV,CAAC;QACL,CAAC;QAED,IAAI,KAAK,EAAE,CAAC;YACR,MAAM,cAAc,GAAG,CAAC,CAAC;YACzB,MAAM,YAAY,GAAG,CAAC,GAAG,qBAAqB,CAAC,MAAM,GAAG,CAAC,CAAC;YAE1D,2EAA2E;YAC3E,MAAM,SAAS,GAAG,WAAW,CAAC,cAAc,CAAC,CAAC;YAC9C,MAAM,WAAW,GAAG,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,sDAAsD;YAEtG,0EAA0E;YAC1E,MAAM,OAAO,GAAG,WAAW,CAAC,YAAY,CAAC,CAAC;YAC1C,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,mBAAmB;YAEzD,4CAA4C;YAC5C,OAAO;gBACH,SAAS,EAAE,cAAc,GAAG,CAAC;gBAC7B,OAAO,EAAE,YAAY,GAAG,CAAC;gBACzB,WAAW,EAAE,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,gCAAgC;gBAChF,SAAS,EAAE,SAAS;aACvB,CAAC;QACN,CAAC;IACL,CAAC;IAED,OAAO,IAAI,CAAC,CAAC,uBAAuB;AACxC,CAAC;AAED,gCAAgC;AAChC,MAAM,UAAU,iBAAiB,CAAC,MAAW,EAAE,aAAoC;IAC/E,MAAM,CAAC,IAAI,CACP,6BAA6B,EAC7B,0DAA0D,EAC1D;QACI,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,gDAAgD,CAAC;QACnF,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,qDAAqD,CAAC;QACnF,kBAAkB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,wBAAwB,CAAC;KACpE,EACD,KAAK,EAAE,IAIN,EAAE,EAAE;QACD,IAAI,CAAC;YACD,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,kBAAkB,EAAE,GAAG,IAAI,CAAC;YAE3D,+BAA+B;YAC/B,IAAI,CAAC,YAAY,IAAI,CAAC,OAAO,IAAI,CAAC,kBAAkB,EAAE,CAAC;gBACnD,MAAM,IAAI,KAAK,CAAC,4FAA4F,CAAC,CAAC;YAClH,CAAC;YAED,8BAA8B;YAC9B,MAAM,UAAU,GAAG,MAAM,wBAAwB,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC;YAC/E,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,SAAS,EAAE,CAAC;YAE5C,MAAM,YAAY,GAAG,MAAM,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;YAC3D,MAAM,UAAU,GAAG,YAAY,EAAE,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,kBAAkB,IAAI,IAAI,CAAC,EAAE,KAAK,kBAAkB,CAAC,CAAC;YAEpH,IAAI,CAAC,UAAU,EAAE,CAAC;gBACd,MAAM,IAAI,KAAK,CAAC,cAAc,kBAAkB,yBAAyB,OAAO,EAAE,CAAC,CAAC;YACxF,CAAC;YAED,OAAO;gBACH,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;aACzE,CAAC;QACN,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC5E,OAAO;gBACH,OAAO,EAAE,CAAC;wBACN,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,6BAA6B,YAAY,EAAE;qBACpD,CAAC;gBACF,OAAO,EAAE,IAAI;aAChB,CAAC;QACN,CAAC;IACL,CAAC,CACJ,CAAC;IAEF,MAAM,CAAC,IAAI,CACP,iCAAiC,EACjC,iDAAiD,EACjD;QACI,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,gDAAgD,CAAC;QACnF,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,4BAA4B,CAAC;QAC1D,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,6DAA6D,CAAC;QAChG,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,6DAA6D,CAAC;QACjG,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,yCAAyC,CAAC;QACvE,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sHAAsH,CAAC;QAChK,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;aACrF,QAAQ,EAAE;aACV,OAAO,CAAC,QAAQ,CAAC;aACjB,QAAQ,CAAC,yDAAyD,CAAC;QACxE,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,qMAAqM,CAAC;QAC3O,kBAAkB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,uHAAuH,CAAC;QAChK,oBAAoB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,sMAAsM,CAAC;QACvQ,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,gLAAgL,CAAC;QACvN,kBAAkB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,uLAAuL,CAAC;KACzP,EACD,KAAK,EAAE,IAaN,EAAE,EAAE;QACD,IAAI,CAAC;YACD,MAAM,EACF,YAAY,EACZ,OAAO,EACP,YAAY,EACZ,aAAa,EACb,OAAO,EACP,QAAQ,EACR,MAAM,GAAG,QAAQ,EACjB,eAAe,EACf,kBAAkB,EAClB,oBAAoB,EACpB,gBAAgB,EAChB,kBAAkB,EACrB,GAAG,IAAI,CAAC;YAET,+BAA+B;YAC/B,IAAI,CAAC,YAAY,IAAI,CAAC,OAAO,IAAI,CAAC,YAAY,IAAI,CAAC,aAAa,IAAI,CAAC,OAAO,EAAE,CAAC;gBAC3E,MAAM,IAAI,KAAK,CAAC,8GAA8G,CAAC,CAAC;YACpI,CAAC;YAED,8BAA8B;YAC9B,MAAM,UAAU,GAAG,MAAM,wBAAwB,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC;YAC/E,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,SAAS,EAAE,CAAC;YAE5C,0DAA0D;YAC1D,IAAI,mBAAmB,GAAG,kBAAkB,CAAC;YAC7C,IAAI,iBAAiB,GAAG,gBAAgB,CAAC;YACzC,IAAI,qBAAqB,GAAG,oBAAoB,CAAC;YACjD,IAAI,mBAAmB,GAAG,kBAAkB,CAAC;YAE7C,IAAI,eAAe,IAAI,QAAQ,EAAE,CAAC;gBAC9B,MAAM,gBAAgB,GAAG,MAAM,0BAA0B,CACrD,MAAM,EACN,OAAO,EACP,YAAY,EACZ,aAAa,EACb,QAAQ,CACX,CAAC;gBAEF,MAAM,aAAa,GAAG,sBAAsB,CAAC,gBAAgB,EAAE,eAAe,EAAE,QAAQ,CAAC,CAAC;gBAC1F,mBAAmB,GAAG,aAAa,CAAC,SAAS,CAAC;gBAC9C,iBAAiB,GAAG,aAAa,CAAC,OAAO,CAAC;gBAC1C,qBAAqB,GAAG,aAAa,CAAC,WAAW,CAAC;gBAClD,mBAAmB,GAAG,aAAa,CAAC,SAAS,CAAC;YAClD,CAAC;YAED,sCAAsC;YACtC,sBAAsB,CAAC,mBAAmB,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,mBAAmB,CAAC,CAAC;YAE3G,uBAAuB;YACvB,MAAM,aAAa,GAAG,kBAAkB,CAAC,QAAQ,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,mBAAmB,CAAC,CAAC;YAEvI,gBAAgB;YAChB,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,YAAY,CACpC;gBACI,QAAQ,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;gBAChC,aAAa,EAAE,aAAa;gBAC5B,MAAM,EAAE,oBAAoB,CAAC,MAAM,CAAC;aACvC,EACD,YAAY,EACZ,aAAa,EACb,OAAO,CACV,CAAC;YAEF,wBAAwB;YACxB,MAAM,aAAa,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAC;YACpD,OAAO;gBACH,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;aAC5E,CAAC;QACN,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC5E,OAAO;gBACH,OAAO,EAAE,CAAC;wBACN,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,uCAAuC,YAAY,EAAE;qBAC9D,CAAC;gBACF,OAAO,EAAE,IAAI;aAChB,CAAC;QACN,CAAC;IACL,CAAC,CACJ,CAAC;IAEF,MAAM,CAAC,IAAI,CACP,oCAAoC,EACpC,oGAAoG,EACpG;QACI,YAAY,EAAC,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,gDAAgD,CAAC;QAClF,OAAO,EAAC,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,6CAA6C,CAAC;QAC1E,YAAY,EAAC,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,+DAA+D,CAAC;QACjG,aAAa,EAAC,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,wBAAwB,CAAC;KAC9D,EACD,KAAK,EAAE,IAKN,EAAE,EAAE;QACD,IAAI,CAAC;YACD,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,GAAG,IAAI,CAAC;YAEpE,+BAA+B;YAC/B,IAAI,CAAC,YAAY,IAAI,CAAC,OAAO,IAAI,CAAC,YAAY,IAAI,CAAC,aAAa,EAAE,CAAC;gBAC/D,MAAM,IAAI,KAAK,CAAC,qGAAqG,CAAC,CAAC;YAC3H,CAAC;YAED,8BAA8B;YAC9B,MAAM,UAAU,GAAG,MAAM,wBAAwB,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC;YAC/E,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,SAAS,EAAE,CAAC;YAE5C,2BAA2B;YAC3B,MAAM,WAAW,GAAG,MAAM,MAAM,CAAC,cAAc,CAAC,YAAY,EAAE,aAAa,EAAE,OAAO,CAAC,CAAC;YAEtF,IAAI,CAAC,WAAW,EAAE,CAAC;gBACf,MAAM,IAAI,KAAK,CAAC,gBAAgB,aAAa,4BAA4B,YAAY,EAAE,CAAC,CAAC;YAC7F,CAAC;YAED,sCAAsC;YACtC,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,qBAAqB,CAAC,YAAY,EAAE,aAAa,EAAE,OAAO,CAAC,CAAC;YAEzF,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACnC,OAAO;oBACH,OAAO,EAAE,CAAC;4BACN,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,oCAAoC,aAAa,EAAE;yBAC5D,CAAC;iBACL,CAAC;YACN,CAAC;YAED,mEAAmE;YACnE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;gBAClB,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,EAAE,IAAI,IAAI,CAAC,CAAC,MAAM,EAAE,IAAI,IAAI,CAAC,CAAC,CAAC;gBACjE,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,EAAE,IAAI,IAAI,CAAC,CAAC,MAAM,EAAE,IAAI,IAAI,CAAC,CAAC,CAAC;gBACjE,OAAO,KAAK,CAAC,OAAO,EAAE,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC;YAC7C,CAAC,CAAC,CAAC;YAEH,8CAA8C;YAC9C,MAAM,kBAAkB,GAAG,WAAW,CAAC,qBAAqB,EAAE,QAAQ,CAAC;YACvE,MAAM,kBAAkB,GAAG,WAAW,CAAC,qBAAqB,EAAE,QAAQ,CAAC;YAEvE,IAAI,CAAC,kBAAkB,IAAI,CAAC,kBAAkB,EAAE,CAAC;gBAC7C,MAAM,IAAI,KAAK,CAAC,gEAAgE,aAAa,EAAE,CAAC,CAAC;YACrG,CAAC;YAED,sDAAsD;YACtD,MAAM,WAAW,GAAG,MAAM,yBAAyB,CAC/C,MAAM,EACN,OAAO,EACP,YAAY,EACZ,kBAAkB,EAClB,kBAAkB,EAClB,OAAO,CACV,CAAC;YAEF,MAAM,QAAQ,GAAG;gBACb,IAAI,EAAE,oBAAoB;gBAC1B,aAAa,EAAE,WAAW,CAAC,aAAa;gBACxC,YAAY,EAAE,YAAY;gBAC1B,OAAO,EAAE,OAAO;gBAChB,YAAY,EAAE,YAAY;gBAC1B,OAAO,EAAE;oBACL,YAAY,EAAE,WAAW,CAAC,YAAY;oBACtC,eAAe,EAAE,WAAW,CAAC,eAAe;oBAC5C,gBAAgB,EAAE,WAAW,CAAC,gBAAgB;iBACjD;gBACD,KAAK,EAAE,WAAW,CAAC,KAAK;aAC3B,CAAC;YAEF,OAAO;gBACH,OAAO,EAAE,CAAC;wBACN,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;qBAC1C,CAAC;aACL,CAAC;QAEN,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC5E,OAAO;gBACH,OAAO,EAAE,CAAC;wBACN,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,uCAAuC,YAAY,EAAE;qBAC9D,CAAC;gBACF,OAAO,EAAC,IAAI;aACf,CAAC;QACN,CAAC;IACL,CAAC,CACJ,CAAC;AACN,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"assa.d.ts","sourceRoot":"","sources":["../../src/tools/assa.ts"],"names":[],"mappings":"AAqBA,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,GAAG,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,QA+EnF"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import * as fs from 'node:fs';
|
|
3
|
+
import * as path from 'node:path';
|
|
4
|
+
import { getAzureDevOpsConnection, getFileFromAzureDevOps } from '../utils.js';
|
|
5
|
+
function writeFileToWorkspace(workspaceRoot, fileName, content) {
|
|
6
|
+
const filePath = path.join(workspaceRoot, fileName);
|
|
7
|
+
try {
|
|
8
|
+
fs.writeFileSync(filePath, content, 'utf8');
|
|
9
|
+
}
|
|
10
|
+
catch (error) {
|
|
11
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
12
|
+
throw new Error(`Failed to write file to ${filePath}: ${errorMessage}`);
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
function checkFileExists(workspaceRoot, fileName) {
|
|
16
|
+
const filePath = path.join(workspaceRoot, fileName);
|
|
17
|
+
return fs.existsSync(filePath);
|
|
18
|
+
}
|
|
19
|
+
export function configureAssaTools(server, tokenProvider) {
|
|
20
|
+
server.tool("assa_copy_config_to_workspace", "Copy assa.yml configuration file from Azure DevOps (Innersource/code-guardian repository) to the workspace root folder if it doesn't already exist. This file is required for ASSA (Automated Security and Standards Analysis) to function properly.", {
|
|
21
|
+
workspaceRoot: z.string().describe("The absolute path to the workspace root folder where assa.yml should be copied."),
|
|
22
|
+
overwrite: z.boolean().optional().default(false).describe("Whether to overwrite the file if it already exists. Defaults to false."),
|
|
23
|
+
}, async (args) => {
|
|
24
|
+
try {
|
|
25
|
+
const { workspaceRoot, overwrite = false } = args;
|
|
26
|
+
if (!workspaceRoot) {
|
|
27
|
+
throw new Error('Missing required parameter: workspaceRoot');
|
|
28
|
+
}
|
|
29
|
+
// Verify workspace root exists
|
|
30
|
+
if (!fs.existsSync(workspaceRoot)) {
|
|
31
|
+
throw new Error(`Workspace root does not exist: ${workspaceRoot}`);
|
|
32
|
+
}
|
|
33
|
+
const fileName = 'assa.yml';
|
|
34
|
+
const fileExists = checkFileExists(workspaceRoot, fileName);
|
|
35
|
+
// Check if file already exists and overwrite is not enabled
|
|
36
|
+
if (fileExists && !overwrite) {
|
|
37
|
+
return {
|
|
38
|
+
content: [{
|
|
39
|
+
type: "text",
|
|
40
|
+
text: `File ${fileName} already exists in workspace root: ${workspaceRoot}. Use overwrite=true to replace it.`
|
|
41
|
+
}],
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
// Azure DevOps connection details
|
|
45
|
+
const organization = 'dnvgl-one';
|
|
46
|
+
const project = 'Innersource';
|
|
47
|
+
const repositoryId = 'code-guardian';
|
|
48
|
+
const filePath = '/assa/assa.yml';
|
|
49
|
+
const branch = 'main';
|
|
50
|
+
// Get Azure DevOps connection
|
|
51
|
+
const connection = await getAzureDevOpsConnection(organization, tokenProvider);
|
|
52
|
+
const gitApi = await connection.getGitApi();
|
|
53
|
+
// Get file content from Azure DevOps
|
|
54
|
+
const fileContent = await getFileFromAzureDevOps(gitApi, project, repositoryId, filePath, branch);
|
|
55
|
+
// Write file to workspace root
|
|
56
|
+
writeFileToWorkspace(workspaceRoot, fileName, fileContent);
|
|
57
|
+
const action = fileExists ? 'overwritten' : 'created';
|
|
58
|
+
return {
|
|
59
|
+
content: [{
|
|
60
|
+
type: "text",
|
|
61
|
+
text: `Successfully ${action} ${fileName} in workspace root: ${workspaceRoot}\n\nFile source: https://dev.azure.com/${organization}/${project}/_git/${repositoryId}?path=${filePath}&version=GB${branch}`
|
|
62
|
+
}],
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
catch (error) {
|
|
66
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
67
|
+
return {
|
|
68
|
+
content: [{
|
|
69
|
+
type: "text",
|
|
70
|
+
text: `Error copying assa.yml to workspace: ${errorMessage}`
|
|
71
|
+
}],
|
|
72
|
+
isError: true,
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
//# sourceMappingURL=assa.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"assa.js","sourceRoot":"","sources":["../../src/tools/assa.ts"],"names":[],"mappings":"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"}
|
package/dist/tools.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;
|
|
1
|
+
{"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAIpE,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,GAAG,IAAI,CAM/F"}
|
package/dist/tools.js
CHANGED
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
import { configureAdoTools } from "./tools/ado.js";
|
|
2
|
+
import { configureAssaTools } from "./tools/assa.js";
|
|
2
3
|
export function configureAllTools(server, tokenProvider) {
|
|
3
4
|
// Configure Azure DevOps tools
|
|
4
5
|
configureAdoTools(server, tokenProvider);
|
|
6
|
+
// Configure ASSA tools
|
|
7
|
+
configureAssaTools(server, tokenProvider);
|
|
5
8
|
}
|
|
6
9
|
//# sourceMappingURL=tools.js.map
|
package/dist/tools.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAErD,MAAM,UAAU,iBAAiB,CAAC,MAAiB,EAAE,aAAoC;IACvF,+BAA+B;IAC/B,iBAAiB,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IAEzC,uBAAuB;IACvB,kBAAkB,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;AAC5C,CAAC"}
|
package/dist/utils.d.ts
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import * as azdev from 'azure-devops-node-api';
|
|
2
|
+
/**
|
|
3
|
+
* Converts a NodeJS readable stream to a string
|
|
4
|
+
*/
|
|
5
|
+
export declare function streamToString(stream: NodeJS.ReadableStream): Promise<string>;
|
|
6
|
+
/**
|
|
7
|
+
* Creates an Azure DevOps connection
|
|
8
|
+
*/
|
|
9
|
+
export declare function getAzureDevOpsConnection(organization: string, tokenProvider: () => Promise<string>): Promise<azdev.WebApi>;
|
|
10
|
+
/**
|
|
11
|
+
* Retrieves a file from Azure DevOps repository
|
|
12
|
+
*/
|
|
13
|
+
export declare function getFileFromAzureDevOps(gitApi: any, project: string, repositoryId: string, filePath: string, branch?: string): Promise<string>;
|
|
14
|
+
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,uBAAuB,CAAC;AAE/C;;GAEG;AACH,wBAAsB,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAOnF;AAED;;GAEG;AACH,wBAAsB,wBAAwB,CAC1C,YAAY,EAAE,MAAM,EACpB,aAAa,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,GACrC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAMvB;AAED;;GAEG;AACH,wBAAsB,sBAAsB,CACxC,MAAM,EAAE,GAAG,EACX,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,MAAM,EAChB,MAAM,GAAE,MAAe,GACxB,OAAO,CAAC,MAAM,CAAC,CA4BjB"}
|
package/dist/utils.js
ADDED
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import * as azdev from 'azure-devops-node-api';
|
|
2
|
+
/**
|
|
3
|
+
* Converts a NodeJS readable stream to a string
|
|
4
|
+
*/
|
|
5
|
+
export async function streamToString(stream) {
|
|
6
|
+
const chunks = [];
|
|
7
|
+
return new Promise((resolve, reject) => {
|
|
8
|
+
stream.on('data', (chunk) => chunks.push(Buffer.from(chunk)));
|
|
9
|
+
stream.on('error', (err) => reject(new Error(`Stream error: ${err}`)));
|
|
10
|
+
stream.on('end', () => resolve(Buffer.concat(chunks).toString('utf8')));
|
|
11
|
+
});
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Creates an Azure DevOps connection
|
|
15
|
+
*/
|
|
16
|
+
export async function getAzureDevOpsConnection(organization, tokenProvider) {
|
|
17
|
+
const accessToken = await tokenProvider();
|
|
18
|
+
const authHandler = azdev.getBearerHandler(accessToken);
|
|
19
|
+
const orgUrl = `https://dev.azure.com/${organization}`;
|
|
20
|
+
return new azdev.WebApi(orgUrl, authHandler);
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Retrieves a file from Azure DevOps repository
|
|
24
|
+
*/
|
|
25
|
+
export async function getFileFromAzureDevOps(gitApi, project, repositoryId, filePath, branch = 'main') {
|
|
26
|
+
try {
|
|
27
|
+
const versionDescriptor = {
|
|
28
|
+
version: branch,
|
|
29
|
+
versionType: 0 // GitVersionType.Branch
|
|
30
|
+
};
|
|
31
|
+
const stream = await gitApi.getItemContent(repositoryId, filePath, project, undefined, undefined, false, false, false, versionDescriptor);
|
|
32
|
+
if (!stream) {
|
|
33
|
+
throw new Error('Failed to retrieve file content from Azure DevOps');
|
|
34
|
+
}
|
|
35
|
+
return await streamToString(stream);
|
|
36
|
+
}
|
|
37
|
+
catch (error) {
|
|
38
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
39
|
+
throw new Error(`Could not get content for ${filePath} from branch ${branch}: ${errorMessage}`);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,uBAAuB,CAAC;AAE/C;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,MAA6B;IAC9D,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACnC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC9D,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,iBAAiB,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;QACvE,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAC5E,CAAC,CAAC,CAAC;AACP,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC1C,YAAoB,EACpB,aAAoC;IAEpC,MAAM,WAAW,GAAG,MAAM,aAAa,EAAE,CAAC;IAC1C,MAAM,WAAW,GAAG,KAAK,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC;IACxD,MAAM,MAAM,GAAG,yBAAyB,YAAY,EAAE,CAAC;IAEvD,OAAO,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;AACjD,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CACxC,MAAW,EACX,OAAe,EACf,YAAoB,EACpB,QAAgB,EAChB,SAAiB,MAAM;IAEvB,IAAI,CAAC;QACD,MAAM,iBAAiB,GAAG;YACtB,OAAO,EAAE,MAAM;YACf,WAAW,EAAE,CAAC,CAAC,wBAAwB;SAC1C,CAAC;QAEF,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,cAAc,CACtC,YAAY,EACZ,QAAQ,EACR,OAAO,EACP,SAAS,EACT,SAAS,EACT,KAAK,EACL,KAAK,EACL,KAAK,EACL,iBAAiB,CACpB,CAAC;QAEF,IAAI,CAAC,MAAM,EAAE,CAAC;YACV,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;QACzE,CAAC;QAED,OAAO,MAAM,cAAc,CAAC,MAAM,CAAC,CAAC;IACxC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC5E,MAAM,IAAI,KAAK,CAAC,6BAA6B,QAAQ,gBAAgB,MAAM,KAAK,YAAY,EAAE,CAAC,CAAC;IACpG,CAAC;AACL,CAAC"}
|