@blogic-cz/agent-tools 1.4.2 → 1.5.1
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/az-tool/config.d.ts.map +1 -1
- package/dist/az-tool/profile.d.ts.map +1 -1
- package/dist/az-tool/service.d.ts +2 -2
- package/dist/azdo-tool/build.d.ts +8 -8
- package/dist/azdo-tool/config.d.ts.map +1 -1
- package/dist/azdo-tool/service.d.ts +2 -2
- package/dist/credential-guard/index.d.ts.map +1 -1
- package/dist/db-tool/schema.d.ts.map +1 -1
- package/dist/db-tool/service.d.ts +1 -1
- package/dist/db-tool/sql-client.d.ts.map +1 -1
- package/dist/gh-tool/api.d.ts.map +1 -1
- package/dist/gh-tool/config.d.ts.map +1 -1
- package/dist/gh-tool/gist.d.ts.map +1 -1
- package/dist/gh-tool/issue/commands.d.ts +1 -1
- package/dist/gh-tool/issue/triage.d.ts +1 -1
- package/dist/gh-tool/issue/triage.d.ts.map +1 -1
- package/dist/gh-tool/pr/commands.d.ts +10 -10
- package/dist/gh-tool/pr/commands.d.ts.map +1 -1
- package/dist/gh-tool/pr/core.d.ts +19 -19
- package/dist/gh-tool/pr/core.d.ts.map +1 -1
- package/dist/gh-tool/pr/stack.d.ts +13 -13
- package/dist/gh-tool/repo.d.ts +1 -1
- package/dist/gh-tool/service.d.ts +1 -1
- package/dist/gh-tool/text-input.d.ts.map +1 -1
- package/dist/gh-tool/workflow.d.ts +7 -7
- package/dist/gh-tool/workflow.d.ts.map +1 -1
- package/dist/k8s-tool/context.d.ts.map +1 -1
- package/dist/k8s-tool/security.d.ts.map +1 -1
- package/dist/k8s-tool/service.d.ts +2 -2
- package/dist/logs-tool/index.d.ts +1 -1
- package/dist/logs-tool/index.d.ts.map +1 -1
- package/dist/logs-tool/service.d.ts.map +1 -1
- package/dist/observability-tool/shared.d.ts.map +1 -1
- package/dist/session-tool/claude-code.d.ts.map +1 -1
- package/dist/session-tool/codex.d.ts +3 -1
- package/dist/session-tool/codex.d.ts.map +1 -1
- package/dist/session-tool/index.d.ts +1 -1
- package/dist/session-tool/index.d.ts.map +1 -1
- package/dist/session-tool/pi.d.ts.map +1 -1
- package/dist/session-tool/service.d.ts.map +1 -1
- package/dist/session-tool/summaries.d.ts.map +1 -1
- package/dist/session-tool/types.d.ts.map +1 -1
- package/dist/shared/audit.d.ts.map +1 -1
- package/dist/shared/azure-credentials.d.ts.map +1 -1
- package/dist/shared/binary-preflight.d.ts.map +1 -1
- package/dist/shared/cli.d.ts.map +1 -1
- package/dist/shared/error-renderer.d.ts.map +1 -1
- package/dist/shared/exec.d.ts.map +1 -1
- package/dist/shared/format.d.ts.map +1 -1
- package/dist/shared/path.d.ts.map +1 -1
- package/dist/shared/poll-until-resolved.d.ts.map +1 -1
- package/dist/shared/prerequisites/driver-commands.d.ts.map +1 -1
- package/dist/shared/prerequisites/errors.d.ts.map +1 -1
- package/dist/shared/prerequisites/guardian.d.ts.map +1 -1
- package/dist/shared/prerequisites/runtime.d.ts.map +1 -1
- package/dist/shared/prerequisites/store.d.ts.map +1 -1
- package/dist/shared/retry-transient.d.ts.map +1 -1
- package/dist/shared/schema-dump.d.ts.map +1 -1
- package/dist/shared/throttle.d.ts.map +1 -1
- package/package.json +13 -13
- package/src/audit-tool/index.ts +4 -4
- package/src/az-tool/index.ts +4 -4
- package/src/azdo-tool/index.ts +11 -11
- package/src/credential-guard/index.ts +54 -15
- package/src/db-tool/index.ts +12 -12
- package/src/gh-tool/branch.ts +4 -4
- package/src/gh-tool/gist.ts +20 -20
- package/src/gh-tool/issue/commands.ts +33 -33
- package/src/gh-tool/issue/triage.ts +5 -5
- package/src/gh-tool/pr/commands.ts +108 -112
- package/src/gh-tool/pr/core.ts +4 -6
- package/src/gh-tool/release.ts +30 -30
- package/src/gh-tool/repo.ts +7 -7
- package/src/gh-tool/workflow.ts +24 -24
- package/src/k8s-tool/index.ts +21 -21
- package/src/logs-tool/index.ts +7 -10
- package/src/logs-tool/transformers.ts +1 -1
- package/src/observability-tool/logs.ts +4 -4
- package/src/observability-tool/metrics.ts +4 -4
- package/src/observability-tool/shared.ts +2 -2
- package/src/observability-tool/trace.ts +10 -10
- package/src/session-tool/index.ts +8 -14
- package/src/shared/format.ts +1 -1
- package/src/shared/log-transform.ts +1 -1
|
@@ -70,7 +70,7 @@ import {
|
|
|
70
70
|
// CLI Commands
|
|
71
71
|
// ---------------------------------------------------------------------------
|
|
72
72
|
|
|
73
|
-
const repoOption = Flag.
|
|
73
|
+
const repoOption = Flag.String("repo").pipe(
|
|
74
74
|
Flag.withDescription("Target repository profile name or owner/name"),
|
|
75
75
|
Flag.optional,
|
|
76
76
|
);
|
|
@@ -460,11 +460,11 @@ export const prViewCommand = Command.make(
|
|
|
460
460
|
"view",
|
|
461
461
|
{
|
|
462
462
|
format: formatOption,
|
|
463
|
-
pr: Flag.
|
|
463
|
+
pr: Flag.Int("pr").pipe(
|
|
464
464
|
Flag.withDescription("PR number (default: current branch PR)"),
|
|
465
465
|
Flag.optional,
|
|
466
466
|
),
|
|
467
|
-
prs: Flag.
|
|
467
|
+
prs: Flag.String("prs").pipe(
|
|
468
468
|
Flag.withDescription("Comma-separated PR numbers to view in one call (overrides --pr)"),
|
|
469
469
|
Flag.optional,
|
|
470
470
|
),
|
|
@@ -511,21 +511,21 @@ export const prListCommand = Command.make(
|
|
|
511
511
|
"list",
|
|
512
512
|
{
|
|
513
513
|
format: formatOption,
|
|
514
|
-
state: Flag.
|
|
514
|
+
state: Flag.Literals("state", ["open", "closed", "merged", "all"]).pipe(
|
|
515
515
|
Flag.withDescription("Filter by state: open, closed, merged, all"),
|
|
516
516
|
Flag.withDefault("open"),
|
|
517
517
|
),
|
|
518
|
-
author: Flag.
|
|
518
|
+
author: Flag.String("author").pipe(
|
|
519
519
|
Flag.withDescription("Filter by author login (use @me for yourself)"),
|
|
520
520
|
Flag.optional,
|
|
521
521
|
),
|
|
522
|
-
base: Flag.
|
|
523
|
-
head: Flag.
|
|
524
|
-
search: Flag.
|
|
522
|
+
base: Flag.String("base").pipe(Flag.withDescription("Filter by base branch"), Flag.optional),
|
|
523
|
+
head: Flag.String("head").pipe(Flag.withDescription("Filter by head branch"), Flag.optional),
|
|
524
|
+
search: Flag.String("search").pipe(
|
|
525
525
|
Flag.withDescription("GitHub search query (e.g. 'review:required')"),
|
|
526
526
|
Flag.optional,
|
|
527
527
|
),
|
|
528
|
-
limit: Flag.
|
|
528
|
+
limit: Flag.Int("limit").pipe(
|
|
529
529
|
Flag.withDescription("Maximum number of PRs to return"),
|
|
530
530
|
Flag.withDefault(30),
|
|
531
531
|
),
|
|
@@ -556,11 +556,11 @@ export const prWaitMergeableCommand = Command.make(
|
|
|
556
556
|
"wait-mergeable",
|
|
557
557
|
{
|
|
558
558
|
format: formatOption,
|
|
559
|
-
pr: Flag.
|
|
559
|
+
pr: Flag.Int("pr").pipe(
|
|
560
560
|
Flag.withDescription("PR number (default: current branch PR)"),
|
|
561
561
|
Flag.optional,
|
|
562
562
|
),
|
|
563
|
-
timeout: Flag.
|
|
563
|
+
timeout: Flag.Int("timeout").pipe(
|
|
564
564
|
Flag.withDescription(
|
|
565
565
|
"Max seconds to wait for a definitive mergeable verdict (capped at 180)",
|
|
566
566
|
),
|
|
@@ -585,30 +585,30 @@ export const prWaitMergeableCommand = Command.make(
|
|
|
585
585
|
export const prCreateCommand = Command.make(
|
|
586
586
|
"create",
|
|
587
587
|
{
|
|
588
|
-
base: Flag.
|
|
588
|
+
base: Flag.String("base").pipe(
|
|
589
589
|
Flag.withDescription("Base branch for the PR (default: repository default branch)"),
|
|
590
590
|
Flag.optional,
|
|
591
591
|
),
|
|
592
|
-
body: Flag.
|
|
593
|
-
bodyFile: Flag.
|
|
592
|
+
body: Flag.String("body").pipe(Flag.withDescription("PR body/description"), Flag.optional),
|
|
593
|
+
bodyFile: Flag.String("body-file").pipe(
|
|
594
594
|
Flag.withDescription("Read PR body from a file path or '-' for stdin"),
|
|
595
595
|
Flag.optional,
|
|
596
596
|
),
|
|
597
|
-
bodyStdin: Flag.
|
|
597
|
+
bodyStdin: Flag.Boolean("body-stdin").pipe(
|
|
598
598
|
Flag.withDescription("Read PR body from stdin"),
|
|
599
599
|
Flag.withDefault(false),
|
|
600
600
|
),
|
|
601
|
-
draft: Flag.
|
|
601
|
+
draft: Flag.Boolean("draft").pipe(
|
|
602
602
|
Flag.withDescription("Create as draft PR"),
|
|
603
603
|
Flag.withDefault(false),
|
|
604
604
|
),
|
|
605
605
|
format: formatOption,
|
|
606
|
-
head: Flag.
|
|
606
|
+
head: Flag.String("head").pipe(
|
|
607
607
|
Flag.withDescription("Source branch name (required in GitButler workspace mode)"),
|
|
608
608
|
Flag.optional,
|
|
609
609
|
),
|
|
610
610
|
repo: repoOption,
|
|
611
|
-
title: Flag.
|
|
611
|
+
title: Flag.String("title").pipe(Flag.withDescription("PR title")),
|
|
612
612
|
},
|
|
613
613
|
({ base, body, bodyFile, bodyStdin, draft, format, head, repo, title }) =>
|
|
614
614
|
withRepo(
|
|
@@ -641,20 +641,20 @@ export const prCreateCommand = Command.make(
|
|
|
641
641
|
export const prEditCommand = Command.make(
|
|
642
642
|
"edit",
|
|
643
643
|
{
|
|
644
|
-
base: Flag.
|
|
645
|
-
body: Flag.
|
|
646
|
-
bodyFile: Flag.
|
|
644
|
+
base: Flag.String("base").pipe(Flag.withDescription("New base branch"), Flag.optional),
|
|
645
|
+
body: Flag.String("body").pipe(Flag.withDescription("New PR body/description"), Flag.optional),
|
|
646
|
+
bodyFile: Flag.String("body-file").pipe(
|
|
647
647
|
Flag.withDescription("Read PR body from a file path or '-' for stdin"),
|
|
648
648
|
Flag.optional,
|
|
649
649
|
),
|
|
650
|
-
bodyStdin: Flag.
|
|
650
|
+
bodyStdin: Flag.Boolean("body-stdin").pipe(
|
|
651
651
|
Flag.withDescription("Read PR body from stdin"),
|
|
652
652
|
Flag.withDefault(false),
|
|
653
653
|
),
|
|
654
654
|
format: formatOption,
|
|
655
|
-
pr: Flag.
|
|
655
|
+
pr: Flag.Int("pr").pipe(Flag.withDescription("PR number to edit")),
|
|
656
656
|
repo: repoOption,
|
|
657
|
-
title: Flag.
|
|
657
|
+
title: Flag.String("title").pipe(Flag.withDescription("New PR title"), Flag.optional),
|
|
658
658
|
},
|
|
659
659
|
({ base, body, bodyFile, bodyStdin, format, pr, repo, title }) =>
|
|
660
660
|
withRepo(
|
|
@@ -685,20 +685,20 @@ export const prEditCommand = Command.make(
|
|
|
685
685
|
export const prCloseCommand = Command.make(
|
|
686
686
|
"close",
|
|
687
687
|
{
|
|
688
|
-
comment: Flag.
|
|
688
|
+
comment: Flag.String("comment").pipe(
|
|
689
689
|
Flag.withDescription("Comment to add when closing"),
|
|
690
690
|
Flag.optional,
|
|
691
691
|
),
|
|
692
|
-
commentFile: Flag.
|
|
692
|
+
commentFile: Flag.String("comment-file").pipe(
|
|
693
693
|
Flag.withDescription("Read close comment from a file path or '-' for stdin"),
|
|
694
694
|
Flag.optional,
|
|
695
695
|
),
|
|
696
|
-
deleteBranch: Flag.
|
|
696
|
+
deleteBranch: Flag.Boolean("delete-branch").pipe(
|
|
697
697
|
Flag.withDescription("Delete the branch after closing"),
|
|
698
698
|
Flag.withDefault(false),
|
|
699
699
|
),
|
|
700
700
|
format: formatOption,
|
|
701
|
-
pr: Flag.
|
|
701
|
+
pr: Flag.Int("pr").pipe(Flag.withDescription("PR number to close")),
|
|
702
702
|
repo: repoOption,
|
|
703
703
|
},
|
|
704
704
|
({ comment, commentFile, deleteBranch, format, pr, repo }) =>
|
|
@@ -727,20 +727,20 @@ export const prCloseCommand = Command.make(
|
|
|
727
727
|
export const prMergeCommand = Command.make(
|
|
728
728
|
"merge",
|
|
729
729
|
{
|
|
730
|
-
confirm: Flag.
|
|
730
|
+
confirm: Flag.Boolean("confirm").pipe(
|
|
731
731
|
Flag.withDescription("Actually merge (without this flag, only shows dry-run)"),
|
|
732
732
|
Flag.withDefault(false),
|
|
733
733
|
),
|
|
734
|
-
deleteBranch: Flag.
|
|
734
|
+
deleteBranch: Flag.Boolean("delete-branch").pipe(
|
|
735
735
|
Flag.withDescription(
|
|
736
736
|
"Delete the remote branch after merge (local/worktree cleanup is separate)",
|
|
737
737
|
),
|
|
738
738
|
Flag.withDefault(DEFAULT_DELETE_BRANCH),
|
|
739
739
|
),
|
|
740
740
|
format: formatOption,
|
|
741
|
-
pr: Flag.
|
|
741
|
+
pr: Flag.Int("pr").pipe(Flag.withDescription("PR number to merge")),
|
|
742
742
|
repo: repoOption,
|
|
743
|
-
strategy: Flag.
|
|
743
|
+
strategy: Flag.Literals("strategy", MERGE_STRATEGIES).pipe(
|
|
744
744
|
Flag.withDescription("Merge strategy: squash, merge, or rebase"),
|
|
745
745
|
Flag.withDefault(DEFAULT_MERGE_STRATEGY),
|
|
746
746
|
),
|
|
@@ -764,7 +764,7 @@ export const prReadyCommand = Command.make(
|
|
|
764
764
|
"ready",
|
|
765
765
|
{
|
|
766
766
|
format: formatOption,
|
|
767
|
-
pr: Flag.
|
|
767
|
+
pr: Flag.Int("pr").pipe(
|
|
768
768
|
Flag.withDescription("PR number (default: current branch PR)"),
|
|
769
769
|
Flag.optional,
|
|
770
770
|
),
|
|
@@ -787,21 +787,21 @@ export const prReadyCommand = Command.make(
|
|
|
787
787
|
export const prChecksCommand = Command.make(
|
|
788
788
|
"checks",
|
|
789
789
|
{
|
|
790
|
-
failFast: Flag.
|
|
790
|
+
failFast: Flag.Boolean("fail-fast").pipe(
|
|
791
791
|
Flag.withDefault(true),
|
|
792
792
|
Flag.withDescription("Stop watching on first failure (with --watch)"),
|
|
793
793
|
),
|
|
794
794
|
format: formatOption,
|
|
795
|
-
pr: Flag.
|
|
795
|
+
pr: Flag.Int("pr").pipe(
|
|
796
796
|
Flag.withDescription("PR number (default: current branch PR)"),
|
|
797
797
|
Flag.optional,
|
|
798
798
|
),
|
|
799
|
-
prs: Flag.
|
|
799
|
+
prs: Flag.String("prs").pipe(
|
|
800
800
|
Flag.withDescription("Comma-separated PR numbers for a one-shot batch snapshot (no --watch)"),
|
|
801
801
|
Flag.optional,
|
|
802
802
|
),
|
|
803
803
|
repo: repoOption,
|
|
804
|
-
timeout: Flag.
|
|
804
|
+
timeout: Flag.Int("timeout").pipe(
|
|
805
805
|
Flag.withDefault(CI_CHECK_WATCH_TIMEOUT_MS / 1000),
|
|
806
806
|
Flag.withDescription("Timeout in seconds for watch mode (default: 600, minimum 1)"),
|
|
807
807
|
Flag.filter(
|
|
@@ -809,7 +809,7 @@ export const prChecksCommand = Command.make(
|
|
|
809
809
|
() => "--timeout must be at least 1 second",
|
|
810
810
|
),
|
|
811
811
|
),
|
|
812
|
-
watch: Flag.
|
|
812
|
+
watch: Flag.Boolean("watch").pipe(
|
|
813
813
|
Flag.withDefault(false),
|
|
814
814
|
Flag.withDescription("Watch until checks complete or timeout"),
|
|
815
815
|
),
|
|
@@ -859,12 +859,12 @@ export const prChecksFailedCommand = Command.make(
|
|
|
859
859
|
"checks-failed",
|
|
860
860
|
{
|
|
861
861
|
format: formatOption,
|
|
862
|
-
pr: Flag.
|
|
862
|
+
pr: Flag.Int("pr").pipe(
|
|
863
863
|
Flag.withDescription("PR number (default: current branch PR)"),
|
|
864
864
|
Flag.optional,
|
|
865
865
|
),
|
|
866
866
|
repo: repoOption,
|
|
867
|
-
withLogs: Flag.
|
|
867
|
+
withLogs: Flag.Boolean("with-logs").pipe(
|
|
868
868
|
Flag.withDescription(
|
|
869
869
|
"Inline the failed-step logs for each failed check so no follow-up job-logs call is needed",
|
|
870
870
|
),
|
|
@@ -885,17 +885,17 @@ export const prChecksFailedCommand = Command.make(
|
|
|
885
885
|
export const prWatchCommand = Command.make(
|
|
886
886
|
"watch",
|
|
887
887
|
{
|
|
888
|
-
prs: Flag.
|
|
889
|
-
until: Flag.
|
|
890
|
-
format: Flag.
|
|
891
|
-
interval: Flag.
|
|
888
|
+
prs: Flag.String("prs").pipe(Flag.withDescription("Comma-separated PR numbers")),
|
|
889
|
+
until: Flag.Literals("until", ["terminal"]).pipe(Flag.withDefault("terminal")),
|
|
890
|
+
format: Flag.Literals("format", ["jsonl"]).pipe(Flag.withDefault("jsonl")),
|
|
891
|
+
interval: Flag.Int("interval").pipe(
|
|
892
892
|
Flag.withDefault(5),
|
|
893
893
|
Flag.filter(
|
|
894
894
|
(n) => n >= 1 && n <= 60,
|
|
895
895
|
() => "--interval must be 1..60 seconds",
|
|
896
896
|
),
|
|
897
897
|
),
|
|
898
|
-
timeout: Flag.
|
|
898
|
+
timeout: Flag.Int("timeout").pipe(
|
|
899
899
|
Flag.withDefault(CI_CHECK_WATCH_TIMEOUT_MS / 1000),
|
|
900
900
|
Flag.filter(
|
|
901
901
|
(n) => n >= 1,
|
|
@@ -922,17 +922,17 @@ export const prRerunChecksCommand = Command.make(
|
|
|
922
922
|
"rerun-checks",
|
|
923
923
|
{
|
|
924
924
|
format: formatOption,
|
|
925
|
-
pr: Flag.
|
|
925
|
+
pr: Flag.Int("pr").pipe(
|
|
926
926
|
Flag.withDescription("PR number (default: current branch PR)"),
|
|
927
927
|
Flag.optional,
|
|
928
928
|
),
|
|
929
929
|
repo: repoOption,
|
|
930
|
-
failedOnly: Flag.
|
|
930
|
+
failedOnly: Flag.Boolean("failed-only").pipe(
|
|
931
931
|
Flag.withDefault(true),
|
|
932
932
|
Flag.withDescription("Only rerun failed checks (default: true)"),
|
|
933
933
|
),
|
|
934
|
-
watch: Flag.
|
|
935
|
-
timeout: Flag.
|
|
934
|
+
watch: Flag.Boolean("watch").pipe(Flag.withDefault(false)),
|
|
935
|
+
timeout: Flag.Int("timeout").pipe(
|
|
936
936
|
Flag.withDefault(60),
|
|
937
937
|
Flag.filter(
|
|
938
938
|
(n) => n >= 1,
|
|
@@ -960,18 +960,18 @@ export const prTriggerChecksCommand = Command.make(
|
|
|
960
960
|
"trigger-checks",
|
|
961
961
|
{
|
|
962
962
|
field: Param.variadic(
|
|
963
|
-
Param.
|
|
963
|
+
Param.String(Param.flagKind, "field").pipe(
|
|
964
964
|
Param.withAlias("f"),
|
|
965
965
|
Param.withDescription("Workflow input as key=value; may be repeated"),
|
|
966
966
|
),
|
|
967
967
|
),
|
|
968
968
|
format: formatOption,
|
|
969
|
-
pr: Flag.
|
|
969
|
+
pr: Flag.Int("pr").pipe(
|
|
970
970
|
Flag.withDescription("PR number (default: current branch PR)"),
|
|
971
971
|
Flag.optional,
|
|
972
972
|
),
|
|
973
973
|
repo: repoOption,
|
|
974
|
-
workflow: Flag.
|
|
974
|
+
workflow: Flag.String("workflow").pipe(
|
|
975
975
|
Flag.withDescription("workflow_dispatch workflow file to run against the PR head branch"),
|
|
976
976
|
),
|
|
977
977
|
},
|
|
@@ -993,16 +993,16 @@ export const prThreadsCommand = Command.make(
|
|
|
993
993
|
"threads",
|
|
994
994
|
{
|
|
995
995
|
format: formatOption,
|
|
996
|
-
pr: Flag.
|
|
996
|
+
pr: Flag.Int("pr").pipe(
|
|
997
997
|
Flag.withDescription("PR number (default: current branch PR)"),
|
|
998
998
|
Flag.optional,
|
|
999
999
|
),
|
|
1000
1000
|
repo: repoOption,
|
|
1001
|
-
unresolvedOnly: Flag.
|
|
1001
|
+
unresolvedOnly: Flag.Boolean("unresolved-only").pipe(
|
|
1002
1002
|
Flag.withDescription("Only show unresolved threads"),
|
|
1003
1003
|
Flag.withDefault(true),
|
|
1004
1004
|
),
|
|
1005
|
-
visibleOpenOnly: Flag.
|
|
1005
|
+
visibleOpenOnly: Flag.Boolean("visible-open-only").pipe(
|
|
1006
1006
|
Flag.withDescription(
|
|
1007
1007
|
"Show threads that still look open to humans: unresolved threads plus resolved threads with no reply",
|
|
1008
1008
|
),
|
|
@@ -1028,12 +1028,12 @@ export const prCommentsCommand = Command.make(
|
|
|
1028
1028
|
"comments",
|
|
1029
1029
|
{
|
|
1030
1030
|
format: formatOption,
|
|
1031
|
-
pr: Flag.
|
|
1031
|
+
pr: Flag.Int("pr").pipe(
|
|
1032
1032
|
Flag.withDescription("PR number (default: current branch PR)"),
|
|
1033
1033
|
Flag.optional,
|
|
1034
1034
|
),
|
|
1035
1035
|
repo: repoOption,
|
|
1036
|
-
since: Flag.
|
|
1036
|
+
since: Flag.String("since").pipe(
|
|
1037
1037
|
Flag.withDescription("ISO timestamp to filter comments created after"),
|
|
1038
1038
|
Flag.optional,
|
|
1039
1039
|
),
|
|
@@ -1054,7 +1054,7 @@ export const prLastHumanReviewerCommand = Command.make(
|
|
|
1054
1054
|
"last-human-reviewer",
|
|
1055
1055
|
{
|
|
1056
1056
|
format: formatOption,
|
|
1057
|
-
pr: Flag.
|
|
1057
|
+
pr: Flag.Int("pr").pipe(
|
|
1058
1058
|
Flag.withDescription("PR number (default: current branch PR)"),
|
|
1059
1059
|
Flag.optional,
|
|
1060
1060
|
),
|
|
@@ -1077,21 +1077,21 @@ export const prLastHumanReviewerCommand = Command.make(
|
|
|
1077
1077
|
export const prReviewsCommand = Command.make(
|
|
1078
1078
|
"reviews",
|
|
1079
1079
|
{
|
|
1080
|
-
author: Flag.
|
|
1080
|
+
author: Flag.String("author").pipe(
|
|
1081
1081
|
Flag.withDescription("Filter by author login substring"),
|
|
1082
1082
|
Flag.optional,
|
|
1083
1083
|
),
|
|
1084
|
-
bodyContains: Flag.
|
|
1084
|
+
bodyContains: Flag.String("body-contains").pipe(
|
|
1085
1085
|
Flag.withDescription("Filter reviews by body substring"),
|
|
1086
1086
|
Flag.optional,
|
|
1087
1087
|
),
|
|
1088
1088
|
format: formatOption,
|
|
1089
|
-
pr: Flag.
|
|
1089
|
+
pr: Flag.Int("pr").pipe(
|
|
1090
1090
|
Flag.withDescription("PR number (default: current branch PR)"),
|
|
1091
1091
|
Flag.optional,
|
|
1092
1092
|
),
|
|
1093
1093
|
repo: repoOption,
|
|
1094
|
-
state: Flag.
|
|
1094
|
+
state: Flag.String("state").pipe(
|
|
1095
1095
|
Flag.withDescription(
|
|
1096
1096
|
"Filter by review state (APPROVED, CHANGES_REQUESTED, COMMENTED, DISMISSED)",
|
|
1097
1097
|
),
|
|
@@ -1120,24 +1120,24 @@ export const prReviewsCommand = Command.make(
|
|
|
1120
1120
|
export const prFeedbackCommand = Command.make(
|
|
1121
1121
|
"feedback",
|
|
1122
1122
|
{
|
|
1123
|
-
excludeAuthors: Flag.
|
|
1123
|
+
excludeAuthors: Flag.String("exclude-authors").pipe(
|
|
1124
1124
|
Flag.withDescription(
|
|
1125
1125
|
"Comma-separated author substrings to drop (e.g. github-actions,dependabot)",
|
|
1126
1126
|
),
|
|
1127
1127
|
Flag.optional,
|
|
1128
1128
|
),
|
|
1129
1129
|
format: formatOption,
|
|
1130
|
-
only: Flag.
|
|
1130
|
+
only: Flag.Literals("only", FEEDBACK_FILTERS).pipe(
|
|
1131
1131
|
Flag.withDefault("all" as FeedbackFilter),
|
|
1132
1132
|
Flag.withDescription(
|
|
1133
1133
|
"all (default) | visible-open | needs-human-reply | current-head; narrowed filters drop issue comments",
|
|
1134
1134
|
),
|
|
1135
1135
|
),
|
|
1136
|
-
pr: Flag.
|
|
1136
|
+
pr: Flag.Int("pr").pipe(
|
|
1137
1137
|
Flag.withDescription("PR number (default: current branch PR)"),
|
|
1138
1138
|
Flag.optional,
|
|
1139
1139
|
),
|
|
1140
|
-
rawBodies: Flag.
|
|
1140
|
+
rawBodies: Flag.Boolean("raw-bodies").pipe(
|
|
1141
1141
|
Flag.withDefault(false),
|
|
1142
1142
|
Flag.withDescription("Keep base64 report payloads in bodies instead of omitting them"),
|
|
1143
1143
|
),
|
|
@@ -1170,21 +1170,21 @@ export const prFeedbackCommand = Command.make(
|
|
|
1170
1170
|
export const prIssueCommentsCommand = Command.make(
|
|
1171
1171
|
"issue-comments",
|
|
1172
1172
|
{
|
|
1173
|
-
author: Flag.
|
|
1173
|
+
author: Flag.String("author").pipe(
|
|
1174
1174
|
Flag.withDescription("Filter by author login substring"),
|
|
1175
1175
|
Flag.optional,
|
|
1176
1176
|
),
|
|
1177
|
-
bodyContains: Flag.
|
|
1177
|
+
bodyContains: Flag.String("body-contains").pipe(
|
|
1178
1178
|
Flag.withDescription("Filter comments by body substring"),
|
|
1179
1179
|
Flag.optional,
|
|
1180
1180
|
),
|
|
1181
1181
|
format: formatOption,
|
|
1182
|
-
pr: Flag.
|
|
1182
|
+
pr: Flag.Int("pr").pipe(
|
|
1183
1183
|
Flag.withDescription("PR number (default: current branch PR)"),
|
|
1184
1184
|
Flag.optional,
|
|
1185
1185
|
),
|
|
1186
1186
|
repo: repoOption,
|
|
1187
|
-
since: Flag.
|
|
1187
|
+
since: Flag.String("since").pipe(
|
|
1188
1188
|
Flag.withDescription("ISO timestamp to filter comments created after"),
|
|
1189
1189
|
Flag.optional,
|
|
1190
1190
|
),
|
|
@@ -1212,16 +1212,16 @@ export const prIssueCommentsCommand = Command.make(
|
|
|
1212
1212
|
export const prIssueCommentsLatestCommand = Command.make(
|
|
1213
1213
|
"issue-comments-latest",
|
|
1214
1214
|
{
|
|
1215
|
-
author: Flag.
|
|
1215
|
+
author: Flag.String("author").pipe(
|
|
1216
1216
|
Flag.withDescription("Filter by author login substring"),
|
|
1217
1217
|
Flag.optional,
|
|
1218
1218
|
),
|
|
1219
|
-
bodyContains: Flag.
|
|
1219
|
+
bodyContains: Flag.String("body-contains").pipe(
|
|
1220
1220
|
Flag.withDescription("Filter comments by body substring"),
|
|
1221
1221
|
Flag.optional,
|
|
1222
1222
|
),
|
|
1223
1223
|
format: formatOption,
|
|
1224
|
-
pr: Flag.
|
|
1224
|
+
pr: Flag.Int("pr").pipe(
|
|
1225
1225
|
Flag.withDescription("PR number (default: current branch PR)"),
|
|
1226
1226
|
Flag.optional,
|
|
1227
1227
|
),
|
|
@@ -1244,16 +1244,16 @@ export const prIssueCommentsLatestCommand = Command.make(
|
|
|
1244
1244
|
export const prCommentCommand = Command.make(
|
|
1245
1245
|
"comment",
|
|
1246
1246
|
{
|
|
1247
|
-
body: Flag.
|
|
1247
|
+
body: Flag.String("body").pipe(
|
|
1248
1248
|
Flag.withDescription("General PR comment body text"),
|
|
1249
1249
|
Flag.optional,
|
|
1250
1250
|
),
|
|
1251
|
-
bodyFile: Flag.
|
|
1251
|
+
bodyFile: Flag.String("body-file").pipe(
|
|
1252
1252
|
Flag.withDescription("Read general PR comment body from a file path or '-' for stdin"),
|
|
1253
1253
|
Flag.optional,
|
|
1254
1254
|
),
|
|
1255
1255
|
format: formatOption,
|
|
1256
|
-
pr: Flag.
|
|
1256
|
+
pr: Flag.Int("pr").pipe(
|
|
1257
1257
|
Flag.withDescription("PR number (default: current branch PR)"),
|
|
1258
1258
|
Flag.optional,
|
|
1259
1259
|
),
|
|
@@ -1282,7 +1282,7 @@ export const prDiscussionSummaryCommand = Command.make(
|
|
|
1282
1282
|
"discussion-summary",
|
|
1283
1283
|
{
|
|
1284
1284
|
format: formatOption,
|
|
1285
|
-
pr: Flag.
|
|
1285
|
+
pr: Flag.Int("pr").pipe(
|
|
1286
1286
|
Flag.withDescription("PR number (default: current branch PR)"),
|
|
1287
1287
|
Flag.optional,
|
|
1288
1288
|
),
|
|
@@ -1304,16 +1304,14 @@ export const prDiscussionSummaryCommand = Command.make(
|
|
|
1304
1304
|
export const prReplyCommand = Command.make(
|
|
1305
1305
|
"reply",
|
|
1306
1306
|
{
|
|
1307
|
-
body: Flag.
|
|
1308
|
-
bodyFile: Flag.
|
|
1307
|
+
body: Flag.String("body").pipe(Flag.withDescription("Reply body text"), Flag.optional),
|
|
1308
|
+
bodyFile: Flag.String("body-file").pipe(
|
|
1309
1309
|
Flag.withDescription("Read reply body from a file path or '-' for stdin"),
|
|
1310
1310
|
Flag.optional,
|
|
1311
1311
|
),
|
|
1312
|
-
commentId: Flag.
|
|
1313
|
-
Flag.withDescription("ID of the comment to reply to"),
|
|
1314
|
-
),
|
|
1312
|
+
commentId: Flag.Int("comment-id").pipe(Flag.withDescription("ID of the comment to reply to")),
|
|
1315
1313
|
format: formatOption,
|
|
1316
|
-
pr: Flag.
|
|
1314
|
+
pr: Flag.Int("pr").pipe(
|
|
1317
1315
|
Flag.withDescription("PR number (default: current branch PR)"),
|
|
1318
1316
|
Flag.optional,
|
|
1319
1317
|
),
|
|
@@ -1342,7 +1340,7 @@ export const prResolveCommand = Command.make(
|
|
|
1342
1340
|
"resolve",
|
|
1343
1341
|
{
|
|
1344
1342
|
format: formatOption,
|
|
1345
|
-
threadId: Flag.
|
|
1343
|
+
threadId: Flag.String("thread-id").pipe(
|
|
1346
1344
|
Flag.withDescription("GraphQL node ID of the thread to resolve"),
|
|
1347
1345
|
),
|
|
1348
1346
|
repo: repoOption,
|
|
@@ -1357,12 +1355,12 @@ export const prResolveCommand = Command.make(
|
|
|
1357
1355
|
),
|
|
1358
1356
|
).pipe(Command.withDescription("Resolve a review thread via GraphQL"));
|
|
1359
1357
|
|
|
1360
|
-
const reviewEventOption = Flag.
|
|
1358
|
+
const reviewEventOption = Flag.Literals("event", REVIEW_EVENTS).pipe(
|
|
1361
1359
|
Flag.withDescription("Review verdict: comment, approve, or request-changes"),
|
|
1362
1360
|
Flag.withDefault(DEFAULT_REVIEW_EVENT),
|
|
1363
1361
|
);
|
|
1364
1362
|
|
|
1365
|
-
const reviewConfirmOption = Flag.
|
|
1363
|
+
const reviewConfirmOption = Flag.Boolean("confirm").pipe(
|
|
1366
1364
|
Flag.withDescription("Required for --event approve and --event request-changes"),
|
|
1367
1365
|
Flag.withDefault(false),
|
|
1368
1366
|
);
|
|
@@ -1370,19 +1368,19 @@ const reviewConfirmOption = Flag.boolean("confirm").pipe(
|
|
|
1370
1368
|
export const prReviewCommand = Command.make(
|
|
1371
1369
|
"review",
|
|
1372
1370
|
{
|
|
1373
|
-
body: Flag.
|
|
1374
|
-
bodyFile: Flag.
|
|
1371
|
+
body: Flag.String("body").pipe(Flag.withDescription("Review body text"), Flag.optional),
|
|
1372
|
+
bodyFile: Flag.String("body-file").pipe(
|
|
1375
1373
|
Flag.withDescription("Read review body from a file path or '-' for stdin"),
|
|
1376
1374
|
Flag.optional,
|
|
1377
1375
|
),
|
|
1378
|
-
bodyStdin: Flag.
|
|
1376
|
+
bodyStdin: Flag.Boolean("body-stdin").pipe(
|
|
1379
1377
|
Flag.withDescription("Read review body from stdin"),
|
|
1380
1378
|
Flag.withDefault(false),
|
|
1381
1379
|
),
|
|
1382
1380
|
confirm: reviewConfirmOption,
|
|
1383
1381
|
event: reviewEventOption,
|
|
1384
1382
|
format: formatOption,
|
|
1385
|
-
pr: Flag.
|
|
1383
|
+
pr: Flag.Int("pr").pipe(
|
|
1386
1384
|
Flag.withDescription("PR number (default: current branch PR)"),
|
|
1387
1385
|
Flag.optional,
|
|
1388
1386
|
),
|
|
@@ -1422,23 +1420,23 @@ export const prReviewCommand = Command.make(
|
|
|
1422
1420
|
export const prSubmitReviewCommand = Command.make(
|
|
1423
1421
|
"submit-review",
|
|
1424
1422
|
{
|
|
1425
|
-
body: Flag.
|
|
1423
|
+
body: Flag.String("body").pipe(
|
|
1426
1424
|
Flag.withDescription("Optional review body text when submitting"),
|
|
1427
1425
|
Flag.optional,
|
|
1428
1426
|
),
|
|
1429
|
-
bodyFile: Flag.
|
|
1427
|
+
bodyFile: Flag.String("body-file").pipe(
|
|
1430
1428
|
Flag.withDescription("Read review body from a file path or '-' for stdin"),
|
|
1431
1429
|
Flag.optional,
|
|
1432
1430
|
),
|
|
1433
1431
|
confirm: reviewConfirmOption,
|
|
1434
1432
|
event: reviewEventOption,
|
|
1435
1433
|
format: formatOption,
|
|
1436
|
-
pr: Flag.
|
|
1434
|
+
pr: Flag.Int("pr").pipe(
|
|
1437
1435
|
Flag.withDescription("PR number (default: current branch PR)"),
|
|
1438
1436
|
Flag.optional,
|
|
1439
1437
|
),
|
|
1440
1438
|
repo: repoOption,
|
|
1441
|
-
reviewId: Flag.
|
|
1439
|
+
reviewId: Flag.String("review-id").pipe(
|
|
1442
1440
|
Flag.withDescription(
|
|
1443
1441
|
"Pending review GraphQL ID (defaults to current user's pending review on PR)",
|
|
1444
1442
|
),
|
|
@@ -1502,13 +1500,13 @@ export const prReviewTriageCommand = Command.make(
|
|
|
1502
1500
|
"review-triage",
|
|
1503
1501
|
{
|
|
1504
1502
|
format: formatOption,
|
|
1505
|
-
omit: Flag.
|
|
1503
|
+
omit: Flag.String("omit").pipe(
|
|
1506
1504
|
Flag.withDescription(
|
|
1507
1505
|
`Comma-separated sections to leave out (${OMITTABLE_TRIAGE_SECTIONS.join(", ")}) — use for cheap repeated snapshots; \`pr feedback\` owns the full inventory`,
|
|
1508
1506
|
),
|
|
1509
1507
|
Flag.optional,
|
|
1510
1508
|
),
|
|
1511
|
-
pr: Flag.
|
|
1509
|
+
pr: Flag.Int("pr").pipe(
|
|
1512
1510
|
Flag.withDescription("PR number (default: current branch PR)"),
|
|
1513
1511
|
Flag.optional,
|
|
1514
1512
|
),
|
|
@@ -1536,9 +1534,9 @@ export const prRequestReviewCommand = Command.make(
|
|
|
1536
1534
|
"request-review",
|
|
1537
1535
|
{
|
|
1538
1536
|
format: formatOption,
|
|
1539
|
-
pr: Flag.
|
|
1537
|
+
pr: Flag.Int("pr").pipe(Flag.withDescription("Positive pull request number")),
|
|
1540
1538
|
repo: repoOption,
|
|
1541
|
-
reviewers: Flag.
|
|
1539
|
+
reviewers: Flag.String("reviewers").pipe(
|
|
1542
1540
|
Flag.withDescription("Comma-separated GitHub user logins"),
|
|
1543
1541
|
),
|
|
1544
1542
|
},
|
|
@@ -1555,7 +1553,7 @@ export const prReviewTriageBatchCommand = Command.make(
|
|
|
1555
1553
|
"review-triage-batch",
|
|
1556
1554
|
{
|
|
1557
1555
|
format: formatOption,
|
|
1558
|
-
prs: Flag.
|
|
1556
|
+
prs: Flag.String("prs").pipe(Flag.withDescription("Comma-separated PR numbers")),
|
|
1559
1557
|
repo: repoOption,
|
|
1560
1558
|
},
|
|
1561
1559
|
({ format, prs, repo }) =>
|
|
@@ -1579,21 +1577,19 @@ export const prReviewTriageBatchCommand = Command.make(
|
|
|
1579
1577
|
export const prReplyAndResolveCommand = Command.make(
|
|
1580
1578
|
"reply-and-resolve",
|
|
1581
1579
|
{
|
|
1582
|
-
body: Flag.
|
|
1583
|
-
bodyFile: Flag.
|
|
1580
|
+
body: Flag.String("body").pipe(Flag.withDescription("Reply body text"), Flag.optional),
|
|
1581
|
+
bodyFile: Flag.String("body-file").pipe(
|
|
1584
1582
|
Flag.withDescription("Read reply body from a file path or '-' for stdin"),
|
|
1585
1583
|
Flag.optional,
|
|
1586
1584
|
),
|
|
1587
|
-
commentId: Flag.
|
|
1588
|
-
Flag.withDescription("ID of the comment to reply to"),
|
|
1589
|
-
),
|
|
1585
|
+
commentId: Flag.Int("comment-id").pipe(Flag.withDescription("ID of the comment to reply to")),
|
|
1590
1586
|
format: formatOption,
|
|
1591
|
-
pr: Flag.
|
|
1587
|
+
pr: Flag.Int("pr").pipe(
|
|
1592
1588
|
Flag.withDescription("PR number (default: current branch PR)"),
|
|
1593
1589
|
Flag.optional,
|
|
1594
1590
|
),
|
|
1595
1591
|
repo: repoOption,
|
|
1596
|
-
threadId: Flag.
|
|
1592
|
+
threadId: Flag.String("thread-id").pipe(
|
|
1597
1593
|
Flag.withDescription(
|
|
1598
1594
|
"GraphQL node ID of the thread to resolve (inferred from comment when omitted)",
|
|
1599
1595
|
),
|
|
@@ -1632,7 +1628,7 @@ const prStackViewCommand = Command.make(
|
|
|
1632
1628
|
"view",
|
|
1633
1629
|
{
|
|
1634
1630
|
format: formatOption,
|
|
1635
|
-
pr: Flag.
|
|
1631
|
+
pr: Flag.Int("pr").pipe(Flag.withDescription("PR number to read the stack of")),
|
|
1636
1632
|
repo: repoOption,
|
|
1637
1633
|
},
|
|
1638
1634
|
({ format, pr, repo }) =>
|
|
@@ -1648,14 +1644,14 @@ const prStackViewCommand = Command.make(
|
|
|
1648
1644
|
const prStackMergeCommand = Command.make(
|
|
1649
1645
|
"merge",
|
|
1650
1646
|
{
|
|
1651
|
-
confirm: Flag.
|
|
1647
|
+
confirm: Flag.Boolean("confirm").pipe(
|
|
1652
1648
|
Flag.withDescription("Actually merge (without this flag, only shows the ordered plan)"),
|
|
1653
1649
|
Flag.withDefault(false),
|
|
1654
1650
|
),
|
|
1655
1651
|
format: formatOption,
|
|
1656
|
-
pr: Flag.
|
|
1652
|
+
pr: Flag.Int("pr").pipe(Flag.withDescription("Any PR in the stack to merge")),
|
|
1657
1653
|
repo: repoOption,
|
|
1658
|
-
strategy: Flag.
|
|
1654
|
+
strategy: Flag.Literals("strategy", MERGE_STRATEGIES).pipe(
|
|
1659
1655
|
Flag.withDescription("Merge strategy: squash, merge, or rebase"),
|
|
1660
1656
|
Flag.withDefault(DEFAULT_MERGE_STRATEGY),
|
|
1661
1657
|
),
|
|
@@ -1677,14 +1673,14 @@ const prStackMergeCommand = Command.make(
|
|
|
1677
1673
|
const prStackUnstackCommand = Command.make(
|
|
1678
1674
|
"unstack",
|
|
1679
1675
|
{
|
|
1680
|
-
confirm: Flag.
|
|
1676
|
+
confirm: Flag.Boolean("confirm").pipe(
|
|
1681
1677
|
Flag.withDescription(
|
|
1682
1678
|
"Actually unstack (without this flag, only shows what would be removed)",
|
|
1683
1679
|
),
|
|
1684
1680
|
Flag.withDefault(false),
|
|
1685
1681
|
),
|
|
1686
1682
|
format: formatOption,
|
|
1687
|
-
pr: Flag.
|
|
1683
|
+
pr: Flag.Int("pr").pipe(Flag.withDescription("Any PR in the stack to dissolve")),
|
|
1688
1684
|
repo: repoOption,
|
|
1689
1685
|
},
|
|
1690
1686
|
({ confirm, format, pr, repo }) =>
|