You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
- Add WAVE_SKIP_SCOPE_CHECK=1 env var to bypass all scope validation
(fine-grained PATs, unsupported forges, air-gapped envs)
- Fix nil introspector path: emit per-scope violations instead of
warn+skip (completes Finding 2 fix)
- Update fine-grained PAT hint to reference env var not nonexistent flag
- Add TestValidatePersonas_SkipScopeCheckEnv test
- Update TestValidatePersonas_UnknownForge to expect violations
- Docs: environment.md, manifest.md, concepts/personas.md
Copy file name to clipboardExpand all lines: docs/concepts/personas.md
+2Lines changed: 2 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -313,6 +313,8 @@ personas:
313
313
314
314
Token scopes enforce **least-privilege API access** per persona. During preflight, Wave validates that the active forge token satisfies each persona's declared scopes before pipeline execution begins. This catches misconfigured credentials early rather than failing mid-pipeline.
315
315
316
+
Introspection failures (including fine-grained GitHub PATs, which lack readable scope headers) produce violations with remediation hints. Set `WAVE_SKIP_SCOPE_CHECK=1` to bypass scope validation when introspection is unavailable.
317
+
316
318
### Permission Hierarchy
317
319
318
320
Permissions are hierarchical: `admin`satisfies `write`, which satisfies `read`. Canonical resources include `issues`, `pulls`, `repos`, `actions`, and `packages`.
|`WAVE_SKIP_SCOPE_CHECK`|`bool`|`false`| Bypass token scope validation entirely. Use for fine-grained PATs (GitHub), unsupported forges, or air-gapped environments where token introspection is unavailable. |
14
15
|`WAVE_MAX_MIGRATION_VERSION`|`int`|`0`| Limit migrations to this version (0 = unlimited). Useful for gradual rollout. |
15
16
|`NO_COLOR`|`string`|_(unset)_| Disable colored output. Any non-empty value disables color. Follows the [NO_COLOR](https://no-color.org) standard. |
Copy file name to clipboardExpand all lines: docs/reference/manifest.md
+6Lines changed: 6 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -251,6 +251,12 @@ If `token_scopes` is omitted for a persona, scope validation is skipped for that
251
251
252
252
Unknown resources produce warnings (not errors) to allow forward-compatible scope declarations.
253
253
254
+
**Introspection failures** (network errors, API errors) produce violations that block execution — the persona explicitly declared required scopes and those cannot be verified.
255
+
256
+
**Fine-grained GitHub PATs** lack the `X-OAuth-Scopes` response header used for introspection. Wave surfaces a violation with a remediation hint. Recreate the token as a classic PAT, or set `WAVE_SKIP_SCOPE_CHECK=1` to bypass scope validation for environments where introspection is unavailable.
257
+
258
+
**Unsupported forges** (e.g. Bitbucket) produce violations for each declared scope. Set `WAVE_SKIP_SCOPE_CHECK=1` to bypass.
0 commit comments