@kolatts/pncli 1.7.0 → 1.9.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.
@@ -4,7 +4,7 @@
4
4
 
5
5
  ## What is pncli?
6
6
 
7
- pncli is a CLI tool that provides structured JSON access to Jira, Bitbucket, Confluence, SonarQube, SDElements, and local git state. Use it for all interactions with these services. It exists because MCP servers aren't available in this environment — pncli is your agent-friendly shim layer.
7
+ pncli is a CLI tool that provides structured JSON access to Jira, Bitbucket, Confluence, SonarQube, SDElements, Azure DevOps Server, Jenkins, JFrog Artifactory, IBM UrbanCode Deploy, Checkmarx, and local git state. Use it for all interactions with these services. It exists because MCP servers aren't available in this environment — pncli is your agent-friendly shim layer.
8
8
 
9
9
  ## Important
10
10
 
@@ -30,9 +30,7 @@ pncli ships with Claude Code skills — step-by-step workflow guides that agents
30
30
  pncli skills install
31
31
  ```
32
32
 
33
- This downloads the latest pncli skills from GitHub into `.claude/skills/` and also fetches `copilot-instructions.md` into the repo root. Only pncli-managed skills are replaced — any custom skills you've created in `.claude/skills/` are left untouched.
34
-
35
- Use `--skip-instructions` to skip downloading `copilot-instructions.md`.
33
+ This downloads the latest pncli skills from GitHub. Default installs to `.agents/skills/` (GitHub Copilot). For Claude Code, add `--agent claude-code`. For user-scope, add `--scope user`. Only pncli-managed skills are replaced — any custom skills you've added are left untouched.
36
34
 
37
35
  To see what's installed locally:
38
36
 
@@ -42,7 +40,7 @@ pncli skills list
42
40
 
43
41
  ## Common Workflows
44
42
 
45
- > These workflows are also available as Claude Code skills — run `pncli skills install` to download them into your repo, or copy `.claude/skills/` into `~/.claude/skills/` for global access.
43
+ > These workflows are also available as skills — run `pncli skills install` (Copilot default) or `pncli skills install --agent claude-code` (Claude Code) to download them into your repo. Add `--scope user` for global access.
46
44
 
47
45
  ### Review a Pull Request
48
46
 
@@ -142,6 +140,8 @@ pncli jira create-issue
142
140
  --priority <name> Priority name
143
141
  --assignee <accountId> Assignee account ID
144
142
  --labels <labels> Comma-separated labels
143
+ --parent <key> Parent issue key — creates an "is child of" link after
144
+ creation
145
145
  --field <Name=value> Custom field value (repeatable) (default: [])
146
146
 
147
147
  pncli jira update-issue
@@ -374,7 +374,8 @@ pncli sonar issues
374
374
  --resolved <bool> Filter resolved issues: true or false
375
375
  --page <n> Page number (1-based) (default: "1")
376
376
  --page-size <n> Results per page (max 500) (default: "100")
377
- --all Fetch all pages (ignores --page/--page-size)
377
+ --all Fetch all pages (consider --output-file for large
378
+ results; ignores --page/--page-size)
378
379
 
379
380
  pncli sonar measures
380
381
  --project <key> SonarQube project key (or set defaults.sonar.project in
@@ -387,7 +388,7 @@ pncli sonar projects
387
388
  --query <text> Search query
388
389
  --page <n> Page number (1-based) (default: "1")
389
390
  --page-size <n> Results per page (default: "100")
390
- --all Fetch all pages
391
+ --all Fetch all pages (consider --output-file for large results)
391
392
 
392
393
  pncli sonar hotspots
393
394
  --project <key> SonarQube project key (or set defaults.sonar.project in
@@ -397,7 +398,8 @@ pncli sonar hotspots
397
398
  --branch <name> Branch name
398
399
  --page <n> Page number (1-based) (default: "1")
399
400
  --page-size <n> Results per page (default: "100")
400
- --all Fetch all pages
401
+ --all Fetch all pages (consider --output-file for large
402
+ results)
401
403
  ```
402
404
 
403
405
  ### Sde
@@ -414,7 +416,8 @@ pncli sde users
414
416
  --active <bool> Filter by active status: true or false
415
417
  --page <n> Page number (1-based) (default: "1")
416
418
  --page-size <n> Results per page (default: "100")
417
- --all Fetch all pages
419
+ --all Fetch all pages (consider --output-file for large
420
+ results)
418
421
 
419
422
  pncli sde projects
420
423
  --name <name> Filter by project name
@@ -428,7 +431,7 @@ pncli sde projects
428
431
  task_counts,permissions
429
432
  --page <n> Page number (1-based) (default: "1")
430
433
  --page-size <n> Results per page (default: "100")
431
- --all Fetch all pages
434
+ --all Fetch all pages (consider --output-file for large results)
432
435
 
433
436
  pncli sde project
434
437
  --id <id> Project ID (or set defaults.sde.project in config)
@@ -455,7 +458,8 @@ pncli sde tasks
455
458
  how_tos,last_note,references,regulation_sections
456
459
  --page <n> Page number (1-based) (default: "1")
457
460
  --page-size <n> Results per page (default: "100")
458
- --all Fetch all pages
461
+ --all Fetch all pages (consider --output-file for large
462
+ results)
459
463
 
460
464
  pncli sde task
461
465
  --project <id> Project ID (or set defaults.sde.project in config)
@@ -475,7 +479,8 @@ pncli sde threats
475
479
  --component-id <id> Filter by component ID
476
480
  --page <n> Page number (1-based) (default: "1")
477
481
  --page-size <n> Results per page (default: "100")
478
- --all Fetch all pages
482
+ --all Fetch all pages (consider --output-file for large
483
+ results)
479
484
  ```
480
485
 
481
486
  ### Deps
@@ -487,6 +492,8 @@ pncli deps frisk
487
492
  --direct-only Only scan direct dependencies (default: include
488
493
  transitive) (default: false)
489
494
  --include-dev Include dev/test dependencies (default: false)
495
+ --source <source> Vulnerability source (choices: "osv", "sonatype",
496
+ "all", default: "osv")
490
497
 
491
498
  pncli deps scan
492
499
  --ecosystem <ecosystem> Filter to one ecosystem: npm, nuget, maven, all
@@ -530,6 +537,7 @@ pncli config set
530
537
  pncli config test
531
538
 
532
539
  pncli config check
540
+ --output <format> Output format: json or table (default: "json")
533
541
  ```
534
542
 
535
543
  ### Ado
@@ -539,25 +547,378 @@ pncli ado whoami
539
547
 
540
548
  pncli ado connection-data
541
549
 
542
- pncli ado project
550
+ pncli ado project list-collections
551
+
552
+ pncli ado project list
553
+
554
+ pncli ado project get
555
+ --name <project> Project name
556
+
557
+ pncli ado work get
558
+ --id <n> Work item ID
559
+
560
+ pncli ado work create
561
+ --type <type> Work item type (e.g. Bug, Task, User Story)
562
+ --title <title> Work item title
563
+ --description <text> Description
564
+ --assignee <user> Assigned to (display name or email)
565
+ --priority <n> Priority (1-4)
566
+ --parent <id> Parent work item ID — creates a parent link after
567
+ creation
568
+ --field <name=value> Additional field (repeatable) (default: [])
569
+
570
+ pncli ado work update
571
+ --id <n> Work item ID
572
+ --field <name=value> Field to update (repeatable) (default: [])
573
+
574
+ pncli ado work transition
575
+ --id <n> Work item ID
576
+ --state <state> New state (e.g. Active, Resolved, Closed)
577
+
578
+ pncli ado work assign
579
+ --id <n> Work item ID
580
+ --to <user> User display name or email
581
+
582
+ pncli ado work link
583
+ --id <a> Source work item ID
584
+ --to <b> Target work item ID
585
+ --type <rel> Link type (related|parent|child|duplicate|duplicate-of)
586
+ (default: "related")
587
+
588
+ pncli ado work search
589
+ --wiql <query> WIQL query string
590
+
591
+ pncli ado work list-comments
592
+ --id <n> Work item ID
593
+
594
+ pncli ado work add-comment
595
+ --id <n> Work item ID
596
+ --body <text> Comment text
597
+
598
+ pncli ado work types
599
+ --discover Fetch from server (always true for this command)
600
+ --save Save discovered types to ~/.pncli/config.json
601
+
602
+ pncli ado work list-states
603
+ --type <type> Work item type name (e.g. Bug)
604
+
605
+ pncli ado work fields
606
+ --type <type> Scope to fields for a specific work item type (e.g. Bug)
607
+ --custom-only Exclude System.* and Microsoft.VSTS.* fields
608
+ --discover Fetch from server (always true for this command)
609
+ --save Save discovered fields and aliases to ~/.pncli/config.json
610
+
611
+ pncli ado repo list
612
+
613
+ pncli ado repo get
614
+
615
+ pncli ado repo list-prs
616
+ --state <state> PR state: active|abandoned|completed|all (default:
617
+ "active")
618
+ --creator <alias> Filter by creator
619
+ --reviewer <alias> Filter by reviewer
620
+
621
+ pncli ado repo get-pr
622
+ --id <n> Pull request ID
623
+
624
+ pncli ado repo create-pr
625
+ --title <title> PR title
626
+ --source <branch> Source branch
627
+ --target <branch> Target branch (default: main) (default: "main")
628
+ --description <text> PR description
629
+ --reviewers <ids> Comma-separated reviewer IDs or display names
630
+
631
+ pncli ado repo update-pr
632
+ --id <n> Pull request ID
633
+ --title <title> New title
634
+ --description <text> New description
635
+ --reviewers <ids> Comma-separated reviewer IDs
636
+
637
+ pncli ado repo merge-pr
638
+ --id <n> Pull request ID
639
+ --strategy <s> Merge strategy: noFastForward|squash|rebase|rebaseMerge
640
+ (default: "noFastForward")
641
+ --delete-source Delete source branch after merge
642
+
643
+ pncli ado repo abandon-pr
644
+ --id <n> Pull request ID
645
+
646
+ pncli ado repo list-comments
647
+ --pr <n> Pull request ID
648
+ --inline-only Return only inline file comments
649
+ --general-only Return only general PR comments
650
+
651
+ pncli ado repo add-comment
652
+ --pr <n> Pull request ID
653
+ --body <text> Comment text
654
+
655
+ pncli ado repo add-inline-comment
656
+ --pr <n> Pull request ID
657
+ --file <path> File path
658
+ --line <n> Line number
659
+ --body <text> Comment text
660
+ --line-type <side> Line side: left|right (default: right) (default: "right")
661
+
662
+ pncli ado repo reply-comment
663
+ --pr <n> Pull request ID
664
+ --thread-id <id> Thread ID
665
+ --body <text> Reply text
666
+
667
+ pncli ado repo resolve-comment
668
+ --pr <n> Pull request ID
669
+ --thread-id <id> Thread ID
670
+
671
+ pncli ado repo delete-comment
672
+ --pr <n> Pull request ID
673
+ --thread-id <id> Thread ID
674
+ --comment-id <id> Comment ID
675
+
676
+ pncli ado repo list-files
677
+ --pr <n> Pull request ID
678
+
679
+ pncli ado repo diff
680
+ --pr <n> Pull request ID
681
+ --path <p> Filter diff to a specific file path
682
+
683
+ pncli ado repo get-build-status
684
+ --commit <sha> Commit SHA
685
+
686
+ pncli ado repo list-reviewers
687
+ --pr <n> Pull request ID
688
+
689
+ pncli ado repo approve
690
+ --pr <n> Pull request ID
691
+
692
+ pncli ado repo unapprove
693
+ --pr <n> Pull request ID
694
+
695
+ pncli ado repo wait-for-author
696
+ --pr <n> Pull request ID
697
+
698
+ pncli ado repo list-builds
699
+ --pr <n> Pull request ID
543
700
 
544
- pncli ado work
701
+ pncli ado pipeline list
545
702
 
546
- pncli ado repo
703
+ pncli ado pipeline get
704
+ --id <n> Pipeline definition ID
547
705
 
548
- pncli ado pipeline
706
+ pncli ado pipeline run
707
+ --id <n> Pipeline definition ID
708
+ --branch <ref> Source branch (e.g. refs/heads/main or main)
709
+ --parameter <k=v> Build parameter (repeatable) (default: [])
710
+ --wait Wait for the run to complete before returning
711
+ --timeout <s> Max wait time in seconds (default 600) (default: "600")
712
+ --poll <s> Poll interval in seconds (default 10) (default: "10")
713
+
714
+ pncli ado pipeline list-runs
715
+ --definition <id> Filter by definition ID
716
+ --branch <ref> Filter by branch name
717
+ --status <filter> Filter by status (inProgress|completed|cancelling|...)
718
+ --top <n> Maximum results (default: "50")
719
+
720
+ pncli ado pipeline get-run
721
+ --id <n> Build ID
722
+
723
+ pncli ado pipeline cancel-run
724
+ --id <n> Build ID
725
+
726
+ pncli ado pipeline logs
727
+ --id <n> Build ID
728
+ --log-id <n> Specific log ID (omit to list all logs)
729
+ ```
730
+
731
+ ### Jenkins
732
+
733
+ ```
734
+ pncli jenkins pipeline list
735
+
736
+ pncli jenkins pipeline get
737
+ --name <job> Job name
738
+
739
+ pncli jenkins pipeline run
740
+ --name <job> Job name
741
+ --parameter <k=v> Build parameter (repeatable) (default: [])
742
+ --wait Wait for the build to complete before returning
743
+ --timeout <s> Max wait time in seconds per phase (queue-wait and
744
+ build-wait each get this budget; default 600) (default:
745
+ "600")
746
+ --poll <s> Poll interval in seconds (default 10) (default: "10")
747
+
748
+ pncli jenkins pipeline list-runs
749
+ --name <job> Job name
750
+ --top <n> Maximum number of builds to return (default 25) (default: "25")
751
+
752
+ pncli jenkins pipeline get-run
753
+ --name <job> Job name
754
+ --number <n> Build number
755
+
756
+ pncli jenkins pipeline logs
757
+ --name <job> Job name
758
+ --number <n> Build number
759
+ ```
760
+
761
+ ### Artifactory
762
+
763
+ ```
764
+ pncli artifactory ping
765
+
766
+ pncli artifactory repos
767
+ --type <type> Filter by type: local, virtual, remote, federated
768
+ --package-type <type> Filter by package type: npm, maven, nuget, docker,
769
+ pypi, etc.
770
+
771
+ pncli artifactory artifact-info
772
+
773
+ pncli artifactory properties-get
774
+
775
+ pncli artifactory properties-set
776
+ --recursive Apply recursively to folder contents (default: false)
777
+
778
+ pncli artifactory search
779
+ --repo <name> Filter by repository key
780
+ --name <pattern> Filter by artifact name (supports * and ? wildcards)
781
+ --path <pattern> Filter by artifact path (supports * and ? wildcards)
782
+ --after <date> Created after this date (ISO 8601, e.g. 2024-01-01)
783
+ --before <date> Created before this date (ISO 8601)
784
+ --limit <n> Maximum results to return (default: 100) (default: "100")
785
+ --properties Include artifact properties in results (default: false)
786
+
787
+ pncli artifactory builds
788
+
789
+ pncli artifactory build-runs
790
+
791
+ pncli artifactory build-info
792
+ ```
793
+
794
+ ### Udeploy
795
+
796
+ ```
797
+ pncli udeploy apps
798
+
799
+ pncli udeploy environments
800
+
801
+ pncli udeploy components
802
+
803
+ pncli udeploy versions
804
+ --component <name> Component name or ID
805
+
806
+ pncli udeploy import-version
807
+ --component <name> Component name or ID
808
+ --name <name> Version name
809
+ --no-finish Skip marking the version as finished importing
810
+
811
+ pncli udeploy run
812
+ --process <name> Application process name or ID
813
+ --component <name> Component name (repeatable) (default: [])
814
+ --component-version <name> Component version (repeatable; positionally paired
815
+ with --component) (default: [])
816
+ --snapshot <name> Snapshot name or ID (alternative to specifying
817
+ versions)
818
+ --only-changed Deploy only changed components (default: false)
819
+ --wait Poll until the process completes (default: false)
820
+ --timeout <ms> Max wait time in milliseconds (default: "600000")
821
+
822
+ pncli udeploy request-status
823
+ --request-id <id> Request ID returned by udeploy run
824
+
825
+ pncli udeploy request-info
826
+ --request-id <id> Request ID returned by udeploy run
827
+ ```
828
+
829
+ ### Checkmarx
830
+
831
+ ```
832
+ pncli checkmarx project list
833
+
834
+ pncli checkmarx project get
835
+ --id <id> Project ID
836
+
837
+ pncli checkmarx scan list
838
+ --project <id> Filter by project ID
839
+ --last <n> Return only the last N scans per project
840
+
841
+ pncli checkmarx scan get
842
+ --id <id> Scan ID
843
+
844
+ pncli checkmarx scan stats
845
+ --id <id> Scan ID
846
+ ```
847
+
848
+ ### Servicenow
849
+
850
+ ```
851
+ pncli servicenow change list
852
+ --state <state> Filter by state (e.g. -1=Pending, 1=Open, 2=Work in
853
+ Progress, 3=Closed Complete)
854
+ --assigned-to <user> Filter by assigned user sys_id or display name
855
+ --limit <n> Maximum number of results (default: "25")
856
+ --fields <fields> Comma-separated field names to return
857
+
858
+ pncli servicenow change get
859
+ --id <id> Change request sys_id or number (e.g. CHG0001234)
860
+
861
+ pncli servicenow change create
862
+ --short-description <text> Short description (title)
863
+ --description <text> Full description
864
+ --type <type> Change type: normal, standard, or emergency
865
+ (default: "normal")
866
+ --priority <n> Priority: 1=Critical, 2=High, 3=Moderate, 4=Low
867
+ --assigned-to <user> Assigned user sys_id
868
+ --assignment-group <group> Assignment group sys_id
869
+ --start-date <datetime> Planned start date (yyyy-MM-dd HH:mm:ss)
870
+ --end-date <datetime> Planned end date (yyyy-MM-dd HH:mm:ss)
871
+
872
+ pncli servicenow change update
873
+ --id <sys_id> Change request sys_id
874
+ --short-description <text> New short description
875
+ --description <text> New description
876
+ --state <state> New state value
877
+ --priority <n> New priority
878
+ --assigned-to <user> New assigned user sys_id
879
+ --start-date <datetime> New planned start date
880
+ --end-date <datetime> New planned end date
881
+
882
+ pncli servicenow change close
883
+ --id <sys_id> Change request sys_id
884
+ --close-notes <text> Closure notes
885
+ --close-code <code> Close code (e.g. successful, unsuccessful)
886
+ ```
887
+
888
+ ### Contrast
889
+
890
+ ```
891
+ pncli contrast apps list
892
+ --limit <n> Maximum number of results (default: "25")
893
+ --offset <n> Pagination offset (default: "0")
894
+
895
+ pncli contrast findings list
896
+ --app <app-id> Application ID (UUID)
897
+ --severity <level> Filter by severity: CRITICAL, HIGH, MEDIUM, LOW, NOTE
898
+ --status <status> Filter by status: REPORTED, CONFIRMED, SUSPICIOUS,
899
+ NOT_A_PROBLEM, REMEDIATED, FIXED
900
+ --limit <n> Maximum number of results (default: "25")
901
+ --offset <n> Pagination offset (default: "0")
902
+
903
+ pncli contrast findings get
904
+ --app <app-id> Application ID (UUID)
905
+ --trace <trace-id> Trace/finding UUID
549
906
  ```
550
907
 
551
908
  ### Skills
552
909
 
553
910
  ```
554
911
  pncli skills install
555
- --target <dir> Target directory for skills (default: ".claude/skills")
556
- --skip-instructions Skip downloading copilot-instructions.md (always written
557
- to repo root)
912
+ --agent <agent> Target agent host: github-copilot | claude-code (default:
913
+ "github-copilot")
914
+ --scope <scope> Installation scope: project | user (default: "project")
915
+ --target <dir> Override install directory (ignores --agent and --scope)
558
916
 
559
917
  pncli skills list
560
- --target <dir> Skills directory to scan (default: ".claude/skills")
918
+ --agent <agent> Target agent host: github-copilot | claude-code (default:
919
+ "github-copilot")
920
+ --scope <scope> Installation scope: project | user (default: "project")
921
+ --target <dir> Override skills directory to scan
561
922
  ```
562
923
 
563
924
  <!-- COMMAND-REFERENCE:END -->
@@ -575,5 +936,6 @@ Always check `ok` before accessing `data`.
575
936
  - Use `--dry-run` to preview API calls without executing
576
937
  - Use `--verbose` to see full response metadata for debugging
577
938
  - Use `--pretty` when running manually for readable output
939
+ - Use `--output-file <path>` to write JSON output to a file instead of stdout — recommended for commands that produce large payloads (search, logs, `--all` pagination) to avoid flooding agent context
578
940
  - Pipe output through `jq` for ad-hoc filtering (if available)
579
941
  - Defaults from `.pncli.json` are applied automatically — you rarely need to pass `--project`, `--type`, or `--priority` flags for Jira