@cat-indev/catops-cli 0.0.1-alpha.10 → 0.0.1-alpha.11

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/dist/index.d.ts CHANGED
@@ -11,7 +11,7 @@ export type { PipelineConfig, PipelineStageConfig, PipelineJobConfig, PipelineTa
11
11
  export { http, HttpService, HttpRegistry } from "./services/http";
12
12
  export type { HttpMethod, HttpRequest, HttpResponse, HttpServiceConfig, RequestInterceptor, ResponseInterceptor, RequestContext, ResponseContext } from "./services/http-types";
13
13
  export { AzureDevOpsApi } from "./services/azdo-api";
14
- export type { AzureDevOpsApiConfig, AzdoRequestOptions, AzdoProject, AzdoGitRepository, AzdoGitBranch, AzdoGitCommitRef, AzdoGitAuthor, AzdoGitPullRequest, AzdoBuildDefinition, AzdoBuild, AzdoPipeline, AzdoWorkItem, AzdoListResponse } from "./services/azdo-api";
14
+ export type { AzureDevOpsApiConfig, AzdoRequestOptions, AzdoProject, AzdoGitRepository, AzdoGitBranch, AzdoGitCommitRef, AzdoGitAuthor, AzdoGitPullRequest, AzdoBuildDefinition, AzdoBuild, AzdoPipeline, AzdoWorkItem, AzdoListResponse, AzdoWebHookSubscription, AzdoEnvironment, AzdoIdentityGroup, AzdoPolicyConfiguration, AzdoAgentPool, AzdoAgentQueue, AzdoVariableGroup, AzdoBuildFolder, AzdoServiceEndpoint, AzdoGitRef, AzdoGitTag, AzdoGitItem } from "./services/azdo-api";
15
15
  export { Notifier } from "./core/Notifier";
16
16
  export * as senders from "./core/senders";
17
17
  export * as classifiers from "./core/classifiers";
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,0CAAyC;AAAhC,kGAAA,OAAO,OAAA;AAGhB,oCAAmC;AAA1B,4FAAA,IAAI,OAAA;AAEb,wCAAuC;AAA9B,gGAAA,MAAM,OAAA;AAGf,wDAAwC;AAExC,uCAAsC;AAA7B,oGAAA,QAAQ,OAAA;AAGjB,gDAAoI;AAA3H,4GAAA,gBAAgB,OAAA;AAAE,oGAAA,QAAQ,OAAA;AAAE,yGAAA,aAAa,OAAA;AAAE,uGAAA,WAAW,OAAA;AAAE,wGAAA,YAAY,OAAA;AAAE,mHAAA,uBAAuB,OAAA;AAYtG,wCAAkE;AAAzD,4FAAA,IAAI,OAAA;AAAE,mGAAA,WAAW,OAAA;AAAE,oGAAA,YAAY,OAAA;AAYxC,gDAAqD;AAA5C,0GAAA,cAAc,OAAA;AAiBvB,4CAA2C;AAAlC,oGAAA,QAAQ,OAAA;AACjB,0DAA0C;AAC1C,kEAAkD;AAClD,4DAA4C;AAmB5C,sCAA4C;AAAnC,qGAAA,YAAY,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,0CAAyC;AAAhC,kGAAA,OAAO,OAAA;AAGhB,oCAAmC;AAA1B,4FAAA,IAAI,OAAA;AAEb,wCAAuC;AAA9B,gGAAA,MAAM,OAAA;AAGf,wDAAwC;AAExC,uCAAsC;AAA7B,oGAAA,QAAQ,OAAA;AAGjB,gDAAoI;AAA3H,4GAAA,gBAAgB,OAAA;AAAE,oGAAA,QAAQ,OAAA;AAAE,yGAAA,aAAa,OAAA;AAAE,uGAAA,WAAW,OAAA;AAAE,wGAAA,YAAY,OAAA;AAAE,mHAAA,uBAAuB,OAAA;AAYtG,wCAAkE;AAAzD,4FAAA,IAAI,OAAA;AAAE,mGAAA,WAAW,OAAA;AAAE,oGAAA,YAAY,OAAA;AAYxC,gDAAqD;AAA5C,0GAAA,cAAc,OAAA;AA6BvB,4CAA2C;AAAlC,oGAAA,QAAQ,OAAA;AACjB,0DAA0C;AAC1C,kEAAkD;AAClD,4DAA4C;AAmB5C,sCAA4C;AAAnC,qGAAA,YAAY,OAAA"}
@@ -120,6 +120,97 @@ export interface AzdoListResponse<T> {
120
120
  count: number;
121
121
  value: T[];
122
122
  }
123
+ export interface AzdoWebHookSubscription {
124
+ id: number;
125
+ publisherId: string;
126
+ publisherInputs: Record<string, string>;
127
+ consumerInputs: Record<string, string>;
128
+ eventType: string;
129
+ resourceVersion: string;
130
+ scope: number;
131
+ }
132
+ export interface AzdoEnvironment {
133
+ id: number;
134
+ name: string;
135
+ description: string;
136
+ project: AzdoProject;
137
+ }
138
+ export interface AzdoIdentityGroup {
139
+ displayName: string;
140
+ samAccountName: string;
141
+ localId: string;
142
+ subjectDescriptor: string;
143
+ imageUrl?: string;
144
+ uniqueName?: string;
145
+ metaType?: string;
146
+ sid?: string;
147
+ mailAddress?: string;
148
+ }
149
+ export interface AzdoPolicyConfiguration {
150
+ id: number;
151
+ url: string;
152
+ type: {
153
+ id: string;
154
+ displayName: string;
155
+ };
156
+ isEnabled: boolean;
157
+ isBlocking: boolean;
158
+ settings: Record<string, unknown>;
159
+ }
160
+ export interface AzdoAgentPool {
161
+ id: number;
162
+ name: string;
163
+ url: string;
164
+ size: number;
165
+ isHosted: boolean;
166
+ }
167
+ export interface AzdoAgentQueue {
168
+ id: number;
169
+ name: string;
170
+ pool: AzdoAgentPool;
171
+ url: string;
172
+ }
173
+ export interface AzdoVariableGroup {
174
+ id: number;
175
+ name: string;
176
+ variables: Record<string, {
177
+ value?: string;
178
+ isSecret?: boolean;
179
+ }>;
180
+ type: string;
181
+ }
182
+ export interface AzdoBuildFolder {
183
+ path: string;
184
+ project: AzdoProject;
185
+ }
186
+ export interface AzdoServiceEndpoint {
187
+ id: string;
188
+ name: string;
189
+ type: string;
190
+ url: string;
191
+ projectReferences: Array<{
192
+ id: string;
193
+ name: string;
194
+ }>;
195
+ }
196
+ export interface AzdoGitRef {
197
+ name: string;
198
+ objectId: string;
199
+ peeledObjectId?: string;
200
+ creator?: AzdoGitAuthor;
201
+ }
202
+ export interface AzdoGitTag {
203
+ name: string;
204
+ ref: string;
205
+ objectId: string;
206
+ creator?: AzdoGitAuthor;
207
+ peeledObjectId?: string;
208
+ }
209
+ export interface AzdoGitItem {
210
+ path: string;
211
+ content?: string;
212
+ contentType?: string;
213
+ }
123
214
  export declare class AzureDevOpsApi {
124
215
  private baseUrl;
125
216
  private pat;
@@ -209,5 +300,126 @@ export declare class AzureDevOpsApi {
209
300
  url: string;
210
301
  }>;
211
302
  }>>;
303
+ /** Verifica si un repositorio existe. Devuelve el repo o `undefined`. */
304
+ repoExists(project: string | undefined, repoName: string, opts?: AzdoRequestOptions): Promise<AzdoGitRepository | undefined>;
305
+ /** Crea un repositorio en un proyecto. */
306
+ createRepository(projectName: string, projectId: string, repoName: string, opts?: AzdoRequestOptions): Promise<HttpResponse<AzdoGitRepository>>;
307
+ /** Crea una branch nueva a partir de un commit ID. */
308
+ createBranch(project: string | undefined, repoName: string, branchName: string, fromObjectId: string, opts?: AzdoRequestOptions): Promise<HttpResponse<AzdoGitRef[]>>;
309
+ /** Obtiene el último commit de un repo. Devuelve `null` si no hay commits. */
310
+ getLatestCommit(project: string | undefined, repoNameOrId: string, opts?: AzdoRequestOptions): Promise<{
311
+ commitId: string;
312
+ message: string;
313
+ date: string;
314
+ author: {
315
+ name: string;
316
+ date: string;
317
+ };
318
+ } | null>;
319
+ /** Verifica si un archivo existe en una branch. Devuelve el item o `undefined`. */
320
+ fileExists(project: string | undefined, repoName: string, branchName: string, filePath: string, opts?: AzdoRequestOptions): Promise<AzdoGitItem | undefined>;
321
+ /** Crea o actualiza un archivo en una branch (push de un solo archivo). */
322
+ createOrUpdateFile(options: {
323
+ project: string | undefined;
324
+ repo: string;
325
+ branch: string;
326
+ filePath: string;
327
+ fileContent: string | Buffer;
328
+ comment?: string;
329
+ }, opts?: AzdoRequestOptions): Promise<HttpResponse<unknown>>;
330
+ /**
331
+ * Crea un archivo en un repo. Si el contenido es una de las plantillas
332
+ * conocidas (ej. `$README:TEMPLATE`), genera un README.md con el contenido
333
+ * por defecto.
334
+ */
335
+ createFileInRepo(project: string | undefined, repo: string, branch: string, fileName: string, filePath: string, fileContent: string, opts?: AzdoRequestOptions): Promise<HttpResponse<unknown>>;
336
+ /** Crea un repositorio y lo inicializa con un README. */
337
+ createAndInitRepository(projectName: string, projectId: string, repository: string, opts?: AzdoRequestOptions): Promise<AzdoGitRepository>;
338
+ /** Hace un push con múltiples cambios (add/edit/delete) en un solo commit. */
339
+ pushChanges(options: {
340
+ project: string | undefined;
341
+ repository: string;
342
+ branch: string;
343
+ changes: Array<{
344
+ changeType: string;
345
+ item: {
346
+ path: string;
347
+ };
348
+ newContent?: {
349
+ content: string;
350
+ contentType: string;
351
+ };
352
+ }>;
353
+ comment: string;
354
+ }, opts?: AzdoRequestOptions): Promise<HttpResponse<unknown>>;
355
+ /** Descarga un repositorio completo como buffer ZIP. */
356
+ downloadRepositoryZip(options: {
357
+ project: string;
358
+ repository: string;
359
+ branch: string;
360
+ scopePath?: string;
361
+ }, opts?: AzdoRequestOptions): Promise<HttpResponse<unknown>>;
362
+ /** Verifica si existe un webhook de push para un repo/branch/URL dados. */
363
+ webhookExists(projectId: string, repositoryId: string, branchName: string, webhookUrl: string, opts?: AzdoRequestOptions): Promise<AzdoWebHookSubscription | undefined>;
364
+ /** Crea un webhook de push para un repositorio. */
365
+ createWebhook(projectId: string, repoId: string, sourceBranch: string, webhookUrl: string, opts?: AzdoRequestOptions): Promise<HttpResponse<AzdoWebHookSubscription>>;
366
+ /** Crea un environment en un proyecto. */
367
+ createEnvironment(project: string | undefined, name: string, description?: string, opts?: AzdoRequestOptions): Promise<HttpResponse<AzdoEnvironment>>;
368
+ /** Busca un grupo de identidades por nombre (SAM account name). */
369
+ findIdentityGroup(groupName: string, opts?: AzdoRequestOptions): Promise<AzdoIdentityGroup>;
370
+ /** Crea una approval check para un environment. */
371
+ createEnvironmentApproval(project: string | undefined, environmentId: number, environmentName: string, approver: AzdoIdentityGroup, opts?: AzdoRequestOptions): Promise<HttpResponse<unknown>>;
372
+ /**
373
+ * Crea un environment con approvals.
374
+ * Si `approverGroup` es `"none"`, no agrega approvals.
375
+ */
376
+ createEnvironmentWithApprovals(options: {
377
+ project: string | undefined;
378
+ environmentName: string;
379
+ description?: string;
380
+ approverGroup: string;
381
+ }, opts?: AzdoRequestOptions): Promise<AzdoEnvironment>;
382
+ /** Crea una política de validación de email del committer. */
383
+ applyCommitterRegexPermissions(projectId: string, opts?: AzdoRequestOptions): Promise<HttpResponse<number>>;
384
+ /** Actualiza una política de validación de email del committer. */
385
+ updateCommitterRegexPermissions(projectId: string, policyId: number, allowedEmailPatterns: string[], opts?: AzdoRequestOptions): Promise<HttpResponse<number>>;
386
+ /** Obtiene los grupos con permisos de contribuidor del proyecto. */
387
+ getContributorGroups(projectId: string, projectName: string, opts?: AzdoRequestOptions): Promise<AzdoIdentityGroup[]>;
388
+ /** Deniega permisos a una entidad por SID. */
389
+ denyPermission(projectId: string, entityId: string, permissionCode: number, opts?: AzdoRequestOptions): Promise<HttpResponse<unknown>>;
390
+ /** Deniega permisos a un usuario por email. */
391
+ denyPermissionByEmail(projectId: string, userEmail: string, permissionCode: number, opts?: AzdoRequestOptions): Promise<HttpResponse<unknown>>;
392
+ /**
393
+ * Aplica permisos a todos los proyectos: crea la política de regex,
394
+ * obtiene los grupos, y deniega los permisos de Force Push y Create Branch.
395
+ */
396
+ applyPermissions(opts?: AzdoRequestOptions): Promise<Array<{
397
+ project: string;
398
+ groupsProcessed: number;
399
+ }>>;
400
+ /** Asocia un agent pool existente a un proyecto (crea una queue). */
401
+ addAgentPoolToProject(project: string | undefined, agentPoolName: string, opts?: AzdoRequestOptions): Promise<HttpResponse<AzdoAgentQueue>>;
402
+ /** Autoriza todos los pipelines para usar una queue. */
403
+ authorizeAgentPool(project: string | undefined, queueId: number, opts?: AzdoRequestOptions): Promise<HttpResponse<unknown>>;
404
+ /** Crea un variable group. Si ya existe con el mismo nombre, lo devuelve sin crear. */
405
+ createVariableGroup(project: string | undefined, name: string, variables?: Record<string, {
406
+ value?: string;
407
+ isSecret?: boolean;
408
+ }>, opts?: AzdoRequestOptions): Promise<AzdoVariableGroup>;
409
+ /** Crea una carpeta de build. Si ya existe, la devuelve. */
410
+ createBuildFolder(project: string | undefined, folderPath: string, opts?: AzdoRequestOptions): Promise<AzdoBuildFolder>;
411
+ /** Crea un pipeline YAML asociado a un repositorio. */
412
+ createPipeline(options: {
413
+ project: string | undefined;
414
+ name: string;
415
+ folder?: string;
416
+ repository: string;
417
+ yamlPath: string;
418
+ defaultBranch?: string;
419
+ }, opts?: AzdoRequestOptions): Promise<HttpResponse<unknown>>;
420
+ /** Comparte un service endpoint con un proyecto. */
421
+ shareServiceConnection(project: string, resourceId: string, resourceName: string, opts?: AzdoRequestOptions): Promise<HttpResponse<unknown>>;
422
+ /** Lista todas las tags de un repositorio. */
423
+ getTags(project: string | undefined, repository: string, opts?: AzdoRequestOptions): Promise<AzdoGitTag[]>;
212
424
  }
213
425
  export {};
@@ -242,6 +242,658 @@ class AzureDevOpsApi {
242
242
  body: { query: wiql }
243
243
  });
244
244
  }
245
+ // =========================================================================
246
+ // Git Repositories — existence checks + creation
247
+ // =========================================================================
248
+ /** Verifica si un repositorio existe. Devuelve el repo o `undefined`. */
249
+ async repoExists(project, repoName, opts) {
250
+ try {
251
+ const res = await this.request("GET", `/git/repositories/${encodeURIComponent(repoName)}`, { ...opts, project: project ?? opts?.project });
252
+ return res.body;
253
+ }
254
+ catch (err) {
255
+ if (err && typeof err === "object" && "status" in err && err.status === 404) {
256
+ return undefined;
257
+ }
258
+ throw err;
259
+ }
260
+ }
261
+ /** Crea un repositorio en un proyecto. */
262
+ createRepository(projectName, projectId, repoName, opts) {
263
+ return this.request("POST", "/git/repositories", {
264
+ ...opts,
265
+ body: {
266
+ name: repoName,
267
+ project: { id: projectId, name: projectName }
268
+ }
269
+ });
270
+ }
271
+ // =========================================================================
272
+ // Branches — creation
273
+ // =========================================================================
274
+ /** Crea una branch nueva a partir de un commit ID. */
275
+ createBranch(project, repoName, branchName, fromObjectId, opts) {
276
+ return this.request("POST", `/git/repositories/${encodeURIComponent(repoName)}/refs`, {
277
+ ...opts,
278
+ project: project ?? opts?.project,
279
+ body: [
280
+ {
281
+ name: `refs/heads/${branchName}`,
282
+ newObjectId: fromObjectId,
283
+ oldObjectId: "0000000000000000000000000000000000000000"
284
+ }
285
+ ]
286
+ });
287
+ }
288
+ // =========================================================================
289
+ // Commits — latest
290
+ // =========================================================================
291
+ /** Obtiene el último commit de un repo. Devuelve `null` si no hay commits. */
292
+ async getLatestCommit(project, repoNameOrId, opts) {
293
+ const res = await this.request("GET", `/git/repositories/${encodeURIComponent(repoNameOrId)}/commits`, { ...opts, project: project ?? opts?.project, query: { $top: 1, ...opts?.query } });
294
+ if (!res.body.value.length)
295
+ return null;
296
+ const commit = res.body.value[0];
297
+ return {
298
+ commitId: commit.commitId,
299
+ message: commit.comment,
300
+ date: commit.author.date,
301
+ author: { name: commit.author.name, date: commit.author.date }
302
+ };
303
+ }
304
+ // =========================================================================
305
+ // Files — existence check
306
+ // =========================================================================
307
+ /** Verifica si un archivo existe en una branch. Devuelve el item o `undefined`. */
308
+ async fileExists(project, repoName, branchName, filePath, opts) {
309
+ try {
310
+ const res = await this.request("GET", `/git/repositories/${encodeURIComponent(repoName)}/items`, {
311
+ ...opts,
312
+ project: project ?? opts?.project,
313
+ query: { path: filePath, "versionDescriptor.version": branchName, ...opts?.query }
314
+ });
315
+ return res.body;
316
+ }
317
+ catch (err) {
318
+ if (err && typeof err === "object" && "status" in err && err.status === 404) {
319
+ return undefined;
320
+ }
321
+ throw err;
322
+ }
323
+ }
324
+ // =========================================================================
325
+ // Files — create / update
326
+ // =========================================================================
327
+ /** Crea o actualiza un archivo en una branch (push de un solo archivo). */
328
+ async createOrUpdateFile(options, opts) {
329
+ let ref;
330
+ try {
331
+ const refName = options.branch.startsWith("refs/heads/") ? options.branch : `refs/heads/${options.branch}`;
332
+ const branchRes = await this.request("GET", `/git/repositories/${encodeURIComponent(options.repo)}/refs/${refName}`, { ...opts, project: options.project });
333
+ ref = branchRes.body?.value?.[0]?.objectId;
334
+ }
335
+ catch (err) {
336
+ if (err && typeof err === "object" && "status" in err && err.status === 404) {
337
+ ref = undefined;
338
+ }
339
+ else {
340
+ throw err;
341
+ }
342
+ }
343
+ const exists = await this.fileExists(options.project, options.repo, options.branch, options.filePath, opts);
344
+ const isBuffer = Buffer.isBuffer(options.fileContent);
345
+ return this.request("POST", `/git/repositories/${encodeURIComponent(options.repo)}/pushes`, {
346
+ ...opts,
347
+ project: options.project,
348
+ body: {
349
+ refUpdates: [
350
+ {
351
+ name: `refs/heads/${options.branch}`,
352
+ oldObjectId: !ref ? "0000000000000000000000000000000000000000" : ref
353
+ }
354
+ ],
355
+ commits: [
356
+ {
357
+ comment: options.comment ?? "Automatic update",
358
+ changes: [
359
+ {
360
+ changeType: exists ? "edit" : "add",
361
+ item: { path: options.filePath },
362
+ newContent: {
363
+ content: isBuffer ? options.fileContent.toString("base64") : options.fileContent,
364
+ contentType: isBuffer ? "base64Encoded" : "rawtext"
365
+ }
366
+ }
367
+ ]
368
+ }
369
+ ]
370
+ }
371
+ });
372
+ }
373
+ /**
374
+ * Crea un archivo en un repo. Si el contenido es una de las plantillas
375
+ * conocidas (ej. `$README:TEMPLATE`), genera un README.md con el contenido
376
+ * por defecto.
377
+ */
378
+ async createFileInRepo(project, repo, branch, fileName, filePath, fileContent, opts) {
379
+ const contentTemplates = {
380
+ "$README:TEMPLATE": { name: "README.md", type: "readme" }
381
+ };
382
+ if (contentTemplates[fileContent]) {
383
+ return this.createOrUpdateFile({
384
+ project,
385
+ repo,
386
+ branch,
387
+ filePath: `${filePath}/${contentTemplates[fileContent].name}`,
388
+ fileContent: `# ${repo}\n\nProject repository.`
389
+ }, opts);
390
+ }
391
+ return this.createOrUpdateFile({
392
+ project,
393
+ repo,
394
+ branch,
395
+ filePath: `${filePath}/${fileName}`.replace(/\/+/g, "/"),
396
+ fileContent,
397
+ comment: "Automated by prepare ci/cd process"
398
+ }, opts);
399
+ }
400
+ /** Crea un repositorio y lo inicializa con un README. */
401
+ async createAndInitRepository(projectName, projectId, repository, opts) {
402
+ const existing = await this.repoExists(projectId, repository, opts);
403
+ let repoData = existing;
404
+ if (!existing) {
405
+ const res = await this.createRepository(projectName, projectId, repository, opts);
406
+ repoData = res.body;
407
+ }
408
+ const repoId = repoData.id;
409
+ await this.createFileInRepo(projectId, repoId, "main", "README.md", "/", "$README:TEMPLATE", opts);
410
+ return repoData;
411
+ }
412
+ // =========================================================================
413
+ // Pushes — bulk push (multiple changes)
414
+ // =========================================================================
415
+ /** Hace un push con múltiples cambios (add/edit/delete) en un solo commit. */
416
+ async pushChanges(options, opts) {
417
+ let ref;
418
+ try {
419
+ const refName = options.branch.startsWith("refs/heads/") ? options.branch : `refs/heads/${options.branch}`;
420
+ const branchRes = await this.request("GET", `/git/repositories/${encodeURIComponent(options.repository)}/refs/${refName}`, {
421
+ ...opts,
422
+ project: options.project
423
+ });
424
+ ref = branchRes.body?.value?.[0]?.objectId;
425
+ }
426
+ catch (err) {
427
+ if (err && typeof err === "object" && "status" in err && err.status === 404) {
428
+ ref = undefined;
429
+ }
430
+ else {
431
+ throw err;
432
+ }
433
+ }
434
+ return this.request("POST", `/git/repositories/${encodeURIComponent(options.repository)}/pushes`, {
435
+ ...opts,
436
+ project: options.project,
437
+ body: {
438
+ refUpdates: [
439
+ {
440
+ name: `refs/heads/${options.branch}`,
441
+ oldObjectId: ref
442
+ }
443
+ ],
444
+ commits: [
445
+ {
446
+ comment: options.comment,
447
+ changes: options.changes
448
+ }
449
+ ]
450
+ }
451
+ });
452
+ }
453
+ // =========================================================================
454
+ // Templates — download + merge
455
+ // =========================================================================
456
+ /** Descarga un repositorio completo como buffer ZIP. */
457
+ async downloadRepositoryZip(options, opts) {
458
+ const path = options.scopePath ?? "/";
459
+ return this.request("GET", `/git/repositories/${encodeURIComponent(options.repository)}/items`, {
460
+ ...opts,
461
+ project: options.project,
462
+ query: {
463
+ path,
464
+ "versionDescriptor[versionOptions]": 0,
465
+ "versionDescriptor[versionType]": 0,
466
+ "versionDescriptor[version]": options.branch,
467
+ resolveLfs: true,
468
+ "$format": "zip",
469
+ download: true,
470
+ ...opts?.query
471
+ }
472
+ });
473
+ }
474
+ // =========================================================================
475
+ // Webhooks
476
+ // =========================================================================
477
+ /** Verifica si existe un webhook de push para un repo/branch/URL dados. */
478
+ async webhookExists(projectId, repositoryId, branchName, webhookUrl, opts) {
479
+ try {
480
+ const res = await this.request("POST", "/hooks/subscriptionsQuery", {
481
+ ...opts,
482
+ organizationLevel: true,
483
+ apiVersion: "7.2-preview.1",
484
+ body: {
485
+ publisherId: "tfs",
486
+ publisherInputFilters: [
487
+ {
488
+ conditions: [
489
+ { inputId: "projectId", operator: 0, inputValue: projectId }
490
+ ]
491
+ }
492
+ ]
493
+ }
494
+ });
495
+ return res.body.results.find(e => e.publisherInputs.projectId === projectId
496
+ && e.publisherInputs.repository === repositoryId
497
+ && e.publisherInputs.branch === branchName
498
+ && e.consumerInputs.url === webhookUrl);
499
+ }
500
+ catch {
501
+ return undefined;
502
+ }
503
+ }
504
+ /** Crea un webhook de push para un repositorio. */
505
+ createWebhook(projectId, repoId, sourceBranch, webhookUrl, opts) {
506
+ return this.request("POST", "/hooks/subscriptions", {
507
+ ...opts,
508
+ organizationLevel: true,
509
+ apiVersion: "7.2-preview.1",
510
+ body: {
511
+ consumerActionId: "httpRequest",
512
+ consumerId: "webHooks",
513
+ consumerInputs: { url: webhookUrl },
514
+ eventType: "git.push",
515
+ publisherId: "tfs",
516
+ publisherInputs: {
517
+ repository: repoId,
518
+ branch: sourceBranch,
519
+ pushedBy: "",
520
+ projectId
521
+ },
522
+ resourceVersion: "1.0",
523
+ scope: 1
524
+ }
525
+ });
526
+ }
527
+ // =========================================================================
528
+ // Environments
529
+ // =========================================================================
530
+ /** Crea un environment en un proyecto. */
531
+ createEnvironment(project, name, description = "", opts) {
532
+ return this.request("POST", "/distributedtask/environments", {
533
+ ...opts,
534
+ project: project ?? opts?.project,
535
+ apiVersion: "5.2-preview.1",
536
+ body: { name, description }
537
+ });
538
+ }
539
+ /** Busca un grupo de identidades por nombre (SAM account name). */
540
+ async findIdentityGroup(groupName, opts) {
541
+ const res = await this.request("POST", "/IdentityPicker/Identities", {
542
+ ...opts,
543
+ organizationLevel: true,
544
+ apiVersion: "5.0-preview.1",
545
+ body: {
546
+ query: groupName,
547
+ identityTypes: ["group"],
548
+ operationScopes: ["ims", "source"],
549
+ options: { MinResults: 1, MaxResults: 20 },
550
+ properties: ["DisplayName", "SamAccountName", "SubjectDescriptor"]
551
+ }
552
+ });
553
+ const group = res.body.results[0].identities.find(g => g.samAccountName === groupName);
554
+ if (!group) {
555
+ throw new Error(`Group '${groupName}' not found.`);
556
+ }
557
+ return group;
558
+ }
559
+ /** Crea una approval check para un environment. */
560
+ createEnvironmentApproval(project, environmentId, environmentName, approver, opts) {
561
+ return this.request("POST", "/pipelines/checks/configurations", {
562
+ ...opts,
563
+ project: project ?? opts?.project,
564
+ apiVersion: "5.2-preview.1",
565
+ body: {
566
+ type: { id: "8C6F20A7-A545-4486-9777-F762FAFE0D4D", name: "Approval" },
567
+ settings: {
568
+ approvers: [
569
+ {
570
+ displayName: approver.displayName,
571
+ id: approver.localId,
572
+ descriptor: approver.subjectDescriptor,
573
+ imageUrl: approver.imageUrl ?? "",
574
+ uniqueName: approver.uniqueName ?? ""
575
+ }
576
+ ],
577
+ executionOrder: 1,
578
+ instructions: "",
579
+ blockedApprovers: [],
580
+ minRequiredApprovers: 0,
581
+ requesterCannotBeApprover: false,
582
+ definitionRef: {
583
+ id: "26014962-64a0-49f4-885b-4b874119a5cc"
584
+ }
585
+ },
586
+ resource: { type: "environment", id: environmentId, name: environmentName },
587
+ timeout: 43200
588
+ }
589
+ });
590
+ }
591
+ /**
592
+ * Crea un environment con approvals.
593
+ * Si `approverGroup` es `"none"`, no agrega approvals.
594
+ */
595
+ async createEnvironmentWithApprovals(options, opts) {
596
+ const envRes = await this.createEnvironment(options.project, options.environmentName, options.description ?? "", opts);
597
+ const environment = envRes.body;
598
+ if (options.approverGroup === "none")
599
+ return environment;
600
+ const group = await this.findIdentityGroup(options.approverGroup, opts);
601
+ await this.createEnvironmentApproval(options.project, environment.id, options.environmentName, group, opts);
602
+ return environment;
603
+ }
604
+ // =========================================================================
605
+ // Permissions — committer regex + deny
606
+ // =========================================================================
607
+ /** Crea una política de validación de email del committer. */
608
+ applyCommitterRegexPermissions(projectId, opts) {
609
+ return this.request("POST", "/policy/Configurations", {
610
+ ...opts,
611
+ apiVersion: "5.0-preview.1",
612
+ body: {
613
+ type: { id: "77ed4bd3-b063-4689-934a-175e4d0a78d7" },
614
+ revision: 1,
615
+ isDeleted: false,
616
+ isBlocking: true,
617
+ isEnabled: true,
618
+ settings: {
619
+ authorEmailPatterns: null,
620
+ scope: [{ repositoryId: null }]
621
+ }
622
+ }
623
+ });
624
+ }
625
+ /** Actualiza una política de validación de email del committer. */
626
+ updateCommitterRegexPermissions(projectId, policyId, allowedEmailPatterns, opts) {
627
+ return this.request("POST", `/policy/Configurations/${policyId}`, {
628
+ ...opts,
629
+ apiVersion: "5.0-preview.1",
630
+ body: {
631
+ isEnabled: true,
632
+ isBlocking: true,
633
+ isDeleted: false,
634
+ settings: {
635
+ authorEmailPatterns: allowedEmailPatterns,
636
+ scope: [{ repositoryId: null }]
637
+ },
638
+ revision: 3,
639
+ id: policyId,
640
+ type: {
641
+ id: "77ed4bd3-b063-4689-934a-175e4d0a78d7",
642
+ displayName: "Commit author email validation"
643
+ }
644
+ }
645
+ });
646
+ }
647
+ /** Obtiene los grupos con permisos de contribuidor del proyecto. */
648
+ async getContributorGroups(projectId, projectName, opts) {
649
+ const res = await this.request("POST", "/Contribution/HierarchyQuery", {
650
+ ...opts,
651
+ organizationLevel: true,
652
+ apiVersion: "5.0-preview.1",
653
+ body: {
654
+ contributionIds: ["ms.vss-admin-web.security-view-members-data-provider"],
655
+ dataProviderContext: {
656
+ properties: {
657
+ permissionSetId: "2e9eb7ed-3c0a-47d4-87c1-0ffdd275fd87",
658
+ permissionSetToken: `repoV2/${projectId}/`,
659
+ sourcePage: {
660
+ url: `https://dev.azure.com/${this.baseUrl.split("/").pop()}/${encodeURIComponent(projectName)}/_settings/repositories?_a=permissions`,
661
+ routeId: "ms.vss-admin-web.project-admin-hub-route",
662
+ routeValues: {
663
+ project: projectName,
664
+ adminPivot: "repositories",
665
+ controller: "ContributedPage",
666
+ action: "Execute"
667
+ }
668
+ }
669
+ }
670
+ }
671
+ }
672
+ });
673
+ return res.body.dataProviders["ms.vss-admin-web.security-view-members-data-provider"].identities;
674
+ }
675
+ /** Deniega permisos a una entidad por SID. */
676
+ denyPermission(projectId, entityId, permissionCode, opts) {
677
+ return this.request("POST", "/AccessControlEntries/2e9eb7ed-3c0a-47d4-87c1-0ffdd275fd87", {
678
+ ...opts,
679
+ organizationLevel: true,
680
+ apiVersion: "5.0-preview.1",
681
+ body: {
682
+ token: `repoV2/${projectId}/`,
683
+ merge: true,
684
+ accessControlEntries: [
685
+ {
686
+ descriptor: `Microsoft.TeamFoundation.Identity;${entityId}`,
687
+ allow: 0,
688
+ deny: permissionCode,
689
+ extendedInfo: {
690
+ effectiveAllow: 0,
691
+ effectiveDeny: permissionCode,
692
+ inheritedAllow: 0,
693
+ inheritedDeny: permissionCode
694
+ }
695
+ }
696
+ ]
697
+ }
698
+ });
699
+ }
700
+ /** Deniega permisos a un usuario por email. */
701
+ denyPermissionByEmail(projectId, userEmail, permissionCode, opts) {
702
+ return this.request("POST", "/AccessControlEntries/2e9eb7ed-3c0a-47d4-87c1-0ffdd275fd87", {
703
+ ...opts,
704
+ organizationLevel: true,
705
+ apiVersion: "5.0-preview.1",
706
+ body: {
707
+ token: `repoV2/${projectId}/`,
708
+ merge: true,
709
+ accessControlEntries: [
710
+ {
711
+ descriptor: `Microsoft.IdentityModel.Claims.ClaimsIdentity;e95d19cb-8725-4b0b-8ce2-ff42be9ae6e9\\\\${userEmail}`,
712
+ allow: 0,
713
+ deny: permissionCode,
714
+ extendedInfo: {
715
+ effectiveAllow: 0,
716
+ effectiveDeny: permissionCode,
717
+ inheritedAllow: 0,
718
+ inheritedDeny: permissionCode
719
+ }
720
+ }
721
+ ]
722
+ }
723
+ });
724
+ }
725
+ /**
726
+ * Aplica permisos a todos los proyectos: crea la política de regex,
727
+ * obtiene los grupos, y deniega los permisos de Force Push y Create Branch.
728
+ */
729
+ async applyPermissions(opts) {
730
+ const projectsRes = await this.listProjects(opts);
731
+ const projects = projectsRes.body.value;
732
+ const summary = [];
733
+ for (const project of projects) {
734
+ const policyRes = await this.applyCommitterRegexPermissions(project.id, opts);
735
+ const policyId = policyRes.body;
736
+ await this.updateCommitterRegexPermissions(project.id, policyId, [], opts);
737
+ const groups = await this.getContributorGroups(project.id, project.name, opts);
738
+ for (const group of groups) {
739
+ if (group.sid) {
740
+ await this.denyPermission(project.id, group.sid, 32768, opts);
741
+ await this.denyPermission(project.id, group.sid, 128, opts);
742
+ }
743
+ else if (group.metaType === "member") {
744
+ if (group.sid) {
745
+ await this.denyPermission(project.id, group.sid, 32768, opts);
746
+ }
747
+ if (group.mailAddress) {
748
+ await this.denyPermissionByEmail(project.id, group.mailAddress, 128, opts);
749
+ }
750
+ }
751
+ }
752
+ summary.push({ project: project.name, groupsProcessed: groups.length });
753
+ }
754
+ return summary;
755
+ }
756
+ // =========================================================================
757
+ // Agent Pools
758
+ // =========================================================================
759
+ /** Asocia un agent pool existente a un proyecto (crea una queue). */
760
+ async addAgentPoolToProject(project, agentPoolName, opts) {
761
+ const poolsRes = await this.request("GET", "/distributedtask/pools", {
762
+ ...opts,
763
+ organizationLevel: true,
764
+ apiVersion: "7.1-preview.1"
765
+ });
766
+ const pool = poolsRes.body.value.find(p => p.name === agentPoolName);
767
+ if (!pool) {
768
+ throw new Error(`Agent Pool '${agentPoolName}' not found.`);
769
+ }
770
+ return this.request("POST", "/distributedtask/queues", {
771
+ ...opts,
772
+ project: project ?? opts?.project,
773
+ apiVersion: "7.1-preview.1",
774
+ query: { authorizePipelines: true, ...opts?.query },
775
+ body: { name: agentPoolName, pool: { id: pool.id } }
776
+ });
777
+ }
778
+ /** Autoriza todos los pipelines para usar una queue. */
779
+ authorizeAgentPool(project, queueId, opts) {
780
+ return this.request("PATCH", `/pipelines/pipelinePermissions/queue/${queueId}`, {
781
+ ...opts,
782
+ project: project ?? opts?.project,
783
+ apiVersion: "7.1-preview.1",
784
+ body: {
785
+ resource: { type: "queue", id: String(queueId) },
786
+ allPipelines: { authorized: true, authorizedBy: null, authorizedOn: null },
787
+ pipelines: []
788
+ }
789
+ });
790
+ }
791
+ // =========================================================================
792
+ // Variable Groups
793
+ // =========================================================================
794
+ /** Crea un variable group. Si ya existe con el mismo nombre, lo devuelve sin crear. */
795
+ async createVariableGroup(project, name, variables = {}, opts) {
796
+ const existingRes = await this.request("GET", "/distributedtask/variablegroups", { ...opts, project: project ?? opts?.project, apiVersion: "7.1-preview.1" });
797
+ const existing = existingRes.body.value.find(vg => vg.name === name);
798
+ if (existing)
799
+ return existing;
800
+ const res = await this.request("POST", "/distributedtask/variablegroups", {
801
+ ...opts,
802
+ project: project ?? opts?.project,
803
+ apiVersion: "7.1-preview.1",
804
+ body: { name, variables }
805
+ });
806
+ return res.body;
807
+ }
808
+ // =========================================================================
809
+ // Build Folders
810
+ // =========================================================================
811
+ /** Crea una carpeta de build. Si ya existe, la devuelve. */
812
+ async createBuildFolder(project, folderPath, opts) {
813
+ const normalizedPath = folderPath.startsWith("\\") ? folderPath : `\\${folderPath}`;
814
+ const foldersRes = await this.request("GET", "/build/folders", { ...opts, project: project ?? opts?.project, apiVersion: "7.2-preview.2" });
815
+ const existing = foldersRes.body.value.find(f => f.path === normalizedPath);
816
+ if (existing)
817
+ return existing;
818
+ const encodedPath = encodeURIComponent(normalizedPath);
819
+ const res = await this.request("PUT", `/build/folders?path=${encodedPath}`, {
820
+ ...opts,
821
+ project: project ?? opts?.project,
822
+ apiVersion: "6.0-preview.2",
823
+ body: { path: normalizedPath }
824
+ });
825
+ return res.body;
826
+ }
827
+ // =========================================================================
828
+ // Pipelines — creation
829
+ // =========================================================================
830
+ /** Crea un pipeline YAML asociado a un repositorio. */
831
+ async createPipeline(options, opts) {
832
+ const reposRes = await this.listRepos({ ...opts, project: options.project });
833
+ const repo = reposRes.body.value.find(r => r.name === options.repository);
834
+ if (!repo) {
835
+ throw new Error(`Repository '${options.repository}' not found.`);
836
+ }
837
+ return this.request("POST", "/pipelines", {
838
+ ...opts,
839
+ project: options.project,
840
+ apiVersion: "7.1-preview.1",
841
+ body: {
842
+ name: options.name,
843
+ folder: options.folder ?? "\\",
844
+ configuration: {
845
+ type: "yaml",
846
+ path: options.yamlPath,
847
+ repository: {
848
+ id: repo.id,
849
+ type: "azureReposGit",
850
+ name: repo.name,
851
+ defaultBranch: options.defaultBranch ?? "refs/heads/main"
852
+ }
853
+ }
854
+ }
855
+ });
856
+ }
857
+ // =========================================================================
858
+ // Service Connections
859
+ // =========================================================================
860
+ /** Comparte un service endpoint con un proyecto. */
861
+ async shareServiceConnection(project, resourceId, resourceName, opts) {
862
+ const projectRes = await this.getProject(project, { ...opts, organizationLevel: true });
863
+ if (!projectRes.body) {
864
+ throw new Error(`Project '${project}' not found.`);
865
+ }
866
+ return this.request("PATCH", `/serviceendpoint/endpoints/${resourceId}`, {
867
+ ...opts,
868
+ organizationLevel: true,
869
+ apiVersion: "6.0-preview.4",
870
+ body: [
871
+ {
872
+ description: "",
873
+ name: `${resourceName}-${projectRes.body.name}`,
874
+ projectReference: { id: projectRes.body.id, name: projectRes.body.name }
875
+ }
876
+ ]
877
+ });
878
+ }
879
+ // =========================================================================
880
+ // Tags
881
+ // =========================================================================
882
+ /** Lista todas las tags de un repositorio. */
883
+ async getTags(project, repository, opts) {
884
+ const res = await this.request("GET", `/git/repositories/${encodeURIComponent(repository)}/refs`, {
885
+ ...opts,
886
+ project: project ?? opts?.project,
887
+ query: { filter: "tags/", ...opts?.query }
888
+ });
889
+ return res.body.value.map(tag => ({
890
+ name: tag.name.replace("refs/tags/", ""),
891
+ ref: tag.name,
892
+ objectId: tag.objectId,
893
+ creator: tag.creator,
894
+ peeledObjectId: tag.peeledObjectId
895
+ }));
896
+ }
245
897
  }
246
898
  exports.AzureDevOpsApi = AzureDevOpsApi;
247
899
  //# sourceMappingURL=azdo-api.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"azdo-api.js","sourceRoot":"","sources":["../../src/services/azdo-api.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"azdo-api.js","sourceRoot":"","sources":["../../src/services/azdo-api.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cat-indev/catops-cli",
3
- "version": "0.0.1-alpha.10",
3
+ "version": "0.0.1-alpha.11",
4
4
  "description": "Framework CLI para pipelines DevOps (shell, docker, git, kubectl, helm, npm, terraform, ansible, argocd, tekton, oc, az) sobre un ExecutionContext compartido, con menus interactivos y selectores automaticos por flag. Escrito en TypeScript, 100% usable desde JavaScript.",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",