Skip to content

Commit 7bdfec0

Browse files
Copilotfproulx-boostsecurityclaude
authored
Document skip configuration for acknowledging findings (#364)
* Document skip configuration for acknowledging findings Add "Acknowledging Findings" section to README.md to improve discoverability of the existing skip configuration feature. This allows users to suppress false positives or accepted risks. Includes: - Use case explanations for when to skip findings - Complete documentation of all filter options (job, level, path, rule, purl, osv_id) - Practical examples showing how to skip by severity level, workflow path, and rule name Fixes #40 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <[email protected]> * Document --skip command-line flag for acknowledging findings Add documentation for the --skip command-line flag in both the Configuration Options section and the Acknowledging Findings section. Clarify that the command-line flag only supports skipping rules globally by name, while the configuration file supports granular filtering by job, path, level, etc. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <[email protected]> --------- Co-authored-by: François Proulx <[email protected]> Co-authored-by: Claude <[email protected]>
1 parent 2ad992e commit 7bdfec0

File tree

1 file changed

+64
-1
lines changed

1 file changed

+64
-1
lines changed

README.md

Lines changed: 64 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -104,14 +104,15 @@ poutine analyze_org my-org/project --token "$GL_TOKEN" --scm gitlab --scm-base-u
104104

105105
### Configuration Options
106106

107-
```
107+
```
108108
--token SCM access token (required for the commands analyze_repo, analyze_org) (env: GH_TOKEN)
109109
--format Output format (default: pretty, json, sarif)
110110
--ignore-forks Ignore forked repositories in the organization(analyze_org)
111111
--scm SCM platform (default: github, gitlab)
112112
--scm-base-url Base URI of the self-hosted SCM instance
113113
--threads Number of threads to use (default: 2)
114114
--config Path to the configuration file (default: .poutine.yml)
115+
--skip Add rules to the skip list for the current run (can be specified multiple times)
115116
--verbose Enable debug logging
116117
```
117118

@@ -194,6 +195,68 @@ For more examples, see:
194195
- Built-in rules in [opa/rego/rules/](./opa/rego/rules/) directory
195196
- [.poutine.sample.yml](.poutine.sample.yml) - Configuration examples
196197

198+
### Acknowledging Findings
199+
200+
`poutine` supports skipping (acknowledging) specific findings that are not relevant in your context. This can be useful when:
201+
- A finding is a false positive
202+
- The security concern has been addressed through other means (e.g., hardened self-hosted runners)
203+
- You've accepted the risk for a particular finding
204+
205+
To acknowledge findings, you can either:
206+
1. Add a `skip` section to your `.poutine.yml` configuration file
207+
2. Use the `--skip` command-line flag (e.g., `--skip rule_name`) for one-time skipping
208+
209+
#### Configuration File
210+
211+
Add a `skip` section to your `.poutine.yml` configuration file. Each skip rule can filter findings by:
212+
- `job`: Filter by job name
213+
- `level`: Filter by severity level (note, warning, error)
214+
- `path`: Filter by workflow file path
215+
- `rule`: Filter by rule name
216+
- `purl`: Filter by package URL
217+
- `osv_id`: Filter by OSV ID
218+
219+
Example configuration:
220+
221+
```yaml
222+
skip:
223+
# Skip all note-level findings
224+
- level: note
225+
226+
# Skip findings in a specific workflow
227+
- path: .github/workflows/safe.yml
228+
229+
# Skip a specific rule everywhere
230+
- rule: unpinnable_action
231+
232+
# Skip a rule for specific workflows
233+
- rule: pr_runs_on_self_hosted
234+
path:
235+
- .github/workflows/pr.yml
236+
- .github/workflows/deploy.yml
237+
238+
# Skip findings for specific packages
239+
- rule: github_action_from_unverified_creator_used
240+
purl:
241+
- pkg:githubactions/dorny/paths-filter
242+
```
243+
244+
For more examples, see [.poutine.sample.yml](.poutine.sample.yml).
245+
246+
#### Command Line
247+
248+
You can also skip rules on the command line using the `--skip` flag. Note that the command-line flag only supports skipping rules by name globally and does not support the granular filtering options (job, path, level, etc.) available in the configuration file.
249+
250+
```bash
251+
# Skip a single rule globally
252+
poutine analyze_repo org/repo --skip unpinnable_action
253+
254+
# Skip multiple rules globally
255+
poutine analyze_repo org/repo --skip unpinnable_action --skip pr_runs_on_self_hosted
256+
```
257+
258+
This is useful for one-time analysis or when you want to temporarily ignore specific rules without modifying your configuration file. For more granular control (e.g., skipping a rule only in specific workflows), use the configuration file instead.
259+
197260
## AI Coding Assistant Integration (MCP)
198261

199262
`poutine` can be integrated with AI coding assistants like Claude Code, Gemini, etc. through the Model Context Protocol (MCP). This allows AI assistants to analyze repositories and validate CI/CD pipelines directly from your development environment.

0 commit comments

Comments
 (0)