@diffpal/diffpal-win32-x64 0.1.37 → 0.1.38
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +90 -337
- package/bin/diffpal.exe +0 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -5,275 +5,101 @@
|
|
|
5
5
|
[](https://www.npmjs.com/package/@diffpal/diffpal)
|
|
6
6
|
[](LICENSE)
|
|
7
7
|
|
|
8
|
-
**Open-source
|
|
8
|
+
**Open-source AI PR review you control.**
|
|
9
|
+
Bring your own agent. Keep one PR review workflow.
|
|
9
10
|
|
|
10
|
-
DiffPal
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
mandatory hosted DiffPal review service and no required per-seat review
|
|
14
|
-
platform.
|
|
11
|
+
DiffPal turns pull request diffs into structured findings, summaries, inline
|
|
12
|
+
comments, and merge gates across GitHub, GitLab, and Azure DevOps without
|
|
13
|
+
locking your team into a hosted review platform.
|
|
15
14
|
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
15
|
+
[Get started in 5 minutes](docs/quickstart.md) ·
|
|
16
|
+
[Bring your own agent](docs/ci-examples.md#using-another-acp-cli) ·
|
|
17
|
+
[See examples](examples/README.md) ·
|
|
18
|
+
[Read the docs](docs/README.md)
|
|
20
19
|
|
|
21
|
-
|
|
22
|
-
workflow in your repository. DiffPal's goal is to make AI PR review portable,
|
|
23
|
-
affordable, and enforceable across GitHub, GitLab, and Azure DevOps.
|
|
20
|
+
## What DiffPal Publishes
|
|
24
21
|
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
22
|
+
DiffPal runs in CI and keeps the review output consistent even when teams use
|
|
23
|
+
different AI agents, accounts, or hosts.
|
|
24
|
+
|
|
25
|
+
| Output | Where it shows up |
|
|
26
|
+
| --- | --- |
|
|
27
|
+
| PR/MR summary | GitHub reviews, GitLab summaries, Azure PR threads |
|
|
28
|
+
| Actionable findings | Inline comments, discussions, or PR threads on changed lines |
|
|
29
|
+
| Review artifacts | `.artifacts/diffpal/findings.json`, summary Markdown, SARIF, Code Quality |
|
|
30
|
+
| Merge gates | CI exit status, checks, commit statuses, or PR statuses |
|
|
28
31
|
|
|
29
|
-
|
|
32
|
+
## Choose Your Path
|
|
33
|
+
|
|
34
|
+
| Goal | Start here |
|
|
35
|
+
| --- | --- |
|
|
36
|
+
| Fastest GitHub setup | [Quickstart](docs/quickstart.md) with the default GitHub Actions recipe |
|
|
37
|
+
| Keep an existing agent | [Generic ACP setup](docs/ci-examples.md#using-another-acp-cli) |
|
|
38
|
+
| Use GitLab or Azure DevOps | [CI setup guide](docs/ci-examples.md) |
|
|
39
|
+
| Tune policy and auditing | [Config reference](docs/config-reference.md), [findings schema](docs/findings-schema.md) |
|
|
40
|
+
|
|
41
|
+
## Why DiffPal
|
|
42
|
+
|
|
43
|
+
Most AI review products ask you to adopt their platform. DiffPal takes the
|
|
44
|
+
opposite approach: keep the agent your team already trusts, keep the CI system
|
|
45
|
+
you already operate, and standardize how review feedback is generated,
|
|
46
|
+
published, and gated.
|
|
47
|
+
|
|
48
|
+
- **Provider choice:** use Codex, Copilot, OpenCode, Gemini, Claude Code, a
|
|
49
|
+
hosted provider, an ordered provider pool, or any ACP-compatible CLI.
|
|
50
|
+
- **Repository control:** review config, instructions, artifacts, and gates live
|
|
51
|
+
with the codebase instead of behind a required hosted DiffPal service.
|
|
52
|
+
- **Structured outcomes:** DiffPal owns diff collection, findings validation,
|
|
53
|
+
publishing, artifacts, and merge policy while your provider owns model
|
|
54
|
+
reasoning and credentials.
|
|
30
55
|
|
|
31
56
|
## How DiffPal Works
|
|
32
57
|
|
|
33
|
-
```
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
58
|
+
```mermaid
|
|
59
|
+
flowchart LR
|
|
60
|
+
A[Pull request diff] --> B[DiffPal config and policy]
|
|
61
|
+
B --> C[Selected provider or ACP CLI]
|
|
62
|
+
C --> D[Structured findings bundle]
|
|
63
|
+
D --> E[PR summary and inline feedback]
|
|
64
|
+
D --> F[SARIF and Code Quality artifacts]
|
|
65
|
+
D --> G[Merge gates and statuses]
|
|
39
66
|
```
|
|
40
67
|
|
|
41
|
-
DiffPal coordinates the review workflow around the model call. Your provider
|
|
42
|
-
supplies the review intelligence; DiffPal keeps PR feedback, artifacts, and
|
|
43
|
-
merge policy consistent across hosts.
|
|
44
|
-
|
|
45
68
|
Review instructions are produced by DiffPal's versioned Prompt Pack. Findings
|
|
46
69
|
artifacts include the prompt id, prompt version, purpose, and findings schema
|
|
47
|
-
version, so a review can be traced back to the
|
|
48
|
-
|
|
49
|
-
|
|
70
|
+
version, so a review can be traced back to the prompt contract that generated
|
|
71
|
+
it. See the [config reference](docs/config-reference.md#prompt-pack) and
|
|
72
|
+
[findings schema](docs/findings-schema.md) for the current metadata.
|
|
50
73
|
|
|
51
|
-
##
|
|
74
|
+
## GitHub In 5 Minutes
|
|
52
75
|
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
provider
|
|
56
|
-
workflow.
|
|
57
|
-
|
|
58
|
-
That model keeps cost control with your team. DiffPal does not require a hosted
|
|
59
|
-
review service or per-seat platform subscription to collect diffs, publish PR
|
|
60
|
-
feedback, write artifacts, or enforce merge gates.
|
|
61
|
-
|
|
62
|
-
## Quick Start: GitHub Actions
|
|
63
|
-
|
|
64
|
-
This is the fastest production-shaped setup using the default Codex API-key
|
|
65
|
-
recipe: DiffPal installs itself through the GitHub Action, Codex is selected as
|
|
66
|
-
the review provider, and `OPENAI_API_KEY` stays in GitHub Secrets. You can swap
|
|
67
|
-
the provider recipe while keeping the same DiffPal review workflow.
|
|
68
|
-
|
|
69
|
-
1. Generate the config:
|
|
76
|
+
The fastest path uses the Codex API-key recipe because it is a concrete
|
|
77
|
+
copy-paste GitHub Actions setup. Codex is not the product boundary; you can swap
|
|
78
|
+
the provider recipe and keep the same DiffPal workflow.
|
|
70
79
|
|
|
71
80
|
```bash
|
|
72
81
|
npx -y @diffpal/diffpal@latest init --wizard --setup codex-api-key --platform github
|
|
73
82
|
```
|
|
74
83
|
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
2. Add a repository secret:
|
|
79
|
-
|
|
80
|
-
| Secret | Purpose |
|
|
81
|
-
| --- | --- |
|
|
82
|
-
| `OPENAI_API_KEY` | Authenticates Codex for the review provider. |
|
|
83
|
-
|
|
84
|
-
For public open-source repositories, keep provider credentials away from fork PR
|
|
85
|
-
code. GitHub's fork workflow approval settings control whether outside
|
|
86
|
-
contributors' fork workflows run automatically; they do not make it safe to
|
|
87
|
-
release provider secrets to fork code. Keep DiffPal's secret-backed review job
|
|
88
|
-
limited to same-repository pull requests. Fork PRs should run no-secret CI only.
|
|
89
|
-
|
|
90
|
-
3. Add the workflow:
|
|
84
|
+
Then add `OPENAI_API_KEY` as a repository secret, copy the GitHub Actions
|
|
85
|
+
example, and open a trusted same-repository pull request:
|
|
91
86
|
|
|
92
87
|
```bash
|
|
93
88
|
mkdir -p .github/workflows
|
|
94
89
|
cp examples/ci/github-actions/codex-api-key.yml .github/workflows/diffpal.yml
|
|
95
90
|
```
|
|
96
91
|
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
- file-level review comments for actionable findings
|
|
103
|
-
- `.artifacts/diffpal/findings.json` in the job workspace
|
|
104
|
-
- a failed job only when `gate: true` and blocking findings exist, or when setup
|
|
105
|
-
or publishing fails
|
|
106
|
-
|
|
107
|
-
The GitHub Action installs the latest DiffPal CLI by default. After your first
|
|
108
|
-
successful run, pin `diffpal-version`, provider CLIs, and bridge packages when
|
|
109
|
-
you need fully reproducible credentialed CI.
|
|
110
|
-
|
|
111
|
-
## Supported CI Systems
|
|
112
|
-
|
|
113
|
-
Use the same `.config/diffpal/config.yaml` shape in every CI system. GitHub,
|
|
114
|
-
GitLab, and Azure are publishing targets; the core workflow only changes how CI
|
|
115
|
-
checks out code, installs the provider, passes the platform token, and runs
|
|
116
|
-
DiffPal.
|
|
117
|
-
|
|
118
|
-
| CI system | Examples | Output surfaces |
|
|
119
|
-
| --- | --- | --- |
|
|
120
|
-
| GitHub Actions | [`examples/ci/github-actions`](examples/ci/github-actions) | PR review summary, file-level review comments, SARIF |
|
|
121
|
-
| GitLab CI | [`examples/ci/gitlab`](examples/ci/gitlab) | MR summary, discussions, Code Quality, SARIF |
|
|
122
|
-
| Azure Pipelines | [`examples/ci/azure-pipelines`](examples/ci/azure-pipelines) | PR summary thread, PR threads, PR status |
|
|
123
|
-
|
|
124
|
-
## GitHub Action
|
|
125
|
-
|
|
126
|
-
GitHub Actions users can install the
|
|
127
|
-
[DiffPal Review action](https://github.com/marketplace/actions/diffpal-review)
|
|
128
|
-
with `uses: diffpal/action@v1`. The action source and release automation live in
|
|
129
|
-
the separate [diffpal/action](https://github.com/diffpal/action) repository.
|
|
130
|
-
|
|
131
|
-
The action installs `@diffpal/diffpal` by default, then runs
|
|
132
|
-
`diffpal review github`. You still own provider setup and authentication in the
|
|
133
|
-
workflow, so switching provider recipes does not require switching PR review
|
|
134
|
-
platforms.
|
|
135
|
-
|
|
136
|
-
## Azure DevOps Marketplace Extension
|
|
137
|
-
|
|
138
|
-
Azure Pipelines users can install the public
|
|
139
|
-
[DiffPal Review extension](https://marketplace.visualstudio.com/items?itemName=diffpal.diffpal)
|
|
140
|
-
from the Azure DevOps Marketplace and add the `DiffPalReview@1` task to PR
|
|
141
|
-
validation pipelines. Extension source and release automation live in the
|
|
142
|
-
separate [diffpal/azure-devops](https://github.com/diffpal/azure-devops)
|
|
143
|
-
repository.
|
|
144
|
-
|
|
145
|
-
The task installs `@diffpal/diffpal` by default, then runs `diffpal review ado`.
|
|
146
|
-
You still need a committed DiffPal config, a provider credential such as
|
|
147
|
-
`OPENAI_API_KEY`, `SYSTEM_ACCESSTOKEN` for PR feedback publishing, and a full git
|
|
148
|
-
checkout. See the [Azure Pipelines setup guide](docs/ci-examples.md#azure-pipelines)
|
|
149
|
-
for copy-paste examples.
|
|
150
|
-
|
|
151
|
-
Example GitHub Actions workflow:
|
|
152
|
-
|
|
153
|
-
```yaml
|
|
154
|
-
name: diffpal
|
|
155
|
-
|
|
156
|
-
on:
|
|
157
|
-
pull_request:
|
|
158
|
-
types: [opened, synchronize, reopened, ready_for_review]
|
|
159
|
-
|
|
160
|
-
jobs:
|
|
161
|
-
review:
|
|
162
|
-
name: review
|
|
163
|
-
# Provider credentials are only exposed to same-repository PRs.
|
|
164
|
-
# Fork PRs should run no-secret CI only.
|
|
165
|
-
if: ${{ !github.event.pull_request.draft && github.event.pull_request.head.repo.full_name == github.repository }}
|
|
166
|
-
runs-on: ubuntu-latest
|
|
167
|
-
permissions:
|
|
168
|
-
contents: read
|
|
169
|
-
pull-requests: write
|
|
170
|
-
steps:
|
|
171
|
-
- uses: actions/checkout@v6
|
|
172
|
-
with:
|
|
173
|
-
fetch-depth: 0
|
|
174
|
-
|
|
175
|
-
- uses: actions/setup-node@v6
|
|
176
|
-
with:
|
|
177
|
-
node-version: 22
|
|
178
|
-
|
|
179
|
-
- name: Install Codex provider
|
|
180
|
-
run: npm install --global @openai/codex@0.139.0 @normahq/codex-acp-bridge@1.6.3
|
|
181
|
-
|
|
182
|
-
- name: Authenticate Codex
|
|
183
|
-
run: printf '%s' "$OPENAI_API_KEY" | codex login --with-api-key
|
|
184
|
-
env:
|
|
185
|
-
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
|
|
186
|
-
|
|
187
|
-
- uses: diffpal/action@v1
|
|
188
|
-
with:
|
|
189
|
-
base: ${{ github.event.pull_request.base.sha }}
|
|
190
|
-
head: ${{ github.event.pull_request.head.sha }}
|
|
191
|
-
profile: ci
|
|
192
|
-
gate: true
|
|
193
|
-
feedback: review
|
|
194
|
-
env:
|
|
195
|
-
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
196
|
-
```
|
|
197
|
-
|
|
198
|
-
`pull_request_target` runs from the default branch of the base repository and is
|
|
199
|
-
useful for trusted automation such as labeling or commenting. Do not combine it
|
|
200
|
-
with checking out the PR head or running package installs, tests, build scripts,
|
|
201
|
-
hooks, provider CLIs, or other fork code. That pattern can expose privileged
|
|
202
|
-
tokens or secrets to untrusted code.
|
|
203
|
-
|
|
204
|
-
If you prefer copying files manually, use
|
|
205
|
-
[`examples/configs/codex-api-key/config.yaml`](examples/configs/codex-api-key/config.yaml).
|
|
206
|
-
For full copy-paste files and host-specific notes, read
|
|
207
|
-
[`docs/ci-examples.md`](docs/ci-examples.md).
|
|
208
|
-
|
|
209
|
-
## Config You Commit
|
|
210
|
-
|
|
211
|
-
DiffPal uses the current profile-based config shape. There is no legacy
|
|
212
|
-
`defaults` block.
|
|
213
|
-
|
|
214
|
-
```yaml
|
|
215
|
-
version: v1
|
|
216
|
-
|
|
217
|
-
runtime:
|
|
218
|
-
providers:
|
|
219
|
-
codex-acp:
|
|
220
|
-
type: codex_acp
|
|
221
|
-
codex_acp:
|
|
222
|
-
reasoning_effort: low
|
|
223
|
-
|
|
224
|
-
diffpal:
|
|
225
|
-
provider: codex-acp
|
|
226
|
-
gate:
|
|
227
|
-
block_on: high
|
|
228
|
-
review:
|
|
229
|
-
language: en
|
|
230
|
-
instructions: |
|
|
231
|
-
Prefer actionable findings that are directly supported by the diff.
|
|
232
|
-
platforms:
|
|
233
|
-
github: {}
|
|
234
|
-
gitlab: {}
|
|
235
|
-
azure: {}
|
|
236
|
-
|
|
237
|
-
profiles:
|
|
238
|
-
ci:
|
|
239
|
-
diffpal:
|
|
240
|
-
gate:
|
|
241
|
-
block_on: high
|
|
242
|
-
```
|
|
243
|
-
|
|
244
|
-
DiffPal uses a fixed finding taxonomy: security, correctness, reliability,
|
|
245
|
-
performance, maintainability, testing, and style. Use review instructions to
|
|
246
|
-
change or extend the review scope, for example `Review for OWASP best practices
|
|
247
|
-
and authz/authn regressions.`
|
|
248
|
-
|
|
249
|
-
Severity is impact-based across all categories. The full critical/high/medium/low
|
|
250
|
-
matrix is in the [config reference](docs/config-reference.md#severity-matrix).
|
|
251
|
-
|
|
252
|
-
Use `diffpal.review.instructions`, the `instructions` action input, or
|
|
253
|
-
`--instructions-file` for repository-specific review guidance.
|
|
254
|
-
For large pull requests or slower providers, set `diffpal.review.timeout`
|
|
255
|
-
in the selected profile, for example `profiles.ci.diffpal.review.timeout: 10m`.
|
|
256
|
-
|
|
257
|
-
## Provider Recipes and Runtime Types
|
|
258
|
-
|
|
259
|
-
DiffPal delegates review to `diffpal.provider`, which points at a provider
|
|
260
|
-
under `runtime.providers`.
|
|
261
|
-
|
|
262
|
-
Ready-made config recipes. These are the same names accepted by
|
|
263
|
-
`diffpal init --wizard --setup ...`:
|
|
264
|
-
|
|
265
|
-
| Setup | Config | Secret |
|
|
266
|
-
| --- | --- | --- |
|
|
267
|
-
| Generic ACP CLI | [`examples/configs/generic-acp/config.yaml`](examples/configs/generic-acp/config.yaml) | provider-specific |
|
|
268
|
-
| Codex API key | [`examples/configs/codex-api-key/config.yaml`](examples/configs/codex-api-key/config.yaml) | `OPENAI_API_KEY` |
|
|
269
|
-
| Codex subscription auth | [`examples/configs/codex-subscription/config.yaml`](examples/configs/codex-subscription/config.yaml) | `CODEX_AUTH_JSON_B64` |
|
|
270
|
-
| Copilot fine-grained PAT | [`examples/configs/copilot-github-token/config.yaml`](examples/configs/copilot-github-token/config.yaml) | `COPILOT_GITHUB_TOKEN` |
|
|
271
|
-
| OpenCode ACP | [`examples/configs/opencode-acp/config.yaml`](examples/configs/opencode-acp/config.yaml) | OpenCode-specific |
|
|
92
|
+
After the first successful run you should see a `DiffPal Review Summary`,
|
|
93
|
+
inline findings when actionable issues exist, and
|
|
94
|
+
`.artifacts/diffpal/findings.json` in the job workspace. Read the
|
|
95
|
+
[quickstart](docs/quickstart.md) for the complete setup and fork-PR secret
|
|
96
|
+
guidance.
|
|
272
97
|
|
|
273
|
-
|
|
274
|
-
the command recipe in [`examples/README.md`](examples/README.md#generate-codex_auth_json_b64).
|
|
98
|
+
## Bring Your Own Agent
|
|
275
99
|
|
|
276
|
-
|
|
100
|
+
DiffPal delegates review to `diffpal.provider`, which points at an entry under
|
|
101
|
+
`runtime.providers`. Use `generic_acp` for any CLI that can start an ACP stdio
|
|
102
|
+
server:
|
|
277
103
|
|
|
278
104
|
```yaml
|
|
279
105
|
runtime:
|
|
@@ -287,112 +113,39 @@ diffpal:
|
|
|
287
113
|
provider: my-review-agent
|
|
288
114
|
```
|
|
289
115
|
|
|
290
|
-
|
|
291
|
-
|
|
116
|
+
Install and authenticate that CLI in CI before running DiffPal. The rest of the
|
|
117
|
+
workflow stays the same: full git checkout, DiffPal config, provider secret,
|
|
118
|
+
platform token, review command, and optional gate.
|
|
292
119
|
|
|
293
|
-
|
|
294
|
-
| --- | --- |
|
|
295
|
-
| `codex_acp` | Codex ACP via the configured Codex bridge |
|
|
296
|
-
| `copilot_acp` | Copilot ACP |
|
|
297
|
-
| `opencode_acp` | `opencode acp` |
|
|
298
|
-
| `gemini_acp` | Gemini ACP |
|
|
299
|
-
| `claude_code_acp` | Claude Code ACP |
|
|
300
|
-
| `generic_acp` | Your explicit command |
|
|
301
|
-
| `openai`, `aistudio` | Hosted API providers |
|
|
302
|
-
| `pool` | Ordered provider failover |
|
|
303
|
-
|
|
304
|
-
DiffPal passes the review task snapshot with base and head revisions. Providers
|
|
305
|
-
inspect the repository diff and supporting code through their available Git and
|
|
306
|
-
filesystem tools, then DiffPal validates the structured findings against the
|
|
307
|
-
changed ranges it collected internally.
|
|
308
|
-
|
|
309
|
-
## MCP Servers
|
|
310
|
-
|
|
311
|
-
DiffPal can pass MCP servers through the Norma runtime to providers that support
|
|
312
|
-
them. Declare servers once, then attach them to the provider:
|
|
313
|
-
|
|
314
|
-
```yaml
|
|
315
|
-
runtime:
|
|
316
|
-
mcp_servers:
|
|
317
|
-
repo-docs:
|
|
318
|
-
type: stdio
|
|
319
|
-
cmd: ["your-docs-mcp-server"]
|
|
320
|
-
args: ["--root", "."]
|
|
321
|
-
env:
|
|
322
|
-
DOCS_TOKEN: "${DOCS_TOKEN}"
|
|
323
|
-
policy-api:
|
|
324
|
-
type: http
|
|
325
|
-
url: "https://policy.example.com/mcp"
|
|
326
|
-
headers:
|
|
327
|
-
Authorization: "Bearer ${POLICY_MCP_TOKEN}"
|
|
328
|
-
providers:
|
|
329
|
-
opencode-acp:
|
|
330
|
-
type: opencode_acp
|
|
331
|
-
mcp_servers:
|
|
332
|
-
- repo-docs
|
|
333
|
-
- policy-api
|
|
334
|
-
opencode_acp:
|
|
335
|
-
model: opencode/big-pickle
|
|
336
|
-
|
|
337
|
-
diffpal:
|
|
338
|
-
provider: opencode-acp
|
|
339
|
-
```
|
|
120
|
+
## Platform Support
|
|
340
121
|
|
|
341
|
-
|
|
342
|
-
|
|
122
|
+
Use the same `.config/diffpal/config.yaml` shape across hosts. The CI file only
|
|
123
|
+
changes how the provider is installed, how credentials are passed, and which
|
|
124
|
+
publisher DiffPal runs.
|
|
343
125
|
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
|
349
|
-
| --- | --- |
|
|
350
|
-
| `summary` | Summary plus non-file artifacts such as SARIF, Code Quality, or status. No file-level findings are published. |
|
|
351
|
-
| `review` | Summary plus file-level findings for the platform; non-blocking findings stay visible but do not become merge blockers. The summary does not duplicate file-level finding details. |
|
|
352
|
-
|
|
353
|
-
Use `summary-overview: false` or `--summary-overview=false` if you do not want
|
|
354
|
-
the semantic change overview in the summary.
|
|
355
|
-
|
|
356
|
-
If two DiffPal workflows run on the same PR, give them separate channels:
|
|
357
|
-
|
|
358
|
-
```yaml
|
|
359
|
-
with:
|
|
360
|
-
review-channel: diffpal-dev
|
|
361
|
-
review-id: github-pr-${{ github.event.pull_request.number }}-diffpal-dev
|
|
362
|
-
```
|
|
363
|
-
|
|
364
|
-
That produces a separate `diffpal-dev` PR review with its own summary and file-level
|
|
365
|
-
comments.
|
|
366
|
-
|
|
367
|
-
## Local Debugging
|
|
368
|
-
|
|
369
|
-
CI is the main path, but local checks help when wiring a provider:
|
|
370
|
-
|
|
371
|
-
```bash
|
|
372
|
-
npm install --global @diffpal/diffpal@latest @openai/codex@0.139.0 @normahq/codex-acp-bridge@1.6.3
|
|
373
|
-
printf '%s' "$OPENAI_API_KEY" | codex login --with-api-key
|
|
374
|
-
diffpal doctor --mode github
|
|
375
|
-
diffpal review local --base origin/main --head HEAD --profile ci
|
|
376
|
-
```
|
|
377
|
-
|
|
378
|
-
To inspect the prompt contract without calling any provider:
|
|
379
|
-
|
|
380
|
-
```bash
|
|
381
|
-
diffpal debug prompt --base origin/main --head HEAD --profile ci --format text
|
|
382
|
-
```
|
|
126
|
+
| Host | Native outputs | Examples |
|
|
127
|
+
| --- | --- | --- |
|
|
128
|
+
| GitHub Actions | PR review summary, file-level review comments, SARIF | [`examples/ci/github-actions`](examples/ci/github-actions) |
|
|
129
|
+
| GitLab CI | MR summary, discussions, Code Quality, SARIF, status | [`examples/ci/gitlab`](examples/ci/gitlab) |
|
|
130
|
+
| Azure Pipelines | PR summary thread, PR threads, PR status | [`examples/ci/azure-pipelines`](examples/ci/azure-pipelines) |
|
|
383
131
|
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
132
|
+
GitHub users can also install the
|
|
133
|
+
[DiffPal Review action](https://github.com/marketplace/actions/diffpal-review)
|
|
134
|
+
with `uses: diffpal/action@v1`. Azure users can install the
|
|
135
|
+
[DiffPal Review extension](https://marketplace.visualstudio.com/items?itemName=diffpal.diffpal)
|
|
136
|
+
and use the `DiffPalReview@1` task.
|
|
387
137
|
|
|
388
138
|
## Documentation
|
|
389
139
|
|
|
140
|
+
- [Start here](docs/README.md)
|
|
390
141
|
- [Quickstart](docs/quickstart.md)
|
|
142
|
+
- [What success looks like](docs/what-success-looks-like.md)
|
|
391
143
|
- [CI setup guide](docs/ci-examples.md)
|
|
392
|
-
- [Examples](examples/README.md)
|
|
144
|
+
- [Examples gallery](examples/README.md)
|
|
145
|
+
- [Comparison guide](docs/comparison.md)
|
|
146
|
+
- [Troubleshooting](docs/troubleshooting.md)
|
|
393
147
|
- [Config reference](docs/config-reference.md)
|
|
394
148
|
- [Findings schema](docs/findings-schema.md)
|
|
395
149
|
- [GitLab adapter reference](docs/platform-gitlab.md)
|
|
396
150
|
- [Azure adapter reference](docs/platform-azure.md)
|
|
397
|
-
- [Release process](docs/release.md)
|
|
398
151
|
- [Contributing](CONTRIBUTING.md)
|
package/bin/diffpal.exe
CHANGED
|
Binary file
|
package/package.json
CHANGED