@copado/agentia-cli 0.8.0-alpha.0 → 0.9.0-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +151 -30
- package/dist/commands/promotion/conflict/get.d.ts +19 -0
- package/dist/commands/promotion/conflict/get.js +54 -0
- package/dist/commands/promotion/conflict/get.js.map +1 -0
- package/dist/commands/promotion/conflict/list.d.ts +10 -0
- package/dist/commands/promotion/conflict/list.js +35 -0
- package/dist/commands/promotion/conflict/list.js.map +1 -0
- package/dist/commands/promotion/conflict/resolve.d.ts +15 -0
- package/dist/commands/promotion/conflict/resolve.js +59 -0
- package/dist/commands/promotion/conflict/resolve.js.map +1 -0
- package/dist/commands/promotion/conflict/unresolve.d.ts +13 -0
- package/dist/commands/promotion/conflict/unresolve.js +37 -0
- package/dist/commands/promotion/conflict/unresolve.js.map +1 -0
- package/dist/lib/cicd-gateway.d.ts +11 -0
- package/dist/lib/cicd-gateway.js +53 -6
- package/dist/lib/cicd-gateway.js.map +1 -1
- package/dist/lib/promotion-conflicts.d.ts +40 -0
- package/dist/lib/promotion-conflicts.js +83 -0
- package/dist/lib/promotion-conflicts.js.map +1 -0
- package/oclif.manifest.json +219 -1
- package/package.json +4 -1
package/README.md
CHANGED
|
@@ -23,7 +23,7 @@ $ npm install -g @copado/agentia-cli
|
|
|
23
23
|
$ agentia COMMAND
|
|
24
24
|
running command...
|
|
25
25
|
$ agentia (--version)
|
|
26
|
-
@copado/agentia-cli/0.
|
|
26
|
+
@copado/agentia-cli/0.9.0-alpha.0 linux-x64 node-v22.23.1
|
|
27
27
|
$ agentia --help [COMMAND]
|
|
28
28
|
USAGE
|
|
29
29
|
$ agentia COMMAND
|
|
@@ -189,6 +189,10 @@ Agentia CLI is distributed under the Copado End User License Agreement. See [LIC
|
|
|
189
189
|
* [`agentia project default get`](#agentia-project-default-get)
|
|
190
190
|
* [`agentia project default set`](#agentia-project-default-set)
|
|
191
191
|
* [`agentia project default unset`](#agentia-project-default-unset)
|
|
192
|
+
* [`agentia promotion conflict get ID`](#agentia-promotion-conflict-get-id)
|
|
193
|
+
* [`agentia promotion conflict list`](#agentia-promotion-conflict-list)
|
|
194
|
+
* [`agentia promotion conflict resolve ID`](#agentia-promotion-conflict-resolve-id)
|
|
195
|
+
* [`agentia promotion conflict unresolve ID`](#agentia-promotion-conflict-unresolve-id)
|
|
192
196
|
|
|
193
197
|
## `agentia auth get`
|
|
194
198
|
|
|
@@ -220,7 +224,7 @@ EXAMPLES
|
|
|
220
224
|
$ agentia auth get --json
|
|
221
225
|
```
|
|
222
226
|
|
|
223
|
-
_See code: [src/commands/auth/get.ts](https://github.com/Copado/agentia-cli/blob/v0.
|
|
227
|
+
_See code: [src/commands/auth/get.ts](https://github.com/Copado/agentia-cli/blob/v0.9.0-alpha.0/src/commands/auth/get.ts)_
|
|
224
228
|
|
|
225
229
|
## `agentia auth set`
|
|
226
230
|
|
|
@@ -258,7 +262,7 @@ EXAMPLES
|
|
|
258
262
|
$ agentia auth set --cicd <copado-api-key> --region na --json
|
|
259
263
|
```
|
|
260
264
|
|
|
261
|
-
_See code: [src/commands/auth/set.ts](https://github.com/Copado/agentia-cli/blob/v0.
|
|
265
|
+
_See code: [src/commands/auth/set.ts](https://github.com/Copado/agentia-cli/blob/v0.9.0-alpha.0/src/commands/auth/set.ts)_
|
|
262
266
|
|
|
263
267
|
## `agentia environment auth status ID`
|
|
264
268
|
|
|
@@ -288,7 +292,7 @@ EXAMPLES
|
|
|
288
292
|
$ agentia environment auth status <environment-id> --json
|
|
289
293
|
```
|
|
290
294
|
|
|
291
|
-
_See code: [src/commands/environment/auth/status.ts](https://github.com/Copado/agentia-cli/blob/v0.
|
|
295
|
+
_See code: [src/commands/environment/auth/status.ts](https://github.com/Copado/agentia-cli/blob/v0.9.0-alpha.0/src/commands/environment/auth/status.ts)_
|
|
292
296
|
|
|
293
297
|
## `agentia environment auth web login ID`
|
|
294
298
|
|
|
@@ -322,7 +326,7 @@ EXAMPLES
|
|
|
322
326
|
$ agentia environment auth web login <environment-id> --json
|
|
323
327
|
```
|
|
324
328
|
|
|
325
|
-
_See code: [src/commands/environment/auth/web/login.ts](https://github.com/Copado/agentia-cli/blob/v0.
|
|
329
|
+
_See code: [src/commands/environment/auth/web/login.ts](https://github.com/Copado/agentia-cli/blob/v0.9.0-alpha.0/src/commands/environment/auth/web/login.ts)_
|
|
326
330
|
|
|
327
331
|
## `agentia environment create NAME`
|
|
328
332
|
|
|
@@ -367,7 +371,7 @@ EXAMPLES
|
|
|
367
371
|
$ agentia environment create Dev --json
|
|
368
372
|
```
|
|
369
373
|
|
|
370
|
-
_See code: [src/commands/environment/create.ts](https://github.com/Copado/agentia-cli/blob/v0.
|
|
374
|
+
_See code: [src/commands/environment/create.ts](https://github.com/Copado/agentia-cli/blob/v0.9.0-alpha.0/src/commands/environment/create.ts)_
|
|
371
375
|
|
|
372
376
|
## `agentia environment get ID`
|
|
373
377
|
|
|
@@ -392,7 +396,7 @@ EXAMPLES
|
|
|
392
396
|
$ agentia environment get a0SKC000000CmZ2AU --json
|
|
393
397
|
```
|
|
394
398
|
|
|
395
|
-
_See code: [src/commands/environment/get.ts](https://github.com/Copado/agentia-cli/blob/v0.
|
|
399
|
+
_See code: [src/commands/environment/get.ts](https://github.com/Copado/agentia-cli/blob/v0.9.0-alpha.0/src/commands/environment/get.ts)_
|
|
396
400
|
|
|
397
401
|
## `agentia environment list`
|
|
398
402
|
|
|
@@ -414,7 +418,7 @@ EXAMPLES
|
|
|
414
418
|
$ agentia environment list --json
|
|
415
419
|
```
|
|
416
420
|
|
|
417
|
-
_See code: [src/commands/environment/list.ts](https://github.com/Copado/agentia-cli/blob/v0.
|
|
421
|
+
_See code: [src/commands/environment/list.ts](https://github.com/Copado/agentia-cli/blob/v0.9.0-alpha.0/src/commands/environment/list.ts)_
|
|
418
422
|
|
|
419
423
|
## `agentia environment update ID`
|
|
420
424
|
|
|
@@ -460,7 +464,7 @@ EXAMPLES
|
|
|
460
464
|
$ agentia environment update a0SKC000000CmZ2AU --name UAT --json
|
|
461
465
|
```
|
|
462
466
|
|
|
463
|
-
_See code: [src/commands/environment/update.ts](https://github.com/Copado/agentia-cli/blob/v0.
|
|
467
|
+
_See code: [src/commands/environment/update.ts](https://github.com/Copado/agentia-cli/blob/v0.9.0-alpha.0/src/commands/environment/update.ts)_
|
|
464
468
|
|
|
465
469
|
## `agentia help [COMMAND]`
|
|
466
470
|
|
|
@@ -509,7 +513,7 @@ EXAMPLES
|
|
|
509
513
|
$ agentia job get <job-id> --user-id <id> --organization-id <id> --json
|
|
510
514
|
```
|
|
511
515
|
|
|
512
|
-
_See code: [src/commands/job/get.ts](https://github.com/Copado/agentia-cli/blob/v0.
|
|
516
|
+
_See code: [src/commands/job/get.ts](https://github.com/Copado/agentia-cli/blob/v0.9.0-alpha.0/src/commands/job/get.ts)_
|
|
513
517
|
|
|
514
518
|
## `agentia job kill ID`
|
|
515
519
|
|
|
@@ -538,7 +542,7 @@ EXAMPLES
|
|
|
538
542
|
$ agentia job kill <job-id> --user-id <id> --organization-id <id> --json
|
|
539
543
|
```
|
|
540
544
|
|
|
541
|
-
_See code: [src/commands/job/kill.ts](https://github.com/Copado/agentia-cli/blob/v0.
|
|
545
|
+
_See code: [src/commands/job/kill.ts](https://github.com/Copado/agentia-cli/blob/v0.9.0-alpha.0/src/commands/job/kill.ts)_
|
|
542
546
|
|
|
543
547
|
## `agentia job list`
|
|
544
548
|
|
|
@@ -576,7 +580,7 @@ EXAMPLES
|
|
|
576
580
|
$ agentia job list --user-id <id> --organization-id <id> --json
|
|
577
581
|
```
|
|
578
582
|
|
|
579
|
-
_See code: [src/commands/job/list.ts](https://github.com/Copado/agentia-cli/blob/v0.
|
|
583
|
+
_See code: [src/commands/job/list.ts](https://github.com/Copado/agentia-cli/blob/v0.9.0-alpha.0/src/commands/job/list.ts)_
|
|
580
584
|
|
|
581
585
|
## `agentia job pause ID`
|
|
582
586
|
|
|
@@ -605,7 +609,7 @@ EXAMPLES
|
|
|
605
609
|
$ agentia job pause <job-id> --user-id <id> --organization-id <id> --json
|
|
606
610
|
```
|
|
607
611
|
|
|
608
|
-
_See code: [src/commands/job/pause.ts](https://github.com/Copado/agentia-cli/blob/v0.
|
|
612
|
+
_See code: [src/commands/job/pause.ts](https://github.com/Copado/agentia-cli/blob/v0.9.0-alpha.0/src/commands/job/pause.ts)_
|
|
609
613
|
|
|
610
614
|
## `agentia job resume ID`
|
|
611
615
|
|
|
@@ -634,7 +638,7 @@ EXAMPLES
|
|
|
634
638
|
$ agentia job resume <job-id> --user-id <id> --organization-id <id> --json
|
|
635
639
|
```
|
|
636
640
|
|
|
637
|
-
_See code: [src/commands/job/resume.ts](https://github.com/Copado/agentia-cli/blob/v0.
|
|
641
|
+
_See code: [src/commands/job/resume.ts](https://github.com/Copado/agentia-cli/blob/v0.9.0-alpha.0/src/commands/job/resume.ts)_
|
|
638
642
|
|
|
639
643
|
## `agentia job run ID`
|
|
640
644
|
|
|
@@ -664,7 +668,7 @@ EXAMPLES
|
|
|
664
668
|
$ agentia job run <job-id> --user-id <id> --organization-id <id> --restart --json
|
|
665
669
|
```
|
|
666
670
|
|
|
667
|
-
_See code: [src/commands/job/run.ts](https://github.com/Copado/agentia-cli/blob/v0.
|
|
671
|
+
_See code: [src/commands/job/run.ts](https://github.com/Copado/agentia-cli/blob/v0.9.0-alpha.0/src/commands/job/run.ts)_
|
|
668
672
|
|
|
669
673
|
## `agentia mcp start`
|
|
670
674
|
|
|
@@ -683,7 +687,7 @@ EXAMPLES
|
|
|
683
687
|
$ agentia mcp start # long-running stdio MCP server for Cursor and other clients
|
|
684
688
|
```
|
|
685
689
|
|
|
686
|
-
_See code: [src/commands/mcp/start.ts](https://github.com/Copado/agentia-cli/blob/v0.
|
|
690
|
+
_See code: [src/commands/mcp/start.ts](https://github.com/Copado/agentia-cli/blob/v0.9.0-alpha.0/src/commands/mcp/start.ts)_
|
|
687
691
|
|
|
688
692
|
## `agentia metadata content compare`
|
|
689
693
|
|
|
@@ -726,7 +730,7 @@ EXAMPLES
|
|
|
726
730
|
$ agentia metadata content compare --metadata-type ApexClass --api-name MyClass --json
|
|
727
731
|
```
|
|
728
732
|
|
|
729
|
-
_See code: [src/commands/metadata/content/compare.ts](https://github.com/Copado/agentia-cli/blob/v0.
|
|
733
|
+
_See code: [src/commands/metadata/content/compare.ts](https://github.com/Copado/agentia-cli/blob/v0.9.0-alpha.0/src/commands/metadata/content/compare.ts)_
|
|
730
734
|
|
|
731
735
|
## `agentia metadata content get`
|
|
732
736
|
|
|
@@ -767,7 +771,7 @@ EXAMPLES
|
|
|
767
771
|
$ agentia metadata content get --file requests.json --json
|
|
768
772
|
```
|
|
769
773
|
|
|
770
|
-
_See code: [src/commands/metadata/content/get.ts](https://github.com/Copado/agentia-cli/blob/v0.
|
|
774
|
+
_See code: [src/commands/metadata/content/get.ts](https://github.com/Copado/agentia-cli/blob/v0.9.0-alpha.0/src/commands/metadata/content/get.ts)_
|
|
771
775
|
|
|
772
776
|
## `agentia metadata dependency list`
|
|
773
777
|
|
|
@@ -815,7 +819,7 @@ EXAMPLES
|
|
|
815
819
|
$ agentia metadata dependency list --from-changes --base-ref origin/main --retrieve-mode all --pipeline-id <id> --source-org-id <id> --source-credential-id <id>
|
|
816
820
|
```
|
|
817
821
|
|
|
818
|
-
_See code: [src/commands/metadata/dependency/list.ts](https://github.com/Copado/agentia-cli/blob/v0.
|
|
822
|
+
_See code: [src/commands/metadata/dependency/list.ts](https://github.com/Copado/agentia-cli/blob/v0.9.0-alpha.0/src/commands/metadata/dependency/list.ts)_
|
|
819
823
|
|
|
820
824
|
## `agentia metadata index compare`
|
|
821
825
|
|
|
@@ -849,7 +853,7 @@ EXAMPLES
|
|
|
849
853
|
$ agentia metadata index compare --comparison-mode MIX --json
|
|
850
854
|
```
|
|
851
855
|
|
|
852
|
-
_See code: [src/commands/metadata/index/compare.ts](https://github.com/Copado/agentia-cli/blob/v0.
|
|
856
|
+
_See code: [src/commands/metadata/index/compare.ts](https://github.com/Copado/agentia-cli/blob/v0.9.0-alpha.0/src/commands/metadata/index/compare.ts)_
|
|
853
857
|
|
|
854
858
|
## `agentia metadata list`
|
|
855
859
|
|
|
@@ -897,7 +901,7 @@ EXAMPLES
|
|
|
897
901
|
$ agentia metadata list --source NewAndChanged --find-managed-packages --json
|
|
898
902
|
```
|
|
899
903
|
|
|
900
|
-
_See code: [src/commands/metadata/list.ts](https://github.com/Copado/agentia-cli/blob/v0.
|
|
904
|
+
_See code: [src/commands/metadata/list.ts](https://github.com/Copado/agentia-cli/blob/v0.9.0-alpha.0/src/commands/metadata/list.ts)_
|
|
901
905
|
|
|
902
906
|
## `agentia metadata refresh deleted`
|
|
903
907
|
|
|
@@ -929,7 +933,7 @@ EXAMPLES
|
|
|
929
933
|
$ agentia metadata refresh deleted --env <environment-id> --user-id <id> --organization-id <id> --module-type vlocity --json
|
|
930
934
|
```
|
|
931
935
|
|
|
932
|
-
_See code: [src/commands/metadata/refresh/deleted.ts](https://github.com/Copado/agentia-cli/blob/v0.
|
|
936
|
+
_See code: [src/commands/metadata/refresh/deleted.ts](https://github.com/Copado/agentia-cli/blob/v0.9.0-alpha.0/src/commands/metadata/refresh/deleted.ts)_
|
|
933
937
|
|
|
934
938
|
## `agentia metadata refresh run`
|
|
935
939
|
|
|
@@ -972,7 +976,7 @@ EXAMPLES
|
|
|
972
976
|
$ agentia metadata refresh run --env <environment-id> --user-id <id> --organization-id <id> --all --json
|
|
973
977
|
```
|
|
974
978
|
|
|
975
|
-
_See code: [src/commands/metadata/refresh/run.ts](https://github.com/Copado/agentia-cli/blob/v0.
|
|
979
|
+
_See code: [src/commands/metadata/refresh/run.ts](https://github.com/Copado/agentia-cli/blob/v0.9.0-alpha.0/src/commands/metadata/refresh/run.ts)_
|
|
976
980
|
|
|
977
981
|
## `agentia metadata refresh status`
|
|
978
982
|
|
|
@@ -1004,7 +1008,7 @@ EXAMPLES
|
|
|
1004
1008
|
$ agentia metadata refresh status --job-id <event-id> --user-id <id> --organization-id <id> --json
|
|
1005
1009
|
```
|
|
1006
1010
|
|
|
1007
|
-
_See code: [src/commands/metadata/refresh/status.ts](https://github.com/Copado/agentia-cli/blob/v0.
|
|
1011
|
+
_See code: [src/commands/metadata/refresh/status.ts](https://github.com/Copado/agentia-cli/blob/v0.9.0-alpha.0/src/commands/metadata/refresh/status.ts)_
|
|
1008
1012
|
|
|
1009
1013
|
## `agentia pipeline connection list`
|
|
1010
1014
|
|
|
@@ -1031,7 +1035,7 @@ EXAMPLES
|
|
|
1031
1035
|
$ agentia pipeline connection list --pipeline-id <pipeline-id> --user-id <id> --organization-id <id> --json
|
|
1032
1036
|
```
|
|
1033
1037
|
|
|
1034
|
-
_See code: [src/commands/pipeline/connection/list.ts](https://github.com/Copado/agentia-cli/blob/v0.
|
|
1038
|
+
_See code: [src/commands/pipeline/connection/list.ts](https://github.com/Copado/agentia-cli/blob/v0.9.0-alpha.0/src/commands/pipeline/connection/list.ts)_
|
|
1035
1039
|
|
|
1036
1040
|
## `agentia pipeline get ID`
|
|
1037
1041
|
|
|
@@ -1060,7 +1064,7 @@ EXAMPLES
|
|
|
1060
1064
|
$ agentia pipeline get <pipeline-id> --user-id <id> --organization-id <id> --json
|
|
1061
1065
|
```
|
|
1062
1066
|
|
|
1063
|
-
_See code: [src/commands/pipeline/get.ts](https://github.com/Copado/agentia-cli/blob/v0.
|
|
1067
|
+
_See code: [src/commands/pipeline/get.ts](https://github.com/Copado/agentia-cli/blob/v0.9.0-alpha.0/src/commands/pipeline/get.ts)_
|
|
1064
1068
|
|
|
1065
1069
|
## `agentia pipeline list`
|
|
1066
1070
|
|
|
@@ -1086,7 +1090,7 @@ EXAMPLES
|
|
|
1086
1090
|
$ agentia pipeline list --user-id <id> --organization-id <id> --json
|
|
1087
1091
|
```
|
|
1088
1092
|
|
|
1089
|
-
_See code: [src/commands/pipeline/list.ts](https://github.com/Copado/agentia-cli/blob/v0.
|
|
1093
|
+
_See code: [src/commands/pipeline/list.ts](https://github.com/Copado/agentia-cli/blob/v0.9.0-alpha.0/src/commands/pipeline/list.ts)_
|
|
1090
1094
|
|
|
1091
1095
|
## `agentia plugins`
|
|
1092
1096
|
|
|
@@ -1413,7 +1417,7 @@ EXAMPLES
|
|
|
1413
1417
|
$ agentia project default get --json
|
|
1414
1418
|
```
|
|
1415
1419
|
|
|
1416
|
-
_See code: [src/commands/project/default/get.ts](https://github.com/Copado/agentia-cli/blob/v0.
|
|
1420
|
+
_See code: [src/commands/project/default/get.ts](https://github.com/Copado/agentia-cli/blob/v0.9.0-alpha.0/src/commands/project/default/get.ts)_
|
|
1417
1421
|
|
|
1418
1422
|
## `agentia project default set`
|
|
1419
1423
|
|
|
@@ -1450,7 +1454,7 @@ EXAMPLES
|
|
|
1450
1454
|
$ agentia project default set --project my-project --json
|
|
1451
1455
|
```
|
|
1452
1456
|
|
|
1453
|
-
_See code: [src/commands/project/default/set.ts](https://github.com/Copado/agentia-cli/blob/v0.
|
|
1457
|
+
_See code: [src/commands/project/default/set.ts](https://github.com/Copado/agentia-cli/blob/v0.9.0-alpha.0/src/commands/project/default/set.ts)_
|
|
1454
1458
|
|
|
1455
1459
|
## `agentia project default unset`
|
|
1456
1460
|
|
|
@@ -1487,5 +1491,122 @@ EXAMPLES
|
|
|
1487
1491
|
$ agentia project default unset --project --json
|
|
1488
1492
|
```
|
|
1489
1493
|
|
|
1490
|
-
_See code: [src/commands/project/default/unset.ts](https://github.com/Copado/agentia-cli/blob/v0.
|
|
1494
|
+
_See code: [src/commands/project/default/unset.ts](https://github.com/Copado/agentia-cli/blob/v0.9.0-alpha.0/src/commands/project/default/unset.ts)_
|
|
1495
|
+
|
|
1496
|
+
## `agentia promotion conflict get ID`
|
|
1497
|
+
|
|
1498
|
+
Get raw merge-conflict content for a promotion file
|
|
1499
|
+
|
|
1500
|
+
```
|
|
1501
|
+
USAGE
|
|
1502
|
+
$ agentia promotion conflict get ID -p <value> [--json] [--output <value>]
|
|
1503
|
+
|
|
1504
|
+
ARGUMENTS
|
|
1505
|
+
ID Conflict attachment Id
|
|
1506
|
+
|
|
1507
|
+
FLAGS
|
|
1508
|
+
-p, --promotion=<value> (required) Copado promotion Id
|
|
1509
|
+
--output=<value> Write raw conflict content to this file path
|
|
1510
|
+
|
|
1511
|
+
GLOBAL FLAGS
|
|
1512
|
+
--json Format output as json.
|
|
1513
|
+
|
|
1514
|
+
DESCRIPTION
|
|
1515
|
+
Get raw merge-conflict content for a promotion file
|
|
1516
|
+
|
|
1517
|
+
EXAMPLES
|
|
1518
|
+
$ agentia promotion conflict get <conflict-id> --promotion <promotion-id>
|
|
1519
|
+
|
|
1520
|
+
$ agentia promotion conflict get <conflict-id> -p <promotion-id> --output ./MyClass.cls
|
|
1521
|
+
|
|
1522
|
+
$ agentia promotion conflict get <conflict-id> -p <promotion-id> --json
|
|
1523
|
+
```
|
|
1524
|
+
|
|
1525
|
+
_See code: [src/commands/promotion/conflict/get.ts](https://github.com/Copado/agentia-cli/blob/v0.9.0-alpha.0/src/commands/promotion/conflict/get.ts)_
|
|
1526
|
+
|
|
1527
|
+
## `agentia promotion conflict list`
|
|
1528
|
+
|
|
1529
|
+
List merge conflicts for a Copado promotion
|
|
1530
|
+
|
|
1531
|
+
```
|
|
1532
|
+
USAGE
|
|
1533
|
+
$ agentia promotion conflict list -p <value> [--json]
|
|
1534
|
+
|
|
1535
|
+
FLAGS
|
|
1536
|
+
-p, --promotion=<value> (required) Copado promotion Id
|
|
1537
|
+
|
|
1538
|
+
GLOBAL FLAGS
|
|
1539
|
+
--json Format output as json.
|
|
1540
|
+
|
|
1541
|
+
DESCRIPTION
|
|
1542
|
+
List merge conflicts for a Copado promotion
|
|
1543
|
+
|
|
1544
|
+
EXAMPLES
|
|
1545
|
+
$ agentia promotion conflict list --promotion <promotion-id>
|
|
1546
|
+
|
|
1547
|
+
$ agentia promotion conflict list -p <promotion-id> --json
|
|
1548
|
+
```
|
|
1549
|
+
|
|
1550
|
+
_See code: [src/commands/promotion/conflict/list.ts](https://github.com/Copado/agentia-cli/blob/v0.9.0-alpha.0/src/commands/promotion/conflict/list.ts)_
|
|
1551
|
+
|
|
1552
|
+
## `agentia promotion conflict resolve ID`
|
|
1553
|
+
|
|
1554
|
+
Resolve a promotion merge conflict automatically or from a file
|
|
1555
|
+
|
|
1556
|
+
```
|
|
1557
|
+
USAGE
|
|
1558
|
+
$ agentia promotion conflict resolve ID --mode auto|manual -p <value> [--json] [--file <value>]
|
|
1559
|
+
|
|
1560
|
+
ARGUMENTS
|
|
1561
|
+
ID Conflict attachment Id
|
|
1562
|
+
|
|
1563
|
+
FLAGS
|
|
1564
|
+
-p, --promotion=<value> (required) Copado promotion Id
|
|
1565
|
+
--file=<value> Path to manually resolved conflict content
|
|
1566
|
+
--mode=<option> (required) Conflict resolution mode
|
|
1567
|
+
<options: auto|manual>
|
|
1568
|
+
|
|
1569
|
+
GLOBAL FLAGS
|
|
1570
|
+
--json Format output as json.
|
|
1571
|
+
|
|
1572
|
+
DESCRIPTION
|
|
1573
|
+
Resolve a promotion merge conflict automatically or from a file
|
|
1574
|
+
|
|
1575
|
+
EXAMPLES
|
|
1576
|
+
$ agentia promotion conflict resolve <conflict-id> --promotion <promotion-id> --mode auto
|
|
1577
|
+
|
|
1578
|
+
$ agentia promotion conflict resolve <conflict-id> -p <promotion-id> --mode manual --file ./MyClass.cls
|
|
1579
|
+
|
|
1580
|
+
$ agentia promotion conflict resolve <conflict-id> -p <promotion-id> --mode auto --json
|
|
1581
|
+
```
|
|
1582
|
+
|
|
1583
|
+
_See code: [src/commands/promotion/conflict/resolve.ts](https://github.com/Copado/agentia-cli/blob/v0.9.0-alpha.0/src/commands/promotion/conflict/resolve.ts)_
|
|
1584
|
+
|
|
1585
|
+
## `agentia promotion conflict unresolve ID`
|
|
1586
|
+
|
|
1587
|
+
Undo a promotion conflict resolution
|
|
1588
|
+
|
|
1589
|
+
```
|
|
1590
|
+
USAGE
|
|
1591
|
+
$ agentia promotion conflict unresolve ID -p <value> [--json]
|
|
1592
|
+
|
|
1593
|
+
ARGUMENTS
|
|
1594
|
+
ID Conflict attachment Id
|
|
1595
|
+
|
|
1596
|
+
FLAGS
|
|
1597
|
+
-p, --promotion=<value> (required) Copado promotion Id
|
|
1598
|
+
|
|
1599
|
+
GLOBAL FLAGS
|
|
1600
|
+
--json Format output as json.
|
|
1601
|
+
|
|
1602
|
+
DESCRIPTION
|
|
1603
|
+
Undo a promotion conflict resolution
|
|
1604
|
+
|
|
1605
|
+
EXAMPLES
|
|
1606
|
+
$ agentia promotion conflict unresolve <conflict-id> --promotion <promotion-id>
|
|
1607
|
+
|
|
1608
|
+
$ agentia promotion conflict unresolve <conflict-id> -p <promotion-id> --json
|
|
1609
|
+
```
|
|
1610
|
+
|
|
1611
|
+
_See code: [src/commands/promotion/conflict/unresolve.ts](https://github.com/Copado/agentia-cli/blob/v0.9.0-alpha.0/src/commands/promotion/conflict/unresolve.ts)_
|
|
1491
1612
|
<!-- commandsstop -->
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { AgentiaCommand } from '../../../lib/agentia-command.js';
|
|
2
|
+
export type PromotionConflictContentResult = {
|
|
3
|
+
conflictId: string;
|
|
4
|
+
content: string;
|
|
5
|
+
output?: string;
|
|
6
|
+
promotionId: string;
|
|
7
|
+
};
|
|
8
|
+
export default class PromotionConflictGet extends AgentiaCommand {
|
|
9
|
+
static args: {
|
|
10
|
+
id: import("@oclif/core/interfaces").Arg<string, Record<string, unknown>>;
|
|
11
|
+
};
|
|
12
|
+
static description: string;
|
|
13
|
+
static examples: string[];
|
|
14
|
+
static flags: {
|
|
15
|
+
output: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
16
|
+
promotion: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
|
|
17
|
+
};
|
|
18
|
+
run(): Promise<PromotionConflictContentResult>;
|
|
19
|
+
}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { Args, Flags } from '@oclif/core';
|
|
2
|
+
import { writeFileSync } from 'node:fs';
|
|
3
|
+
import { AgentiaCommand } from '../../../lib/agentia-command.js';
|
|
4
|
+
import { CicdGateway } from '../../../lib/cicd-gateway.js';
|
|
5
|
+
import { promotionConflictContentEndpoint, withPromotionConflictErrorTranslation, } from '../../../lib/promotion-conflicts.js';
|
|
6
|
+
export default class PromotionConflictGet extends AgentiaCommand {
|
|
7
|
+
static args = {
|
|
8
|
+
id: Args.string({
|
|
9
|
+
description: 'Conflict attachment Id',
|
|
10
|
+
required: true,
|
|
11
|
+
}),
|
|
12
|
+
};
|
|
13
|
+
static description = 'Get raw merge-conflict content for a promotion file';
|
|
14
|
+
static examples = [
|
|
15
|
+
'<%= config.bin %> <%= command.id %> <conflict-id> --promotion <promotion-id>',
|
|
16
|
+
'<%= config.bin %> <%= command.id %> <conflict-id> -p <promotion-id> --output ./MyClass.cls',
|
|
17
|
+
'<%= config.bin %> <%= command.id %> <conflict-id> -p <promotion-id> --json',
|
|
18
|
+
];
|
|
19
|
+
static flags = {
|
|
20
|
+
output: Flags.string({
|
|
21
|
+
description: 'Write raw conflict content to this file path',
|
|
22
|
+
}),
|
|
23
|
+
promotion: Flags.string({
|
|
24
|
+
char: 'p',
|
|
25
|
+
description: 'Copado promotion Id',
|
|
26
|
+
required: true,
|
|
27
|
+
}),
|
|
28
|
+
};
|
|
29
|
+
async run() {
|
|
30
|
+
const { args, flags } = await this.parse(PromotionConflictGet);
|
|
31
|
+
const content = await this.withSpinner('Fetching promotion conflict content', () => withPromotionConflictErrorTranslation(() => CicdGateway.call({
|
|
32
|
+
endpoint: promotionConflictContentEndpoint(flags.promotion, args.id),
|
|
33
|
+
method: 'GET',
|
|
34
|
+
responseType: 'text',
|
|
35
|
+
})));
|
|
36
|
+
if (flags.output !== undefined) {
|
|
37
|
+
writeFileSync(flags.output, content, 'utf8');
|
|
38
|
+
}
|
|
39
|
+
this.display(() => {
|
|
40
|
+
if (flags.output !== undefined) {
|
|
41
|
+
this.log(`Wrote promotion conflict content to ${flags.output}.`);
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
process.stdout.write(content);
|
|
45
|
+
});
|
|
46
|
+
return {
|
|
47
|
+
conflictId: args.id,
|
|
48
|
+
content,
|
|
49
|
+
...(flags.output === undefined ? {} : { output: flags.output }),
|
|
50
|
+
promotionId: flags.promotion,
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=get.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get.js","sourceRoot":"","sources":["../../../../src/commands/promotion/conflict/get.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,IAAI,EAAE,KAAK,EAAC,MAAM,aAAa,CAAA;AACvC,OAAO,EAAC,aAAa,EAAC,MAAM,SAAS,CAAA;AAErC,OAAO,EAAC,cAAc,EAAC,MAAM,iCAAiC,CAAA;AAC9D,OAAO,EAAC,WAAW,EAAC,MAAM,8BAA8B,CAAA;AACxD,OAAO,EACL,gCAAgC,EAChC,qCAAqC,GACtC,MAAM,qCAAqC,CAAA;AAS5C,MAAM,CAAC,OAAO,OAAO,oBAAqB,SAAQ,cAAc;IAC9D,MAAM,CAAU,IAAI,GAAG;QACrB,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC;YACd,WAAW,EAAE,wBAAwB;YACrC,QAAQ,EAAE,IAAI;SACf,CAAC;KACH,CAAA;IACD,MAAM,CAAU,WAAW,GAAG,qDAAqD,CAAA;IACnF,MAAM,CAAU,QAAQ,GAAG;QACzB,8EAA8E;QAC9E,4FAA4F;QAC5F,4EAA4E;KAC7E,CAAA;IACD,MAAM,CAAU,KAAK,GAAG;QACtB,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC;YACnB,WAAW,EAAE,8CAA8C;SAC5D,CAAC;QACF,SAAS,EAAE,KAAK,CAAC,MAAM,CAAC;YACtB,IAAI,EAAE,GAAG;YACT,WAAW,EAAE,qBAAqB;YAClC,QAAQ,EAAE,IAAI;SACf,CAAC;KACH,CAAA;IAEM,KAAK,CAAC,GAAG;QACd,MAAM,EAAC,IAAI,EAAE,KAAK,EAAC,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAA;QAC5D,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,qCAAqC,EAAE,GAAG,EAAE,CACjF,qCAAqC,CAAC,GAAG,EAAE,CACzC,WAAW,CAAC,IAAI,CAAS;YACvB,QAAQ,EAAE,gCAAgC,CAAC,KAAK,CAAC,SAAS,EAAE,IAAI,CAAC,EAAE,CAAC;YACpE,MAAM,EAAE,KAAK;YACb,YAAY,EAAE,MAAM;SACrB,CAAC,CACH,CACF,CAAA;QAED,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAC/B,aAAa,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,CAAA;QAC9C,CAAC;QAED,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE;YAChB,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;gBAC/B,IAAI,CAAC,GAAG,CAAC,uCAAuC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAA;gBAChE,OAAM;YACR,CAAC;YAED,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;QAC/B,CAAC,CAAC,CAAA;QAEF,OAAO;YACL,UAAU,EAAE,IAAI,CAAC,EAAE;YACnB,OAAO;YACP,GAAG,CAAC,KAAK,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAC,MAAM,EAAE,KAAK,CAAC,MAAM,EAAC,CAAC;YAC7D,WAAW,EAAE,KAAK,CAAC,SAAS;SAC7B,CAAA;IACH,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { AgentiaCommand } from '../../../lib/agentia-command.js';
|
|
2
|
+
import { type PromotionConflict } from '../../../lib/promotion-conflicts.js';
|
|
3
|
+
export default class PromotionConflictList extends AgentiaCommand {
|
|
4
|
+
static description: string;
|
|
5
|
+
static examples: string[];
|
|
6
|
+
static flags: {
|
|
7
|
+
promotion: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
|
|
8
|
+
};
|
|
9
|
+
run(): Promise<PromotionConflict[]>;
|
|
10
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { Flags } from '@oclif/core';
|
|
2
|
+
import { AgentiaCommand } from '../../../lib/agentia-command.js';
|
|
3
|
+
import { CicdGateway } from '../../../lib/cicd-gateway.js';
|
|
4
|
+
import { formatPromotionConflictTable, normalizePromotionConflicts, promotionConflictsEndpoint, withPromotionConflictErrorTranslation, } from '../../../lib/promotion-conflicts.js';
|
|
5
|
+
export default class PromotionConflictList extends AgentiaCommand {
|
|
6
|
+
static description = 'List merge conflicts for a Copado promotion';
|
|
7
|
+
static examples = [
|
|
8
|
+
'<%= config.bin %> <%= command.id %> --promotion <promotion-id>',
|
|
9
|
+
'<%= config.bin %> <%= command.id %> -p <promotion-id> --json',
|
|
10
|
+
];
|
|
11
|
+
static flags = {
|
|
12
|
+
promotion: Flags.string({
|
|
13
|
+
char: 'p',
|
|
14
|
+
description: 'Copado promotion Id',
|
|
15
|
+
required: true,
|
|
16
|
+
}),
|
|
17
|
+
};
|
|
18
|
+
async run() {
|
|
19
|
+
const { flags } = await this.parse(PromotionConflictList);
|
|
20
|
+
const response = await this.withSpinner('Fetching promotion conflicts', () => withPromotionConflictErrorTranslation(() => CicdGateway.call({
|
|
21
|
+
endpoint: promotionConflictsEndpoint(flags.promotion),
|
|
22
|
+
method: 'GET',
|
|
23
|
+
})));
|
|
24
|
+
const conflicts = normalizePromotionConflicts(response);
|
|
25
|
+
this.display(() => {
|
|
26
|
+
if (conflicts.length === 0) {
|
|
27
|
+
this.log('No promotion conflicts were found.');
|
|
28
|
+
return;
|
|
29
|
+
}
|
|
30
|
+
this.log(formatPromotionConflictTable(conflicts));
|
|
31
|
+
});
|
|
32
|
+
return conflicts;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=list.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../../../src/commands/promotion/conflict/list.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,EAAC,MAAM,aAAa,CAAA;AAEjC,OAAO,EAAC,cAAc,EAAC,MAAM,iCAAiC,CAAA;AAC9D,OAAO,EAAC,WAAW,EAAC,MAAM,8BAA8B,CAAA;AACxD,OAAO,EACL,4BAA4B,EAC5B,2BAA2B,EAG3B,0BAA0B,EAC1B,qCAAqC,GACtC,MAAM,qCAAqC,CAAA;AAE5C,MAAM,CAAC,OAAO,OAAO,qBAAsB,SAAQ,cAAc;IAC/D,MAAM,CAAU,WAAW,GAAG,6CAA6C,CAAA;IAC3E,MAAM,CAAU,QAAQ,GAAG;QACzB,gEAAgE;QAChE,8DAA8D;KAC/D,CAAA;IACD,MAAM,CAAU,KAAK,GAAG;QACtB,SAAS,EAAE,KAAK,CAAC,MAAM,CAAC;YACtB,IAAI,EAAE,GAAG;YACT,WAAW,EAAE,qBAAqB;YAClC,QAAQ,EAAE,IAAI;SACf,CAAC;KACH,CAAA;IAEM,KAAK,CAAC,GAAG;QACd,MAAM,EAAC,KAAK,EAAC,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAA;QACvD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,8BAA8B,EAAE,GAAG,EAAE,CAC3E,qCAAqC,CAAC,GAAG,EAAE,CACzC,WAAW,CAAC,IAAI,CAAsD;YACpE,QAAQ,EAAE,0BAA0B,CAAC,KAAK,CAAC,SAAS,CAAC;YACrD,MAAM,EAAE,KAAK;SACd,CAAC,CACH,CACF,CAAA;QACD,MAAM,SAAS,GAAG,2BAA2B,CAAC,QAAQ,CAAC,CAAA;QAEvD,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE;YAChB,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC3B,IAAI,CAAC,GAAG,CAAC,oCAAoC,CAAC,CAAA;gBAC9C,OAAM;YACR,CAAC;YAED,IAAI,CAAC,GAAG,CAAC,4BAA4B,CAAC,SAAS,CAAC,CAAC,CAAA;QACnD,CAAC,CAAC,CAAA;QAEF,OAAO,SAAS,CAAA;IAClB,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { AgentiaCommand } from '../../../lib/agentia-command.js';
|
|
2
|
+
import { type PromotionConflictResolutionResult } from '../../../lib/promotion-conflicts.js';
|
|
3
|
+
export default class PromotionConflictResolve extends AgentiaCommand {
|
|
4
|
+
static args: {
|
|
5
|
+
id: import("@oclif/core/interfaces").Arg<string, Record<string, unknown>>;
|
|
6
|
+
};
|
|
7
|
+
static description: string;
|
|
8
|
+
static examples: string[];
|
|
9
|
+
static flags: {
|
|
10
|
+
file: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
11
|
+
mode: import("@oclif/core/interfaces").OptionFlag<"auto" | "manual", import("@oclif/core/interfaces").CustomOptions>;
|
|
12
|
+
promotion: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
|
|
13
|
+
};
|
|
14
|
+
run(): Promise<PromotionConflictResolutionResult>;
|
|
15
|
+
}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { Args, Flags } from '@oclif/core';
|
|
2
|
+
import { readFileSync } from 'node:fs';
|
|
3
|
+
import { AgentiaCommand } from '../../../lib/agentia-command.js';
|
|
4
|
+
import { CicdGateway } from '../../../lib/cicd-gateway.js';
|
|
5
|
+
import { buildPromotionConflictResolutionRequest, PROMOTION_CONFLICT_MODES, promotionConflictResolveEndpoint, withPromotionConflictErrorTranslation, } from '../../../lib/promotion-conflicts.js';
|
|
6
|
+
export default class PromotionConflictResolve extends AgentiaCommand {
|
|
7
|
+
static args = {
|
|
8
|
+
id: Args.string({
|
|
9
|
+
description: 'Conflict attachment Id',
|
|
10
|
+
required: true,
|
|
11
|
+
}),
|
|
12
|
+
};
|
|
13
|
+
static description = 'Resolve a promotion merge conflict automatically or from a file';
|
|
14
|
+
static examples = [
|
|
15
|
+
'<%= config.bin %> <%= command.id %> <conflict-id> --promotion <promotion-id> --mode auto',
|
|
16
|
+
'<%= config.bin %> <%= command.id %> <conflict-id> -p <promotion-id> --mode manual --file ./MyClass.cls',
|
|
17
|
+
'<%= config.bin %> <%= command.id %> <conflict-id> -p <promotion-id> --mode auto --json',
|
|
18
|
+
];
|
|
19
|
+
static flags = {
|
|
20
|
+
file: Flags.string({
|
|
21
|
+
description: 'Path to manually resolved conflict content',
|
|
22
|
+
}),
|
|
23
|
+
mode: Flags.option({
|
|
24
|
+
description: 'Conflict resolution mode',
|
|
25
|
+
options: [...PROMOTION_CONFLICT_MODES],
|
|
26
|
+
required: true,
|
|
27
|
+
})(),
|
|
28
|
+
promotion: Flags.string({
|
|
29
|
+
char: 'p',
|
|
30
|
+
description: 'Copado promotion Id',
|
|
31
|
+
required: true,
|
|
32
|
+
}),
|
|
33
|
+
};
|
|
34
|
+
async run() {
|
|
35
|
+
const { args, flags } = await this.parse(PromotionConflictResolve);
|
|
36
|
+
const resolveFlags = flags;
|
|
37
|
+
if (resolveFlags.mode === 'manual' && resolveFlags.file === undefined) {
|
|
38
|
+
this.error('--file is required when --mode manual is used.', { exit: 2 });
|
|
39
|
+
}
|
|
40
|
+
if (resolveFlags.mode === 'auto' && resolveFlags.file !== undefined) {
|
|
41
|
+
this.error('--file can only be used when --mode manual is used.', { exit: 2 });
|
|
42
|
+
}
|
|
43
|
+
const content = resolveFlags.file === undefined ? undefined : readFileSync(resolveFlags.file, 'utf8');
|
|
44
|
+
const body = buildPromotionConflictResolutionRequest(resolveFlags.mode, content);
|
|
45
|
+
const result = await this.withSpinner('Resolving promotion conflict', () => withPromotionConflictErrorTranslation(() => CicdGateway.call({
|
|
46
|
+
body,
|
|
47
|
+
endpoint: promotionConflictResolveEndpoint(resolveFlags.promotion, args.id),
|
|
48
|
+
headers: { 'Content-Type': 'application/json' },
|
|
49
|
+
method: 'POST',
|
|
50
|
+
})));
|
|
51
|
+
this.display(() => {
|
|
52
|
+
this.log(`Success: Conflict ${args.id} resolved successfully.`);
|
|
53
|
+
this.log(`Resolved count: ${result.resolvedCount ?? 0}`);
|
|
54
|
+
this.log(`Promotion status updated: ${result.promotionStatusUpdated ?? false}`);
|
|
55
|
+
});
|
|
56
|
+
return result;
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=resolve.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolve.js","sourceRoot":"","sources":["../../../../src/commands/promotion/conflict/resolve.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { AgentiaCommand } from '../../../lib/agentia-command.js';
|
|
2
|
+
import { type PromotionConflictUndoResult } from '../../../lib/promotion-conflicts.js';
|
|
3
|
+
export default class PromotionConflictUnresolve extends AgentiaCommand {
|
|
4
|
+
static args: {
|
|
5
|
+
id: import("@oclif/core/interfaces").Arg<string, Record<string, unknown>>;
|
|
6
|
+
};
|
|
7
|
+
static description: string;
|
|
8
|
+
static examples: string[];
|
|
9
|
+
static flags: {
|
|
10
|
+
promotion: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
|
|
11
|
+
};
|
|
12
|
+
run(): Promise<PromotionConflictUndoResult>;
|
|
13
|
+
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { Args, Flags } from '@oclif/core';
|
|
2
|
+
import { AgentiaCommand } from '../../../lib/agentia-command.js';
|
|
3
|
+
import { CicdGateway } from '../../../lib/cicd-gateway.js';
|
|
4
|
+
import { promotionConflictUndoEndpoint, withPromotionConflictErrorTranslation, } from '../../../lib/promotion-conflicts.js';
|
|
5
|
+
export default class PromotionConflictUnresolve extends AgentiaCommand {
|
|
6
|
+
static args = {
|
|
7
|
+
id: Args.string({
|
|
8
|
+
description: 'Conflict attachment Id',
|
|
9
|
+
required: true,
|
|
10
|
+
}),
|
|
11
|
+
};
|
|
12
|
+
static description = 'Undo a promotion conflict resolution';
|
|
13
|
+
static examples = [
|
|
14
|
+
'<%= config.bin %> <%= command.id %> <conflict-id> --promotion <promotion-id>',
|
|
15
|
+
'<%= config.bin %> <%= command.id %> <conflict-id> -p <promotion-id> --json',
|
|
16
|
+
];
|
|
17
|
+
static flags = {
|
|
18
|
+
promotion: Flags.string({
|
|
19
|
+
char: 'p',
|
|
20
|
+
description: 'Copado promotion Id',
|
|
21
|
+
required: true,
|
|
22
|
+
}),
|
|
23
|
+
};
|
|
24
|
+
async run() {
|
|
25
|
+
const { args, flags } = await this.parse(PromotionConflictUnresolve);
|
|
26
|
+
const result = await this.withSpinner('Undoing promotion conflict resolution', () => withPromotionConflictErrorTranslation(() => CicdGateway.call({
|
|
27
|
+
endpoint: promotionConflictUndoEndpoint(flags.promotion, args.id),
|
|
28
|
+
method: 'POST',
|
|
29
|
+
})));
|
|
30
|
+
this.display(() => {
|
|
31
|
+
this.log(`Success: Resolution undone for conflict ${args.id}.`);
|
|
32
|
+
this.log(`Undone count: ${result.undoneCount ?? 0}`);
|
|
33
|
+
});
|
|
34
|
+
return result;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=unresolve.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"unresolve.js","sourceRoot":"","sources":["../../../../src/commands/promotion/conflict/unresolve.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,IAAI,EAAE,KAAK,EAAC,MAAM,aAAa,CAAA;AAEvC,OAAO,EAAC,cAAc,EAAC,MAAM,iCAAiC,CAAA;AAC9D,OAAO,EAAC,WAAW,EAAC,MAAM,8BAA8B,CAAA;AACxD,OAAO,EACL,6BAA6B,EAE7B,qCAAqC,GACtC,MAAM,qCAAqC,CAAA;AAE5C,MAAM,CAAC,OAAO,OAAO,0BAA2B,SAAQ,cAAc;IACpE,MAAM,CAAU,IAAI,GAAG;QACrB,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC;YACd,WAAW,EAAE,wBAAwB;YACrC,QAAQ,EAAE,IAAI;SACf,CAAC;KACH,CAAA;IACD,MAAM,CAAU,WAAW,GAAG,sCAAsC,CAAA;IACpE,MAAM,CAAU,QAAQ,GAAG;QACzB,8EAA8E;QAC9E,4EAA4E;KAC7E,CAAA;IACD,MAAM,CAAU,KAAK,GAAG;QACtB,SAAS,EAAE,KAAK,CAAC,MAAM,CAAC;YACtB,IAAI,EAAE,GAAG;YACT,WAAW,EAAE,qBAAqB;YAClC,QAAQ,EAAE,IAAI;SACf,CAAC;KACH,CAAA;IAEM,KAAK,CAAC,GAAG;QACd,MAAM,EAAC,IAAI,EAAE,KAAK,EAAC,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAA;QAClE,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,uCAAuC,EAAE,GAAG,EAAE,CAClF,qCAAqC,CAAC,GAAG,EAAE,CACzC,WAAW,CAAC,IAAI,CAA8B;YAC5C,QAAQ,EAAE,6BAA6B,CAAC,KAAK,CAAC,SAAS,EAAE,IAAI,CAAC,EAAE,CAAC;YACjE,MAAM,EAAE,MAAM;SACf,CAAC,CACH,CACF,CAAA;QAED,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE;YAChB,IAAI,CAAC,GAAG,CAAC,2CAA2C,IAAI,CAAC,EAAE,GAAG,CAAC,CAAA;YAC/D,IAAI,CAAC,GAAG,CAAC,iBAAiB,MAAM,CAAC,WAAW,IAAI,CAAC,EAAE,CAAC,CAAA;QACtD,CAAC,CAAC,CAAA;QAEF,OAAO,MAAM,CAAA;IACf,CAAC"}
|
|
@@ -5,6 +5,7 @@ export type CicdRequest = {
|
|
|
5
5
|
endpoint: string;
|
|
6
6
|
headers?: Record<string, string>;
|
|
7
7
|
method: 'DELETE' | 'GET' | 'PATCH' | 'POST' | 'PUT';
|
|
8
|
+
responseType?: 'json' | 'text';
|
|
8
9
|
};
|
|
9
10
|
export type CicdResponse<T = unknown> = {
|
|
10
11
|
data?: T;
|
|
@@ -40,6 +41,16 @@ export type CicdEndpointOptions = {
|
|
|
40
41
|
region?: CicdRegion;
|
|
41
42
|
};
|
|
42
43
|
export type HttpRequestFn = (url: URL, method: string, headers: Record<string, string>, body: unknown) => Promise<string>;
|
|
44
|
+
export declare class CicdGatewayError extends Error {
|
|
45
|
+
readonly categories: string[];
|
|
46
|
+
readonly code?: string;
|
|
47
|
+
readonly statusCode?: number;
|
|
48
|
+
constructor(message: string, options?: {
|
|
49
|
+
categories?: string[];
|
|
50
|
+
code?: string;
|
|
51
|
+
statusCode?: number;
|
|
52
|
+
});
|
|
53
|
+
}
|
|
43
54
|
export declare function gatewayUserAgent(): string;
|
|
44
55
|
export declare function createTransactionId(): string;
|
|
45
56
|
export declare function normalizeCicdBaseUrl(value: string): string;
|
package/dist/lib/cicd-gateway.js
CHANGED
|
@@ -8,6 +8,18 @@ const require = createRequire(import.meta.url);
|
|
|
8
8
|
const packageJson = require('../../package.json');
|
|
9
9
|
const CICD_API_PATH = '/json/v1/webhook/cicd-api';
|
|
10
10
|
const CICD_VALIDATION_ENDPOINT = '/health';
|
|
11
|
+
export class CicdGatewayError extends Error {
|
|
12
|
+
categories;
|
|
13
|
+
code;
|
|
14
|
+
statusCode;
|
|
15
|
+
constructor(message, options = {}) {
|
|
16
|
+
super(message);
|
|
17
|
+
this.name = 'CicdGatewayError';
|
|
18
|
+
this.categories = options.categories ?? [];
|
|
19
|
+
this.code = options.code;
|
|
20
|
+
this.statusCode = options.statusCode;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
11
23
|
export function gatewayUserAgent() {
|
|
12
24
|
return `agentia-cli/${packageJson.version}`;
|
|
13
25
|
}
|
|
@@ -42,6 +54,15 @@ function extractCicdErrorDetailMessage(details) {
|
|
|
42
54
|
}
|
|
43
55
|
return undefined;
|
|
44
56
|
}
|
|
57
|
+
function extractCicdErrorCategories(details) {
|
|
58
|
+
if (details === undefined) {
|
|
59
|
+
return [];
|
|
60
|
+
}
|
|
61
|
+
const values = Array.isArray(details) ? details : [details];
|
|
62
|
+
return values
|
|
63
|
+
.map((detail) => detail.category)
|
|
64
|
+
.filter((category) => typeof category === 'string' && category.trim().length > 0);
|
|
65
|
+
}
|
|
45
66
|
export function sanitizeCicdErrorMessage(message) {
|
|
46
67
|
const exposesSalesforceQuery = /INVALID_QUERY_FILTER_OPERATOR/i.test(message) ||
|
|
47
68
|
/ERROR at Row:\d+:Column:\d+/i.test(message) ||
|
|
@@ -58,21 +79,31 @@ export function formatCicdGatewayError(status, raw) {
|
|
|
58
79
|
const detailMessage = extractCicdErrorDetailMessage(parsed.data?.details);
|
|
59
80
|
const message = detailMessage ?? parsed.message;
|
|
60
81
|
if (message !== undefined && message.trim().length > 0) {
|
|
61
|
-
return new
|
|
82
|
+
return new CicdGatewayError(sanitizeCicdErrorMessage(message), {
|
|
83
|
+
categories: extractCicdErrorCategories(parsed.data?.details),
|
|
84
|
+
code: parsed.data?.code,
|
|
85
|
+
statusCode: status,
|
|
86
|
+
});
|
|
62
87
|
}
|
|
63
88
|
}
|
|
64
89
|
catch {
|
|
65
90
|
// Fall through to the generic error below.
|
|
66
91
|
}
|
|
67
|
-
return new
|
|
92
|
+
return new CicdGatewayError(`CICD Gateway request failed (${status}).`, { statusCode: status });
|
|
68
93
|
}
|
|
69
94
|
function createCicdGatewayError(parsed) {
|
|
70
95
|
const detailMessage = extractCicdErrorDetailMessage(parsed.data?.details);
|
|
71
96
|
const message = detailMessage ?? parsed.message;
|
|
72
97
|
if (message !== undefined && message.trim().length > 0) {
|
|
73
|
-
return new
|
|
98
|
+
return new CicdGatewayError(sanitizeCicdErrorMessage(message), {
|
|
99
|
+
categories: extractCicdErrorCategories(parsed.data?.details),
|
|
100
|
+
code: parsed.data?.code,
|
|
101
|
+
});
|
|
74
102
|
}
|
|
75
|
-
return new
|
|
103
|
+
return new CicdGatewayError('CICD Gateway request failed.', {
|
|
104
|
+
categories: extractCicdErrorCategories(parsed.data?.details),
|
|
105
|
+
code: parsed.data?.code,
|
|
106
|
+
});
|
|
76
107
|
}
|
|
77
108
|
function buildOuterHeaders(transactionId) {
|
|
78
109
|
return {
|
|
@@ -142,6 +173,20 @@ function unwrapResponse(parsed) {
|
|
|
142
173
|
}
|
|
143
174
|
async function executeRequest(credentials, request, onDebugRequest) {
|
|
144
175
|
const raw = await sendRequest(credentials, request, onDebugRequest);
|
|
176
|
+
if (request.responseType === 'text') {
|
|
177
|
+
try {
|
|
178
|
+
const possibleError = JSON.parse(raw);
|
|
179
|
+
if (possibleError.status === 'error') {
|
|
180
|
+
throw createCicdGatewayError(possibleError);
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
catch (error) {
|
|
184
|
+
if (error instanceof CicdGatewayError) {
|
|
185
|
+
throw error;
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
return raw;
|
|
189
|
+
}
|
|
145
190
|
let parsed;
|
|
146
191
|
try {
|
|
147
192
|
parsed = JSON.parse(raw);
|
|
@@ -158,9 +203,11 @@ async function sendRequest(credentials, request, onDebugRequest) {
|
|
|
158
203
|
const endpoint = cicdApiUrl(credentials.baseUrl, credentials.apiKey);
|
|
159
204
|
const transactionId = createTransactionId();
|
|
160
205
|
const outerHeaders = buildOuterHeaders(transactionId);
|
|
206
|
+
const gatewayRequest = { ...request };
|
|
207
|
+
delete gatewayRequest.responseType;
|
|
161
208
|
if (onDebugRequest) {
|
|
162
209
|
onDebugRequest({
|
|
163
|
-
body:
|
|
210
|
+
body: gatewayRequest,
|
|
164
211
|
headers: {
|
|
165
212
|
Accept: 'application/json',
|
|
166
213
|
'Content-Type': 'application/json',
|
|
@@ -170,7 +217,7 @@ async function sendRequest(credentials, request, onDebugRequest) {
|
|
|
170
217
|
url: maskedCicdApiUrl(credentials.baseUrl),
|
|
171
218
|
});
|
|
172
219
|
}
|
|
173
|
-
return httpRequestFn(endpoint, 'POST', outerHeaders,
|
|
220
|
+
return httpRequestFn(endpoint, 'POST', outerHeaders, gatewayRequest);
|
|
174
221
|
}
|
|
175
222
|
export async function discoverCicdBaseUrl(apiKey) {
|
|
176
223
|
for (const region of CICD_REGIONS) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cicd-gateway.js","sourceRoot":"","sources":["../../src/lib/cicd-gateway.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AACnC,OAAO,EAAC,aAAa,EAAC,MAAM,aAAa,CAAA;AACzC,OAAO,EAAC,GAAG,EAAC,MAAM,UAAU,CAAA;AAC5B,OAAO,EAAC,EAAE,IAAI,MAAM,EAAC,MAAM,MAAM,CAAA;AAEjC,OAAO,EAAC,YAAY,EAAE,WAAW,EAAkB,MAAM,kBAAkB,CAAA;AAC3E,OAAO,EAAC,cAAc,EAAE,aAAa,EAAC,MAAM,uBAAuB,CAAA;AAEnE,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AAC9C,MAAM,WAAW,GAAG,OAAO,CAAC,oBAAoB,CAAsB,CAAA;AAEtE,MAAM,aAAa,GAAG,2BAA2B,CAAA;AACjD,MAAM,wBAAwB,GAAG,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"cicd-gateway.js","sourceRoot":"","sources":["../../src/lib/cicd-gateway.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
export declare const PROMOTION_CONFLICT_MODES: readonly ["auto", "manual"];
|
|
2
|
+
export type PromotionConflictMode = (typeof PROMOTION_CONFLICT_MODES)[number];
|
|
3
|
+
export type PromotionConflict = {
|
|
4
|
+
attachmentId?: null | string;
|
|
5
|
+
commitContent?: null | string;
|
|
6
|
+
featureBranchUrl?: null | string;
|
|
7
|
+
isKnownResolution?: boolean;
|
|
8
|
+
isOutOfPromotionMetadata?: boolean;
|
|
9
|
+
metadataName?: null | string;
|
|
10
|
+
metadataType?: null | string;
|
|
11
|
+
name?: null | string;
|
|
12
|
+
resolutionStrategy?: null | string;
|
|
13
|
+
userStory?: null | string;
|
|
14
|
+
};
|
|
15
|
+
export type PromotionConflictListResponse = {
|
|
16
|
+
data?: PromotionConflict[];
|
|
17
|
+
};
|
|
18
|
+
export type PromotionConflictResolutionRequest = {
|
|
19
|
+
content: string;
|
|
20
|
+
forceSaveWithMarkers: false;
|
|
21
|
+
mode: 'manual';
|
|
22
|
+
} | {
|
|
23
|
+
mode: 'auto';
|
|
24
|
+
};
|
|
25
|
+
export type PromotionConflictResolutionResult = {
|
|
26
|
+
promotionStatusUpdated?: boolean;
|
|
27
|
+
resolvedCount?: number;
|
|
28
|
+
};
|
|
29
|
+
export type PromotionConflictUndoResult = {
|
|
30
|
+
undoneCount?: number;
|
|
31
|
+
};
|
|
32
|
+
export declare function promotionConflictsEndpoint(promotionId: string): string;
|
|
33
|
+
export declare function promotionConflictContentEndpoint(promotionId: string, conflictId: string): string;
|
|
34
|
+
export declare function promotionConflictResolveEndpoint(promotionId: string, conflictId: string): string;
|
|
35
|
+
export declare function promotionConflictUndoEndpoint(promotionId: string, conflictId: string): string;
|
|
36
|
+
export declare function normalizePromotionConflicts(response: PromotionConflict[] | PromotionConflictListResponse): PromotionConflict[];
|
|
37
|
+
export declare function buildPromotionConflictResolutionRequest(mode: PromotionConflictMode, content?: string): PromotionConflictResolutionRequest;
|
|
38
|
+
export declare function formatPromotionConflictTable(conflicts: PromotionConflict[]): string;
|
|
39
|
+
export declare function translatePromotionConflictError(error: unknown): Error;
|
|
40
|
+
export declare function withPromotionConflictErrorTranslation<T>(action: () => Promise<T>): Promise<T>;
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import { CicdGatewayError } from './cicd-gateway.js';
|
|
2
|
+
import { cellValue, table } from './format.js';
|
|
3
|
+
export const PROMOTION_CONFLICT_MODES = ['auto', 'manual'];
|
|
4
|
+
const PROMOTION_CONFLICT_ERROR_MESSAGES = {
|
|
5
|
+
'PRO-003': 'You do not have permission to manage conflicts for this promotion.',
|
|
6
|
+
'PRO-004': 'Promotion or Conflict ID not found. Please verify your IDs.',
|
|
7
|
+
'PRO-005': 'Invalid resolution request. Ensure your manual content does not contain unresolved Git markers unless forceSaveWithMarkers is used.',
|
|
8
|
+
'PRO-016': 'Promotion or Conflict ID not found. Please verify your IDs.',
|
|
9
|
+
'PRO-025': 'Invalid resolution request. Ensure your manual content does not contain unresolved Git markers unless forceSaveWithMarkers is used.',
|
|
10
|
+
'PRO-026': 'Invalid resolution request. Ensure your manual content does not contain unresolved Git markers unless forceSaveWithMarkers is used.',
|
|
11
|
+
};
|
|
12
|
+
function endpointSegment(value, label) {
|
|
13
|
+
const trimmed = value.trim();
|
|
14
|
+
if (trimmed.length === 0) {
|
|
15
|
+
throw new Error(`${label} cannot be empty.`);
|
|
16
|
+
}
|
|
17
|
+
return encodeURIComponent(trimmed);
|
|
18
|
+
}
|
|
19
|
+
export function promotionConflictsEndpoint(promotionId) {
|
|
20
|
+
return `/release/promotion/${endpointSegment(promotionId, 'Promotion ID')}/conflicts`;
|
|
21
|
+
}
|
|
22
|
+
export function promotionConflictContentEndpoint(promotionId, conflictId) {
|
|
23
|
+
return `${promotionConflictsEndpoint(promotionId)}/${endpointSegment(conflictId, 'Conflict ID')}/content`;
|
|
24
|
+
}
|
|
25
|
+
export function promotionConflictResolveEndpoint(promotionId, conflictId) {
|
|
26
|
+
return `${promotionConflictsEndpoint(promotionId)}/${endpointSegment(conflictId, 'Conflict ID')}/resolve`;
|
|
27
|
+
}
|
|
28
|
+
export function promotionConflictUndoEndpoint(promotionId, conflictId) {
|
|
29
|
+
return `${promotionConflictsEndpoint(promotionId)}/${endpointSegment(conflictId, 'Conflict ID')}/undo-resolution`;
|
|
30
|
+
}
|
|
31
|
+
export function normalizePromotionConflicts(response) {
|
|
32
|
+
if (Array.isArray(response)) {
|
|
33
|
+
return response;
|
|
34
|
+
}
|
|
35
|
+
return Array.isArray(response.data) ? response.data : [];
|
|
36
|
+
}
|
|
37
|
+
export function buildPromotionConflictResolutionRequest(mode, content) {
|
|
38
|
+
if (mode === 'auto') {
|
|
39
|
+
return { mode };
|
|
40
|
+
}
|
|
41
|
+
if (content === undefined) {
|
|
42
|
+
throw new Error('--file is required when --mode manual is used.');
|
|
43
|
+
}
|
|
44
|
+
return {
|
|
45
|
+
content,
|
|
46
|
+
forceSaveWithMarkers: false,
|
|
47
|
+
mode,
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
export function formatPromotionConflictTable(conflicts) {
|
|
51
|
+
return table([
|
|
52
|
+
{ alias: 'CONFLICT ID', value: 'attachmentId' },
|
|
53
|
+
{ alias: 'USER STORY', value: 'userStory' },
|
|
54
|
+
{ alias: 'TYPE', value: 'metadataType' },
|
|
55
|
+
{ alias: 'NAME', value: 'metadataName' },
|
|
56
|
+
{ alias: 'STATUS', value: 'resolutionStrategy' },
|
|
57
|
+
], conflicts.map((conflict) => ({
|
|
58
|
+
attachmentId: cellValue(conflict.attachmentId),
|
|
59
|
+
metadataName: cellValue(conflict.metadataName),
|
|
60
|
+
metadataType: cellValue(conflict.metadataType),
|
|
61
|
+
resolutionStrategy: cellValue(conflict.resolutionStrategy),
|
|
62
|
+
userStory: cellValue(conflict.userStory),
|
|
63
|
+
})));
|
|
64
|
+
}
|
|
65
|
+
export function translatePromotionConflictError(error) {
|
|
66
|
+
if (error instanceof CicdGatewayError) {
|
|
67
|
+
const identifiers = [error.code, ...error.categories];
|
|
68
|
+
const identifier = identifiers.find((value) => value !== undefined && value in PROMOTION_CONFLICT_ERROR_MESSAGES);
|
|
69
|
+
if (identifier !== undefined) {
|
|
70
|
+
return new Error(PROMOTION_CONFLICT_ERROR_MESSAGES[identifier]);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
return error instanceof Error ? error : new Error(String(error));
|
|
74
|
+
}
|
|
75
|
+
export async function withPromotionConflictErrorTranslation(action) {
|
|
76
|
+
try {
|
|
77
|
+
return await action();
|
|
78
|
+
}
|
|
79
|
+
catch (error) {
|
|
80
|
+
throw translatePromotionConflictError(error);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
//# sourceMappingURL=promotion-conflicts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"promotion-conflicts.js","sourceRoot":"","sources":["../../src/lib/promotion-conflicts.ts"],"names":[],"mappings":"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"}
|
package/oclif.manifest.json
CHANGED
|
@@ -2247,6 +2247,224 @@
|
|
|
2247
2247
|
"unset.js"
|
|
2248
2248
|
]
|
|
2249
2249
|
},
|
|
2250
|
+
"promotion:conflict:get": {
|
|
2251
|
+
"aliases": [],
|
|
2252
|
+
"args": {
|
|
2253
|
+
"id": {
|
|
2254
|
+
"description": "Conflict attachment Id",
|
|
2255
|
+
"name": "id",
|
|
2256
|
+
"required": true
|
|
2257
|
+
}
|
|
2258
|
+
},
|
|
2259
|
+
"description": "Get raw merge-conflict content for a promotion file",
|
|
2260
|
+
"examples": [
|
|
2261
|
+
"<%= config.bin %> <%= command.id %> <conflict-id> --promotion <promotion-id>",
|
|
2262
|
+
"<%= config.bin %> <%= command.id %> <conflict-id> -p <promotion-id> --output ./MyClass.cls",
|
|
2263
|
+
"<%= config.bin %> <%= command.id %> <conflict-id> -p <promotion-id> --json"
|
|
2264
|
+
],
|
|
2265
|
+
"flags": {
|
|
2266
|
+
"json": {
|
|
2267
|
+
"description": "Format output as json.",
|
|
2268
|
+
"helpGroup": "GLOBAL",
|
|
2269
|
+
"name": "json",
|
|
2270
|
+
"allowNo": false,
|
|
2271
|
+
"type": "boolean"
|
|
2272
|
+
},
|
|
2273
|
+
"output": {
|
|
2274
|
+
"description": "Write raw conflict content to this file path",
|
|
2275
|
+
"name": "output",
|
|
2276
|
+
"hasDynamicHelp": false,
|
|
2277
|
+
"multiple": false,
|
|
2278
|
+
"type": "option"
|
|
2279
|
+
},
|
|
2280
|
+
"promotion": {
|
|
2281
|
+
"char": "p",
|
|
2282
|
+
"description": "Copado promotion Id",
|
|
2283
|
+
"name": "promotion",
|
|
2284
|
+
"required": true,
|
|
2285
|
+
"hasDynamicHelp": false,
|
|
2286
|
+
"multiple": false,
|
|
2287
|
+
"type": "option"
|
|
2288
|
+
}
|
|
2289
|
+
},
|
|
2290
|
+
"hasDynamicHelp": false,
|
|
2291
|
+
"hiddenAliases": [],
|
|
2292
|
+
"id": "promotion:conflict:get",
|
|
2293
|
+
"pluginAlias": "@copado/agentia-cli",
|
|
2294
|
+
"pluginName": "@copado/agentia-cli",
|
|
2295
|
+
"pluginType": "core",
|
|
2296
|
+
"strict": true,
|
|
2297
|
+
"enableJsonFlag": true,
|
|
2298
|
+
"isESM": true,
|
|
2299
|
+
"relativePath": [
|
|
2300
|
+
"dist",
|
|
2301
|
+
"commands",
|
|
2302
|
+
"promotion",
|
|
2303
|
+
"conflict",
|
|
2304
|
+
"get.js"
|
|
2305
|
+
]
|
|
2306
|
+
},
|
|
2307
|
+
"promotion:conflict:list": {
|
|
2308
|
+
"aliases": [],
|
|
2309
|
+
"args": {},
|
|
2310
|
+
"description": "List merge conflicts for a Copado promotion",
|
|
2311
|
+
"examples": [
|
|
2312
|
+
"<%= config.bin %> <%= command.id %> --promotion <promotion-id>",
|
|
2313
|
+
"<%= config.bin %> <%= command.id %> -p <promotion-id> --json"
|
|
2314
|
+
],
|
|
2315
|
+
"flags": {
|
|
2316
|
+
"json": {
|
|
2317
|
+
"description": "Format output as json.",
|
|
2318
|
+
"helpGroup": "GLOBAL",
|
|
2319
|
+
"name": "json",
|
|
2320
|
+
"allowNo": false,
|
|
2321
|
+
"type": "boolean"
|
|
2322
|
+
},
|
|
2323
|
+
"promotion": {
|
|
2324
|
+
"char": "p",
|
|
2325
|
+
"description": "Copado promotion Id",
|
|
2326
|
+
"name": "promotion",
|
|
2327
|
+
"required": true,
|
|
2328
|
+
"hasDynamicHelp": false,
|
|
2329
|
+
"multiple": false,
|
|
2330
|
+
"type": "option"
|
|
2331
|
+
}
|
|
2332
|
+
},
|
|
2333
|
+
"hasDynamicHelp": false,
|
|
2334
|
+
"hiddenAliases": [],
|
|
2335
|
+
"id": "promotion:conflict:list",
|
|
2336
|
+
"pluginAlias": "@copado/agentia-cli",
|
|
2337
|
+
"pluginName": "@copado/agentia-cli",
|
|
2338
|
+
"pluginType": "core",
|
|
2339
|
+
"strict": true,
|
|
2340
|
+
"enableJsonFlag": true,
|
|
2341
|
+
"isESM": true,
|
|
2342
|
+
"relativePath": [
|
|
2343
|
+
"dist",
|
|
2344
|
+
"commands",
|
|
2345
|
+
"promotion",
|
|
2346
|
+
"conflict",
|
|
2347
|
+
"list.js"
|
|
2348
|
+
]
|
|
2349
|
+
},
|
|
2350
|
+
"promotion:conflict:resolve": {
|
|
2351
|
+
"aliases": [],
|
|
2352
|
+
"args": {
|
|
2353
|
+
"id": {
|
|
2354
|
+
"description": "Conflict attachment Id",
|
|
2355
|
+
"name": "id",
|
|
2356
|
+
"required": true
|
|
2357
|
+
}
|
|
2358
|
+
},
|
|
2359
|
+
"description": "Resolve a promotion merge conflict automatically or from a file",
|
|
2360
|
+
"examples": [
|
|
2361
|
+
"<%= config.bin %> <%= command.id %> <conflict-id> --promotion <promotion-id> --mode auto",
|
|
2362
|
+
"<%= config.bin %> <%= command.id %> <conflict-id> -p <promotion-id> --mode manual --file ./MyClass.cls",
|
|
2363
|
+
"<%= config.bin %> <%= command.id %> <conflict-id> -p <promotion-id> --mode auto --json"
|
|
2364
|
+
],
|
|
2365
|
+
"flags": {
|
|
2366
|
+
"json": {
|
|
2367
|
+
"description": "Format output as json.",
|
|
2368
|
+
"helpGroup": "GLOBAL",
|
|
2369
|
+
"name": "json",
|
|
2370
|
+
"allowNo": false,
|
|
2371
|
+
"type": "boolean"
|
|
2372
|
+
},
|
|
2373
|
+
"file": {
|
|
2374
|
+
"description": "Path to manually resolved conflict content",
|
|
2375
|
+
"name": "file",
|
|
2376
|
+
"hasDynamicHelp": false,
|
|
2377
|
+
"multiple": false,
|
|
2378
|
+
"type": "option"
|
|
2379
|
+
},
|
|
2380
|
+
"mode": {
|
|
2381
|
+
"description": "Conflict resolution mode",
|
|
2382
|
+
"name": "mode",
|
|
2383
|
+
"required": true,
|
|
2384
|
+
"hasDynamicHelp": false,
|
|
2385
|
+
"multiple": false,
|
|
2386
|
+
"options": [
|
|
2387
|
+
"auto",
|
|
2388
|
+
"manual"
|
|
2389
|
+
],
|
|
2390
|
+
"type": "option"
|
|
2391
|
+
},
|
|
2392
|
+
"promotion": {
|
|
2393
|
+
"char": "p",
|
|
2394
|
+
"description": "Copado promotion Id",
|
|
2395
|
+
"name": "promotion",
|
|
2396
|
+
"required": true,
|
|
2397
|
+
"hasDynamicHelp": false,
|
|
2398
|
+
"multiple": false,
|
|
2399
|
+
"type": "option"
|
|
2400
|
+
}
|
|
2401
|
+
},
|
|
2402
|
+
"hasDynamicHelp": false,
|
|
2403
|
+
"hiddenAliases": [],
|
|
2404
|
+
"id": "promotion:conflict:resolve",
|
|
2405
|
+
"pluginAlias": "@copado/agentia-cli",
|
|
2406
|
+
"pluginName": "@copado/agentia-cli",
|
|
2407
|
+
"pluginType": "core",
|
|
2408
|
+
"strict": true,
|
|
2409
|
+
"enableJsonFlag": true,
|
|
2410
|
+
"isESM": true,
|
|
2411
|
+
"relativePath": [
|
|
2412
|
+
"dist",
|
|
2413
|
+
"commands",
|
|
2414
|
+
"promotion",
|
|
2415
|
+
"conflict",
|
|
2416
|
+
"resolve.js"
|
|
2417
|
+
]
|
|
2418
|
+
},
|
|
2419
|
+
"promotion:conflict:unresolve": {
|
|
2420
|
+
"aliases": [],
|
|
2421
|
+
"args": {
|
|
2422
|
+
"id": {
|
|
2423
|
+
"description": "Conflict attachment Id",
|
|
2424
|
+
"name": "id",
|
|
2425
|
+
"required": true
|
|
2426
|
+
}
|
|
2427
|
+
},
|
|
2428
|
+
"description": "Undo a promotion conflict resolution",
|
|
2429
|
+
"examples": [
|
|
2430
|
+
"<%= config.bin %> <%= command.id %> <conflict-id> --promotion <promotion-id>",
|
|
2431
|
+
"<%= config.bin %> <%= command.id %> <conflict-id> -p <promotion-id> --json"
|
|
2432
|
+
],
|
|
2433
|
+
"flags": {
|
|
2434
|
+
"json": {
|
|
2435
|
+
"description": "Format output as json.",
|
|
2436
|
+
"helpGroup": "GLOBAL",
|
|
2437
|
+
"name": "json",
|
|
2438
|
+
"allowNo": false,
|
|
2439
|
+
"type": "boolean"
|
|
2440
|
+
},
|
|
2441
|
+
"promotion": {
|
|
2442
|
+
"char": "p",
|
|
2443
|
+
"description": "Copado promotion Id",
|
|
2444
|
+
"name": "promotion",
|
|
2445
|
+
"required": true,
|
|
2446
|
+
"hasDynamicHelp": false,
|
|
2447
|
+
"multiple": false,
|
|
2448
|
+
"type": "option"
|
|
2449
|
+
}
|
|
2450
|
+
},
|
|
2451
|
+
"hasDynamicHelp": false,
|
|
2452
|
+
"hiddenAliases": [],
|
|
2453
|
+
"id": "promotion:conflict:unresolve",
|
|
2454
|
+
"pluginAlias": "@copado/agentia-cli",
|
|
2455
|
+
"pluginName": "@copado/agentia-cli",
|
|
2456
|
+
"pluginType": "core",
|
|
2457
|
+
"strict": true,
|
|
2458
|
+
"enableJsonFlag": true,
|
|
2459
|
+
"isESM": true,
|
|
2460
|
+
"relativePath": [
|
|
2461
|
+
"dist",
|
|
2462
|
+
"commands",
|
|
2463
|
+
"promotion",
|
|
2464
|
+
"conflict",
|
|
2465
|
+
"unresolve.js"
|
|
2466
|
+
]
|
|
2467
|
+
},
|
|
2250
2468
|
"environment:auth:web:login": {
|
|
2251
2469
|
"aliases": [],
|
|
2252
2470
|
"args": {
|
|
@@ -2313,5 +2531,5 @@
|
|
|
2313
2531
|
]
|
|
2314
2532
|
}
|
|
2315
2533
|
},
|
|
2316
|
-
"version": "0.
|
|
2534
|
+
"version": "0.9.0-alpha.0"
|
|
2317
2535
|
}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@copado/agentia-cli",
|
|
3
3
|
"description": "Command-line interface for Agentia",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "0.9.0-alpha.0",
|
|
5
5
|
"author": "Copado Solutions",
|
|
6
6
|
"bin": {
|
|
7
7
|
"agentia": "./bin/run.js"
|
|
@@ -79,6 +79,9 @@
|
|
|
79
79
|
},
|
|
80
80
|
"project": {
|
|
81
81
|
"description": "Manage Copado projects"
|
|
82
|
+
},
|
|
83
|
+
"promotion": {
|
|
84
|
+
"description": "Manage Copado promotions"
|
|
82
85
|
}
|
|
83
86
|
}
|
|
84
87
|
},
|