-
-
Notifications
You must be signed in to change notification settings - Fork 1k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #4781 from epage/deny
chore(ci): Switch to cargo-deny
- Loading branch information
Showing
2 changed files
with
166 additions
and
7 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,26 +1,49 @@ | ||
name: Security audit | ||
|
||
permissions: | ||
contents: read | ||
|
||
on: | ||
pull_request: | ||
paths: | ||
- '**/Cargo.toml' | ||
- '**/Cargo.lock' | ||
push: | ||
paths: | ||
- '**/Cargo.toml' | ||
- '**/Cargo.lock' | ||
schedule: | ||
- cron: '3 3 3 * *' | ||
permissions: | ||
contents: read | ||
branches: | ||
- main | ||
|
||
env: | ||
RUST_BACKTRACE: 1 | ||
CARGO_TERM_COLOR: always | ||
CLICOLOR: 1 | ||
|
||
jobs: | ||
security_audit: | ||
permissions: | ||
issues: write # to create issues (actions-rs/audit-check) | ||
checks: write # to create check (actions-rs/audit-check) | ||
runs-on: ubuntu-latest | ||
# Prevent sudden announcement of a new advisory from failing ci: | ||
continue-on-error: true | ||
steps: | ||
- name: Checkout repository | ||
uses: actions/checkout@v3 | ||
- uses: actions-rs/audit-check@v1 | ||
with: | ||
token: ${{ secrets.GITHUB_TOKEN }} | ||
|
||
cargo_deny: | ||
permissions: | ||
issues: write # to create issues (actions-rs/audit-check) | ||
checks: write # to create check (actions-rs/audit-check) | ||
runs-on: ubuntu-latest | ||
strategy: | ||
matrix: | ||
checks: | ||
- bans licenses sources | ||
steps: | ||
- uses: actions/checkout@v3 | ||
- uses: EmbarkStudios/cargo-deny-action@v1 | ||
with: | ||
command: check ${{ matrix.checks }} | ||
rust-version: stable |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,136 @@ | ||
# Note that all fields that take a lint level have these possible values: | ||
# * deny - An error will be produced and the check will fail | ||
# * warn - A warning will be produced, but the check will not fail | ||
# * allow - No warning or error will be produced, though in some cases a note | ||
# will be | ||
|
||
# This section is considered when running `cargo deny check advisories` | ||
# More documentation for the advisories section can be found here: | ||
# https://embarkstudios.github.io/cargo-deny/checks/advisories/cfg.html | ||
[advisories] | ||
# The lint level for security vulnerabilities | ||
vulnerability = "deny" | ||
# The lint level for unmaintained crates | ||
unmaintained = "warn" | ||
# The lint level for crates that have been yanked from their source registry | ||
yanked = "warn" | ||
# The lint level for crates with security notices. Note that as of | ||
# 2019-12-17 there are no security notice advisories in | ||
# https://github.com/rustsec/advisory-db | ||
notice = "warn" | ||
# A list of advisory IDs to ignore. Note that ignored advisories will still | ||
# output a note when they are encountered. | ||
# | ||
# e.g. "RUSTSEC-0000-0000", | ||
ignore = [ | ||
] | ||
|
||
# This section is considered when running `cargo deny check licenses` | ||
# More documentation for the licenses section can be found here: | ||
# https://embarkstudios.github.io/cargo-deny/checks/licenses/cfg.html | ||
[licenses] | ||
unlicensed = "deny" | ||
# List of explicitly allowed licenses | ||
# See https://spdx.org/licenses/ for list of possible licenses | ||
# [possible values: any SPDX 3.11 short identifier (+ optional exception)]. | ||
allow = [ | ||
"MIT", | ||
"Apache-2.0", | ||
"Unicode-DFS-2016", | ||
#"Apache-2.0 WITH LLVM-exception", | ||
] | ||
# List of explicitly disallowed licenses | ||
# See https://spdx.org/licenses/ for list of possible licenses | ||
# [possible values: any SPDX 3.11 short identifier (+ optional exception)]. | ||
deny = [ | ||
] | ||
# Lint level for licenses considered copyleft | ||
copyleft = "deny" | ||
# Blanket approval or denial for OSI-approved or FSF Free/Libre licenses | ||
# * both - The license will be approved if it is both OSI-approved *AND* FSF | ||
# * either - The license will be approved if it is either OSI-approved *OR* FSF | ||
# * osi-only - The license will be approved if is OSI-approved *AND NOT* FSF | ||
# * fsf-only - The license will be approved if is FSF *AND NOT* OSI-approved | ||
# * neither - This predicate is ignored and the default lint level is used | ||
allow-osi-fsf-free = "neither" | ||
# Lint level used when no other predicates are matched | ||
# 1. License isn't in the allow or deny lists | ||
# 2. License isn't copyleft | ||
# 3. License isn't OSI/FSF, or allow-osi-fsf-free = "neither" | ||
default = "deny" | ||
# The confidence threshold for detecting a license from license text. | ||
# The higher the value, the more closely the license text must be to the | ||
# canonical license text of a valid SPDX license file. | ||
# [possible values: any between 0.0 and 1.0]. | ||
confidence-threshold = 0.8 | ||
# Allow 1 or more licenses on a per-crate basis, so that particular licenses | ||
# aren't accepted for every possible crate as with the normal allow list | ||
exceptions = [ | ||
# Each entry is the crate and version constraint, and its specific allow | ||
# list | ||
#{ allow = ["Zlib"], name = "adler32", version = "*" }, | ||
] | ||
|
||
[licenses.private] | ||
# If true, ignores workspace crates that aren't published, or are only | ||
# published to private registries. | ||
# To see how to mark a crate as unpublished (to the official registry), | ||
# visit https://doc.rust-lang.org/cargo/reference/manifest.html#the-publish-field. | ||
ignore = true | ||
|
||
# This section is considered when running `cargo deny check bans`. | ||
# More documentation about the 'bans' section can be found here: | ||
# https://embarkstudios.github.io/cargo-deny/checks/bans/cfg.html | ||
[bans] | ||
# Lint level for when multiple versions of the same crate are detected | ||
multiple-versions = "warn" | ||
# Lint level for when a crate version requirement is `*` | ||
wildcards = "deny" | ||
# The graph highlighting used when creating dotgraphs for crates | ||
# with multiple versions | ||
# * lowest-version - The path to the lowest versioned duplicate is highlighted | ||
# * simplest-path - The path to the version with the fewest edges is highlighted | ||
# * all - Both lowest-version and simplest-path are used | ||
highlight = "all" | ||
# The default lint level for `default` features for crates that are members of | ||
# the workspace that is being checked. This can be overridden by allowing/denying | ||
# `default` on a crate-by-crate basis if desired. | ||
workspace-default-features = "allow" | ||
# The default lint level for `default` features for external crates that are not | ||
# members of the workspace. This can be overridden by allowing/denying `default` | ||
# on a crate-by-crate basis if desired. | ||
external-default-features = "allow" | ||
# List of crates that are allowed. Use with care! | ||
allow = [ | ||
#{ name = "ansi_term", version = "=0.11.0" }, | ||
] | ||
# List of crates to deny | ||
deny = [ | ||
# Each entry the name of a crate and a version range. If version is | ||
# not specified, all versions will be matched. | ||
#{ name = "ansi_term", version = "=0.11.0" }, | ||
# | ||
# Wrapper crates can optionally be specified to allow the crate when it | ||
# is a direct dependency of the otherwise banned crate | ||
#{ name = "ansi_term", version = "=0.11.0", wrappers = [] }, | ||
] | ||
|
||
# This section is considered when running `cargo deny check sources`. | ||
# More documentation about the 'sources' section can be found here: | ||
# https://embarkstudios.github.io/cargo-deny/checks/sources/cfg.html | ||
[sources] | ||
# Lint level for what to happen when a crate from a crate registry that is not | ||
# in the allow list is encountered | ||
unknown-registry = "deny" | ||
# Lint level for what to happen when a crate from a git repository that is not | ||
# in the allow list is encountered | ||
unknown-git = "deny" | ||
# List of URLs for allowed crate registries. Defaults to the crates.io index | ||
# if not specified. If it is specified but empty, no registries are allowed. | ||
allow-registry = ["https://github.com/rust-lang/crates.io-index"] | ||
# List of URLs for allowed Git repositories | ||
allow-git = [] | ||
|
||
[sources.allow-org] | ||
# 1 or more github.com organizations to allow git sources for | ||
github = [] |