diff --git a/src/bin/cargo/commands/logout.rs b/src/bin/cargo/commands/logout.rs index bc16ee55ecf9..c7387c494962 100644 --- a/src/bin/cargo/commands/logout.rs +++ b/src/bin/cargo/commands/logout.rs @@ -10,11 +10,6 @@ pub fn cli() -> Command { } pub fn exec(config: &mut Config, args: &ArgMatches) -> CliResult { - if !config.cli_unstable().credential_process { - config - .cli_unstable() - .fail_if_stable_command(config, "logout", 8933)?; - } ops::registry_logout( config, args.get_one::("registry").map(String::as_str), diff --git a/src/doc/man/cargo-login.md b/src/doc/man/cargo-login.md index 11c663c46c6d..54c823d2d8d3 100644 --- a/src/doc/man/cargo-login.md +++ b/src/doc/man/cargo-login.md @@ -48,4 +48,4 @@ Take care to keep the token secret, it should not be shared with anyone else. cargo login ## SEE ALSO -{{man "cargo" 1}}, {{man "cargo-publish" 1}} +{{man "cargo" 1}}, {{man "cargo-logout" 1}}, {{man "cargo-publish" 1}} diff --git a/src/doc/man/cargo-logout.md b/src/doc/man/cargo-logout.md new file mode 100644 index 000000000000..1b2428bc3045 --- /dev/null +++ b/src/doc/man/cargo-logout.md @@ -0,0 +1,55 @@ +# cargo-logout(1) + +## NAME + +cargo-logout --- Remove an API token from the registry locally + +## SYNOPSIS + +`cargo logout` [_options_] + +## DESCRIPTION + +This command will remove the API token from the local credential storage. +Credentials are stored in `$CARGO_HOME/credentials.toml` where `$CARGO_HOME` +defaults to `.cargo` in your home directory. + +If `--registry` is not specified, then the credentials for +will be removed. + +This will not revoke the token on the server. If you need to revoke the token, +visit the registry website and follow its instructions (see + to revoke the token for ). + +## OPTIONS + +### Logout Options + +{{#options}} +{{> options-registry }} +{{/options}} + +### Display Options + +{{#options}} +{{> options-display }} +{{/options}} + +{{> section-options-common }} + +{{> section-environment }} + +{{> section-exit-status }} + +## EXAMPLES + +1. Remove the default registry token: + + cargo logout + +2. Remove the token for a specific registry: + + cargo logout --registry my-registry + +## SEE ALSO +{{man "cargo" 1}}, {{man "cargo-login" 1}} diff --git a/src/doc/man/cargo.md b/src/doc/man/cargo.md index 2d71fc4d75cd..3b1c62e3253e 100644 --- a/src/doc/man/cargo.md +++ b/src/doc/man/cargo.md @@ -102,6 +102,9 @@ available at . {{man "cargo-login" 1}}\     Save an API token from the registry locally. +{{man "cargo-logout" 1}}\ +    Remove an API token from the registry locally. + {{man "cargo-owner" 1}}\     Manage the owners of a crate on the registry. diff --git a/src/doc/man/generated_txt/cargo-login.txt b/src/doc/man/generated_txt/cargo-login.txt index da61f3702564..808a3f104bd0 100644 --- a/src/doc/man/generated_txt/cargo-login.txt +++ b/src/doc/man/generated_txt/cargo-login.txt @@ -100,5 +100,5 @@ EXAMPLES cargo login SEE ALSO - cargo(1), cargo-publish(1) + cargo(1), cargo-logout(1), cargo-publish(1) diff --git a/src/doc/man/generated_txt/cargo-logout.txt b/src/doc/man/generated_txt/cargo-logout.txt new file mode 100644 index 000000000000..5adbd791a652 --- /dev/null +++ b/src/doc/man/generated_txt/cargo-logout.txt @@ -0,0 +1,106 @@ +CARGO-LOGOUT(1) + +NAME + cargo-logout — Remove an API token from the registry locally + +SYNOPSIS + cargo logout [options] + +DESCRIPTION + This command will remove the API token from the local credential + storage. Credentials are stored in $CARGO_HOME/credentials.toml where + $CARGO_HOME defaults to .cargo in your home directory. + + If --registry is not specified, then the credentials for + will be removed. + + This will not revoke the token on the server. If you need to revoke the + token, visit the registry website and follow its instructions (see + to revoke the token for ). + +OPTIONS + Logout Options + --registry registry + Name of the registry to use. Registry names are defined in Cargo + config files + . If not + specified, the default registry is used, which is defined by the + registry.default config key which defaults to crates-io. + + Display Options + -v, --verbose + Use verbose output. May be specified twice for “very verbose” + output which includes extra output such as dependency warnings and + build script output. May also be specified with the term.verbose + config value + . + + -q, --quiet + Do not print cargo log messages. May also be specified with the + term.quiet config value + . + + --color when + Control when colored output is used. Valid values: + + o auto (default): Automatically detect if color support is + available on the terminal. + + o always: Always display colors. + + o never: Never display colors. + + May also be specified with the term.color config value + . + + Common Options + +toolchain + If Cargo has been installed with rustup, and the first argument to + cargo begins with +, it will be interpreted as a rustup toolchain + name (such as +stable or +nightly). See the rustup documentation + for more + information about how toolchain overrides work. + + --config KEY=VALUE or PATH + Overrides a Cargo configuration value. The argument should be in + TOML syntax of KEY=VALUE, or provided as a path to an extra + configuration file. This flag may be specified multiple times. See + the command-line overrides section + + for more information. + + -C PATH + Changes the current working directory before executing any specified + operations. This affects things like where cargo looks by default + for the project manifest (Cargo.toml), as well as the directories + searched for discovering .cargo/config.toml, for example. + + -h, --help + Prints help information. + + -Z flag + Unstable (nightly-only) flags to Cargo. Run cargo -Z help for + details. + +ENVIRONMENT + See the reference + + for details on environment variables that Cargo reads. + +EXIT STATUS + o 0: Cargo succeeded. + + o 101: Cargo failed to complete. + +EXAMPLES + 1. Remove the default registry token: + + cargo logout + + 2. Remove the token for a specific registry: + + cargo logout --registry my-registry + +SEE ALSO + cargo(1), cargo-login(1) + diff --git a/src/doc/man/generated_txt/cargo.txt b/src/doc/man/generated_txt/cargo.txt index 9ebf6ef21507..dcedc2f78f0c 100644 --- a/src/doc/man/generated_txt/cargo.txt +++ b/src/doc/man/generated_txt/cargo.txt @@ -95,6 +95,9 @@ COMMANDS cargo-login(1)     Save an API token from the registry locally. + cargo-logout(1) +     Remove an API token from the registry locally. + cargo-owner(1)     Manage the owners of a crate on the registry. diff --git a/src/doc/src/SUMMARY.md b/src/doc/src/SUMMARY.md index c44bc864e53b..273936559854 100644 --- a/src/doc/src/SUMMARY.md +++ b/src/doc/src/SUMMARY.md @@ -82,6 +82,7 @@ * [cargo uninstall](commands/cargo-uninstall.md) * [Publishing Commands](commands/publishing-commands.md) * [cargo login](commands/cargo-login.md) + * [cargo logout](commands/cargo-logout.md) * [cargo owner](commands/cargo-owner.md) * [cargo package](commands/cargo-package.md) * [cargo publish](commands/cargo-publish.md) diff --git a/src/doc/src/commands/cargo-login.md b/src/doc/src/commands/cargo-login.md index 63a885e9b59d..4dd2c58ac5bf 100644 --- a/src/doc/src/commands/cargo-login.md +++ b/src/doc/src/commands/cargo-login.md @@ -122,4 +122,4 @@ details on environment variables that Cargo reads. cargo login ## SEE ALSO -[cargo(1)](cargo.html), [cargo-publish(1)](cargo-publish.html) +[cargo(1)](cargo.html), [cargo-logout(1)](cargo-logout.html), [cargo-publish(1)](cargo-publish.html) diff --git a/src/doc/src/commands/cargo-logout.md b/src/doc/src/commands/cargo-logout.md new file mode 100644 index 000000000000..4705e62795d8 --- /dev/null +++ b/src/doc/src/commands/cargo-logout.md @@ -0,0 +1,129 @@ +# cargo-logout(1) + +## NAME + +cargo-logout --- Remove an API token from the registry locally + +## SYNOPSIS + +`cargo logout` [_options_] + +## DESCRIPTION + +This command will remove the API token from the local credential storage. +Credentials are stored in `$CARGO_HOME/credentials.toml` where `$CARGO_HOME` +defaults to `.cargo` in your home directory. + +If `--registry` is not specified, then the credentials for +will be removed. + +This will not revoke the token on the server. If you need to revoke the token, +visit the registry website and follow its instructions (see + to revoke the token for ). + +## OPTIONS + +### Logout Options + +
+
--registry registry
+
Name of the registry to use. Registry names are defined in Cargo config +files. If not specified, the default registry is used, +which is defined by the registry.default config key which defaults to +crates-io.
+ + +
+ +### Display Options + +
+
-v
+
--verbose
+
Use verbose output. May be specified twice for “very verbose” output which +includes extra output such as dependency warnings and build script output. +May also be specified with the term.verbose +config value.
+ + +
-q
+
--quiet
+
Do not print cargo log messages. +May also be specified with the term.quiet +config value.
+ + +
--color when
+
Control when colored output is used. Valid values:

+
    +
  • auto (default): Automatically detect if color support is available on the +terminal.
  • +
  • always: Always display colors.
  • +
  • never: Never display colors.
  • +
+

May also be specified with the term.color +config value.

+ + +
+ +### Common Options + +
+ +
+toolchain
+
If Cargo has been installed with rustup, and the first argument to cargo +begins with +, it will be interpreted as a rustup toolchain name (such +as +stable or +nightly). +See the rustup documentation +for more information about how toolchain overrides work.
+ + +
--config KEY=VALUE or PATH
+
Overrides a Cargo configuration value. The argument should be in TOML syntax of KEY=VALUE, +or provided as a path to an extra configuration file. This flag may be specified multiple times. +See the command-line overrides section for more information.
+ + +
-C PATH
+
Changes the current working directory before executing any specified operations. This affects +things like where cargo looks by default for the project manifest (Cargo.toml), as well as +the directories searched for discovering .cargo/config.toml, for example.
+ + +
-h
+
--help
+
Prints help information.
+ + +
-Z flag
+
Unstable (nightly-only) flags to Cargo. Run cargo -Z help for details.
+ + +
+ + +## ENVIRONMENT + +See [the reference](../reference/environment-variables.html) for +details on environment variables that Cargo reads. + + +## EXIT STATUS + +* `0`: Cargo succeeded. +* `101`: Cargo failed to complete. + + +## EXAMPLES + +1. Remove the default registry token: + + cargo logout + +2. Remove the token for a specific registry: + + cargo logout --registry my-registry + +## SEE ALSO +[cargo(1)](cargo.html), [cargo-login(1)](cargo-login.html) diff --git a/src/doc/src/commands/cargo.md b/src/doc/src/commands/cargo.md index 9e3392fd4101..fe782fefb75f 100644 --- a/src/doc/src/commands/cargo.md +++ b/src/doc/src/commands/cargo.md @@ -102,6 +102,9 @@ available at . [cargo-login(1)](cargo-login.html)\     Save an API token from the registry locally. +[cargo-logout(1)](cargo-logout.html)\ +    Remove an API token from the registry locally. + [cargo-owner(1)](cargo-owner.html)\     Manage the owners of a crate on the registry. diff --git a/src/doc/src/commands/publishing-commands.md b/src/doc/src/commands/publishing-commands.md index 372faada2162..81d440151d32 100644 --- a/src/doc/src/commands/publishing-commands.md +++ b/src/doc/src/commands/publishing-commands.md @@ -1,5 +1,6 @@ # Publishing Commands * [cargo login](cargo-login.md) +* [cargo logout](cargo-logout.md) * [cargo owner](cargo-owner.md) * [cargo package](cargo-package.md) * [cargo publish](cargo-publish.md) diff --git a/src/doc/src/reference/config.md b/src/doc/src/reference/config.md index 6578b3cc0ab3..c57a45f67593 100644 --- a/src/doc/src/reference/config.md +++ b/src/doc/src/reference/config.md @@ -296,7 +296,7 @@ Cargo will search `PATH` for its executable. Configuration values with sensitive information are stored in the `$CARGO_HOME/credentials.toml` file. This file is automatically created and updated -by [`cargo login`]. It follows the same format as Cargo config files. +by [`cargo login`] and [`cargo logout`]. It follows the same format as Cargo config files. ```toml [registry] @@ -1193,6 +1193,7 @@ Sets the width for progress bar. [`cargo bench`]: ../commands/cargo-bench.md [`cargo login`]: ../commands/cargo-login.md +[`cargo logout`]: ../commands/cargo-logout.md [`cargo doc`]: ../commands/cargo-doc.md [`cargo new`]: ../commands/cargo-new.md [`cargo publish`]: ../commands/cargo-publish.md diff --git a/src/doc/src/reference/publishing.md b/src/doc/src/reference/publishing.md index 013faf6e246f..98d572c346f5 100644 --- a/src/doc/src/reference/publishing.md +++ b/src/doc/src/reference/publishing.md @@ -34,6 +34,10 @@ This command will inform Cargo of your API token and store it locally in your shared with anyone else. If it leaks for any reason, you should revoke it immediately. +> **Note**: The [`cargo logout`] command can be used to remove the token from +> `credentials.toml`. This can be useful if you no longer need it stored on +> the local machine. + ### Before publishing a new crate Keep in mind that crate names on [crates.io] are allocated on a first-come-first-serve @@ -264,6 +268,7 @@ request the org owner to do so. [Rust API Guidelines]: https://rust-lang.github.io/api-guidelines/ [`cargo login`]: ../commands/cargo-login.md +[`cargo logout`]: ../commands/cargo-logout.md [`cargo package`]: ../commands/cargo-package.md [`cargo publish`]: ../commands/cargo-publish.md [`categories`]: manifest.md#the-categories-field diff --git a/src/doc/src/reference/unstable.md b/src/doc/src/reference/unstable.md index e5647eab97a6..accd45d8ee87 100644 --- a/src/doc/src/reference/unstable.md +++ b/src/doc/src/reference/unstable.md @@ -101,7 +101,6 @@ Each new feature described below should explain how to use it. * [`cargo config`](#cargo-config) --- Adds a new subcommand for viewing config files. * Registries * [credential-process](#credential-process) --- Adds support for fetching registry tokens from an external authentication program. - * [`cargo logout`](#cargo-logout) --- Adds the `logout` command to remove the currently saved registry token. * [publish-timeout](#publish-timeout) --- Controls the timeout between uploading the crate and being available in the index * [registry-auth](#registry-auth) --- Adds support for authenticated registries, and generate registry authentication tokens using asymmetric cryptography. * Other @@ -905,12 +904,11 @@ The `credential-process` feature adds a config setting to fetch registry authentication tokens by calling an external process. Token authentication is used by the [`cargo login`], [`cargo publish`], -[`cargo owner`], and [`cargo yank`] commands. Additionally, this feature adds -a new `cargo logout` command. +[`cargo owner`], [`cargo yank`], and [`cargo logout`] commands. To use this feature, you must pass the `-Z credential-process` flag on the command-line. Additionally, you must remove any current tokens currently saved -in the [`credentials.toml` file] (which can be done with the new `logout` command). +in the [`credentials.toml` file] (which can be done with the [`cargo logout`] command). #### `credential-process` Configuration @@ -999,7 +997,7 @@ A basic authenticator is a process that returns a token on stdout. Newlines will be trimmed. The process inherits the user's stdin and stderr. It should exit 0 on success, and nonzero on error. -With this form, [`cargo login`] and `cargo logout` are not supported and +With this form, [`cargo login`] and [`cargo logout`] are not supported and return an error if used. ##### Cargo authenticator @@ -1044,28 +1042,8 @@ The following environment variables will be provided to the executed command: * `CARGO_REGISTRY_INDEX_URL` --- The URL of the registry index. * `CARGO_REGISTRY_NAME_OPT` --- Optional name of the registry. Should not be used as a storage key. Not always available. -#### `cargo logout` - -A new `cargo logout` command has been added to make it easier to remove a -token from storage. This supports both [`credentials.toml` file] tokens and -`credential-process` tokens. - -When used with `credentials.toml` file tokens, it needs the `-Z unstable-options` -command-line option: - -```console -cargo logout -Z unstable-options -``` - -When used with the `credential-process` config, use the `-Z -credential-process` command-line option: - - -```console -cargo logout -Z credential-process -``` - [`cargo login`]: ../commands/cargo-login.md +[`cargo logout`]: ../commands/cargo-logout.md [`cargo publish`]: ../commands/cargo-publish.md [`cargo owner`]: ../commands/cargo-owner.md [`cargo yank`]: ../commands/cargo-yank.md @@ -1488,4 +1466,8 @@ terminal where Cargo can automatically detect the width. Sparse registry support has been stabilized in the 1.68 release. See [Registry Protocols](registries.md#registry-protocols) for more information. +#### `cargo logout` + +The [`cargo logout`] command has been stabilized in the 1.70 release. + [target triple]: ../appendix/glossary.md#target '"target" (glossary)' diff --git a/src/etc/man/cargo-login.1 b/src/etc/man/cargo-login.1 index 8e076cae97ce..d1a4c8a5b54b 100644 --- a/src/etc/man/cargo-login.1 +++ b/src/etc/man/cargo-login.1 @@ -126,4 +126,4 @@ cargo login .RE .RE .SH "SEE ALSO" -\fBcargo\fR(1), \fBcargo\-publish\fR(1) +\fBcargo\fR(1), \fBcargo\-logout\fR(1), \fBcargo\-publish\fR(1) diff --git a/src/etc/man/cargo-logout.1 b/src/etc/man/cargo-logout.1 new file mode 100644 index 000000000000..81d36ee011f9 --- /dev/null +++ b/src/etc/man/cargo-logout.1 @@ -0,0 +1,139 @@ +'\" t +.TH "CARGO\-LOGOUT" "1" +.nh +.ad l +.ss \n[.ss] 0 +.SH "NAME" +cargo\-logout \[em] Remove an API token from the registry locally +.SH "SYNOPSIS" +\fBcargo logout\fR [\fIoptions\fR] +.SH "DESCRIPTION" +This command will remove the API token from the local credential storage. +Credentials are stored in \fB$CARGO_HOME/credentials.toml\fR where \fB$CARGO_HOME\fR +defaults to \fB\&.cargo\fR in your home directory. +.sp +If \fB\-\-registry\fR is not specified, then the credentials for +will be removed. +.sp +This will not revoke the token on the server. If you need to revoke the token, +visit the registry website and follow its instructions (see + to revoke the token for ). +.SH "OPTIONS" +.SS "Logout Options" +.sp +\fB\-\-registry\fR \fIregistry\fR +.RS 4 +Name of the registry to use. Registry names are defined in \fICargo config +files\fR \&. If not specified, the default registry is used, +which is defined by the \fBregistry.default\fR config key which defaults to +\fBcrates\-io\fR\&. +.RE +.SS "Display Options" +.sp +\fB\-v\fR, +\fB\-\-verbose\fR +.RS 4 +Use verbose output. May be specified twice for \[lq]very verbose\[rq] output which +includes extra output such as dependency warnings and build script output. +May also be specified with the \fBterm.verbose\fR +\fIconfig value\fR \&. +.RE +.sp +\fB\-q\fR, +\fB\-\-quiet\fR +.RS 4 +Do not print cargo log messages. +May also be specified with the \fBterm.quiet\fR +\fIconfig value\fR \&. +.RE +.sp +\fB\-\-color\fR \fIwhen\fR +.RS 4 +Control when colored output is used. Valid values: +.sp +.RS 4 +\h'-04'\(bu\h'+02'\fBauto\fR (default): Automatically detect if color support is available on the +terminal. +.RE +.sp +.RS 4 +\h'-04'\(bu\h'+02'\fBalways\fR: Always display colors. +.RE +.sp +.RS 4 +\h'-04'\(bu\h'+02'\fBnever\fR: Never display colors. +.RE +.sp +May also be specified with the \fBterm.color\fR +\fIconfig value\fR \&. +.RE +.SS "Common Options" +.sp +\fB+\fR\fItoolchain\fR +.RS 4 +If Cargo has been installed with rustup, and the first argument to \fBcargo\fR +begins with \fB+\fR, it will be interpreted as a rustup toolchain name (such +as \fB+stable\fR or \fB+nightly\fR). +See the \fIrustup documentation\fR +for more information about how toolchain overrides work. +.RE +.sp +\fB\-\-config\fR \fIKEY=VALUE\fR or \fIPATH\fR +.RS 4 +Overrides a Cargo configuration value. The argument should be in TOML syntax of \fBKEY=VALUE\fR, +or provided as a path to an extra configuration file. This flag may be specified multiple times. +See the \fIcommand\-line overrides section\fR for more information. +.RE +.sp +\fB\-C\fR \fIPATH\fR +.RS 4 +Changes the current working directory before executing any specified operations. This affects +things like where cargo looks by default for the project manifest (\fBCargo.toml\fR), as well as +the directories searched for discovering \fB\&.cargo/config.toml\fR, for example. +.RE +.sp +\fB\-h\fR, +\fB\-\-help\fR +.RS 4 +Prints help information. +.RE +.sp +\fB\-Z\fR \fIflag\fR +.RS 4 +Unstable (nightly\-only) flags to Cargo. Run \fBcargo \-Z help\fR for details. +.RE +.SH "ENVIRONMENT" +See \fIthe reference\fR for +details on environment variables that Cargo reads. +.SH "EXIT STATUS" +.sp +.RS 4 +\h'-04'\(bu\h'+02'\fB0\fR: Cargo succeeded. +.RE +.sp +.RS 4 +\h'-04'\(bu\h'+02'\fB101\fR: Cargo failed to complete. +.RE +.SH "EXAMPLES" +.sp +.RS 4 +\h'-04' 1.\h'+01'Remove the default registry token: +.sp +.RS 4 +.nf +cargo logout +.fi +.RE +.RE +.sp +.RS 4 +\h'-04' 2.\h'+01'Remove the token for a specific registry: +.sp +.RS 4 +.nf +cargo logout \-\-registry my\-registry +.fi +.RE +.RE +.SH "SEE ALSO" +\fBcargo\fR(1), \fBcargo\-login\fR(1) diff --git a/src/etc/man/cargo.1 b/src/etc/man/cargo.1 index ee9715d2b63e..1e05e8875c96 100644 --- a/src/etc/man/cargo.1 +++ b/src/etc/man/cargo.1 @@ -120,6 +120,10 @@ available at \&. .br \ \ \ \ Save an API token from the registry locally. .sp +\fBcargo\-logout\fR(1) +.br +\ \ \ \ Remove an API token from the registry locally. +.sp \fBcargo\-owner\fR(1) .br \ \ \ \ Manage the owners of a crate on the registry. diff --git a/tests/testsuite/credential_process.rs b/tests/testsuite/credential_process.rs index ffcaa97e911e..8c202c6a3caf 100644 --- a/tests/testsuite/credential_process.rs +++ b/tests/testsuite/credential_process.rs @@ -268,7 +268,7 @@ the credential-process configuration value must pass the \ cargo_process("logout -Z credential-process") .replace_crates_io(registry.index_url()) - .masquerade_as_nightly_cargo(&["credential-process", "cargo-logout"]) + .masquerade_as_nightly_cargo(&["credential-process"]) .with_status(101) .with_stderr( "\ @@ -377,7 +377,7 @@ fn logout() { .unwrap(); cargo_process("logout -Z credential-process") - .masquerade_as_nightly_cargo(&["credential-process", "cargo-logout"]) + .masquerade_as_nightly_cargo(&["credential-process"]) .replace_crates_io(server.index_url()) .with_stderr( "\ diff --git a/tests/testsuite/logout.rs b/tests/testsuite/logout.rs index 78a9429c4e77..2fe8a0574f3a 100644 --- a/tests/testsuite/logout.rs +++ b/tests/testsuite/logout.rs @@ -5,22 +5,6 @@ use cargo_test_support::registry::TestRegistry; use cargo_test_support::{cargo_process, registry}; use std::fs; -#[cargo_test] -fn gated() { - registry::init(); - cargo_process("logout") - .masquerade_as_nightly_cargo(&["cargo-logout"]) - .with_status(101) - .with_stderr( - "\ -[ERROR] the `cargo logout` command is unstable, pass `-Z unstable-options` to enable it -See https://github.com/rust-lang/cargo/issues/8933 for more information about \ -the `cargo logout` command. -", - ) - .run(); -} - /// Checks whether or not the token is set for the given token. fn check_config_token(registry: Option<&str>, should_be_set: bool) { let credentials = cargo_home().join("credentials.toml"); @@ -47,12 +31,11 @@ fn check_config_token(registry: Option<&str>, should_be_set: bool) { fn simple_logout_test(registry: &TestRegistry, reg: Option<&str>, flag: &str, note: &str) { let msg = reg.unwrap_or("crates-io"); check_config_token(reg, true); - let mut cargo = cargo_process(&format!("logout -Z unstable-options {}", flag)); + let mut cargo = cargo_process(&format!("logout {}", flag)); if reg.is_none() { cargo.replace_crates_io(registry.index_url()); } cargo - .masquerade_as_nightly_cargo(&["cargo-logout"]) .with_stderr(&format!( "\ [LOGOUT] token for `{msg}` has been removed from local storage @@ -63,12 +46,11 @@ If you need to revoke the token, visit {note} and follow the instructions there. .run(); check_config_token(reg, false); - let mut cargo = cargo_process(&format!("logout -Z unstable-options {}", flag)); + let mut cargo = cargo_process(&format!("logout {}", flag)); if reg.is_none() { cargo.replace_crates_io(registry.index_url()); } cargo - .masquerade_as_nightly_cargo(&["cargo-logout"]) .with_stderr(&format!("[LOGOUT] not currently logged in to `{msg}`")) .run(); check_config_token(reg, false);