Skip to content

Commit

Permalink
Auto merge of #11950 - ehuss:stabilize-logout, r=epage
Browse files Browse the repository at this point in the history
Stabilize `cargo logout`

This stabilizes the `cargo logout` command.

Closes #11910
Closes #11884
  • Loading branch information
bors committed Apr 13, 2023
2 parents 3837689 + a70c108 commit 84b7041
Show file tree
Hide file tree
Showing 20 changed files with 493 additions and 58 deletions.
5 changes: 0 additions & 5 deletions src/bin/cargo/commands/logout.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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)?;
}
let registry = args.registry(config)?;
ops::registry_logout(config, registry.as_deref())?;
Ok(())
Expand Down
2 changes: 1 addition & 1 deletion src/doc/man/cargo-login.md
Original file line number Diff line number Diff line change
Expand Up @@ -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}}
57 changes: 57 additions & 0 deletions src/doc/man/cargo-logout.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
# 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 the default
registry will be removed (configured by
[`registry.default`](../reference/config.html#registrydefault), which defaults
to <https://crates.io/>).

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
<https://crates.io/me> to revoke the token for <https://crates.io/>).

## 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}}
3 changes: 3 additions & 0 deletions src/doc/man/cargo.md
Original file line number Diff line number Diff line change
Expand Up @@ -102,6 +102,9 @@ available at <https://rust-lang.org>.
{{man "cargo-login" 1}}\
&nbsp;&nbsp;&nbsp;&nbsp;Save an API token from the registry locally.

{{man "cargo-logout" 1}}\
&nbsp;&nbsp;&nbsp;&nbsp;Remove an API token from the registry locally.

{{man "cargo-owner" 1}}\
&nbsp;&nbsp;&nbsp;&nbsp;Manage the owners of a crate on the registry.

Expand Down
2 changes: 1 addition & 1 deletion src/doc/man/generated_txt/cargo-login.txt
Original file line number Diff line number Diff line change
Expand Up @@ -107,5 +107,5 @@ EXAMPLES
cargo login

SEE ALSO
cargo(1), cargo-publish(1)
cargo(1), cargo-logout(1), cargo-publish(1)

115 changes: 115 additions & 0 deletions src/doc/man/generated_txt/cargo-logout.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,115 @@
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 the default
registry will be removed (configured by registry.default
<https://doc.rust-lang.org/cargo/reference/config.html#registrydefault>,
which defaults to <https://crates.io/>).

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
<https://crates.io/me> to revoke the token for <https://crates.io/>).

OPTIONS
Logout Options
--registry registry
Name of the registry to use. Registry names are defined in Cargo
config files
<https://doc.rust-lang.org/cargo/reference/config.html>. 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
<https://doc.rust-lang.org/cargo/reference/config.html>.

-q, --quiet
Do not print cargo log messages. May also be specified with the
term.quiet config value
<https://doc.rust-lang.org/cargo/reference/config.html>.

--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
<https://doc.rust-lang.org/cargo/reference/config.html>.

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
<https://rust-lang.github.io/rustup/overrides.html> 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
<https://doc.rust-lang.org/cargo/reference/config.html#command-line-overrides>
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. This
option must appear before the command name, for example cargo -C
path/to/my-project build.

This option is only available on the nightly channel
<https://doc.rust-lang.org/book/appendix-07-nightly-rust.html> and
requires the -Z unstable-options flag to enable (see #10098
<https://github.com/rust-lang/cargo/issues/10098>).

-h, --help
Prints help information.

-Z flag
Unstable (nightly-only) flags to Cargo. Run cargo -Z help for
details.

ENVIRONMENT
See the reference
<https://doc.rust-lang.org/cargo/reference/environment-variables.html>
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)

3 changes: 3 additions & 0 deletions src/doc/man/generated_txt/cargo.txt
Original file line number Diff line number Diff line change
Expand Up @@ -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.

Expand Down
1 change: 1 addition & 0 deletions src/doc/src/SUMMARY.md
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down
2 changes: 1 addition & 1 deletion src/doc/src/commands/cargo-login.md
Original file line number Diff line number Diff line change
Expand Up @@ -127,4 +127,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)
136 changes: 136 additions & 0 deletions src/doc/src/commands/cargo-logout.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,136 @@
# 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 the default
registry will be removed (configured by
[`registry.default`](../reference/config.html#registrydefault), which defaults
to <https://crates.io/>).

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
<https://crates.io/me> to revoke the token for <https://crates.io/>).

## OPTIONS

### Logout Options

<dl>
<dt class="option-term" id="option-cargo-logout---registry"><a class="option-anchor" href="#option-cargo-logout---registry"></a><code>--registry</code> <em>registry</em></dt>
<dd class="option-desc">Name of the registry to use. Registry names are defined in <a href="../reference/config.html">Cargo config
files</a>. If not specified, the default registry is used,
which is defined by the <code>registry.default</code> config key which defaults to
<code>crates-io</code>.</dd>


</dl>

### Display Options

<dl>
<dt class="option-term" id="option-cargo-logout--v"><a class="option-anchor" href="#option-cargo-logout--v"></a><code>-v</code></dt>
<dt class="option-term" id="option-cargo-logout---verbose"><a class="option-anchor" href="#option-cargo-logout---verbose"></a><code>--verbose</code></dt>
<dd class="option-desc">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 <code>term.verbose</code>
<a href="../reference/config.html">config value</a>.</dd>


<dt class="option-term" id="option-cargo-logout--q"><a class="option-anchor" href="#option-cargo-logout--q"></a><code>-q</code></dt>
<dt class="option-term" id="option-cargo-logout---quiet"><a class="option-anchor" href="#option-cargo-logout---quiet"></a><code>--quiet</code></dt>
<dd class="option-desc">Do not print cargo log messages.
May also be specified with the <code>term.quiet</code>
<a href="../reference/config.html">config value</a>.</dd>


<dt class="option-term" id="option-cargo-logout---color"><a class="option-anchor" href="#option-cargo-logout---color"></a><code>--color</code> <em>when</em></dt>
<dd class="option-desc">Control when colored output is used. Valid values:</p>
<ul>
<li><code>auto</code> (default): Automatically detect if color support is available on the
terminal.</li>
<li><code>always</code>: Always display colors.</li>
<li><code>never</code>: Never display colors.</li>
</ul>
<p>May also be specified with the <code>term.color</code>
<a href="../reference/config.html">config value</a>.</dd>


</dl>

### Common Options

<dl>

<dt class="option-term" id="option-cargo-logout-+toolchain"><a class="option-anchor" href="#option-cargo-logout-+toolchain"></a><code>+</code><em>toolchain</em></dt>
<dd class="option-desc">If Cargo has been installed with rustup, and the first argument to <code>cargo</code>
begins with <code>+</code>, it will be interpreted as a rustup toolchain name (such
as <code>+stable</code> or <code>+nightly</code>).
See the <a href="https://rust-lang.github.io/rustup/overrides.html">rustup documentation</a>
for more information about how toolchain overrides work.</dd>


<dt class="option-term" id="option-cargo-logout---config"><a class="option-anchor" href="#option-cargo-logout---config"></a><code>--config</code> <em>KEY=VALUE</em> or <em>PATH</em></dt>
<dd class="option-desc">Overrides a Cargo configuration value. The argument should be in TOML syntax of <code>KEY=VALUE</code>,
or provided as a path to an extra configuration file. This flag may be specified multiple times.
See the <a href="../reference/config.html#command-line-overrides">command-line overrides section</a> for more information.</dd>


<dt class="option-term" id="option-cargo-logout--C"><a class="option-anchor" href="#option-cargo-logout--C"></a><code>-C</code> <em>PATH</em></dt>
<dd class="option-desc">Changes the current working directory before executing any specified operations. This affects
things like where cargo looks by default for the project manifest (<code>Cargo.toml</code>), as well as
the directories searched for discovering <code>.cargo/config.toml</code>, for example. This option must
appear before the command name, for example <code>cargo -C path/to/my-project build</code>.</p>
<p>This option is only available on the <a href="https://doc.rust-lang.org/book/appendix-07-nightly-rust.html">nightly
channel</a> and
requires the <code>-Z unstable-options</code> flag to enable (see
<a href="https://github.com/rust-lang/cargo/issues/10098">#10098</a>).</dd>


<dt class="option-term" id="option-cargo-logout--h"><a class="option-anchor" href="#option-cargo-logout--h"></a><code>-h</code></dt>
<dt class="option-term" id="option-cargo-logout---help"><a class="option-anchor" href="#option-cargo-logout---help"></a><code>--help</code></dt>
<dd class="option-desc">Prints help information.</dd>


<dt class="option-term" id="option-cargo-logout--Z"><a class="option-anchor" href="#option-cargo-logout--Z"></a><code>-Z</code> <em>flag</em></dt>
<dd class="option-desc">Unstable (nightly-only) flags to Cargo. Run <code>cargo -Z help</code> for details.</dd>


</dl>


## 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)
3 changes: 3 additions & 0 deletions src/doc/src/commands/cargo.md
Original file line number Diff line number Diff line change
Expand Up @@ -102,6 +102,9 @@ available at <https://rust-lang.org>.
[cargo-login(1)](cargo-login.html)\
&nbsp;&nbsp;&nbsp;&nbsp;Save an API token from the registry locally.

[cargo-logout(1)](cargo-logout.html)\
&nbsp;&nbsp;&nbsp;&nbsp;Remove an API token from the registry locally.

[cargo-owner(1)](cargo-owner.html)\
&nbsp;&nbsp;&nbsp;&nbsp;Manage the owners of a crate on the registry.

Expand Down
1 change: 1 addition & 0 deletions src/doc/src/commands/publishing-commands.md
Original file line number Diff line number Diff line change
@@ -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)
Expand Down
Loading

0 comments on commit 84b7041

Please sign in to comment.