This repository has been archived by the owner on Aug 1, 2022. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 51
/
deny.toml
222 lines (210 loc) · 9.09 KB
/
deny.toml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
# If 1 or more target triples (and optionally, target_features) are specified,
# only the specified targets will be checked when running `cargo deny check`.
# This means, if a particular package is only ever used as a target specific
# dependency, such as, for example, the `nix` crate only being used via the
# `target_family = "unix"` configuration, that only having windows targets in
# this list would mean the nix crate, as well as any of its exclusive
# dependencies not shared by any other crates, would be ignored, as the target
# list here is effectively saying which targets you are building for.
targets = [
# The triple can be any string, but only the target triples built in to
# rustc (as of 1.40) can be checked against actual config expressions
#{ triple = "x86_64-unknown-linux-musl" },
# You can also specify which target_features you promise are enabled for a
# particular target. target_features are currently not validated against
# the actual valid features supported by the target architecture.
#{ triple = "wasm32-unknown-unknown", features = ["atomics"] },
]
# 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 path where the advisory database is cloned/fetched into
db-path = "~/.cargo/advisory-db"
# The url(s) of the advisory databases to use
db-urls = ["https://github.com/rustsec/advisory-db"]
# 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.
ignore = [
# Setting an environment variable and getting the current time in two
# different threads may result in a segfault. It’s highly unlikely
# that we are affected by this.
#
# This is blocked by
# * https://github.com/chronotope/chrono/pull/578
# * A new release of `headers`
# * `rust-crypto` not being maintained
#
# https://rustsec.org/advisories/RUSTSEC-2020-0071
"RUSTSEC-2020-0071",
"RUSTSEC-2020-0159",
# Vulnerability in `rustc-serialize` that causes stack overflow. We
# only use this crate when validating an Ethereum address with
# `eip55`. It should be impossible to trigger the vulnerability.
#
# This is unlikely to be resolved since `rust-crypto` is
# unmaintained.
"RUSTSEC-2022-0004",
# Issue in unmaintained `rust-crypto`. It’s unclear what the impact
# is and whether we’re affected.
#
# See <https://rustsec.org/advisories/RUSTSEC-2022-0011>
"RUSTSEC-2022-0011"
]
# Threshold for security vulnerabilities, any vulnerability with a CVSS score
# lower than the range specified will be ignored. Note that ignored advisories
# will still output a note when they are encountered.
# * None - CVSS Score 0.0
# * Low - CVSS Score 0.1 - 3.9
# * Medium - CVSS Score 4.0 - 6.9
# * High - CVSS Score 7.0 - 8.9
# * Critical - CVSS Score 9.0 - 10.0
#severity-threshold =
# 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"
# Must only include licenses that are GPLv3 compatible. This is mostly
# sourced from http://www.gnu.org/licenses/license-list.html
allow = [
# 0BSD is less restrictive than ISC https://opensource.org/licenses/0BSD
"0BSD",
# http://www.gnu.org/licenses/license-list.html#apache2
"Apache-2.0",
# I couldn't find any reference stating compatibility. As a
# modern permissive license it should be compatible with GPL-3.0
"BlueOak-1.0.0",
# http://www.gnu.org/licenses/license-list.html#FreeBSD
"BSD-2-Clause",
# http://www.gnu.org/licenses/license-list.html#ModifiedBSD
"BSD-3-Clause",
# http://www.gnu.org/licenses/license-list.html#CC0
"CC0-1.0",
# https://www.gnu.org/licenses/license-list.html#GNUGPLv2
"GPL-2.0 WITH Classpath-exception-2.0",
# https://www.gnu.org/licenses/license-list.html#GNUGPLv3
"GPL-3.0",
# http://www.gnu.org/licenses/license-list.html#ISC
"ISC",
# http://www.gnu.org/licenses/license-list.html#LGPLv3
"LGPL-3.0",
# Named "Expat" on the GNU license overview
# http://www.gnu.org/licenses/license-list.html#Expat
"MIT",
# http://www.gnu.org/licenses/license-list.html#MPL-2.0
"MPL-2.0",
# http://www.gnu.org/licenses/license-list.html#Unlicense
"Unlicense",
# http://www.gnu.org/licenses/license-list.html#ZLib
"Zlib",
]
# We deny everything that is not explicitly in the allow list
copyleft = "deny"
allow-osi-fsf-free = "neither"
default = "deny"
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 = [
# See https://github.com/radicle-dev/radicle-link/blob/f583f7b1de41ef91f7d3d3e161ec3b73eb0202cb/deny.toml#L129-L132
# for an explanation.
{ allow = ["ISC", "MIT", "OpenSSL"], name = "ring" }
]
[[licenses.clarify]]
name = "ring"
expression = "ISC AND MIT AND OpenSSL"
license-files = [{ path = "LICENSE", hash = 0xbd0eed23 }]
[licenses.private]
# If true, ignores workspace crates that aren't published, or are only
# published to private registries
ignore = false
# One or more private registries that you might publish crates to, if a crate
# is only published to private registries, and ignore is true, the crate will
# not have its license(s) checked
registries = [
#"https://sekretz.com/registry
]
# 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 = "allow"
# Lint level for when a crate version requirement is `*`
wildcards = "allow"
# 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"
# 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 = [] },
# We don’t want to dynamically link against openssl to prevent
# issues with code signing on macOS.
{ name = "openssl-sys" },
{ name = "openssl-probe" },
]
# Certain crates/versions that will be skipped when doing duplicate detection.
skip = [
#{ name = "ansi_term", version = "=0.11.0" },
]
# Similarly to `skip` allows you to skip certain crates during duplicate
# detection. Unlike skip, it also includes the entire tree of transitive
# dependencies starting at the specified crate, up to a certain depth, which is
# by default infinite
skip-tree = [
#{ name = "ansi_term", version = "=0.11.0", depth = 20 },
]
# 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 = [
"https://github.com/FintanH/thrussh",
"https://github.com/automerge/automerge-rs",
]
[sources.allow-org]
# 1 or more github.com organizations to allow git sources for
github = ["radicle-dev"]
# 1 or more gitlab.com organizations to allow git sources for
# gitlab = [""]
# 1 or more bitbucket.org organizations to allow git sources for
# bitbucket = [""]