9
9
# The values provided in this template are the default values that will be used
10
10
# when any section or field is not specified in your own configuration
11
11
12
+ # Root options
13
+
14
+ # The graph table configures how the dependency graph is constructed and thus
15
+ # which crates the checks are performed against
16
+ [graph ]
12
17
# If 1 or more target triples (and optionally, target_features) are specified,
13
18
# only the specified targets will be checked when running `cargo deny check`.
14
19
# This means, if a particular package is only ever used as a target specific
20
25
targets = [
21
26
# The triple can be any string, but only the target triples built in to
22
27
# rustc (as of 1.40) can be checked against actual config expressions
23
- # { triple = "x86_64-unknown-linux-musl" } ,
28
+ # "x86_64-unknown-linux-musl",
24
29
# You can also specify which target_features you promise are enabled for a
25
30
# particular target. target_features are currently not validated against
26
31
# the actual valid features supported by the target architecture.
27
32
# { triple = "wasm32-unknown-unknown", features = ["atomics"] },
28
33
]
34
+ # When creating the dependency graph used as the source of truth when checks are
35
+ # executed, this field can be used to prune crates from the graph, removing them
36
+ # from the view of cargo-deny. This is an extremely heavy hammer, as if a crate
37
+ # is pruned from the graph, all of its dependencies will also be pruned unless
38
+ # they are connected to another crate in the graph that hasn't been pruned,
39
+ # so it should be used with care. The identifiers are [Package ID Specifications]
40
+ # (https://doc.rust-lang.org/cargo/reference/pkgid-spec.html)
41
+ # exclude = []
42
+ # If true, metadata will be collected with `--all-features`. Note that this can't
43
+ # be toggled off if true, if you want to conditionally enable `--all-features` it
44
+ # is recommended to pass `--all-features` on the cmd line instead
45
+ all-features = false
46
+ # If true, metadata will be collected with `--no-default-features`. The same
47
+ # caveat with `all-features` applies
48
+ no-default-features = false
49
+ # If set, these feature will be enabled when collecting metadata. If `--features`
50
+ # is specified on the cmd line they will take precedence over this option.
51
+ # features = []
52
+
53
+ # The output table provides options for how/if diagnostics are outputted
54
+ [output ]
55
+ # When outputting inclusion graphs in diagnostics that include features, this
56
+ # option can be used to specify the depth at which feature edges will be added.
57
+ # This option is included since the graphs can be quite large and the addition
58
+ # of features from the crate(s) to all of the graph roots can be far too verbose.
59
+ # This option can be overridden via `--feature-depth` on the cmd line
60
+ feature-depth = 1
29
61
30
62
# This section is considered when running `cargo deny check advisories`
31
63
# More documentation for the advisories section can be found here:
32
64
# https://embarkstudios.github.io/cargo-deny/checks/advisories/cfg.html
33
65
[advisories ]
34
- # The path where the advisory database is cloned/fetched into
35
- db-path = " ~/.cargo/ advisory-db "
66
+ # The path where the advisory databases are cloned/fetched into
67
+ # db-path = "$CARGO_HOME/ advisory-dbs "
36
68
# The url(s) of the advisory databases to use
37
- db-urls = [" https://github.com/rustsec/advisory-db" ]
38
- # The lint level for security vulnerabilities
39
- vulnerability = " deny"
40
- # The lint level for unmaintained crates
41
- unmaintained = " warn"
42
- # The lint level for crates that have been yanked from their source registry
43
- yanked = " warn"
44
- # The lint level for crates with security notices. Note that as of
45
- # 2019-12-17 there are no security notice advisories in
46
- # https://github.com/rustsec/advisory-db
47
- notice = " warn"
69
+ # db-urls = ["https://github.com/rustsec/advisory-db"]
48
70
# A list of advisory IDs to ignore. Note that ignored advisories will still
49
71
# output a note when they are encountered.
50
72
ignore = [
73
+ " RUSTSEC-2024-0370" , # proc-macro-error is unmaintained
74
+ " RUSTSEC-2024-0437" , # Crash due to uncontrolled recursion in protobuf crate
51
75
# "RUSTSEC-0000-0000",
76
+ # { id = "RUSTSEC-0000-0000", reason = "you can specify a reason the advisory is ignored" },
77
+ # "[email protected] ", # you can also ignore yanked crate versions if you wish
78
+ # { crate = "[email protected] ", reason = "you can specify why you are ignoring the yanked crate" },
52
79
]
53
- # Threshold for security vulnerabilities, any vulnerability with a CVSS score
54
- # lower than the range specified will be ignored. Note that ignored advisories
55
- # will still output a note when they are encountered.
56
- # * None - CVSS Score 0.0
57
- # * Low - CVSS Score 0.1 - 3.9
58
- # * Medium - CVSS Score 4.0 - 6.9
59
- # * High - CVSS Score 7.0 - 8.9
60
- # * Critical - CVSS Score 9.0 - 10.0
61
- # severity-threshold =
80
+ # If this is true, then cargo deny will use the git executable to fetch advisory database.
81
+ # If this is false, then it uses a built-in git library.
82
+ # Setting this to true can be helpful if you have special authentication requirements that cargo-deny does not support.
83
+ # See Git Authentication for more information about setting up git authentication.
84
+ # git-fetch-with-cli = true
62
85
63
86
# This section is considered when running `cargo deny check licenses`
64
87
# More documentation for the licenses section can be found here:
65
88
# https://embarkstudios.github.io/cargo-deny/checks/licenses/cfg.html
66
89
[licenses ]
67
- # The lint level for crates which do not have a detectable license
68
- unlicensed = " deny"
69
- # List of explictly allowed licenses
90
+ # List of explicitly allowed licenses
70
91
# See https://spdx.org/licenses/ for list of possible licenses
71
92
# [possible values: any SPDX 3.11 short identifier (+ optional exception)].
72
93
allow = [
73
94
" MIT" ,
74
95
" Apache-2.0" ,
75
- " BSD-2-Clause" ,
76
96
" BSD-3-Clause" ,
77
97
" Unicode-3.0" ,
98
+ # "Apache-2.0 WITH LLVM-exception",
78
99
]
79
- # List of explictly disallowed licenses
80
- # See https://spdx.org/licenses/ for list of possible licenses
81
- # [possible values: any SPDX 3.11 short identifier (+ optional exception)].
82
- deny = [
83
- # "Nokia",
84
- ]
85
- # Lint level for licenses considered copyleft
86
- copyleft = " warn"
87
- # Blanket approval or denial for OSI-approved or FSF Free/Libre licenses
88
- # * both - The license will be approved if it is both OSI-approved *AND* FSF
89
- # * either - The license will be approved if it is either OSI-approved *OR* FSF
90
- # * osi-only - The license will be approved if is OSI-approved *AND NOT* FSF
91
- # * fsf-only - The license will be approved if is FSF *AND NOT* OSI-approved
92
- # * neither - This predicate is ignored and the default lint level is used
93
- allow-osi-fsf-free = " neither"
94
- # Lint level used when no other predicates are matched
95
- # 1. License isn't in the allow or deny lists
96
- # 2. License isn't copyleft
97
- # 3. License isn't OSI/FSF, or allow-osi-fsf-free = "neither"
98
- default = " deny"
99
100
# The confidence threshold for detecting a license from license text.
100
101
# The higher the value, the more closely the license text must be to the
101
102
# canonical license text of a valid SPDX license file.
@@ -106,17 +107,16 @@ confidence-threshold = 0.8
106
107
exceptions = [
107
108
# Each entry is the crate and version constraint, and its specific allow
108
109
# list
110
+ # { allow = ["Zlib"], crate = "adler32" },
109
111
{ allow = [" Unicode-DFS-2016" ], name = " unicode-ident" , version = " *" },
110
112
]
111
113
112
114
# Some crates don't have (easily) machine readable licensing information,
113
115
# adding a clarification entry for it allows you to manually specify the
114
116
# licensing information
115
117
# [[licenses.clarify]]
116
- # The name of the crate the clarification applies to
117
- # name = "ring"
118
- # The optional version constraint for the crate
119
- # version = "*"
118
+ # The package spec the clarification applies to
119
+ # crate = "ring"
120
120
# The SPDX expression for the license requirements of the crate
121
121
# expression = "MIT AND ISC AND OpenSSL"
122
122
# One or more files in the crate's source used as the "source of truth" for
@@ -125,13 +125,15 @@ exceptions = [
125
125
# and the crate will be checked normally, which may produce warnings or errors
126
126
# depending on the rest of your configuration
127
127
# license-files = [
128
- # Each entry is a crate relative path, and the (opaque) hash of its contents
129
- # { path = "LICENSE", hash = 0xbd0eed23 }
128
+ # Each entry is a crate relative path, and the (opaque) hash of its contents
129
+ # { path = "LICENSE", hash = 0xbd0eed23 }
130
130
# ]
131
131
132
132
[licenses .private ]
133
133
# If true, ignores workspace crates that aren't published, or are only
134
- # published to private registries
134
+ # published to private registries.
135
+ # To see how to mark a crate as unpublished (to the official registry),
136
+ # visit https://doc.rust-lang.org/cargo/reference/manifest.html#the-publish-field.
135
137
ignore = false
136
138
# One or more private registries that you might publish crates to, if a crate
137
139
# is only published to private registries, and ignore is true, the crate will
@@ -154,30 +156,63 @@ wildcards = "allow"
154
156
# * simplest-path - The path to the version with the fewest edges is highlighted
155
157
# * all - Both lowest-version and simplest-path are used
156
158
highlight = " all"
159
+ # The default lint level for `default` features for crates that are members of
160
+ # the workspace that is being checked. This can be overridden by allowing/denying
161
+ # `default` on a crate-by-crate basis if desired.
162
+ workspace-default-features = " allow"
163
+ # The default lint level for `default` features for external crates that are not
164
+ # members of the workspace. This can be overridden by allowing/denying `default`
165
+ # on a crate-by-crate basis if desired.
166
+ external-default-features = " allow"
157
167
# List of crates that are allowed. Use with care!
158
168
allow = [
159
- # { name = "ansi_term", version = "=0.11.0" },
169
+
170
+ # { crate = "[email protected] ", reason = "you can specify a reason it is allowed" },
160
171
]
161
172
# List of crates to deny
162
173
deny = [
163
- # Each entry the name of a crate and a version range. If version is
164
- # not specified, all versions will be matched.
165
- # { name = "ansi_term", version = "=0.11.0" },
166
- #
174
+
175
+ # { crate = "[email protected] ", reason = "you can specify a reason it is banned" },
167
176
# Wrapper crates can optionally be specified to allow the crate when it
168
177
# is a direct dependency of the otherwise banned crate
169
- # { name = "ansi_term", version = "= 0.11.0", wrappers = [] },
178
+ # { crate = "ansi_term@ 0.11.0", wrappers = ["this-crate-directly-depends-on-ansi_term" ] },
170
179
]
180
+
181
+ # List of features to allow/deny
182
+ # Each entry the name of a crate and a version range. If version is
183
+ # not specified, all versions will be matched.
184
+ # [[bans.features]]
185
+ # crate = "reqwest"
186
+ # Features to not allow
187
+ # deny = ["json"]
188
+ # Features to allow
189
+ # allow = [
190
+ # "rustls",
191
+ # "__rustls",
192
+ # "__tls",
193
+ # "hyper-rustls",
194
+ # "rustls",
195
+ # "rustls-pemfile",
196
+ # "rustls-tls-webpki-roots",
197
+ # "tokio-rustls",
198
+ # "webpki-roots",
199
+ # ]
200
+ # If true, the allowed features must exactly match the enabled feature set. If
201
+ # this is set there is no point setting `deny`
202
+ # exact = true
203
+
171
204
# Certain crates/versions that will be skipped when doing duplicate detection.
172
205
skip = [
173
- # { name = "ansi_term", version = "=0.11.0" },
206
+
207
+ # { crate = "[email protected] ", reason = "you can specify a reason why it can't be updated/removed" },
174
208
]
175
209
# Similarly to `skip` allows you to skip certain crates during duplicate
176
210
# detection. Unlike skip, it also includes the entire tree of transitive
177
211
# dependencies starting at the specified crate, up to a certain depth, which is
178
- # by default infinite
212
+ # by default infinite.
179
213
skip-tree = [
180
- # { name = "ansi_term", version = "=0.11.0", depth = 20 },
214
+ # "[email protected] ", # will be skipped along with _all_ of its direct and transitive dependencies
215
+ # { crate = "[email protected] ", depth = 20 },
181
216
]
182
217
183
218
# This section is considered when running `cargo deny check sources`.
@@ -195,3 +230,11 @@ unknown-git = "warn"
195
230
allow-registry = [" https://github.com/rust-lang/crates.io-index" ]
196
231
# List of URLs for allowed Git repositories
197
232
allow-git = []
233
+
234
+ [sources .allow-org ]
235
+ # github.com organizations to allow git sources for
236
+ github = []
237
+ # gitlab.com organizations to allow git sources for
238
+ gitlab = []
239
+ # bitbucket.org organizations to allow git sources for
240
+ bitbucket = []
0 commit comments