@kolatts/pncli 2.0.0 → 3.0.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.
@@ -1,1351 +0,0 @@
1
- # pncli — The Paperwork Nightmare CLI
2
-
3
- > One command does what three meetings couldn't.
4
-
5
- ## What is pncli?
6
-
7
- pncli is a CLI tool that provides structured JSON access to the enterprise tools your org runs — Jira, Bitbucket, Confluence, SonarQube, SDElements, Azure DevOps Server, Jenkins, JFrog Artifactory, Checkmarx, and local git state, among others. 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
-
9
- ## Important
10
-
11
- - All commands return JSON to stdout. Parse the JSON to get results.
12
- - Errors are also JSON with `"ok": false`. Always check the `ok` field.
13
- - Run all commands from the repository root.
14
- - Project and repo are auto-detected from git remotes. You rarely need `--project` or `--repo` flags.
15
-
16
- ## Provider Detection
17
-
18
- Before running provider-specific commands, ask the user which tools this repository uses:
19
-
20
- 1. **Work item tracking:** "Does this repo use **Jira** or **Azure DevOps** for work items and tickets?" — this determines whether to use `pncli jira ...` or `pncli ado work ...` commands.
21
- 2. **Source control:** "Does this repo use **Bitbucket** or **Azure DevOps** for pull requests and code review?" — this determines whether to use `pncli bitbucket ...` or `pncli ado repo ...` commands.
22
-
23
- Cache the answers for the session. If the user doesn't know, run `git remote -v` — if a URL contains `/_git/` it's Azure DevOps; if it contains `/scm/` it's Bitbucket.
24
-
25
- ## Installing Skills
26
-
27
- pncli installs agent skills — step-by-step workflow guides for GitHub Copilot and Claude Code — from git-hosted skills marketplaces: plain git repos of plugins that your team publishes. Register a marketplace once:
28
-
29
- ```
30
- pncli skills marketplace setup <git-clone-url>
31
- ```
32
-
33
- This clones the marketplace repo to `~/.agents/marketplaces/<repo-name>`, registers it in your global pncli config, and installs every plugin's skills into your user-level skills folder — `~/.copilot/skills` for GitHub Copilot (the default), or `~/.claude/skills` with `--claude`. Use `--branch` to pin a specific branch and `--token` for repos that require an HTTP access token (GitHub PAT or Bitbucket token). Run `setup` (or its equivalent, `marketplace add`) again with a different URL to register additional marketplaces.
34
-
35
- From then on, one command keeps your skills current:
36
-
37
- ```
38
- pncli skills marketplace sync
39
- ```
40
-
41
- Sync works because every installed skill carries provenance: pncli writes a `pncli-origin.json` into each skill directory recording which marketplace and plugin it came from, the source URL and branch, and when it was installed, plus a `.pncli-installed.json` index in the skills folder. On each run, sync does a `git pull` on the marketplace clone, then:
42
-
43
- - **No new commits upstream** — it skips reinstalling and changes nothing locally (pass `--force` to reinstall anyway).
44
- - **New commits** — it re-copies the plugin's skills over the installed versions and refreshes their origin records.
45
-
46
- Only pncli-managed skills are ever replaced or purged; skills you wrote yourself are left untouched. Run `sync` whenever your marketplace publishes new or updated skills — after a teammate merges a skill change, everyone else just runs `pncli skills marketplace sync` (with the same `--claude` flag they used for setup) to pick it up. With one marketplace registered, sync prompts you to pick a plugin; with several, it first asks which marketplace. Skip the prompts:
47
-
48
- ```
49
- pncli skills marketplace sync my-plugin # skip the plugin picker
50
- pncli skills marketplace sync all # every plugin in the marketplace
51
- pncli skills marketplace sync --marketplace all # every plugin from every marketplace
52
- ```
53
-
54
- To list registered marketplaces and browse their plugins without installing anything, use `pncli skills marketplace list` and `pncli skills marketplace plugins <name>`. To see what's installed locally, run `pncli skills list --scope user`.
55
-
56
- The skills bundled with pncli itself can still be installed straight into a repo with `pncli skills install` (default target: `.agents/skills/`; add `--agent claude-code` for Claude Code).
57
-
58
- ## Common Workflows
59
-
60
- > 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.
61
-
62
- ### Review a Pull Request
63
-
64
- 1. Find the PR for the current branch:
65
- `pncli git current-pr`
66
- 2. Get the full diff:
67
- `pncli bitbucket diff --pr <id>`
68
- 3. List existing comments:
69
- `pncli bitbucket list-comments --pr <id>`
70
- 4. Add review comments:
71
- `pncli bitbucket add-inline-comment --pr <id> --file <path> --line <n> --body "..."`
72
- 5. Approve or request changes:
73
- `pncli bitbucket approve --pr <id>` or `pncli bitbucket needs-work --pr <id>`
74
-
75
- ### Address PR Feedback
76
-
77
- 1. Get the PR and its comments:
78
- `pncli bitbucket get-pr --id <id>`
79
- `pncli bitbucket list-comments --pr <id>`
80
- 2. Check which comments are unresolved (filter JSON where `resolved: false`)
81
- 3. After making code changes, check local state:
82
- `pncli git status`
83
- `pncli git diff --staged`
84
- 4. Reply to resolved comments:
85
- `pncli bitbucket reply-comment --pr <id> --comment-id <cid> --body "Fixed in <commit>"`
86
- 5. Resolve the comment:
87
- `pncli bitbucket resolve-comment --pr <id> --comment-id <cid>`
88
-
89
- ### Create a Bug from a PR Review Finding
90
-
91
- 1. Create the Jira issue:
92
- `pncli jira create-issue --project <key> --type Bug --summary "..." --description "Found during PR review of PR-<id>"`
93
- 2. Link it to the original story if applicable:
94
- `pncli jira link-issue --key <new-key> --link-type "is caused by" --target <original-key>`
95
- 3. Add a PR comment referencing the issue:
96
- `pncli bitbucket add-comment --pr <id> --body "Created <new-key> to track this separately"`
97
-
98
- ### Pre-Merge Quality Check
99
-
100
- 1. Check quality gate status for the current branch:
101
- `pncli sonar quality-gate --branch <branch-name>`
102
- 2. If gate fails, inspect which issues are blocking:
103
- `pncli sonar issues --types BUG,VULNERABILITY --statuses OPEN --branch <branch-name>`
104
- 3. Check coverage and key metrics:
105
- `pncli sonar measures --branch <branch-name>`
106
- 4. Review security hotspots that need attention:
107
- `pncli sonar hotspots --status TO_REVIEW --branch <branch-name>`
108
-
109
- ### Check Build Status Before Merging
110
-
111
- 1. Get PR build status:
112
- `pncli bitbucket list-builds --pr <id>`
113
- 2. If all green, merge:
114
- `pncli bitbucket merge-pr --id <id> --strategy squash --delete-branch`
115
-
116
- ### Daily Standup Prep
117
-
118
- 1. Get your open PRs:
119
- `pncli bitbucket list-prs --state OPEN --author <your-username>`
120
- 2. Get your assigned Jira issues:
121
- `pncli jira search --jql "assignee = currentUser() AND status != Done ORDER BY priority DESC"`
122
- 3. Check recent commits:
123
- `pncli git log --count 5`
124
-
125
- <!-- COMMAND-REFERENCE:START -->
126
- ## Command Reference
127
-
128
- ### Git
129
-
130
- ```
131
- pncli git status
132
-
133
- pncli git diff
134
- --staged Show staged changes only
135
- --file <path> Limit diff to a specific file
136
-
137
- pncli git log
138
- --count <n> Number of commits to show (default: "10")
139
- --since <date> Show commits since date (e.g. "2 weeks ago")
140
-
141
- pncli git branch
142
-
143
- pncli git report
144
- --branch <name> Branch to report on (defaults to current branch)
145
- --base <ref> Base ref to compare against, e.g. "main" (base..branch, or
146
- base..HEAD if --branch is omitted)
147
- --since <date> Include commits on or after this date (e.g. "2024-01-01")
148
- --until <date> Include commits on or before this date (e.g. "2024-12-31")
149
- --csv Output as CSV instead of JSON
150
-
151
- pncli git current-pr
152
- ```
153
-
154
- ### Jira
155
-
156
- ```
157
- pncli jira get-issue
158
- --key <issue-key> Issue key (e.g. PROJ-123)
159
-
160
- pncli jira create-issue
161
- --project <key> Project key
162
- --type <type> Issue type (Bug, Story, Task, ...)
163
- --summary <text> Issue summary (required, unless supplied via
164
- --input-file)
165
- --description <text> Issue description
166
- --priority <name> Priority name
167
- --assignee <accountId> Assignee account ID
168
- --labels <labels> Comma-separated labels
169
- --parent <key> Parent issue key — sets fields.parent in the create
170
- payload
171
- --field <Name=value> Custom field value; use Name=@file.json to read value
172
- from file (repeatable) (default: [])
173
- --fields-file <path> Path to a JSON file mapping field names/IDs to their
174
- Jira API values
175
- --input-file <path> JSON file describing the whole issue ({ project,
176
- issueType, fields: {...} }); '-' = stdin. CLI flags
177
- override matching keys. See: pncli jira schema
178
-
179
- pncli jira update-issue
180
- --key <issue-key> Issue key
181
- --summary <text> New summary
182
- --description <text> New description
183
- --priority <name> New priority
184
- --assignee <accountId> New assignee account ID
185
- --labels <labels> Comma-separated labels
186
- --field <Name=value> Custom field value; use Name=@file.json to read value
187
- from file (repeatable) (default: [])
188
- --fields-file <path> Path to a JSON file mapping field names/IDs to their
189
- Jira API values
190
- --input-file <path> JSON file describing fields to update ({ fields: {...}
191
- }); '-' = stdin. CLI flags override matching keys.
192
- See: pncli jira schema
193
-
194
- pncli jira schema
195
- --example-only Print only the runnable example JSON (no envelope) — pipeable
196
- straight into --input-file
197
-
198
- pncli jira transition-issue
199
- --key <issue-key> Issue key
200
- --transition <name-or-id> Transition name or ID
201
-
202
- pncli jira list-transitions
203
- --key <issue-key> Issue key
204
-
205
- pncli jira add-comment
206
- --key <issue-key> Issue key
207
- --body <text> Comment text
208
-
209
- pncli jira list-comments
210
- --key <issue-key> Issue key
211
-
212
- pncli jira search
213
- --jql <query> JQL query string
214
- --jql-file <path> Path to a file containing the JQL query ('-' = stdin)
215
- --max-results <n> Maximum number of results
216
-
217
- pncli jira add-label
218
- --key <issue-key> Issue key
219
- --labels <labels> Comma-separated labels to add
220
-
221
- pncli jira remove-label
222
- --key <issue-key> Issue key
223
- --labels <labels> Comma-separated labels to remove
224
-
225
- pncli jira assign
226
- --key <issue-key> Issue key
227
- --assignee <accountId> Assignee account ID
228
-
229
- pncli jira link-issue
230
- --key <issue-key> Source issue key
231
- --link-type <type> Link type name or ID
232
- --target <issue-key> Target issue key
233
-
234
- pncli jira add-attachment
235
- --key <issue-key> Issue key (e.g. PROJ-123)
236
- --file <path> Path to the file to upload
237
-
238
- pncli jira list-attachments
239
- --key <issue-key> Issue key (e.g. PROJ-123)
240
-
241
- pncli jira download-attachment
242
- --key <issue-key> Issue key (e.g. PROJ-123)
243
- --attachment-id <id> Attachment ID from list-attachments output
244
- --dir <path> Output directory (default: .pncli relative to cwd)
245
-
246
- pncli jira fields
247
- --discover Fetch field metadata from Jira API
248
- --custom-only Show only custom fields (requires --discover)
249
- --project <key> Project key — fetches allowedValues for select fields via
250
- createmeta (requires --discover)
251
- --issue-type <type> Filter allowedValues to a specific issue type (requires
252
- --project)
253
-
254
- pncli jira list-boards
255
- --project <key> Project key
256
-
257
- pncli jira list-sprints
258
- --board <id> Board ID
259
- --project <key> Project key — resolves to that project's board(s)
260
- --state <states> Comma-separated states to filter (active,future,closed)
261
-
262
- pncli jira set-sprint
263
- --key <issue-key> Issue key
264
- --sprint <id> Sprint ID (from list-sprints)
265
- ```
266
-
267
- ### Bitbucket
268
-
269
- ```
270
- pncli bitbucket create-repo
271
- --name <name> Repository name (slug)
272
- --description <desc> Repository description
273
- --project <key> Bitbucket project key (overrides parent --project)
274
-
275
- pncli bitbucket list-prs
276
- --state <state> PR state: OPEN|MERGED|DECLINED|ALL (default: "OPEN")
277
- --author <username> Filter by author username
278
- --reviewer <username> Filter by reviewer username
279
-
280
- pncli bitbucket get-pr
281
- --id <pr-id> Pull request ID
282
-
283
- pncli bitbucket create-pr
284
- --title <title> PR title
285
- --source <branch> Source branch
286
- --target <branch> Target branch (defaults to config)
287
- --description <desc> PR description
288
- --reviewers <users> Comma-separated reviewer usernames
289
- --project <key> Bitbucket project key (overrides parent --project; use
290
- ~username for personal repos)
291
- --repo <slug> Bitbucket repository slug (overrides parent --repo)
292
-
293
- pncli bitbucket update-pr
294
- --id <pr-id> Pull request ID
295
- --title <title> New title
296
- --description <desc> New description
297
- --reviewers <users> Comma-separated reviewer usernames
298
-
299
- pncli bitbucket merge-pr
300
- --id <pr-id> Pull request ID
301
- --strategy <strategy> Merge strategy: merge|squash|ff
302
- --delete-branch Delete source branch after merge
303
-
304
- pncli bitbucket decline-pr
305
- --id <pr-id> Pull request ID
306
-
307
- pncli bitbucket list-comments
308
- --pr <pr-id> Pull request ID
309
- --no-with-replies Exclude replies; return top-level comments only
310
- --inline-only Return only inline file comments
311
- --general-only Return only general (non-inline) PR comments
312
-
313
- pncli bitbucket add-comment
314
- --pr <pr-id> Pull request ID
315
- --body <text> Comment text
316
-
317
- pncli bitbucket add-inline-comment
318
- --pr <pr-id> Pull request ID
319
- --file <path> File path
320
- --line <n> Line number
321
- --body <text> Comment text
322
- --line-type <type> Line type: ADDED|REMOVED|CONTEXT (default: "ADDED")
323
-
324
- pncli bitbucket reply-comment
325
- --pr <pr-id> Pull request ID
326
- --comment-id <id> Comment ID to reply to
327
- --body <text> Reply text
328
-
329
- pncli bitbucket resolve-comment
330
- --pr <pr-id> Pull request ID
331
- --comment-id <id> Comment ID
332
- --version <n> Comment version (default: "0")
333
-
334
- pncli bitbucket delete-comment
335
- --pr <pr-id> Pull request ID
336
- --comment-id <id> Comment ID
337
- --version <n> Comment version (default: "0")
338
-
339
- pncli bitbucket diff
340
- --pr <pr-id> Pull request ID
341
- --file <path> Limit diff to a specific file
342
- --context-lines <n> Lines of context around changes
343
-
344
- pncli bitbucket list-files
345
- --pr <pr-id> Pull request ID
346
-
347
- pncli bitbucket approve
348
- --pr <pr-id> Pull request ID
349
-
350
- pncli bitbucket unapprove
351
- --pr <pr-id> Pull request ID
352
-
353
- pncli bitbucket needs-work
354
- --pr <pr-id> Pull request ID
355
-
356
- pncli bitbucket list-reviewers
357
- --pr <pr-id> Pull request ID
358
-
359
- pncli bitbucket add-reviewer
360
- --pr <pr-id> Pull request ID
361
- --user <username> Username to add as a reviewer
362
-
363
- pncli bitbucket list-builds
364
- --pr <pr-id> Pull request ID
365
-
366
- pncli bitbucket get-build-status
367
- --commit <sha> Commit SHA
368
- ```
369
-
370
- ### Github
371
-
372
- ```
373
- pncli github create-repo
374
- --name <name> Repository name
375
- --description <desc> Repository description
376
- --private Create as a private repository
377
- --auto-init Initialize with a README
378
-
379
- pncli github create-issue
380
- --title <title> Issue title
381
- --body <body> Issue body (markdown)
382
- --body-file <path> Read issue body from a file (use - for stdin); overridden
383
- by --body
384
- --label <label> Label to apply (repeatable) (default: [])
385
- --assignee <login> Assignee login (repeatable) (default: [])
386
-
387
- pncli github list-prs
388
- --state <state> PR state (choices: "open", "closed", "all", default: "open")
389
- --head <branch> Filter by head branch (user:branch)
390
- --base <branch> Filter by base branch
391
-
392
- pncli github get-pr
393
- --number <n> Pull request number
394
-
395
- pncli github create-pr
396
- --title <title> PR title
397
- --head <branch> Source branch (or user:branch for forks)
398
- --base <branch> Target branch (defaults to config or main)
399
- --body <body> PR description
400
- --body-file <path> Read PR description from a file (use - for stdin);
401
- overridden by --body
402
- --draft Create as draft PR
403
- --owner <owner> GitHub owner (overrides parent --owner)
404
- --repo <repo> GitHub repository name (overrides parent --repo)
405
-
406
- pncli github update-pr
407
- --number <n> Pull request number
408
- --title <title> New title
409
- --body <body> New description
410
- --base <branch> New base branch
411
-
412
- pncli github merge-pr
413
- --number <n> Pull request number
414
- --method <method> Merge method (choices: "merge", "squash", "rebase",
415
- default: "merge")
416
- --commit-title <title> Commit title for merge/squash
417
- --commit-message <msg> Commit message for merge/squash
418
-
419
- pncli github close-pr
420
- --number <n> Pull request number
421
-
422
- pncli github list-comments
423
- --number <n> Pull request number
424
-
425
- pncli github add-comment
426
- --number <n> Pull request number
427
- --body <text> Comment text
428
-
429
- pncli github list-review-comments
430
- --number <n> Pull request number
431
-
432
- pncli github add-inline-comment
433
- --number <n> Pull request number
434
- --commit <sha> Commit SHA the comment is on
435
- --file <path> File path
436
- --line <n> Line number
437
- --body <text> Comment text
438
- --side <side> Comment side (choices: "LEFT", "RIGHT", default: "RIGHT")
439
-
440
- pncli github reply-comment
441
- --number <n> Pull request number
442
- --comment-id <id> Review comment ID to reply to
443
- --body <text> Reply text
444
-
445
- pncli github delete-comment
446
- --comment-id <id> Comment ID
447
-
448
- pncli github delete-review-comment
449
- --comment-id <id> Review comment ID
450
-
451
- pncli github diff
452
- --number <n> Pull request number
453
-
454
- pncli github list-files
455
- --number <n> Pull request number
456
-
457
- pncli github list-reviews
458
- --number <n> Pull request number
459
-
460
- pncli github approve
461
- --number <n> Pull request number
462
- --body <text> Review body text
463
-
464
- pncli github request-changes
465
- --number <n> Pull request number
466
- --body <text> Review feedback text
467
-
468
- pncli github list-reviewers
469
- --number <n> Pull request number
470
-
471
- pncli github get-status
472
- --ref <ref> Git ref (branch, tag, or commit SHA)
473
-
474
- pncli github list-checks
475
- --ref <ref> Git ref (branch, tag, or commit SHA)
476
- ```
477
-
478
- ### Confluence
479
-
480
- ```
481
- pncli confluence get-page
482
- --id <page-id> Page ID
483
- --expand <fields> Comma-separated fields to expand (default:
484
- "body.storage,version,space,ancestors")
485
-
486
- pncli confluence get-page-by-title
487
- --space <key> Space key
488
- --title <title> Page title
489
-
490
- pncli confluence list-pages
491
- --space <key> Space key
492
- --limit <n> Max total pages to return (default: all)
493
- --start <n> Offset for first result
494
-
495
- pncli confluence get-page-children
496
- --id <page-id> Parent page ID
497
-
498
- pncli confluence get-labels
499
- --id <page-id> Page ID
500
-
501
- pncli confluence search
502
- --cql <query> CQL query string (e.g. "space=PROJ AND type=page")
503
- --limit <n> Maximum number of results (default: "25")
504
- --start <n> Offset for first result (default: "0")
505
- --expand <fields> Comma-separated fields to expand
506
-
507
- pncli confluence create-page
508
- --space <key> Space key
509
- --title <title> Page title
510
- --body <html> Page body (storage format HTML or Markdown when
511
- --markdown is set)
512
- --body-file <path> Path to a file containing the page body ('-' =
513
- stdin)
514
- --markdown Convert body from Markdown to storage format via
515
- Confluence API
516
- --parent-id <id> Parent page ID (to nest under a page)
517
- --representation <format> Body format: storage (default) or wiki (default:
518
- "storage")
519
-
520
- pncli confluence update-page
521
- --id <page-id> Page ID
522
- --title <title> New page title
523
- --body <html> New page body (storage format HTML or Markdown when
524
- --markdown is set)
525
- --body-file <path> Path to a file containing the new page body ('-' =
526
- stdin)
527
- --markdown Convert body from Markdown to storage format via
528
- Confluence API
529
- --status <status> Page status: current (default) or draft (default:
530
- "current")
531
- --representation <format> Body format: storage (default) or wiki (default:
532
- "storage")
533
-
534
- pncli confluence delete-page
535
- --id <page-id> Page ID
536
-
537
- pncli confluence list-comments
538
- --id <page-id> Page ID
539
-
540
- pncli confluence add-comment
541
- --id <page-id> Page ID
542
- --body <text> Comment body (storage format HTML)
543
- --representation <format> Body format: storage (default) or wiki (default:
544
- "storage")
545
-
546
- pncli confluence add-label
547
- --id <page-id> Page ID
548
- --labels <names> Comma-separated label names
549
-
550
- pncli confluence remove-label
551
- --id <page-id> Page ID
552
- --label <name> Label name to remove
553
-
554
- pncli confluence list-spaces
555
- --type <type> Space type: global or personal
556
- --limit <n> Max total spaces to return (default: all)
557
-
558
- pncli confluence get-space
559
- --key <space-key> Space key
560
-
561
- pncli confluence list-attachments
562
- --id <page-id> Page ID
563
-
564
- pncli confluence upload-attachment
565
- --id <page-id> Page ID
566
- --file <path> Path to the file to upload
567
- --comment <text> Optional comment to attach to the file version
568
-
569
- pncli confluence download-attachment
570
- --id <attachment-id> Attachment content ID
571
- --dir <path> Output directory (default: .pncli relative to cwd)
572
-
573
- pncli confluence delete-attachment
574
- --id <attachment-id> Attachment content ID
575
-
576
- pncli confluence get-page-history
577
- --id <page-id> Page ID
578
- ```
579
-
580
- ### Sonar
581
-
582
- ```
583
- pncli sonar quality-gate
584
- --project <key> SonarQube project key (or set defaults.sonar.project in
585
- config)
586
- --branch <name> Branch name
587
-
588
- pncli sonar issues
589
- --project <key> SonarQube project key (or set defaults.sonar.project in
590
- config)
591
- --severities <list> Filter by severity: BLOCKER,CRITICAL,MAJOR,MINOR,INFO
592
- (comma-separated)
593
- --types <list> Filter by type: BUG,VULNERABILITY,CODE_SMELL
594
- (comma-separated)
595
- --statuses <list> Filter by status: OPEN,CONFIRMED,REOPENED,RESOLVED,CLOSED
596
- (comma-separated)
597
- --branch <name> Branch name
598
- --resolved <bool> Filter resolved issues: true or false
599
- --page <n> Page number (1-based) (default: "1")
600
- --page-size <n> Results per page (max 500) (default: "100")
601
- --all Fetch all pages (consider --output-file for large
602
- results; ignores --page/--page-size)
603
-
604
- pncli sonar measures
605
- --project <key> SonarQube project key (or set defaults.sonar.project in
606
- config)
607
- --metrics <list> Comma-separated metric keys (default:
608
- "coverage,duplicated_lines_density,bugs,vulnerabilities,code_smells,sqale_rating,reliability_rating,security_rating,ncloc")
609
- --branch <name> Branch name
610
-
611
- pncli sonar projects
612
- --query <text> Search query
613
- --page <n> Page number (1-based) (default: "1")
614
- --page-size <n> Results per page (default: "100")
615
- --all Fetch all pages (consider --output-file for large results)
616
-
617
- pncli sonar hotspots
618
- --project <key> SonarQube project key (or set defaults.sonar.project in
619
- config)
620
- --status <status> Filter: TO_REVIEW or REVIEWED
621
- --resolution <list> Filter: FIXED,SAFE,ACKNOWLEDGED (comma-separated)
622
- --branch <name> Branch name
623
- --page <n> Page number (1-based) (default: "1")
624
- --page-size <n> Results per page (default: "100")
625
- --all Fetch all pages (consider --output-file for large
626
- results)
627
- ```
628
-
629
- ### Sde
630
-
631
- ```
632
- pncli sde server-info
633
-
634
- pncli sde whoami
635
-
636
- pncli sde users
637
- --email <email> Filter by email address
638
- --first-name <name> Filter by first name
639
- --last-name <name> Filter by last name
640
- --active <bool> Filter by active status: true or false
641
- --page <n> Page number (1-based) (default: "1")
642
- --page-size <n> Results per page (default: "100")
643
- --all Fetch all pages (consider --output-file for large
644
- results)
645
-
646
- pncli sde projects
647
- --name <name> Filter by project name
648
- --search <text> Text search on name and profile
649
- --active <val> Filter by active status: true, false, or all
650
- --ordering <field> Sort by: name, created, updated (prefix with - for
651
- descending)
652
- --expand <fields> Expand nested fields (comma-separated):
653
- application,business_unit,creator
654
- --include <fields> Include extra fields (comma-separated):
655
- task_counts,permissions
656
- --page <n> Page number (1-based) (default: "1")
657
- --page-size <n> Results per page (default: "100")
658
- --all Fetch all pages (consider --output-file for large results)
659
-
660
- pncli sde project
661
- --id <id> Project ID (or set defaults.sde.project in config)
662
- --expand <fields> Expand nested fields (comma-separated):
663
- application,business_unit,creator
664
- --include <fields> Include extra fields (comma-separated):
665
- task_counts,permissions
666
-
667
- pncli sde tasks
668
- --project <id> Project ID (or set defaults.sde.project in config)
669
- --phase <slug> Filter by phase slug (e.g. development,
670
- architecture-design)
671
- --priority <n> Filter by priority (1-10)
672
- --status <id> Filter by status ID (e.g. TS1, TS2)
673
- --assigned-to <email> Filter by assignee email
674
- --source <val> Filter by source: default, custom, manual, project
675
- --verification <val> Filter by verification: pass, fail, partial, none
676
- --tag <name> Filter by tag name
677
- --accepted <bool> Filter by accepted status: true or false
678
- --relevant <bool> Filter by relevant status: true or false
679
- --expand <fields> Expand nested fields (comma-separated):
680
- status,phase,problem,text
681
- --include <fields> Include extra fields (comma-separated):
682
- how_tos,last_note,references,regulation_sections
683
- --page <n> Page number (1-based) (default: "1")
684
- --page-size <n> Results per page (default: "100")
685
- --all Fetch all pages (consider --output-file for large
686
- results)
687
-
688
- pncli sde task
689
- --project <id> Project ID (or set defaults.sde.project in config)
690
- --task <id> Task ID (e.g. T21)
691
- --expand <fields> Expand nested fields (comma-separated):
692
- status,phase,problem,text
693
- --include <fields> Include extra fields (comma-separated):
694
- how_tos,last_note,references
695
-
696
- pncli sde threats
697
- --project <id> Project ID (or set defaults.sde.project in config)
698
- --severity <n> Filter by severity (1-10)
699
- --search <text> Full-text search on title and threat ID
700
- --ordering <field> Sort by: threat__severity, threat_id, status (prefix -
701
- for descending)
702
- --capec-id <id> Filter by CAPEC attack pattern ID
703
- --component-id <id> Filter by component ID
704
- --page <n> Page number (1-based) (default: "1")
705
- --page-size <n> Results per page (default: "100")
706
- --all Fetch all pages (consider --output-file for large
707
- results)
708
- ```
709
-
710
- ### Deps
711
-
712
- ```
713
- pncli deps frisk
714
- --ecosystem <ecosystem> Filter to one ecosystem: npm, nuget, maven, all
715
- (default: "all")
716
- --direct-only Only scan direct dependencies (default: include
717
- transitive) (default: false)
718
- --include-dev Include dev/test dependencies (default: false)
719
- --source <source> Vulnerability source (choices: "osv", "sonatype",
720
- "sonatypeiq", "all", default: "osv")
721
- --application-id <id> Sonatype IQ Server application ID (required when
722
- --source sonatypeiq)
723
-
724
- pncli deps scan
725
- --ecosystem <ecosystem> Filter to one ecosystem: npm, nuget, maven, all
726
- (default: "all")
727
- --include-transitive Include transitive dependencies (default: false)
728
- --include-dev Include dev/test dependencies (default: false)
729
-
730
- pncli deps diff
731
- --from <ref> Base git ref (commit, tag, or branch)
732
- --to <ref> Target git ref (default: working tree)
733
- --ecosystem <ecosystem> Filter to one ecosystem: npm, nuget, maven, all
734
- (default: "all")
735
- --include-dev Include dev/test dependencies (default: false)
736
-
737
- pncli deps outdated
738
- --ecosystem <ecosystem> Filter to one ecosystem: npm, nuget, maven, all
739
- (default: "all")
740
- --major Only show major version bumps
741
- --minor Only show minor version bumps or higher
742
- --patch Only show patch version bumps or higher
743
-
744
- pncli deps license-check
745
- --ecosystem <ecosystem> Filter to one ecosystem: npm, nuget, maven, all
746
- (default: "all")
747
- --include-dev Include dev/test dependencies (default: false)
748
-
749
- pncli deps connectivity
750
- ```
751
-
752
- ### Config
753
-
754
- ```
755
- pncli config init
756
- --repo Write repo config (.pncli.json) instead of global config
757
-
758
- pncli config show
759
-
760
- pncli config set
761
- --repo Write to repo config (.pncli.json) instead of global config
762
-
763
- pncli config test
764
-
765
- pncli config check
766
- --output <format> Output format: json or table (default: "json")
767
- ```
768
-
769
- ### Ado
770
-
771
- ```
772
- pncli ado whoami
773
-
774
- pncli ado connection-data
775
-
776
- pncli ado project list-collections
777
-
778
- pncli ado project list
779
-
780
- pncli ado project get
781
- --name <project> Project name
782
-
783
- pncli ado work get
784
- --id <n> Work item ID
785
-
786
- pncli ado work create
787
- --type <type> Work item type (e.g. Bug, Task, User Story) (required,
788
- unless supplied via --input-file)
789
- --title <title> Work item title (required, unless supplied via
790
- --input-file)
791
- --description <text> Description
792
- --assignee <user> Assigned to (display name or email)
793
- --priority <n> Priority (1-4)
794
- --parent <id> Parent work item ID — creates a parent link after
795
- creation
796
- --field <name=value> Additional field (repeatable) (default: [])
797
- --input-file <path> JSON file describing the work item ({ type, fields:
798
- {...} }); '-' = stdin. CLI flags override matching keys.
799
- See: pncli ado work schema
800
-
801
- pncli ado work update
802
- --id <n> Work item ID
803
- --field <name=value> Field to update (repeatable) (default: [])
804
- --input-file <path> JSON file describing fields to update ({ fields: {...}
805
- }); '-' = stdin. CLI flags override matching keys. See:
806
- pncli ado work schema
807
-
808
- pncli ado work transition
809
- --id <n> Work item ID
810
- --state <state> New state (e.g. Active, Resolved, Closed)
811
-
812
- pncli ado work assign
813
- --id <n> Work item ID
814
- --to <user> User display name or email
815
-
816
- pncli ado work link
817
- --id <a> Source work item ID
818
- --to <b> Target work item ID
819
- --type <rel> Link type (related|parent|child|duplicate|duplicate-of)
820
- (default: "related")
821
-
822
- pncli ado work search
823
- --wiql <query> WIQL query string
824
-
825
- pncli ado work list-comments
826
- --id <n> Work item ID
827
-
828
- pncli ado work add-comment
829
- --id <n> Work item ID
830
- --body <text> Comment text
831
-
832
- pncli ado work add-tag
833
- --id <n> Work item ID
834
- --tags <tags> Semicolon- or comma-separated tags to add
835
-
836
- pncli ado work remove-tag
837
- --id <n> Work item ID
838
- --tags <tags> Semicolon- or comma-separated tags to remove
839
-
840
- pncli ado work list-attachments
841
- --id <n> Work item ID
842
-
843
- pncli ado work add-attachment
844
- --id <n> Work item ID
845
- --file <path> Path to the file to upload
846
- --comment <text> Optional comment for the attachment
847
-
848
- pncli ado work download-attachment
849
- --id <n> Work item ID
850
- --attachment-id <guid> Attachment ID from work list-attachments output
851
- --dir <path> Output directory (default: .pncli relative to cwd)
852
-
853
- pncli ado work list-areas
854
- --depth <n> Depth of the area tree to retrieve (default: "10")
855
-
856
- pncli ado work list-iterations
857
- --depth <n> Depth of the iteration tree to retrieve (default: "10")
858
-
859
- pncli ado work types
860
- --discover Fetch from server (always true for this command)
861
- --save Save discovered types to ~/.pncli/config.json
862
-
863
- pncli ado work list-states
864
- --type <type> Work item type name (e.g. Bug)
865
-
866
- pncli ado work fields
867
- --type <type> Scope to fields for a specific work item type (e.g. Bug)
868
- --custom-only Exclude System.* and Microsoft.VSTS.* fields
869
- --discover Fetch from server (always true for this command)
870
- --save Save discovered fields and aliases to ~/.pncli/config.json
871
-
872
- pncli ado work schema
873
- --example-only Print only the runnable example JSON (no envelope) — pipeable
874
- straight into --input-file
875
-
876
- pncli ado repo list
877
-
878
- pncli ado repo create
879
- --name <name> Repository name
880
-
881
- pncli ado repo get
882
-
883
- pncli ado repo list-prs
884
- --state <state> PR state: active|abandoned|completed|all (default:
885
- "active")
886
- --creator <alias> Filter by creator
887
- --reviewer <alias> Filter by reviewer
888
-
889
- pncli ado repo get-pr
890
- --id <n> Pull request ID
891
-
892
- pncli ado repo create-pr
893
- --title <title> PR title
894
- --source <branch> Source branch
895
- --target <branch> Target branch (default: main) (default: "main")
896
- --description <text> PR description
897
- --reviewers <ids> Comma-separated reviewer IDs or display names
898
- --draft Create as a draft pull request
899
-
900
- pncli ado repo update-pr
901
- --id <n> Pull request ID
902
- --title <title> New title
903
- --description <text> New description
904
- --reviewers <ids> Comma-separated reviewer IDs
905
- --draft <bool> Set draft status: true|false
906
-
907
- pncli ado repo merge-pr
908
- --id <n> Pull request ID
909
- --strategy <s> Merge strategy: noFastForward|squash|rebase|rebaseMerge
910
- (default: "noFastForward")
911
- --delete-source Delete source branch after merge
912
-
913
- pncli ado repo abandon-pr
914
- --id <n> Pull request ID
915
-
916
- pncli ado repo list-comments
917
- --pr <n> Pull request ID
918
- --inline-only Return only inline file comments
919
- --general-only Return only general PR comments
920
-
921
- pncli ado repo add-comment
922
- --pr <n> Pull request ID
923
- --body <text> Comment text
924
-
925
- pncli ado repo add-inline-comment
926
- --pr <n> Pull request ID
927
- --file <path> File path
928
- --line <n> Line number
929
- --body <text> Comment text
930
- --line-type <side> Line side: left|right (default: right) (default: "right")
931
-
932
- pncli ado repo reply-comment
933
- --pr <n> Pull request ID
934
- --thread-id <id> Thread ID
935
- --body <text> Reply text
936
-
937
- pncli ado repo resolve-comment
938
- --pr <n> Pull request ID
939
- --thread-id <id> Thread ID
940
-
941
- pncli ado repo delete-comment
942
- --pr <n> Pull request ID
943
- --thread-id <id> Thread ID
944
- --comment-id <id> Comment ID
945
-
946
- pncli ado repo list-files
947
- --pr <n> Pull request ID
948
-
949
- pncli ado repo diff
950
- --pr <n> Pull request ID
951
- --path <p> Filter diff to a specific file path
952
-
953
- pncli ado repo get-build-status
954
- --commit <sha> Commit SHA
955
-
956
- pncli ado repo list-reviewers
957
- --pr <n> Pull request ID
958
-
959
- pncli ado repo approve
960
- --pr <n> Pull request ID
961
-
962
- pncli ado repo unapprove
963
- --pr <n> Pull request ID
964
-
965
- pncli ado repo wait-for-author
966
- --pr <n> Pull request ID
967
-
968
- pncli ado repo list-builds
969
- --pr <n> Pull request ID
970
-
971
- pncli ado pipeline list
972
-
973
- pncli ado pipeline get
974
- --id <n> Pipeline definition ID
975
-
976
- pncli ado pipeline run
977
- --id <n> Pipeline definition ID
978
- --branch <ref> Source branch (e.g. refs/heads/main or main)
979
- --parameter <k=v> Build parameter (repeatable) (default: [])
980
- --wait Wait for the run to complete before returning
981
- --timeout <s> Max wait time in seconds (default 600) (default: "600")
982
- --poll <s> Poll interval in seconds (default 10) (default: "10")
983
-
984
- pncli ado pipeline list-runs
985
- --definition <id> Filter by definition ID
986
- --name <name> Filter by pipeline name (resolved to definition ID; use
987
- pipeline list to see names)
988
- --branch <ref> Filter by branch name
989
- --status <filter> Filter by status (inProgress|completed|cancelling|...)
990
- --top <n> Maximum results (default: "50")
991
-
992
- pncli ado pipeline get-run
993
- --id <n> Build ID
994
-
995
- pncli ado pipeline cancel-run
996
- --id <n> Build ID
997
-
998
- pncli ado pipeline logs
999
- --build-id <n> Build (run) ID — from pipeline list-runs or get-run
1000
- --id <n> Build (run) ID — alias for --build-id (kept for backwards
1001
- compatibility)
1002
- --log-id <n> Specific log ID (omit to list all logs)
1003
- ```
1004
-
1005
- ### Jenkins
1006
-
1007
- ```
1008
- pncli jenkins pipeline list
1009
- --folder <name> Folder name to enumerate (supports nested folders:
1010
- parentFolder/childFolder)
1011
-
1012
- pncli jenkins pipeline get
1013
- --name <job> Job name (use folder/job for folder-scoped jobs)
1014
-
1015
- pncli jenkins pipeline run
1016
- --name <job> Job name (use folder/job for folder-scoped jobs)
1017
- --parameter <k=v> Build parameter (repeatable) (default: [])
1018
- --wait Wait for the build to complete before returning
1019
- --timeout <s> Max wait time in seconds per phase (queue-wait and
1020
- build-wait each get this budget; default 600) (default:
1021
- "600")
1022
- --poll <s> Poll interval in seconds (default 10) (default: "10")
1023
-
1024
- pncli jenkins pipeline list-runs
1025
- --name <job> Job name (use folder/job for folder-scoped jobs)
1026
- --top <n> Maximum number of builds to return (default 25) (default: "25")
1027
-
1028
- pncli jenkins pipeline get-run
1029
- --name <job> Job name (use folder/job for folder-scoped jobs)
1030
- --number <n> Build number
1031
-
1032
- pncli jenkins pipeline logs
1033
- --name <job> Job name (use folder/job for folder-scoped jobs)
1034
- --number <n> Build number
1035
- ```
1036
-
1037
- ### Artifactory
1038
-
1039
- ```
1040
- pncli artifactory ping
1041
-
1042
- pncli artifactory repos
1043
- --type <type> Filter by type: local, virtual, remote, federated
1044
- --package-type <type> Filter by package type: npm, maven, nuget, docker,
1045
- pypi, etc.
1046
-
1047
- pncli artifactory artifact-info
1048
-
1049
- pncli artifactory properties-get
1050
-
1051
- pncli artifactory properties-set
1052
- --recursive Apply recursively to folder contents (default: false)
1053
-
1054
- pncli artifactory search
1055
- --repo <name> Filter by repository key
1056
- --name <pattern> Filter by artifact name (supports * and ? wildcards)
1057
- --path <pattern> Filter by artifact path (supports * and ? wildcards)
1058
- --after <date> Created after this date (ISO 8601, e.g. 2024-01-01)
1059
- --before <date> Created before this date (ISO 8601)
1060
- --limit <n> Maximum results to return (default: 100) (default: "100")
1061
- --properties Include artifact properties in results (default: false)
1062
-
1063
- pncli artifactory builds
1064
- --timeout <s> Request timeout in seconds (default 60; increase for large
1065
- Artifactory instances) (default: "60")
1066
-
1067
- pncli artifactory build-runs
1068
-
1069
- pncli artifactory build-info
1070
- ```
1071
-
1072
- ### Checkmarx
1073
-
1074
- ```
1075
- pncli checkmarx project list
1076
-
1077
- pncli checkmarx project get
1078
- --id <id> Project UUID
1079
-
1080
- pncli checkmarx scan list
1081
- --project <id> Filter by project UUID
1082
- --last <n> Return only the last N scans
1083
-
1084
- pncli checkmarx scan get
1085
- --id <id> Scan UUID
1086
-
1087
- pncli checkmarx scan stats
1088
- --id <id> Scan UUID
1089
- ```
1090
-
1091
- ### Servicenow
1092
-
1093
- ```
1094
- pncli servicenow change list
1095
- --state <state> Filter by state (e.g. -1=Pending, 1=Open, 2=Work in
1096
- Progress, 3=Closed Complete)
1097
- --assigned-to <user> Filter by assigned user sys_id or display name
1098
- --limit <n> Maximum number of results (default: "25")
1099
- --fields <fields> Comma-separated field names to return
1100
-
1101
- pncli servicenow change get
1102
- --id <id> Change request sys_id or number (e.g. CHG0001234)
1103
-
1104
- pncli servicenow change create
1105
- --short-description <text> Short description (title)
1106
- --description <text> Full description
1107
- --type <type> Change type: normal, standard, or emergency
1108
- (default: "normal")
1109
- --priority <n> Priority: 1=Critical, 2=High, 3=Moderate, 4=Low
1110
- --assigned-to <user> Assigned user sys_id
1111
- --assignment-group <group> Assignment group sys_id
1112
- --start-date <datetime> Planned start date (yyyy-MM-dd HH:mm:ss)
1113
- --end-date <datetime> Planned end date (yyyy-MM-dd HH:mm:ss)
1114
-
1115
- pncli servicenow change update
1116
- --id <sys_id> Change request sys_id
1117
- --short-description <text> New short description
1118
- --description <text> New description
1119
- --state <state> New state value
1120
- --priority <n> New priority
1121
- --assigned-to <user> New assigned user sys_id
1122
- --start-date <datetime> New planned start date
1123
- --end-date <datetime> New planned end date
1124
-
1125
- pncli servicenow change close
1126
- --id <sys_id> Change request sys_id
1127
- --close-notes <text> Closure notes
1128
- --close-code <code> Close code (e.g. successful, unsuccessful)
1129
- ```
1130
-
1131
- ### Contrast
1132
-
1133
- ```
1134
- pncli contrast apps list
1135
- --limit <n> Maximum number of results (default: "25")
1136
- --offset <n> Pagination offset (default: "0")
1137
-
1138
- pncli contrast findings list
1139
- --app <app-id> Application ID (UUID)
1140
- --severity <level> Filter by severity: CRITICAL, HIGH, MEDIUM, LOW, NOTE
1141
- --status <status> Filter by status: REPORTED, CONFIRMED, SUSPICIOUS,
1142
- NOT_A_PROBLEM, REMEDIATED, FIXED
1143
- --limit <n> Maximum number of results (default: "25")
1144
- --offset <n> Pagination offset (default: "0")
1145
-
1146
- pncli contrast findings get
1147
- --app <app-id> Application ID (UUID)
1148
- --trace <trace-id> Trace/finding UUID
1149
- ```
1150
-
1151
- ### Sonatypeiq
1152
-
1153
- ```
1154
- pncli sonatypeiq applications list
1155
- --organization-id <id> Filter by organization ID
1156
-
1157
- pncli sonatypeiq applications get
1158
- --public-id <id> Application public ID
1159
-
1160
- pncli sonatypeiq organizations list
1161
-
1162
- pncli sonatypeiq policies list
1163
- --organization-id <id> Filter by organization ID
1164
- ```
1165
-
1166
- ### Skills
1167
-
1168
- ```
1169
- pncli skills install
1170
- --agent <agent> Target agent host: github-copilot | claude-code (default:
1171
- "github-copilot")
1172
- --scope <scope> Installation scope: project | user (default: "project")
1173
- --target <dir> Override install directory (ignores --agent and --scope)
1174
-
1175
- pncli skills list
1176
- --agent <agent> Target agent host: github-copilot | claude-code (default:
1177
- "github-copilot")
1178
- --scope <scope> Installation scope: project | user (default: "project")
1179
- --target <dir> Override skills directory to scan
1180
-
1181
- pncli skills uninstall
1182
- --agent <agent> Target agent host: github-copilot | claude-code (default:
1183
- "github-copilot")
1184
- --scope <scope> Installation scope to uninstall from: project | user
1185
- (default: "user")
1186
- --claude Shorthand for --agent claude-code
1187
- --target <dir> Override skills directory
1188
-
1189
- pncli skills marketplace add
1190
- --name <name> Human-readable name for this marketplace (default: derived
1191
- from URL)
1192
- --branch <branch> Branch to clone (default: remote HEAD)
1193
- --token <token> HTTP access token for authenticated clone and pull (GitHub
1194
- PAT or Bitbucket token)
1195
- --agent <agent> Target agent host for plugin install: github-copilot |
1196
- claude-code (default: github-copilot)
1197
- --claude Shorthand for --agent claude-code
1198
-
1199
- pncli skills marketplace setup
1200
- --name <name> Human-readable name for this marketplace (default: derived
1201
- from URL)
1202
- --branch <branch> Branch to clone (default: remote HEAD)
1203
- --token <token> HTTP access token for authenticated clone and pull (GitHub
1204
- PAT or Bitbucket token)
1205
- --agent <agent> Target agent host for plugin install: github-copilot |
1206
- claude-code (default: github-copilot)
1207
- --claude Shorthand for --agent claude-code
1208
-
1209
- pncli skills marketplace list
1210
-
1211
- pncli skills marketplace plugins
1212
-
1213
- pncli skills marketplace remove
1214
-
1215
- pncli skills marketplace sync
1216
- --marketplace <name> Marketplace name to sync, or "all" to sync every
1217
- registered marketplace (skips interactive selection)
1218
- --agent <agent> Target agent host: github-copilot | claude-code
1219
- (default: github-copilot)
1220
- --claude Shorthand for --agent claude-code
1221
- --force Reinstall even if a marketplace has no new changes
1222
- (applies to single-plugin and "all" installs alike)
1223
-
1224
- pncli skills marketplace purge-plugin
1225
- --marketplace <name> Restrict purge to skills from this marketplace (by name
1226
- or repo URL)
1227
- --agent <agent> Target agent host: github-copilot | claude-code
1228
- (default: github-copilot)
1229
- --claude Shorthand for --agent claude-code
1230
- --scope <scope> Installation scope: project | user (default: user)
1231
- --target <dir> Override skills directory
1232
-
1233
- pncli skills marketplace disable
1234
- --marketplace <name> Restrict to skills from this marketplace (by name or
1235
- repo URL)
1236
- --agent <agent> Target agent host: github-copilot | claude-code
1237
- (default: github-copilot)
1238
- --claude Shorthand for --agent claude-code
1239
- --scope <scope> Installation scope: project | user (default: user)
1240
- --target <dir> Override skills directory
1241
-
1242
- pncli skills marketplace enable
1243
- --marketplace <name> Restrict to skills from this marketplace (by name or
1244
- repo URL)
1245
- --agent <agent> Target agent host: github-copilot | claude-code
1246
- (default: github-copilot)
1247
- --claude Shorthand for --agent claude-code
1248
- --scope <scope> Installation scope: project | user (default: user)
1249
- --target <dir> Override skills directory
1250
-
1251
- pncli skills marketplace manage
1252
- --agent <agent> Target agent host: github-copilot | claude-code (default:
1253
- github-copilot)
1254
- --claude Shorthand for --agent claude-code
1255
- --scope <scope> Installation scope: project | user (default: user)
1256
- --target <dir> Override skills directory
1257
-
1258
- pncli skills purge-user
1259
- --agent <agent> Target agent host: github-copilot | claude-code (default:
1260
- github-copilot)
1261
- --claude Shorthand for --agent claude-code
1262
- --force Skip confirmation — remove all skills without prompting
1263
- ```
1264
-
1265
- ### Jwt
1266
-
1267
- ```
1268
- pncli jwt decode
1269
- ```
1270
-
1271
- ### Openshift
1272
-
1273
- ```
1274
- pncli openshift pods
1275
- --namespace <ns> Kubernetes namespace
1276
- --label-selector <selector> Label selector (e.g. app=my-app)
1277
-
1278
- pncli openshift events
1279
- --namespace <ns> Kubernetes namespace
1280
- --field-selector <selector> Additional field selector (e.g.
1281
- involvedObject.name=my-pod)
1282
- --all Include Normal events in addition to Warning
1283
- events (default: false)
1284
-
1285
- pncli openshift logs
1286
- --namespace <ns> Kubernetes namespace
1287
- --pod <name> Pod name
1288
- --container <name> Container name (defaults to first container)
1289
- --lines <n> Number of most-recent lines to return (default: "100")
1290
- --previous Return logs from the previous container instance (default:
1291
- false)
1292
-
1293
- pncli openshift pod-metrics
1294
- --namespace <ns> Kubernetes namespace
1295
- ```
1296
-
1297
- ### Dynatrace
1298
-
1299
- ```
1300
- pncli dynatrace entities list
1301
- --selector <selector> Dynatrace entity selector, e.g. type("SERVICE")
1302
- --from <time> Start time (ISO 8601 or relative, e.g. now-2h)
1303
- --to <time> End time (ISO 8601 or relative)
1304
- --fields <fields> Additional entity fields
1305
-
1306
- pncli dynatrace entities get
1307
- --id <id> Entity ID, e.g. SERVICE-1234567890ABCDEF
1308
- --from <time> Start time
1309
- --to <time> End time
1310
- --fields <fields> Additional entity fields
1311
-
1312
- pncli dynatrace services
1313
- --from <time> Start time
1314
- --to <time> End time
1315
-
1316
- pncli dynatrace workloads
1317
- --from <time> Start time
1318
- --to <time> End time
1319
-
1320
- pncli dynatrace problems list
1321
- --from <time> Start time (default: now-2h)
1322
- --to <time> End time (default: now)
1323
- --problem-selector <selector> Dynatrace problem selector
1324
- --entity-selector <selector> Affected entity selector
1325
-
1326
- pncli dynatrace problems get
1327
- --id <id> Problem ID
1328
- --fields <fields> Additional fields
1329
-
1330
- pncli dynatrace trace
1331
- --id <trace-id> 16- or 32-character hexadecimal trace ID
1332
- ```
1333
-
1334
- <!-- COMMAND-REFERENCE:END -->
1335
-
1336
- ## Output Format
1337
-
1338
- All commands return:
1339
- - Success: `{ "ok": true, "data": { ... }, "meta": { "service": "...", "action": "...", "timestamp": "...", "duration_ms": N } }`
1340
- - Error: `{ "ok": false, "error": { "status": N, "message": "..." }, "meta": { ... } }`
1341
-
1342
- Always check `ok` before accessing `data`.
1343
-
1344
- ## Tips
1345
-
1346
- - Use `--dry-run` to preview API calls without executing
1347
- - Use `--verbose` to see full response metadata for debugging
1348
- - Use `--pretty` when running manually for readable output
1349
- - 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
1350
- - Pipe output through `jq` for ad-hoc filtering (if available)
1351
- - Defaults from `.pncli.json` are applied automatically — you rarely need to pass `--project`, `--type`, or `--priority` flags for Jira