@kolatts/pncli 1.10.0 → 1.11.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.
Files changed (34) hide show
  1. package/copilot-instructions.md +34 -1
  2. package/dist/{chunk-O3LWAWSN.js → chunk-AWSXVWRN.js} +2 -1
  3. package/dist/{chunk-O3LWAWSN.js.map → chunk-AWSXVWRN.js.map} +1 -1
  4. package/dist/{chunk-3XHTRFRX.js → chunk-VPUWMP2M.js} +3 -2
  5. package/dist/chunk-VPUWMP2M.js.map +1 -0
  6. package/dist/cli.js +410 -36
  7. package/dist/cli.js.map +1 -1
  8. package/dist/{config-NCI2BTQG.js → config-OFLPO5DN.js} +4 -2
  9. package/dist/{http-L2P23H2D.js → http-LNDRNPP7.js} +2 -2
  10. package/package.json +1 -1
  11. package/skills/pncli/SKILL.md +92 -0
  12. package/skills/pncli/ado.md +33 -0
  13. package/skills/pncli/artifactory.md +35 -0
  14. package/skills/pncli/bitbucket.md +30 -0
  15. package/skills/pncli/checkmarx.md +31 -0
  16. package/skills/pncli/confluence.md +24 -0
  17. package/skills/pncli/contrast.md +39 -0
  18. package/skills/pncli/jenkins.md +29 -0
  19. package/skills/pncli/jira.md +35 -0
  20. package/skills/pncli/marketplace.md +41 -0
  21. package/skills/pncli/sde.md +29 -0
  22. package/skills/pncli/servicenow.md +33 -0
  23. package/skills/pncli/sonarqube.md +30 -0
  24. package/skills/pncli/sonatypeiq.md +39 -0
  25. package/skills/pncli/udeploy.md +48 -0
  26. package/dist/chunk-3XHTRFRX.js.map +0 -1
  27. package/skills/address-pr-feedback/SKILL.md +0 -87
  28. package/skills/code-review/SKILL.md +0 -82
  29. package/skills/local-setup/SKILL.md +0 -225
  30. package/skills/plan/SKILL.md +0 -120
  31. package/skills/security-review/SKILL.md +0 -108
  32. package/skills/ship/SKILL.md +0 -170
  33. /package/dist/{config-NCI2BTQG.js.map → config-OFLPO5DN.js.map} +0 -0
  34. /package/dist/{http-L2P23H2D.js.map → http-LNDRNPP7.js.map} +0 -0
@@ -2,19 +2,21 @@
2
2
  import {
3
3
  getGlobalConfigPath,
4
4
  loadConfig,
5
+ loadJsonFile,
5
6
  maskConfig,
6
7
  setConfigValue,
7
8
  setRepoConfigValue,
8
9
  writeGlobalConfig,
9
10
  writeRepoConfig
10
- } from "./chunk-O3LWAWSN.js";
11
+ } from "./chunk-AWSXVWRN.js";
11
12
  export {
12
13
  getGlobalConfigPath,
13
14
  loadConfig,
15
+ loadJsonFile,
14
16
  maskConfig,
15
17
  setConfigValue,
16
18
  setRepoConfigValue,
17
19
  writeGlobalConfig,
18
20
  writeRepoConfig
19
21
  };
20
- //# sourceMappingURL=config-NCI2BTQG.js.map
22
+ //# sourceMappingURL=config-OFLPO5DN.js.map
@@ -2,9 +2,9 @@
2
2
  import {
3
3
  HttpClient,
4
4
  createHttpClient
5
- } from "./chunk-3XHTRFRX.js";
5
+ } from "./chunk-VPUWMP2M.js";
6
6
  export {
7
7
  HttpClient,
8
8
  createHttpClient
9
9
  };
10
- //# sourceMappingURL=http-L2P23H2D.js.map
10
+ //# sourceMappingURL=http-LNDRNPP7.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kolatts/pncli",
3
- "version": "1.10.0",
3
+ "version": "1.11.0",
4
4
  "description": "The Paperwork Nightmare CLI — One command does what three meetings couldn't.",
5
5
  "type": "module",
6
6
  "bin": {
@@ -0,0 +1,92 @@
1
+ ---
2
+ name: pncli
3
+ description: Use when asked to set up pncli, configure a service, initialize a repo, or run pncli commands. Walks through identity, work item tracking, source control, and optional services. For any specific service, read the included <service>.md file.
4
+ compatibility: Designed for Claude Code. Requires pncli installed and accessible in PATH.
5
+ user-invocable: true
6
+ metadata:
7
+ category: setup
8
+ providers: both
9
+ services: config
10
+ ---
11
+
12
+ pncli gives AI agents and humans unified CLI access to enterprise tools: Jira, Bitbucket, Confluence, SonarQube, SDElements, Azure DevOps, Jenkins, Artifactory, IBM UrbanCode Deploy, Checkmarx, ServiceNow, Contrast Security IAST, and Sonatype IQ Server.
13
+
14
+ ## Two config levels
15
+
16
+ **Env vars** — ephemeral, per-session, override the config file. Set before running pncli:
17
+ ```
18
+ export PNCLI_<SERVICE>_<KEY>=value
19
+ ```
20
+
21
+ **Config file** — persistent, stored in `~/.pncli/config.json`. Set with:
22
+ ```
23
+ pncli config set <service>.<key> <value>
24
+ ```
25
+
26
+ Repo-level defaults (project key, target branch) are stored in `.pncli.json` in the repo root:
27
+ ```
28
+ pncli config set --repo defaults.<service>.<key> <value>
29
+ ```
30
+
31
+ ## Available services
32
+
33
+ For detailed setup of any service, read the included file for that service.
34
+
35
+ | Service | File | Commands unlocked |
36
+ |---------|------|-------------------|
37
+ | Jira | `jira.md` | Issues, sprints, custom fields |
38
+ | Bitbucket | `bitbucket.md` | Repos, PRs, diffs |
39
+ | Azure DevOps | `ado.md` | Work items, repos, PRs, pipelines |
40
+ | Confluence | `confluence.md` | Pages, spaces |
41
+ | SonarQube | `sonarqube.md` | Code quality issues |
42
+ | SDElements | `sde.md` | Threat model tasks |
43
+ | Checkmarx | `checkmarx.md` | SAST findings |
44
+ | IBM UrbanCode Deploy | `udeploy.md` | Component versions, deployments |
45
+ | Jenkins | `jenkins.md` | Builds, job status |
46
+ | Artifactory | `artifactory.md` | Packages, repos |
47
+ | ServiceNow | `servicenow.md` | Change requests, incidents |
48
+ | Contrast IAST | `contrast.md` | Runtime vulnerability findings |
49
+ | Sonatype IQ | `sonatypeiq.md` | Dependency policy enforcement |
50
+ | Skills Marketplace | `marketplace.md` | Install org-internal skills |
51
+
52
+ ## Setup walkthrough
53
+
54
+ **Step 1 — Identity**
55
+
56
+ Ask: email address and username/user ID. Then:
57
+
58
+ ```
59
+ pncli config set user.email <email>
60
+ pncli config set user.userId <username>
61
+ ```
62
+
63
+ **Step 2 — Work item tracking**
64
+
65
+ Ask: "Does this org use Jira or Azure DevOps for work items?" See `jira.md` or `ado.md`.
66
+
67
+ **Step 3 — Source control**
68
+
69
+ Ask: "Does this org use Bitbucket or Azure DevOps for PRs?" See `bitbucket.md` or `ado.md`.
70
+
71
+ **Step 4 — Optional services**
72
+
73
+ Ask about each optional service the user may need. Read the relevant `.md` file for config keys and commands. Skip services they don't use.
74
+
75
+ **Step 5 — Repo-level defaults**
76
+
77
+ ```
78
+ pncli config set --repo defaults.jira.project <key>
79
+ pncli config set --repo defaults.bitbucket.targetBranch <branch>
80
+ ```
81
+
82
+ **Step 6 — Test connectivity**
83
+
84
+ ```
85
+ pncli config test
86
+ ```
87
+
88
+ Review results. If any service shows `ok: false`, help troubleshoot the URL or credentials.
89
+
90
+ ```
91
+ pncli config show
92
+ ```
@@ -0,0 +1,33 @@
1
+ # Azure DevOps (ADO)
2
+
3
+ Enables: `pncli ado workitem`, `pncli ado repo`, `pncli ado pr`, `pncli ado pipeline` — work items, repos, PRs, and pipeline builds for Azure DevOps Server (on-premise).
4
+
5
+ ## Required config
6
+
7
+ | Key | Env var | Description |
8
+ |-----|---------|-------------|
9
+ | `ado.baseUrl` | `PNCLI_ADO_BASE_URL` | ADO Server root, e.g. `https://tfs.company.com` |
10
+ | `ado.pat` | `PNCLI_ADO_PAT` | Personal access token |
11
+
12
+ ## Config file (persistent)
13
+
14
+ ```
15
+ pncli config set ado.baseUrl https://tfs.company.com
16
+ pncli config set ado.pat <token>
17
+ pncli config set defaults.ado.collection DefaultCollection
18
+ pncli config set defaults.ado.project MyProject
19
+ ```
20
+
21
+ ## Env vars (ephemeral / CI)
22
+
23
+ ```
24
+ export PNCLI_ADO_BASE_URL=https://tfs.company.com
25
+ export PNCLI_ADO_PAT=<token>
26
+ ```
27
+
28
+ ## Repo defaults
29
+
30
+ ```
31
+ pncli config set --repo defaults.ado.collection DefaultCollection
32
+ pncli config set --repo defaults.ado.project MyProject
33
+ ```
@@ -0,0 +1,35 @@
1
+ # Artifactory
2
+
3
+ Enables: `pncli artifactory repo`, `pncli artifactory package` — list repositories and packages, resolve virtual repo names for npm/NuGet/Maven.
4
+
5
+ ## Required config
6
+
7
+ | Key | Env var | Description |
8
+ |-----|---------|-------------|
9
+ | `artifactory.baseUrl` | `PNCLI_ARTIFACTORY_BASE_URL` | Artifactory root, e.g. `https://artifactory.company.com` |
10
+ | `artifactory.token` | `PNCLI_ARTIFACTORY_TOKEN` | Identity token or API key |
11
+
12
+ ## Optional — virtual repo names
13
+
14
+ | Key | Env var | Description |
15
+ |-----|---------|-------------|
16
+ | `artifactory.npmRepo` | `PNCLI_ARTIFACTORY_REPO_NPM` | Virtual npm repo name |
17
+ | `artifactory.nugetRepo` | `PNCLI_ARTIFACTORY_REPO_NUGET` | Virtual NuGet repo name |
18
+ | `artifactory.mavenRepo` | `PNCLI_ARTIFACTORY_REPO_MAVEN` | Virtual Maven repo name |
19
+
20
+ ## Config file (persistent)
21
+
22
+ ```
23
+ pncli config set artifactory.baseUrl https://artifactory.company.com
24
+ pncli config set artifactory.token <token>
25
+ pncli config set artifactory.npmRepo npm-virtual
26
+ pncli config set artifactory.nugetRepo nuget-virtual
27
+ pncli config set artifactory.mavenRepo maven-virtual
28
+ ```
29
+
30
+ ## Env vars (ephemeral / CI)
31
+
32
+ ```
33
+ export PNCLI_ARTIFACTORY_BASE_URL=https://artifactory.company.com
34
+ export PNCLI_ARTIFACTORY_TOKEN=<token>
35
+ ```
@@ -0,0 +1,30 @@
1
+ # Bitbucket
2
+
3
+ Enables: `pncli bitbucket repo`, `pncli bitbucket pr`, `pncli bitbucket diff` — list repos, open/list PRs, get diffs.
4
+
5
+ ## Required config
6
+
7
+ | Key | Env var | Description |
8
+ |-----|---------|-------------|
9
+ | `bitbucket.baseUrl` | `PNCLI_BITBUCKET_BASE_URL` | Bitbucket Server root, e.g. `https://bitbucket.company.com` |
10
+ | `bitbucket.pat` | `PNCLI_BITBUCKET_PAT` | Personal access token |
11
+
12
+ ## Config file (persistent)
13
+
14
+ ```
15
+ pncli config set bitbucket.baseUrl https://bitbucket.company.com
16
+ pncli config set bitbucket.pat <token>
17
+ ```
18
+
19
+ ## Env vars (ephemeral / CI)
20
+
21
+ ```
22
+ export PNCLI_BITBUCKET_BASE_URL=https://bitbucket.company.com
23
+ export PNCLI_BITBUCKET_PAT=<token>
24
+ ```
25
+
26
+ ## Repo defaults
27
+
28
+ ```
29
+ pncli config set --repo defaults.bitbucket.targetBranch main
30
+ ```
@@ -0,0 +1,31 @@
1
+ # Checkmarx
2
+
3
+ Enables: `pncli checkmarx scan`, `pncli checkmarx finding` — list SAST scans and vulnerability findings.
4
+
5
+ > **Not officially supported.** Checkmarx CxSAST on-premise does not expose stable PAT-based authentication on all versions. pncli performs the OAuth2 token exchange using username and password, but behaviour varies across CxSAST versions. Use with caution and test connectivity with `pncli config test` before relying on it.
6
+
7
+ ## Required config
8
+
9
+ | Key | Env var | Description |
10
+ |-----|---------|-------------|
11
+ | `checkmarx.baseUrl` | `PNCLI_CHECKMARX_BASE_URL` | CxSAST server root, e.g. `https://cx.company.com` |
12
+ | `checkmarx.username` | `PNCLI_CHECKMARX_USERNAME` | CxSAST username |
13
+ | `checkmarx.password` | `PNCLI_CHECKMARX_PASSWORD` | CxSAST password |
14
+
15
+ pncli handles the OAuth2 token exchange automatically — no external tools required.
16
+
17
+ ## Config file (persistent)
18
+
19
+ ```
20
+ pncli config set checkmarx.baseUrl https://cx.company.com
21
+ pncli config set checkmarx.username <username>
22
+ pncli config set checkmarx.password <password>
23
+ ```
24
+
25
+ ## Env vars (ephemeral / CI)
26
+
27
+ ```
28
+ export PNCLI_CHECKMARX_BASE_URL=https://cx.company.com
29
+ export PNCLI_CHECKMARX_USERNAME=<username>
30
+ export PNCLI_CHECKMARX_PASSWORD=<password>
31
+ ```
@@ -0,0 +1,24 @@
1
+ # Confluence
2
+
3
+ Enables: `pncli confluence page`, `pncli confluence space` — list/get pages and spaces.
4
+
5
+ ## Required config
6
+
7
+ | Key | Env var | Description |
8
+ |-----|---------|-------------|
9
+ | `confluence.baseUrl` | `PNCLI_CONFLUENCE_BASE_URL` | Confluence server root, e.g. `https://confluence.company.com` |
10
+ | `confluence.apiToken` | `PNCLI_CONFLUENCE_API_TOKEN` | Personal access token |
11
+
12
+ ## Config file (persistent)
13
+
14
+ ```
15
+ pncli config set confluence.baseUrl https://confluence.company.com
16
+ pncli config set confluence.apiToken <token>
17
+ ```
18
+
19
+ ## Env vars (ephemeral / CI)
20
+
21
+ ```
22
+ export PNCLI_CONFLUENCE_BASE_URL=https://confluence.company.com
23
+ export PNCLI_CONFLUENCE_API_TOKEN=<token>
24
+ ```
@@ -0,0 +1,39 @@
1
+ # Contrast Security IAST
2
+
3
+ Enables: `pncli contrast apps`, `pncli contrast findings` — list applications and runtime vulnerability findings from Contrast Security.
4
+
5
+ ## Required config
6
+
7
+ All four credential keys are found in your Contrast account under **User Settings → Your Keys**.
8
+
9
+ | Key | Env var | Description |
10
+ |-----|---------|-------------|
11
+ | `contrast.baseUrl` | `PNCLI_CONTRAST_BASE_URL` | Contrast instance root (required — no default) |
12
+ | `contrast.orgUuid` | `PNCLI_CONTRAST_ORG_UUID` | Organization UUID |
13
+ | `contrast.username` | `PNCLI_CONTRAST_USERNAME` | Your username (email) |
14
+ | `contrast.apiKey` | `PNCLI_CONTRAST_API_KEY` | API key |
15
+ | `contrast.serviceKey` | `PNCLI_CONTRAST_SERVICE_KEY` | Service key |
16
+
17
+ **Base URL examples:**
18
+ - Cloud SaaS: `https://app.contrastsecurity.com`
19
+ - On-premise: `https://contrast.company.com`
20
+
21
+ ## Config file (persistent)
22
+
23
+ ```
24
+ pncli config set contrast.baseUrl https://app.contrastsecurity.com
25
+ pncli config set contrast.orgUuid <org-uuid>
26
+ pncli config set contrast.username <email>
27
+ pncli config set contrast.apiKey <api-key>
28
+ pncli config set contrast.serviceKey <service-key>
29
+ ```
30
+
31
+ ## Env vars (ephemeral / CI)
32
+
33
+ ```
34
+ export PNCLI_CONTRAST_BASE_URL=https://app.contrastsecurity.com
35
+ export PNCLI_CONTRAST_ORG_UUID=<org-uuid>
36
+ export PNCLI_CONTRAST_USERNAME=<email>
37
+ export PNCLI_CONTRAST_API_KEY=<api-key>
38
+ export PNCLI_CONTRAST_SERVICE_KEY=<service-key>
39
+ ```
@@ -0,0 +1,29 @@
1
+ # Jenkins
2
+
3
+ Enables: `pncli jenkins build`, `pncli jenkins job` — list builds, get build status and console output.
4
+
5
+ ## Required config
6
+
7
+ | Key | Env var | Description |
8
+ |-----|---------|-------------|
9
+ | `jenkins.baseUrl` | `PNCLI_JENKINS_BASE_URL` | Jenkins root, e.g. `https://jenkins.company.com` |
10
+ | `jenkins.username` | `PNCLI_JENKINS_USERNAME` | Jenkins username |
11
+ | `jenkins.apiToken` | `PNCLI_JENKINS_API_TOKEN` | API token (generated in Jenkins → User → Configure → API Token) |
12
+
13
+ pncli authenticates using HTTP Basic (username + API token).
14
+
15
+ ## Config file (persistent)
16
+
17
+ ```
18
+ pncli config set jenkins.baseUrl https://jenkins.company.com
19
+ pncli config set jenkins.username <username>
20
+ pncli config set jenkins.apiToken <token>
21
+ ```
22
+
23
+ ## Env vars (ephemeral / CI)
24
+
25
+ ```
26
+ export PNCLI_JENKINS_BASE_URL=https://jenkins.company.com
27
+ export PNCLI_JENKINS_USERNAME=<username>
28
+ export PNCLI_JENKINS_API_TOKEN=<token>
29
+ ```
@@ -0,0 +1,35 @@
1
+ # Jira
2
+
3
+ Enables: `pncli jira issue`, `pncli jira sprint`, `pncli jira project`, `pncli jira user` — list and get issues, sprints, custom fields, and project members.
4
+
5
+ ## Required config
6
+
7
+ | Key | Env var | Description |
8
+ |-----|---------|-------------|
9
+ | `jira.baseUrl` | `PNCLI_JIRA_BASE_URL` | Jira server root, e.g. `https://jira.company.com` |
10
+ | `jira.apiToken` | `PNCLI_JIRA_API_TOKEN` | Personal access token |
11
+
12
+ ## Config file (persistent)
13
+
14
+ ```
15
+ pncli config set jira.baseUrl https://jira.company.com
16
+ pncli config set jira.apiToken <token>
17
+ ```
18
+
19
+ ## Env vars (ephemeral / CI)
20
+
21
+ ```
22
+ export PNCLI_JIRA_BASE_URL=https://jira.company.com
23
+ export PNCLI_JIRA_API_TOKEN=<token>
24
+ ```
25
+
26
+ ## Repo defaults
27
+
28
+ ```
29
+ pncli config set --repo defaults.jira.project ACME
30
+ ```
31
+
32
+ ## Notes
33
+
34
+ - Jira Cloud and Jira Data Center both work; token format differs (API token vs PAT)
35
+ - Custom fields discovered with `pncli jira project fields`
@@ -0,0 +1,41 @@
1
+ # Skills Marketplace
2
+
3
+ Enables installing org-internal Claude Code or GitHub Copilot skills from a private git-hosted marketplace repository.
4
+
5
+ ## Setup
6
+
7
+ ```
8
+ pncli skills marketplace setup <git-clone-url> <local-path>
9
+ ```
10
+
11
+ Use `--branch main` if the default branch is `main` instead of `master`. This clones the repo to `<local-path>` and stores the mapping in your pncli global config.
12
+
13
+ **Example:**
14
+ ```
15
+ pncli skills marketplace setup https://bitbucket.company.com/scm/ai/skills.git ~/ai-skills
16
+ ```
17
+
18
+ ## Sync (install a plugin)
19
+
20
+ Install to `~/.agents/skills` (GitHub Copilot / Codex):
21
+ ```
22
+ pncli skills marketplace sync
23
+ ```
24
+
25
+ Install to `~/.claude/skills` (Claude Code):
26
+ ```
27
+ pncli skills marketplace sync --claude
28
+ ```
29
+
30
+ Pass a plugin name to skip the interactive picker:
31
+ ```
32
+ pncli skills marketplace sync my-plugin --claude
33
+ ```
34
+
35
+ ## Marketplace repo structure
36
+
37
+ The marketplace repo should contain either:
38
+ - A `.claude-plugin/marketplace.json` file listing plugins
39
+ - Or a `plugins/` directory where each subdirectory is a plugin
40
+
41
+ Each plugin directory should have a `skills/` subdirectory containing skill directories (each with a `SKILL.md`).
@@ -0,0 +1,29 @@
1
+ # SDElements
2
+
3
+ Enables: `pncli sde task` — list threat model tasks and their compliance status for a project.
4
+
5
+ ## Required config
6
+
7
+ | Key | Env var | Description |
8
+ |-----|---------|-------------|
9
+ | `sde.connection` | `PNCLI_SDE_CONNECTION` | Connection string in the format `token@hostname` |
10
+
11
+ The connection string combines your API token and the SDElements hostname into a single value, e.g. `mytoken@sde.company.com`.
12
+
13
+ ## Config file (persistent)
14
+
15
+ ```
16
+ pncli config set sde.connection mytoken@sde.company.com
17
+ ```
18
+
19
+ ## Env vars (ephemeral / CI)
20
+
21
+ ```
22
+ export PNCLI_SDE_CONNECTION=mytoken@sde.company.com
23
+ ```
24
+
25
+ ## Repo defaults
26
+
27
+ ```
28
+ pncli config set --repo defaults.sde.project 123
29
+ ```
@@ -0,0 +1,33 @@
1
+ # ServiceNow
2
+
3
+ Enables: `pncli servicenow change`, `pncli servicenow incident` — list and get change requests and incidents.
4
+
5
+ ## Required config
6
+
7
+ | Key | Env var | Description |
8
+ |-----|---------|-------------|
9
+ | `servicenow.baseUrl` | `PNCLI_SERVICENOW_BASE_URL` | Instance root, e.g. `https://mycompany.service-now.com` |
10
+ | `servicenow.username` | `PNCLI_SERVICENOW_USERNAME` | ServiceNow username |
11
+
12
+ ### Auth — password or API token (one required)
13
+
14
+ | Key | Env var | Description |
15
+ |-----|---------|-------------|
16
+ | `servicenow.password` | `PNCLI_SERVICENOW_PASSWORD` | ServiceNow password |
17
+ | `servicenow.apiToken` | `PNCLI_SERVICENOW_API_TOKEN` | API token (if basic auth is disabled) |
18
+
19
+ ## Config file (persistent)
20
+
21
+ ```
22
+ pncli config set servicenow.baseUrl https://mycompany.service-now.com
23
+ pncli config set servicenow.username <username>
24
+ pncli config set servicenow.password <password>
25
+ ```
26
+
27
+ ## Env vars (ephemeral / CI)
28
+
29
+ ```
30
+ export PNCLI_SERVICENOW_BASE_URL=https://mycompany.service-now.com
31
+ export PNCLI_SERVICENOW_USERNAME=<username>
32
+ export PNCLI_SERVICENOW_PASSWORD=<password>
33
+ ```
@@ -0,0 +1,30 @@
1
+ # SonarQube
2
+
3
+ Enables: `pncli sonar issue`, `pncli sonar project` — list code quality and security issues by project.
4
+
5
+ ## Required config
6
+
7
+ | Key | Env var | Description |
8
+ |-----|---------|-------------|
9
+ | `sonar.baseUrl` | `PNCLI_SONAR_BASE_URL` | SonarQube server root, e.g. `https://sonar.company.com` |
10
+ | `sonar.token` | `PNCLI_SONAR_TOKEN` | User token (generated in SonarQube → My Account → Security) |
11
+
12
+ ## Config file (persistent)
13
+
14
+ ```
15
+ pncli config set sonar.baseUrl https://sonar.company.com
16
+ pncli config set sonar.token <token>
17
+ ```
18
+
19
+ ## Env vars (ephemeral / CI)
20
+
21
+ ```
22
+ export PNCLI_SONAR_BASE_URL=https://sonar.company.com
23
+ export PNCLI_SONAR_TOKEN=<token>
24
+ ```
25
+
26
+ ## Repo defaults
27
+
28
+ ```
29
+ pncli config set --repo defaults.sonar.project my-project-key
30
+ ```
@@ -0,0 +1,39 @@
1
+ # Sonatype IQ Server
2
+
3
+ Enables: `pncli sonatypeiq applications`, `pncli deps frisk --source sonatypeiq` — list applications and scan dependencies against your IQ Server security policies.
4
+
5
+ ## Required config
6
+
7
+ | Key | Env var | Description |
8
+ |-----|---------|-------------|
9
+ | `sonatypeiq.baseUrl` | `PNCLI_SONATYPEIQ_BASE_URL` | IQ Server root, e.g. `https://iq.company.com` |
10
+ | `sonatypeiq.userCode` | `PNCLI_SONATYPEIQ_USER_CODE` | User Token code (from User Menu → User Token) |
11
+ | `sonatypeiq.passcode` | `PNCLI_SONATYPEIQ_PASSCODE` | User Token passcode (from User Menu → User Token) |
12
+
13
+ The `userCode` and `passcode` are User Token credentials, not your login password.
14
+
15
+ ## Config file (persistent)
16
+
17
+ ```
18
+ pncli config set sonatypeiq.baseUrl https://iq.company.com
19
+ pncli config set sonatypeiq.userCode <user-code>
20
+ pncli config set sonatypeiq.passcode <passcode>
21
+ ```
22
+
23
+ ## Env vars (ephemeral / CI)
24
+
25
+ ```
26
+ export PNCLI_SONATYPEIQ_BASE_URL=https://iq.company.com
27
+ export PNCLI_SONATYPEIQ_USER_CODE=<user-code>
28
+ export PNCLI_SONATYPEIQ_PASSCODE=<passcode>
29
+ ```
30
+
31
+ ## Usage
32
+
33
+ ```
34
+ # Discover application IDs
35
+ pncli sonatypeiq applications list
36
+
37
+ # Scan dependencies against IQ policies
38
+ pncli deps frisk --source sonatypeiq --application-id <id>
39
+ ```
@@ -0,0 +1,48 @@
1
+ # IBM UrbanCode Deploy (uDeploy)
2
+
3
+ Enables: `pncli udeploy component`, `pncli udeploy version`, `pncli udeploy process` — list component versions and trigger deployment processes.
4
+
5
+ > **Not officially supported.** IBM UrbanCode Deploy on-premise does not reliably support PAT tokens across all versions and configurations. Authentication via username/password works on most installs; PAT support is version-dependent. Test connectivity with `pncli config test` before relying on it.
6
+
7
+ ## Required config
8
+
9
+ | Key | Env var | Description |
10
+ |-----|---------|-------------|
11
+ | `udeploy.baseUrl` | `PNCLI_UDEPLOY_BASE_URL` | UCD server root, e.g. `https://ucd.company.com` |
12
+
13
+ ### Auth option A — PAT
14
+
15
+ | Key | Env var | Description |
16
+ |-----|---------|-------------|
17
+ | `udeploy.pat` | `PNCLI_UDEPLOY_PAT` | Personal access token |
18
+
19
+ ### Auth option B — Username/password
20
+
21
+ | Key | Env var | Description |
22
+ |-----|---------|-------------|
23
+ | `udeploy.username` | `PNCLI_UDEPLOY_USERNAME` | UCD username |
24
+ | `udeploy.password` | `PNCLI_UDEPLOY_PASSWORD` | UCD password |
25
+
26
+ ## Config file (persistent)
27
+
28
+ ```
29
+ pncli config set udeploy.baseUrl https://ucd.company.com
30
+ pncli config set udeploy.pat <token>
31
+ # or
32
+ pncli config set udeploy.username <username>
33
+ pncli config set udeploy.password <password>
34
+ ```
35
+
36
+ ## Env vars (ephemeral / CI)
37
+
38
+ ```
39
+ export PNCLI_UDEPLOY_BASE_URL=https://ucd.company.com
40
+ export PNCLI_UDEPLOY_PAT=<token>
41
+ ```
42
+
43
+ ## Repo defaults
44
+
45
+ ```
46
+ pncli config set --repo defaults.udeploy.application MyApp
47
+ pncli config set --repo defaults.udeploy.environment Production
48
+ ```