Repository navigation
chore(deps): update dependency fnox to latest - #51
Open
renovate[bot] wants to merge 1 commit into
Open
renovate[bot] wants to merge 1 commit into
renovate[bot] wants to merge 1 commit into
Conversation
renovate
Bot
force-pushed
the
renovate/fnox-1.x-lockfile
branch
2 times, most recently
from
October 24, 2026 13:19
adc5a23 to
6c16a3f
Compare
renovate
Bot
force-pushed
the
renovate/fnox-1.x-lockfile
branch
from
October 27, 2026 12:32
6c16a3f to
a6f5063
Compare
This branch has not been deployed
This file contains hidden or 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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
1.36.0→v1.43.0Release Notes
jdx/fnox (fnox)
v1.43.0: : Proxy sandbox and egress hardening, exec output redaction, and new lease backendsCompare Source
fnox 1.43.0 makes
fnox proxy runharder to misuse: it now has an OS sandbox, a per-session password and blocking of private network destinations. It also adds output redaction and secret filtering tofnox exec, four new lease backends, a local audit log, value-based secret scanning, generated secrets and KeePass field references. Some proxy setups need a config change; see Breaking Changes.Highlights
fnox execcan redact secret values from piped output,fnox scancan search for your actual secret values (including in a pre-commit hook), and an opt-in audit log records which secrets were read, without recording their values.Added
Proxy
fnox proxy run --sandbox(#1039) by @jdx. Runs the command in an OS sandbox where the proxy is the only network access. Inside the sandbox, the command can't read fnox config, state and data dirs,fnox.toml/profile files and their imports, age key files, or common credential dirs (~/.ssh,~/.aws,~/.kube,~/.gnupg, ...). On Linux it also can't reach local credential sockets. It can write only to the working directory and temp files, and it can't create or change.git/hooks,.git/configor fnox config files. The rest of the filesystem stays readable: fnox hides only the paths on its list.bwrap; on macOS fnox usessandbox-exec. Windows isn't supported. If the sandbox can't start, fnox stops before resolving any secrets and never runs the command unsandboxed. The macOS path hasn't been tested on real hardware yet. On macOS the sandbox can't hide other processes or the Keychain service.query = "<name>"instead ofheaderto substitute a secret into a URL query parameter. The value is percent-encoded, and fnox refuses the request (403) if the placeholder appears anywhere else or more than once.domainaccepts a leading*.that matches exactly one subdomain level. The apex domain and deeper subdomains don't match, and patterns like*.comare rejected.headeris now optional and still defaults toauthorization.allow_domainsandallow_private(#1038) by @jdx.allow_domainslets the proxy tunnel the hosts you list without inspection or credentials while egress stays strict.allow_privatelists the internal networks the proxy may reach (see Breaking Changes). The proxy audit output now also logsrefused requestlines with the destination and the reason.Exec
fnox exec --redact, secret values in the command's stdout and stderr are replaced with[REDACTED], but only for streams that are piped or redirected; terminal output is left alone. Redaction is off by default. To turn it on everywhere, setredact_exec = trueinfnox.tomlorFNOX_EXEC_REDACT=1.--no-redactturns it off for one run, and the flag takes precedence over the environment variable, which takes precedence over config. Values shorter than 3 characters aren't redacted, and you can't combine--redactwith--replace. Redaction matches exact values only, so it won't catch a secret that has been encoded or split before printing.--onlyand--except(#1030) by @jdx. These flags limitfnox execto the secrets you select. Unselected secrets are never resolved, so their providers aren't called and can't prompt for login or fail the run. Patterns are exact names or case-sensitive globs, and you can repeat the flag or separate patterns with commas. fnox still resolves the secrets a selected secret depends on, but passes them to the command only if they're selected too. Leases follow the same filter. An unknown name, or an--onlyglob that matches nothing, is an error.Leases
OAuth2, GitLab, Tailscale and Kubernetes backends (#1037) by @jdx:
oauth2-client-credentials: access tokens from any OAuth2 token endpoint. They're revoked only if you setrevocation_url.gitlab: project or group access tokens on gitlab.com or self-hosted GitLab, deleted on revoke. GitLab expiry is date-only, so a token can stay valid for up to a day after its lease ends unless you revoke it.tailscale: tagged, ephemeral, pre-authorized auth keys. With the defaultreusable = false, every command gets a new key and fnox doesn't cache it.kubernetes: ServiceAccount tokens from the TokenRequest API, without needingkubectl. These can't be revoked and expire on their own. The minimum duration is 10 minutes.Credential URLs must use https; plain http is accepted only for localhost.
fnox lease revokeandfnox lease cleanupnow load the parent credentials a backend needs to revoke a lease, so revocation also works when the parent token is stored in[secrets].Easier lease revocation and JSON listing (#1036) by @jdx.
fnox lease revokeaccepts a full lease ID, a unique ID prefix (including the shortened ID thatlease listprints) or a backend name, which revokes all of that backend's active leases.--allrevokes every active lease in the project. If a prefix matches more than one lease, fnox lists the matches and revokes nothing.fnox lease listgains aLABELcolumn and a--jsonflag that prints full IDs and timestamps but never cached credentials.Other additions
0600file with the time, command, profile, config file, secret name, provider and whether the value came from the daemon cache. Values and command lines are never recorded. The log coversexec,get,export,env --json,list --values,check, shell integration,mcp,proxy runand the TUI. It doesn't coverlease,sync,editorreencrypt. Usefnox auditto view entries, with--secret,--command,--provider,-n/--limit,--jsonand--path.FNOX_AUDIT=on|offandFNOX_AUDIT_PATHoverride the config. Any process running as your user can edit the log, so it isn't tamper-proof. Set[audit]in your global config so a projectfnox.tomlcan't choose the log path.fnox scan(#1029) by @jdx.fnox scan --valuesresolves the active profile and searches for the actual secret values instead of text that merely looks like a secret, so every match is a real leak. Output names the secret but never prints its value.--stagedscans what's staged in the git index.--install-hookadds a pre-commit hook that runsfnox scan --values --staged. It won't overwrite an existing hook unless you pass--append. fnox skips secrets shorter than 8 characters, binary files, files over 5 MiB and gitignored files (unless you pass--include-ignored). Iffnox.tomlitself contains plain values, it will match; use--ignore fnox.tomlif that's intended.fnox set --generate(#1032) by @jdx. fnox creates the value with the OS random number generator and stores it through the selected provider.--generate-typecan bepassword(the default),hex,base64(URL-safe) oruuid.--lengthdefaults to 32 and accepts 1 to 4096. fnox doesn't print the value unless you pass--show, and it won't replace an existing secret without--force.keepassprovider now resolves{REF:...}references such as{REF:P@I:<uuid>}instead of returning the raw text. References can be embedded in longer strings and nested up to 10 levels deep. A path such aswork/github/ApiTokencan now read a custom field (ApiToken) of an entry (work/github). If an entry is titled with the full path, that entry takes precedence. Custom field names are case-sensitive.fnox setdoesn't write custom fields.Changed
fnox provider addasks for a PIN only if the key has one. If a PIN-protected key is used without a terminal, the error now suggestspin = { secret = "NAME" }.Fixed
TMPDIRchanges (#1042) by @jdx. WhenXDG_RUNTIME_DIRwas unset, fnox put the daemon socket under$TMPDIR. Tools that set their ownTMPDIR(nix-shell, build systems, CI runners, agents) each started a separate daemon. The fallback no longer usesTMPDIR: sockets go to/tmp/fnox-<uid>/fnox, or to the per-user temp directory on macOS. SetFNOX_DAEMON_SOCKET_DIRto an absolute path to choose the directory yourself; it takes precedence overXDG_RUNTIME_DIR. Fixes #1041.fnox editsaving secrets in plaintext (#1034) by @jdx. If a secret's provider was defined in an imported config,fnox editwrote the edited value back as plaintext but still reported that it had re-encrypted secrets. Edits are now re-encrypted with providers from imported configs. If a required provider is missing,fnox editnow fails instead of saving plaintext. Fixes #1033.Breaking Changes
allow_private(#1038).fnox proxy runnow refuses loopback, private, link-local (including the cloud metadata endpoint169.254.169.254), CGNAT and other reserved addresses. This applies to rules,allow_domainsandegress = "permissive". fnox checks every address a hostname resolves to. Requests to a host that resolves to one of these addresses, such as an internal API on10.x, now get403 destination resolves to a non-public address. To allow them, list the networks:proxy runcreates a random password and includes it as the user credentials (userfnox) in theHTTPS_PROXYURL it gives the command. curl, wget, Node, Python, Go and git all send it automatically. A client that removes credentials from proxy URLs gets407 Proxy Authentication Required. The password keeps out other users on a shared host, but not other processes running as you.XDG_RUNTIME_DIRisn't set, fnox won't reuse daemons started at the oldTMPDIR-based path; they exit after theiridle_timeout. Separately, the daemon protocol version is now 7 (#1031), so a daemon started by an older fnox is replaced on the next read that uses the daemon. Neither change needs action. If you use thefnox_clientcrate and buildRuntimeEnvby hand, addsocket_dir: None.Full Changelog: jdx/fnox@v1.42.1...v1.43.0
💚 Sponsor fnox
fnox is built and maintained by @jdx, an open source developer at entire.io, the title sponsor of his open source work.
If fnox handles secrets or config for you or your team, please consider becoming an individual or company sponsor. Your support funds ongoing development and helps keep fnox secure, free, and independent.
v1.42.1: : Shell hooks survive mise upgrades and work with starship in PowerShellCompare Source
fnox 1.42.1 fixes two shell-integration problems: hooks that broke after a mise upgrade, and PowerShell hooks that didn't work correctly alongside starship.
Fixed
fnox activateused to put the fully resolved binary path, such as.../installs/fnox/1.42.0/fnox, into the shell hook. Whenmise upgradedeleted that directory, every prompt printed_fnox_hook: no such file or directory, andfnox deactivatefailed too. These changes apply:eval "$(fnox activate zsh)"that finds fnox through a versionedPATHentry still writes that versioned path into the hook.fnox deactivatenow removes the hooks and thefnoxfunction even if the binary is gone. To recover, runfnox deactivateand then activate again. When you activate again, fnox still unsets the secrets that were loaded before.fnox activate pwshnow works whether it's loaded before or after starship:cdstopped loading and unloading secrets. The hook now also runs when the current location changes. It passes the event on to any existing handler, andfnox deactivateputs the previous handler back.$?and$LASTEXITCODEintact.fnox: +1 KEY) is now printed once instead of twice.Full Changelog: jdx/fnox@v1.42.0...v1.42.1
💚 Sponsor fnox
fnox is built and maintained by @jdx, an open source developer at entire.io, the title sponsor of his open source work.
If fnox handles secrets or config for you or your team, please consider becoming an individual or company sponsor. Your support funds ongoing development and helps keep fnox secure, free, and independent.
v1.42.0: : Export selected secrets by name, managed identity for azure-token leasesCompare Source
In fnox 1.42.0,
fnox exportcan export only the secrets you name, and theazure-tokenlease can authenticate with an Azure managed identity. This release also fixes the AWS SSO login prompt for templated profiles, stopsfnox sync --local-filefrom deleting personal secrets, and updates the bundled TLS root certificates after the eMudhra CA compromise.Added
fnox exportnow takes optionalKEYarguments. When you pass keys, fnox resolves and exports only those secrets, so it doesn't need to authenticate to providers for the rest of the profile. It still resolves the secrets they depend on for interpolation, but doesn't export them. A named key is exported whatever itsenvsetting, so you don't need--all. An unknown key fails with the same "did you mean" suggestions asfnox get. Format,--output,--dry-runandas_filework the same as before, and runningfnox exportwithout keys behaves as it did.azure-tokenlease (#1003) by @jdx. The lease now accepts the sameauthandmanaged_identity_client_idsettings asazure-sm,azure-kmsandazure-ac. CI jobs on Azure-hosted runners no longer need to install the Azure CLI and runaz login --identityjust for the lease. You have to turn managed identity on withauth = "managed-identity"; fnox never tries it on its own. Without it, fnox still uses service principal environment variables and thenaz/azd. In managed identity mode, fnox doesn't check forazonPATH. Settingmanaged_identity_client_idwithoutauth = "managed-identity", or using an unknownauthvalue, is a config error.Fixed
profilewas a template such as"{{ fnox.profile }}", theaws-kms,aws-psandaws-smproviders offered to runaws sso login --profile '{{ fnox.profile }}', and that command failed. The prompt now uses the provider's resolved profile, for exampleaws sso login --profile production. A profile set withprofile = { secret = "..." }also gets its resolved name now; before, fnox ran a bareaws sso login. Anauth_commandyou configure still takes precedence.fnox sync --local-filedeleting personal secrets (#1004) by @jdx. When you ran the sync a second time, fnox mistook secrets defined only infnox.local.tomlfor cached copies of shared secrets and deleted their source references. Synced entries for these secrets now recordlocal_source = truein theirsyncblock. fnox keeps and refreshes those entries on every sync. Cached copies of sharedfnox.tomlsecrets are still removed when the shared secret is deleted. Existing files work without changes. If this bug already removed one of your secrets, add it back tofnox.local.tomlonce and it will be kept from then on.rustls-webpki0.103.16 andwebpki-root-certs/webpki-roots1.0.10, which stop trusting those certificates for HTTPS connections.Full Changelog: jdx/fnox@v1.41.0...v1.42.0
💚 Sponsor fnox
fnox is built and maintained by @jdx, an open source developer at entire.io, the title sponsor of his open source work.
If fnox handles secrets or config for you or your team, please consider becoming an individual or company sponsor. Your support funds ongoing development and helps keep fnox secure, free, and independent.
v1.41.0: : gopass provider and profile-aware config templatesCompare Source
fnox 1.41.0 adds a
gopassprovider and lets secret defaults and provider fields use the active profile through Tera templates.fnox execno longer decryptsenv = falsesecrets that nothing uses, and the AWS SSO login prompt now logs in to the profile your provider is configured with.Added
gopass cat, writes them withgopass insert -f(fnox set --provider gopass), and tests the connection withgopass ls --flat. The optionalmountsetting is added to the front of every secret path. fnox removes one trailing newline from each value and leaves other whitespace alone. Errors tell you whether gopass is missing, the GPG key is locked or unavailable, or the secret path doesn't exist. You can also add the provider withfnox provider add <name> gopass.defaultand literal string provider fields are now rendered as Tera templates if they contain{{,{%or{#. Two variables are available:fnox.profile(the selected profile with the highest priority, ordefaultif none is selected) andfnox.profiles(all selected profiles, lowest priority first). This means you can write values that follow the profile, such as AWS profiles or SST stages, once instead of repeating them for every profile.FNOX_PROFILEis still not exported to child processes.${NAME}interpolation. A default is only rendered when it's actually used, and only the${NAME}references left after rendering must exist. So a branch of an{% if %}that isn't taken requires nothing.{% raw %}...{% endraw %}.value,description, list fields such as agerecipients, andcredential_command, which keeps its own template context.{{,{%or{#as plain text will now be treated as a template. Wrap it in{% raw %}to keep the old value.--help(#990) by @jdx. Every public command now shows a description, examples and links to the relevant guides when you runfnox <command> --help. This is the same content as the CLI reference at fnox.jdx.dev/cli. Flags and behavior are unchanged.Fixed
fnox execno longer resolves unusedenv = falsesecrets (#984) by @andersonkrs. Previously,fnox execresolved every secret in the profile and then removed theenv = falseones from the child's environment. With a PIN-protected age identity, each extra decrypt asked for the PIN again.fnox execnow selects secrets the same way asfnox env --json. It resolves only the secrets it injects plus what they depend on:${NAME}references in defaults, provider secret references such astoken = { secret = ... }, and the inputs of selected leases. If acommandlease is selected, it still resolves the whole profile. Theaws-stslease's list of inputs now also includes the environment variables for web identity, container credentials and EC2 instance metadata, so those can still be supplied asenv = falsesecrets. The child's environment is the same as before.aws-ps,aws-smoraws-kmsprovider that setsprofile, the default prompt now runsaws sso login --profile <name>instead of a bareaws sso login. Before, the bare command logged in to thedefaultprofile and failed if your AWS config had none. The profile is only added when it's a literal value and noauth_commandis set. On Windows, it's only added when the name uses ASCII letters, digits,-,_and..Documentation
New Contributors
Full Changelog: jdx/fnox@v1.40.0...v1.41.0
💚 Sponsor fnox
fnox is built and maintained by @jdx, an open source developer at entire.io, the title sponsor of his open source work.
If fnox handles secrets or config for you or your team, please consider becoming an individual or company sponsor. Your support funds ongoing development and helps keep fnox secure, free, and independent.
v1.40.0: : Lua plugin providers, Kubernetes Secrets, and Windows daemon supportCompare Source
fnox 1.40.0 adds custom providers written as Lua plugins, a read-only Kubernetes Secrets provider, 1Password Environments, file-backed
plainproviders and Bitwarden folder scoping. The daemon now runs on Windows. This release also fixes Azure service principal authentication, repeated hardware PIN prompts for age identities, andfnox setdropping piped values.Added
[plugins], then use it withtype = "lua":provider.luathat returns hooks.getis required.get_batch,put,encryptandtestare optional, and the hooks you define decide whetherfnox setandfnox importcan write to the provider. A provider'soptionstable (string values, which can be secret references) is passed to the plugin asctx.options. Plugins can use thefnox.http,fnox.json,fnox.cmd,fnox.logandfnox.base64modules.fnox.auth_error(msg)triggers the provider'sauth_commandflow.fnox plugin install,update,link,lsanduninstall, plusfnox provider add NAME lua --plugin ....git clone). Plugins go in$FNOX_DATA_DIR/plugins, which defaults to$XDG_DATA_HOME/fnoxor~/.local/share/fnox. SetFNOX_PLUGINS_DIRto use a different location. If a project declares a different source or ref than the installed one, fnox won't load the plugin until you runfnox plugin update <name>.docs/providers/lua.mdfor details.kubernetesprovider reads existing Secrets through the Kubernetes API. It only makes namedGETrequests and never lists, watches or writes Secrets. A reference can besecret,secret/keyornamespace/secret/key. The optionalcontext,namespace,kubeconfigandprefixsettings control where it looks, and theFNOX_K8S_CONTEXTenvironment variable can also select the context. Daemon caching is always disabled for this provider, even withdaemon_cache = true.1passwordprovider can read variables from a 1Password Environment usingenvironment://<environment-id>/<VARIABLE>references. You can mix these with vault item references in the same config. fnox reads each Environment once per provider instance, and a variable missing from the Environment is an error. This needs the betaopCLI with theop environmentcommand.plainprovider (#954) by @joshbode. The newfileandformatsettings make each secret'svaluea key to look up in that file.formatcan beenv,shell,json,yamlortoml, and you must set it wheneverfileis set. A relative path resolves against the config file that declares the provider. The file is read-only, and a missing key counts as a missing secret, sodefaultandif_missingstill apply.foldersetting limits lookups to one Bitwarden folder. For nested folders, use the full path, such asfolder = "MyApp/Production". This lets items with the same name exist in different folders. It works with bothbwandrbw.azure-sm,azure-kmsandazure-acacceptauth = "managed-identity", with an optionalmanaged_identity_client_idfor a user-assigned identity. fnox never tries managed identity on its own; you have to setauth.fnox-clientAPI are unchanged.Fixed
AZURE_TENANT_ID,AZURE_CLIENT_IDandAZURE_CLIENT_SECRETare all set. Without them, fnox falls back to theaz/azdlogin. For sovereign clouds, setAZURE_AUTHORITY_HOST. These variables can also be fnox secrets resolved byfnox exec.age-plugin-tpm --pin,age-plugin-yubikey), a value used by several providers made one command ask for the PIN up to three times. Now a successful decrypt is reused for the rest of the request, so you get one prompt perfnox get,execorexport, or per daemon request. Nothing is kept between requests, and a failed decrypt can be retried.fnox setwith piped stdin and metadata flags (#976) by @jdx.echo val | fnox set A -d "desc"(or with--defaultor--if-missing) said it worked but saved no value. fnox now stores the piped value along with the metadata. If stdin is empty, only the metadata is updated, as before.Changed
fnox importparsing (#954) by @joshbode.fnox importnow accepts the{secrets, metadata}document thatfnox export --format json|yaml|tomlproduces. Theenvparser now follows Docker Compose dotenv rules for inline comments. For example,PORT=8080 # defaultnow imports as8080, where it used to keep the comment as part of the value.#without whitespace before it, as inID=val#ue, and#inside quotes are still part of the value.New Contributors
Full Changelog: jdx/fnox@v1.39.0...v1.40.0
💚 Sponsor fnox
fnox is built and maintained by @jdx, an open source developer at entire.io, the title sponsor of his open source work.
If fnox handles secrets or config for you or your team, please consider becoming an individual or company sponsor. Your support funds ongoing development and helps keep fnox secure, free, and independent.
v1.39.0: : fnox env --json and a daemon client crate for other toolsCompare Source
fnox 1.39.0 lets other tools, starting with mise, get the same environment that
fnox execwould give a command. They can runfnox env --json, or use the newfnox-clientcrate to read it straight from a running daemon's cache.Added
fnox env --json(#936) by @jdx. Prints a versioned JSON document describing the environment for a command. It hasset(variables),files(as_filecontents for the caller to write, so fnox leaves no files behind),remove(variables to unset),missingandleases. Callers applyremove, thenset, thenfiles.fnox env --json --keys DATABASE_URL,GCP_SA_JSON fnox env --json --describe # list keys and where they can be injected, without resolving anything--for exec(the default) coversenv = trueandenv = "exec"secrets plus leases.--for shellcovers onlyenv = truesecrets and runs no leases.--keys(repeatable, comma-separated) resolves only the listed keys and the secrets they depend on.env = falsesecrets are never printed.config,invalid_keys,resolution) and exit with status 1.--describenever contacts the daemon, creates leases or prompts. With--keys, it checks the keys up front. Its output includesdaemon_enabled.fnox exec, using the same daemon cache. The full contract is indocs/reference/env-json.md.--jsonis required for now.fnox-clientcrate (#937) by @jdx. A lightweight Rust library (no tokio,fnox-coreor provider SDKs) that lets other programs get thefnox env --jsondocument from a running fnox daemon in one Unix-socket round trip. The client is read-only: it never starts the daemon, stores values or triggers provider calls. On a cache miss, the caller should runfnox env --jsonitself so prompts and hardware-key touches still work. On Windows, the crate builds but always reports that no daemon is available.fnox-clientis published alongside fnox with the same version number. To support it, the daemon protocol moves to v6, and the daemon now refuses requests from projects whose config (orFNOX_DAEMON) does not enable it.Changed
fnox daemon clearstill reaches it. You don't need to do anything else.fnox execnow builds its environment the same way asfnox env --json(#936). It behaves the same as before, with one exception: it now removes every out-of-scope profile secret from the child's environment, even ones that weren't resolved.Full Changelog: jdx/fnox@v1.38.1...v1.39.0
💚 Sponsor fnox
fnox is built and maintained by @jdx, an open source developer at entire.io, the title sponsor of his open source work.
If fnox handles secrets or config for you or your team, please consider becoming an individual or company sponsor. Your support funds ongoing development and helps keep fnox secure, free, and independent.
v1.38.1: : Windows release binaries are backCompare Source
fnox 1.38.1 publishes Windows release binaries again. The v1.37.0 and v1.38.0 releases did not include them.
Fixed
Full Changelog: jdx/fnox@v1.38.0...v1.38.1
💚 Sponsor fnox
fnox is built and maintained by @jdx, an open source developer at entire.io, the title sponsor of his open source work.
If fnox handles secrets or config for you or your team, please consider becoming an individual or company sponsor. Your support funds ongoing development and helps keep fnox secure, free, and independent.
Configuration
📅 Schedule: (UTC)
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.