gitgrip 0.2.4 → 0.3.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.
Files changed (45) hide show
  1. package/README.md +75 -1
  2. package/dist/commands/pr/create.d.ts.map +1 -1
  3. package/dist/commands/pr/create.js +29 -8
  4. package/dist/commands/pr/create.js.map +1 -1
  5. package/dist/commands/pr/merge.d.ts.map +1 -1
  6. package/dist/commands/pr/merge.js +40 -33
  7. package/dist/commands/pr/merge.js.map +1 -1
  8. package/dist/commands/pr/status.d.ts.map +1 -1
  9. package/dist/commands/pr/status.js +15 -11
  10. package/dist/commands/pr/status.js.map +1 -1
  11. package/dist/lib/github.d.ts +28 -4
  12. package/dist/lib/github.d.ts.map +1 -1
  13. package/dist/lib/github.js +65 -126
  14. package/dist/lib/github.js.map +1 -1
  15. package/dist/lib/linker.d.ts +19 -4
  16. package/dist/lib/linker.d.ts.map +1 -1
  17. package/dist/lib/linker.js +107 -16
  18. package/dist/lib/linker.js.map +1 -1
  19. package/dist/lib/manifest.d.ts +12 -1
  20. package/dist/lib/manifest.d.ts.map +1 -1
  21. package/dist/lib/manifest.js +45 -5
  22. package/dist/lib/manifest.js.map +1 -1
  23. package/dist/lib/platform/azure-devops.d.ts +83 -0
  24. package/dist/lib/platform/azure-devops.d.ts.map +1 -0
  25. package/dist/lib/platform/azure-devops.js +378 -0
  26. package/dist/lib/platform/azure-devops.js.map +1 -0
  27. package/dist/lib/platform/github.d.ts +82 -0
  28. package/dist/lib/platform/github.d.ts.map +1 -0
  29. package/dist/lib/platform/github.js +285 -0
  30. package/dist/lib/platform/github.js.map +1 -0
  31. package/dist/lib/platform/gitlab.d.ts +82 -0
  32. package/dist/lib/platform/gitlab.d.ts.map +1 -0
  33. package/dist/lib/platform/gitlab.js +331 -0
  34. package/dist/lib/platform/gitlab.js.map +1 -0
  35. package/dist/lib/platform/index.d.ts +60 -0
  36. package/dist/lib/platform/index.d.ts.map +1 -0
  37. package/dist/lib/platform/index.js +132 -0
  38. package/dist/lib/platform/index.js.map +1 -0
  39. package/dist/lib/platform/types.d.ts +162 -0
  40. package/dist/lib/platform/types.d.ts.map +1 -0
  41. package/dist/lib/platform/types.js +5 -0
  42. package/dist/lib/platform/types.js.map +1 -0
  43. package/dist/types.d.ts +39 -5
  44. package/dist/types.d.ts.map +1 -1
  45. package/package.json +3 -1
@@ -1 +1 @@
1
- {"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../../src/lib/manifest.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,cAAc,EAAmD,MAAM,aAAa,CAAC;AAyElI;;GAEG;AACH,wBAAgB,aAAa,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CAE3D;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CAE7D;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CAE7D;AAED;;;GAGG;AACH,wBAAsB,gBAAgB,CAAC,QAAQ,GAAE,MAAsB,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAc/F;AAED;;;GAGG;AACH,wBAAsB,YAAY,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAAE,QAAQ,EAAE,QAAQ,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CA+H1G;AAED;;GAEG;AACH,wBAAsB,cAAc,CAAC,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAO5F;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,CAc1D;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,MAAM,GAAG,QAAQ,CAStG;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,GAAG,QAAQ,EAAE,CAE9E;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI,CAuBxF;AASD;;GAEG;AACH,wBAAsB,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAWnE;AAED;;GAEG;AACH,wBAAsB,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAShF;AAED;;GAEG;AACH,wBAAgB,sBAAsB,IAAI,QAAQ,CAoBjD"}
1
+ {"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../../src/lib/manifest.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,cAAc,EAAmD,YAAY,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AA0EhK;;GAEG;AACH,wBAAgB,aAAa,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CAE3D;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CAE7D;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CAE7D;AAED;;;GAGG;AACH,wBAAsB,gBAAgB,CAAC,QAAQ,GAAE,MAAsB,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAc/F;AAED;;;GAGG;AACH,wBAAsB,YAAY,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAAE,QAAQ,EAAE,QAAQ,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CA+H1G;AAED;;GAEG;AACH,wBAAsB,cAAc,CAAC,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAO5F;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,CAc1D;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,CAcxD;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE;IAAE,IAAI,EAAE,YAAY,CAAA;CAAE,GAAG,YAAY,CAalG;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,MAAM,GAAG,QAAQ,CAatG;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,GAAG,QAAQ,EAAE,CAE9E;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI,CA0BxF;AASD;;GAEG;AACH,wBAAsB,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAWnE;AAED;;GAEG;AACH,wBAAsB,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAShF;AAED;;GAEG;AACH,wBAAgB,sBAAsB,IAAI,QAAQ,CAoBjD"}
@@ -1,6 +1,7 @@
1
1
  import { readFile, writeFile, access } from 'fs/promises';
2
2
  import { resolve, dirname, join, normalize } from 'path';
3
3
  import YAML from 'yaml';
4
+ import { parseRepoUrl as platformParseRepoUrl, detectPlatform } from './platform/index.js';
4
5
  // AOSP-style: manifest lives in .gitgrip/manifests/manifest.yaml
5
6
  const GITGRIP_DIR = '.gitgrip';
6
7
  const MANIFESTS_DIR = 'manifests';
@@ -233,6 +234,7 @@ export async function createManifest(manifestsDir, manifest) {
233
234
  }
234
235
  /**
235
236
  * Parse GitHub owner/repo from a git URL
237
+ * @deprecated Use parseRepoUrl for multi-platform support
236
238
  */
237
239
  export function parseGitHubUrl(url) {
238
240
  // SSH format: git@github.com:owner/repo.git
@@ -247,17 +249,52 @@ export function parseGitHubUrl(url) {
247
249
  }
248
250
  throw new Error(`Unable to parse GitHub URL: ${url}`);
249
251
  }
252
+ /**
253
+ * Parse repository info from a git URL (supports GitHub, GitLab, Azure DevOps)
254
+ */
255
+ export function parseRepoUrl(url) {
256
+ const parsed = platformParseRepoUrl(url);
257
+ if (!parsed) {
258
+ throw new Error(`Unable to parse git URL: ${url}. ` +
259
+ `Supported platforms: GitHub, GitLab, Azure DevOps`);
260
+ }
261
+ return {
262
+ owner: parsed.owner,
263
+ repo: parsed.repo,
264
+ project: parsed.project,
265
+ platform: parsed.platform,
266
+ };
267
+ }
268
+ /**
269
+ * Detect platform type from URL or config
270
+ */
271
+ export function getPlatformType(url, configPlatform) {
272
+ // Use explicit config if provided
273
+ if (configPlatform?.type) {
274
+ return configPlatform.type;
275
+ }
276
+ // Auto-detect from URL
277
+ const detected = detectPlatform(url);
278
+ if (!detected) {
279
+ // Default to github for backward compatibility
280
+ return 'github';
281
+ }
282
+ return detected;
283
+ }
250
284
  /**
251
285
  * Get full repo info with computed fields
252
286
  */
253
287
  export function getRepoInfo(name, config, rootDir) {
254
- const { owner, repo } = parseGitHubUrl(config.url);
288
+ const parsed = parseRepoUrl(config.url);
289
+ const platformType = getPlatformType(config.url, config.platform);
255
290
  return {
256
291
  ...config,
257
292
  name,
258
293
  absolutePath: resolve(rootDir, config.path),
259
- owner,
260
- repo,
294
+ owner: parsed.owner,
295
+ repo: parsed.repo,
296
+ platformType,
297
+ project: parsed.project,
261
298
  };
262
299
  }
263
300
  /**
@@ -276,7 +313,8 @@ export function getManifestRepoInfo(manifest, rootDir) {
276
313
  }
277
314
  const manifestsDir = getManifestsDir(rootDir);
278
315
  try {
279
- const parsed = parseGitHubUrl(manifest.manifest.url);
316
+ const parsed = parseRepoUrl(manifest.manifest.url);
317
+ const platformType = getPlatformType(manifest.manifest.url, manifest.manifest.platform);
280
318
  return {
281
319
  name: 'manifest',
282
320
  url: manifest.manifest.url,
@@ -285,10 +323,12 @@ export function getManifestRepoInfo(manifest, rootDir) {
285
323
  default_branch: manifest.manifest.default_branch ?? 'main',
286
324
  owner: parsed.owner,
287
325
  repo: parsed.repo,
326
+ platformType,
327
+ project: parsed.project,
288
328
  };
289
329
  }
290
330
  catch {
291
- // Invalid GitHub URL format
331
+ // Invalid URL format
292
332
  return null;
293
333
  }
294
334
  }
@@ -1 +1 @@
1
- {"version":3,"file":"manifest.js","sourceRoot":"","sources":["../../src/lib/manifest.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"manifest.js","sourceRoot":"","sources":["../../src/lib/manifest.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,83 @@
1
+ import type { HostingPlatform, PlatformType, PlatformConfig, ParsedRepoInfo, PullRequest, PRCreateResult, PRMergeOptions, PRReview, StatusCheckResult } from './types.js';
2
+ /**
3
+ * Azure DevOps platform adapter implementing the HostingPlatform interface
4
+ */
5
+ export declare class AzureDevOpsPlatform implements HostingPlatform {
6
+ readonly type: PlatformType;
7
+ private token;
8
+ private config;
9
+ private baseUrl;
10
+ constructor(config?: PlatformConfig);
11
+ /**
12
+ * Get Azure DevOps token from environment or az CLI
13
+ */
14
+ getToken(): Promise<string>;
15
+ /**
16
+ * Make authenticated API request to Azure DevOps
17
+ */
18
+ private apiRequest;
19
+ /**
20
+ * Parse Azure DevOps context from owner string
21
+ * Format: "org/project" where owner is org and repo is separate
22
+ */
23
+ private parseContext;
24
+ /**
25
+ * Create a pull request
26
+ */
27
+ createPullRequest(owner: string, repo: string, head: string, base: string, title: string, body?: string, draft?: boolean): Promise<PRCreateResult>;
28
+ /**
29
+ * Get pull request details
30
+ */
31
+ getPullRequest(owner: string, repo: string, pullNumber: number): Promise<PullRequest>;
32
+ /**
33
+ * Update pull request description
34
+ */
35
+ updatePullRequestBody(owner: string, repo: string, pullNumber: number, body: string): Promise<void>;
36
+ /**
37
+ * Merge (complete) a pull request
38
+ */
39
+ mergePullRequest(owner: string, repo: string, pullNumber: number, options?: PRMergeOptions): Promise<boolean>;
40
+ /**
41
+ * Find PR by branch name
42
+ */
43
+ findPRByBranch(owner: string, repo: string, branch: string): Promise<PRCreateResult | null>;
44
+ /**
45
+ * Check if PR is approved
46
+ */
47
+ isPullRequestApproved(owner: string, repo: string, pullNumber: number): Promise<boolean>;
48
+ /**
49
+ * Get PR reviewers/votes
50
+ */
51
+ getPullRequestReviews(owner: string, repo: string, pullNumber: number): Promise<PRReview[]>;
52
+ /**
53
+ * Get build status for a commit/PR
54
+ */
55
+ getStatusChecks(owner: string, repo: string, ref: string): Promise<StatusCheckResult>;
56
+ /**
57
+ * Parse Azure DevOps URL to extract org/project/repo
58
+ */
59
+ parseRepoUrl(url: string): ParsedRepoInfo | null;
60
+ /**
61
+ * Check if URL matches Azure DevOps
62
+ */
63
+ matchesUrl(url: string): boolean;
64
+ /**
65
+ * Generate HTML comment for linked PR tracking
66
+ */
67
+ generateLinkedPRComment(links: {
68
+ repoName: string;
69
+ number: number;
70
+ }[]): string;
71
+ /**
72
+ * Parse linked PRs from PR description
73
+ */
74
+ parseLinkedPRComment(body: string): {
75
+ repoName: string;
76
+ number: number;
77
+ }[];
78
+ }
79
+ /**
80
+ * Create a new Azure DevOps platform instance
81
+ */
82
+ export declare function createAzureDevOpsPlatform(config?: PlatformConfig): AzureDevOpsPlatform;
83
+ //# sourceMappingURL=azure-devops.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"azure-devops.d.ts","sourceRoot":"","sources":["../../../src/lib/platform/azure-devops.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,eAAe,EACf,YAAY,EACZ,cAAc,EACd,cAAc,EACd,WAAW,EACX,cAAc,EACd,cAAc,EACd,QAAQ,EACR,iBAAiB,EAElB,MAAM,YAAY,CAAC;AA0BpB;;GAEG;AACH,qBAAa,mBAAoB,YAAW,eAAe;IACzD,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAkB;IAE7C,OAAO,CAAC,KAAK,CAAuB;IACpC,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,OAAO,CAAS;gBAEZ,MAAM,CAAC,EAAE,cAAc;IAKnC;;OAEG;IACG,QAAQ,IAAI,OAAO,CAAC,MAAM,CAAC;IAmCjC;;OAEG;YACW,UAAU;IAoCxB;;;OAGG;IACH,OAAO,CAAC,YAAY;IAkBpB;;OAEG;IACG,iBAAiB,CACrB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,IAAI,SAAK,EACT,KAAK,UAAQ,GACZ,OAAO,CAAC,cAAc,CAAC;IAyB1B;;OAEG;IACG,cAAc,CAClB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,WAAW,CAAC;IA8CvB;;OAEG;IACG,qBAAqB,CACzB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,IAAI,CAAC;IAYhB;;OAEG;IACG,gBAAgB,CACpB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,MAAM,EAClB,OAAO,GAAE,cAAmB,GAC3B,OAAO,CAAC,OAAO,CAAC;IA+CnB;;OAEG;IACG,cAAc,CAClB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;IAqBjC;;OAEG;IACG,qBAAqB,CACzB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,OAAO,CAAC;IAQnB;;OAEG;IACG,qBAAqB,CACzB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,QAAQ,EAAE,CAAC;IAoCtB;;OAEG;IACG,eAAe,CACnB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,iBAAiB,CAAC;IA+C7B;;OAEG;IACH,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI;IAiDhD;;OAEG;IACH,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAchC;;OAEG;IACH,uBAAuB,CAAC,KAAK,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,EAAE,GAAG,MAAM;IAK9E;;OAEG;IACH,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,EAAE;CAY3E;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,MAAM,CAAC,EAAE,cAAc,GAAG,mBAAmB,CAEtF"}
@@ -0,0 +1,378 @@
1
+ /**
2
+ * Azure DevOps hosting platform adapter
3
+ */
4
+ import { execSync } from 'child_process';
5
+ /**
6
+ * Azure DevOps platform adapter implementing the HostingPlatform interface
7
+ */
8
+ export class AzureDevOpsPlatform {
9
+ type = 'azure-devops';
10
+ token = null;
11
+ config;
12
+ baseUrl;
13
+ constructor(config) {
14
+ this.config = config ?? { type: 'azure-devops' };
15
+ this.baseUrl = this.config.baseUrl ?? 'https://dev.azure.com';
16
+ }
17
+ /**
18
+ * Get Azure DevOps token from environment or az CLI
19
+ */
20
+ async getToken() {
21
+ if (this.token) {
22
+ return this.token;
23
+ }
24
+ // Try environment variable first
25
+ if (process.env.AZURE_DEVOPS_TOKEN) {
26
+ this.token = process.env.AZURE_DEVOPS_TOKEN;
27
+ return this.token;
28
+ }
29
+ // Alternative env var name
30
+ if (process.env.AZURE_DEVOPS_EXT_PAT) {
31
+ this.token = process.env.AZURE_DEVOPS_EXT_PAT;
32
+ return this.token;
33
+ }
34
+ // Try az CLI to get PAT
35
+ try {
36
+ // Note: az devops configure --use-git-aliases doesn't provide token directly
37
+ // Users typically need to use a PAT stored in env var
38
+ const output = execSync('az account get-access-token --resource 499b84ac-1321-427f-aa17-267ca6975798 --query accessToken -o tsv 2>/dev/null', { encoding: 'utf-8' });
39
+ if (output.trim()) {
40
+ this.token = output.trim();
41
+ return this.token;
42
+ }
43
+ }
44
+ catch {
45
+ // az CLI not available or not authenticated
46
+ }
47
+ throw new Error('Azure DevOps token not found. Set AZURE_DEVOPS_TOKEN environment variable or use az login');
48
+ }
49
+ /**
50
+ * Make authenticated API request to Azure DevOps
51
+ */
52
+ async apiRequest(method, org, project, endpoint, body, apiVersion = '7.0') {
53
+ const token = await this.getToken();
54
+ const url = `${this.baseUrl}/${org}/${project}/_apis${endpoint}?api-version=${apiVersion}`;
55
+ // Azure DevOps uses Basic auth with PAT (user can be empty)
56
+ const authHeader = Buffer.from(`:${token}`).toString('base64');
57
+ const options = {
58
+ method,
59
+ headers: {
60
+ 'Authorization': `Basic ${authHeader}`,
61
+ 'Content-Type': 'application/json',
62
+ },
63
+ };
64
+ if (body) {
65
+ options.body = JSON.stringify(body);
66
+ }
67
+ const response = await fetch(url, options);
68
+ if (!response.ok) {
69
+ const errorText = await response.text();
70
+ throw new Error(`Azure DevOps API error (${response.status}): ${errorText}`);
71
+ }
72
+ return response.json();
73
+ }
74
+ /**
75
+ * Parse Azure DevOps context from owner string
76
+ * Format: "org/project" where owner is org and repo is separate
77
+ */
78
+ parseContext(owner, repo) {
79
+ // In Azure DevOps, the "owner" from our URL parsing is actually "org/project"
80
+ const parts = owner.split('/');
81
+ if (parts.length >= 2) {
82
+ return {
83
+ organization: parts[0],
84
+ project: parts.slice(1).join('/'),
85
+ repository: repo,
86
+ };
87
+ }
88
+ // Fallback: owner is org, and we use repo as both project and repo
89
+ return {
90
+ organization: owner,
91
+ project: repo,
92
+ repository: repo,
93
+ };
94
+ }
95
+ /**
96
+ * Create a pull request
97
+ */
98
+ async createPullRequest(owner, repo, head, base, title, body = '', draft = false) {
99
+ const ctx = this.parseContext(owner, repo);
100
+ const pr = await this.apiRequest('POST', ctx.organization, ctx.project, `/git/repositories/${ctx.repository}/pullrequests`, {
101
+ sourceRefName: `refs/heads/${head}`,
102
+ targetRefName: `refs/heads/${base}`,
103
+ title,
104
+ description: body,
105
+ isDraft: draft,
106
+ });
107
+ const webUrl = `${this.baseUrl}/${ctx.organization}/${ctx.project}/_git/${ctx.repository}/pullrequest/${pr.pullRequestId}`;
108
+ return {
109
+ number: pr.pullRequestId,
110
+ url: webUrl,
111
+ };
112
+ }
113
+ /**
114
+ * Get pull request details
115
+ */
116
+ async getPullRequest(owner, repo, pullNumber) {
117
+ const ctx = this.parseContext(owner, repo);
118
+ const pr = await this.apiRequest('GET', ctx.organization, ctx.project, `/git/repositories/${ctx.repository}/pullrequests/${pullNumber}`);
119
+ // Map Azure DevOps status to our unified state
120
+ let state = 'open';
121
+ let merged = false;
122
+ if (pr.status === 'completed') {
123
+ state = 'closed';
124
+ // Azure DevOps merges on completion (or could be closed without merge)
125
+ // Check merge status to determine
126
+ merged = pr.mergeStatus === 'succeeded';
127
+ }
128
+ else if (pr.status === 'abandoned') {
129
+ state = 'closed';
130
+ }
131
+ // Azure DevOps mergeability
132
+ const mergeable = pr.mergeStatus === 'succeeded' || pr.mergeStatus === 'queued';
133
+ const webUrl = `${this.baseUrl}/${ctx.organization}/${ctx.project}/_git/${ctx.repository}/pullrequest/${pr.pullRequestId}`;
134
+ return {
135
+ number: pr.pullRequestId,
136
+ url: webUrl,
137
+ title: pr.title,
138
+ body: pr.description ?? '',
139
+ state,
140
+ merged,
141
+ mergeable,
142
+ head: {
143
+ ref: pr.sourceRefName.replace('refs/heads/', ''),
144
+ sha: pr.lastMergeSourceCommit?.commitId ?? '',
145
+ },
146
+ base: {
147
+ ref: pr.targetRefName.replace('refs/heads/', ''),
148
+ },
149
+ };
150
+ }
151
+ /**
152
+ * Update pull request description
153
+ */
154
+ async updatePullRequestBody(owner, repo, pullNumber, body) {
155
+ const ctx = this.parseContext(owner, repo);
156
+ await this.apiRequest('PATCH', ctx.organization, ctx.project, `/git/repositories/${ctx.repository}/pullrequests/${pullNumber}`, { description: body });
157
+ }
158
+ /**
159
+ * Merge (complete) a pull request
160
+ */
161
+ async mergePullRequest(owner, repo, pullNumber, options = {}) {
162
+ const ctx = this.parseContext(owner, repo);
163
+ try {
164
+ // Get current PR to get the last merge source commit
165
+ const pr = await this.getPullRequest(owner, repo, pullNumber);
166
+ // Azure DevOps "complete" action
167
+ const completeOptions = {
168
+ status: 'completed',
169
+ lastMergeSourceCommit: { commitId: pr.head.sha },
170
+ completionOptions: {},
171
+ };
172
+ if (options.deleteBranch) {
173
+ completeOptions.completionOptions.deleteSourceBranch = true;
174
+ }
175
+ // Map merge method
176
+ if (options.method === 'squash') {
177
+ completeOptions.completionOptions.squashMerge = true;
178
+ }
179
+ else if (options.method === 'rebase') {
180
+ completeOptions.completionOptions.mergeStrategy = 'rebase';
181
+ }
182
+ await this.apiRequest('PATCH', ctx.organization, ctx.project, `/git/repositories/${ctx.repository}/pullrequests/${pullNumber}`, completeOptions);
183
+ return true;
184
+ }
185
+ catch {
186
+ return false;
187
+ }
188
+ }
189
+ /**
190
+ * Find PR by branch name
191
+ */
192
+ async findPRByBranch(owner, repo, branch) {
193
+ const ctx = this.parseContext(owner, repo);
194
+ const response = await this.apiRequest('GET', ctx.organization, ctx.project, `/git/repositories/${ctx.repository}/pullrequests?searchCriteria.sourceRefName=refs/heads/${encodeURIComponent(branch)}&searchCriteria.status=active`);
195
+ if (response.value && response.value.length > 0) {
196
+ const pr = response.value[0];
197
+ const webUrl = `${this.baseUrl}/${ctx.organization}/${ctx.project}/_git/${ctx.repository}/pullrequest/${pr.pullRequestId}`;
198
+ return {
199
+ number: pr.pullRequestId,
200
+ url: webUrl,
201
+ };
202
+ }
203
+ return null;
204
+ }
205
+ /**
206
+ * Check if PR is approved
207
+ */
208
+ async isPullRequestApproved(owner, repo, pullNumber) {
209
+ const reviews = await this.getPullRequestReviews(owner, repo, pullNumber);
210
+ // Azure DevOps: vote 10 = approved, 5 = approved with suggestions
211
+ const hasApproval = reviews.some((r) => r.state === 'APPROVED' || r.state === 'APPROVED_WITH_SUGGESTIONS');
212
+ const hasRejection = reviews.some((r) => r.state === 'REJECTED' || r.state === 'WAITING_FOR_AUTHOR');
213
+ return hasApproval && !hasRejection;
214
+ }
215
+ /**
216
+ * Get PR reviewers/votes
217
+ */
218
+ async getPullRequestReviews(owner, repo, pullNumber) {
219
+ const ctx = this.parseContext(owner, repo);
220
+ const pr = await this.apiRequest('GET', ctx.organization, ctx.project, `/git/repositories/${ctx.repository}/pullrequests/${pullNumber}`);
221
+ return (pr.reviewers ?? []).map((reviewer) => {
222
+ // Map Azure DevOps vote to state
223
+ let state;
224
+ switch (reviewer.vote) {
225
+ case 10:
226
+ state = 'APPROVED';
227
+ break;
228
+ case 5:
229
+ state = 'APPROVED_WITH_SUGGESTIONS';
230
+ break;
231
+ case -10:
232
+ state = 'REJECTED';
233
+ break;
234
+ case -5:
235
+ state = 'WAITING_FOR_AUTHOR';
236
+ break;
237
+ default:
238
+ state = 'PENDING';
239
+ }
240
+ return {
241
+ state,
242
+ user: reviewer.displayName || reviewer.uniqueName,
243
+ };
244
+ });
245
+ }
246
+ /**
247
+ * Get build status for a commit/PR
248
+ */
249
+ async getStatusChecks(owner, repo, ref) {
250
+ const ctx = this.parseContext(owner, repo);
251
+ try {
252
+ // Get builds for this commit
253
+ const response = await this.apiRequest('GET', ctx.organization, ctx.project, `/build/builds?repositoryId=${ctx.repository}&repositoryType=TfsGit&$top=5`, undefined, '7.0');
254
+ if (!response.value || response.value.length === 0) {
255
+ return { state: 'success', statuses: [] };
256
+ }
257
+ // Find builds for this ref/commit
258
+ const builds = response.value;
259
+ // Aggregate status
260
+ const hasFailure = builds.some((b) => b.result === 'failed' || b.result === 'canceled');
261
+ const hasInProgress = builds.some((b) => b.status !== 'completed');
262
+ let state;
263
+ if (hasFailure) {
264
+ state = 'failure';
265
+ }
266
+ else if (hasInProgress) {
267
+ state = 'pending';
268
+ }
269
+ else {
270
+ state = 'success';
271
+ }
272
+ return {
273
+ state,
274
+ statuses: builds.map((b) => ({
275
+ context: 'azure-pipeline',
276
+ state: b.result ?? b.status,
277
+ })),
278
+ };
279
+ }
280
+ catch {
281
+ // No builds or API error
282
+ return { state: 'success', statuses: [] };
283
+ }
284
+ }
285
+ /**
286
+ * Parse Azure DevOps URL to extract org/project/repo
287
+ */
288
+ parseRepoUrl(url) {
289
+ // SSH format: git@ssh.dev.azure.com:v3/org/project/repo
290
+ const sshMatch = url.match(/git@ssh\.dev\.azure\.com:v3\/([^/]+)\/([^/]+)\/(.+?)(?:\.git)?$/);
291
+ if (sshMatch) {
292
+ return {
293
+ owner: `${sshMatch[1]}/${sshMatch[2]}`, // org/project
294
+ repo: sshMatch[3],
295
+ project: sshMatch[2],
296
+ };
297
+ }
298
+ // HTTPS format: https://dev.azure.com/org/project/_git/repo
299
+ const httpsMatch = url.match(/https?:\/\/dev\.azure\.com\/([^/]+)\/([^/]+)\/_git\/(.+?)(?:\.git)?$/);
300
+ if (httpsMatch) {
301
+ return {
302
+ owner: `${httpsMatch[1]}/${httpsMatch[2]}`, // org/project
303
+ repo: httpsMatch[3],
304
+ project: httpsMatch[2],
305
+ };
306
+ }
307
+ // Legacy visualstudio.com format: https://org.visualstudio.com/project/_git/repo
308
+ const legacyMatch = url.match(/https?:\/\/([^.]+)\.visualstudio\.com\/([^/]+)\/_git\/(.+?)(?:\.git)?$/);
309
+ if (legacyMatch) {
310
+ return {
311
+ owner: `${legacyMatch[1]}/${legacyMatch[2]}`, // org/project
312
+ repo: legacyMatch[3],
313
+ project: legacyMatch[2],
314
+ };
315
+ }
316
+ // Check custom base URL
317
+ if (this.config.baseUrl && this.config.baseUrl !== 'https://dev.azure.com') {
318
+ const host = new URL(this.config.baseUrl).host;
319
+ const escapedHost = host.replace(/\./g, '\\.');
320
+ const customRegex = new RegExp(`https?://${escapedHost}/([^/]+)/([^/]+)/_git/(.+?)(?:\\.git)?$`);
321
+ const customMatch = url.match(customRegex);
322
+ if (customMatch) {
323
+ return {
324
+ owner: `${customMatch[1]}/${customMatch[2]}`,
325
+ repo: customMatch[3],
326
+ project: customMatch[2],
327
+ };
328
+ }
329
+ }
330
+ return null;
331
+ }
332
+ /**
333
+ * Check if URL matches Azure DevOps
334
+ */
335
+ matchesUrl(url) {
336
+ if (url.includes('dev.azure.com'))
337
+ return true;
338
+ if (url.includes('visualstudio.com'))
339
+ return true;
340
+ if (url.includes('ssh.dev.azure.com'))
341
+ return true;
342
+ // Check against configured base URL (for Azure DevOps Server)
343
+ if (this.config.baseUrl && this.config.baseUrl !== 'https://dev.azure.com') {
344
+ const host = new URL(this.config.baseUrl).host;
345
+ if (url.includes(host))
346
+ return true;
347
+ }
348
+ return false;
349
+ }
350
+ /**
351
+ * Generate HTML comment for linked PR tracking
352
+ */
353
+ generateLinkedPRComment(links) {
354
+ const prLinks = links.map((pr) => `${pr.repoName}!${pr.number}`).join(',');
355
+ return `<!-- codi-repo:links:${prLinks} -->`;
356
+ }
357
+ /**
358
+ * Parse linked PRs from PR description
359
+ */
360
+ parseLinkedPRComment(body) {
361
+ const match = body.match(/<!-- codi-repo:links:(.+?) -->/);
362
+ if (!match) {
363
+ return [];
364
+ }
365
+ const links = match[1].split(',');
366
+ return links.map((link) => {
367
+ const [repoName, numStr] = link.split(/[#!]/);
368
+ return { repoName, number: parseInt(numStr, 10) };
369
+ });
370
+ }
371
+ }
372
+ /**
373
+ * Create a new Azure DevOps platform instance
374
+ */
375
+ export function createAzureDevOpsPlatform(config) {
376
+ return new AzureDevOpsPlatform(config);
377
+ }
378
+ //# sourceMappingURL=azure-devops.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"azure-devops.js","sourceRoot":"","sources":["../../../src/lib/platform/azure-devops.ts"],"names":[],"mappings":"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"}