Files
rust-audit-check/README.md
T
2019-10-09 19:29:13 +03:00

78 lines
2.6 KiB
Markdown

# Rust `audit-check` Action
![MIT licensed](https://img.shields.io/badge/license-MIT-blue.svg)
[![Gitter](https://badges.gitter.im/actions-rs/community.svg)](https://gitter.im/actions-rs/community)
> Security vulnerabilities audit
This GitHub Action is using [cargo-audit](https://github.com/RustSec/cargo-audit)
to perform an audit for crates with security vulnerabilities.
## Usage
### Audit changes
We can utilize the GitHub Actions ability to execute workflow
only if [specific files were changed](https://help.github.com/en/articles/workflow-syntax-for-github-actions#onpushpull_requestpaths)
and execute this Action to check the changed dependencies only:
```yaml
name: Security audit
on:
push:
paths:
- '**/Cargo.toml'
- '**/Cargo.lock'
jobs:
security_audit:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- uses: actions-rs/audit-check@v1
with:
token: ${{ secrets.GITHUB_TOKEN }}
```
In that case this Action will create a Check with the advisories found:
![Check screenshot](.github/check_screenshot.png)
#### Limitations
Due to [token permissions](https://help.github.com/en/articles/virtual-environments-for-github-actions#token-permissions),
this Action **WILL NOT** be able to create Checks for Pull Requests from the forked repositories,
see [actions-rs/clippy-check#2](https://github.com/actions-rs/clippy-check/issues/2) for details.\
As a fallback this Action will output all advisories found to the stdout.
## Scheduled audit
Another option is to use [`schedule`](https://help.github.com/en/articles/events-that-trigger-workflows#scheduled-events-schedule) event
and execute this Action periodically against the repository default branch `HEAD`.
```yaml
name: Security audit
on:
schedule:
- cron: '0 0 * * *'
jobs:
audit:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- uses: actions-rs/audit-check@alpha
with:
token: ${{ secrets.GITHUB_TOKEN }}
```
With this workflow Action will be executed at midnight on each day
and check if there any new advisories appear for crate dependencies.\
For each such advisory an issue will be created:
![Issue screenshot](.github/issue_screenshot.png)
## Inputs
| Name | Required | Description | Type | Default |
| ------------| -------- | -------------------------------------------------------------------------| ------ | --------|
| `token` | ✓ | GitHub token, `${{ secrets.GITHUB_TOKEN }}` | string | |