Skip to content

Commit

Permalink
Docs: Add an appendix on git authentication.
Browse files Browse the repository at this point in the history
  • Loading branch information
ehuss committed Dec 4, 2019
1 parent 626f0f4 commit 5d9eff3
Show file tree
Hide file tree
Showing 4 changed files with 64 additions and 1 deletion.
1 change: 1 addition & 0 deletions src/doc/src/SUMMARY.md
Original file line number Diff line number Diff line change
Expand Up @@ -72,3 +72,4 @@

* [FAQ](faq.md)
* [Appendix: Glossary](appendix/glossary.md)
* [Appendix: Git Authentication](appendix/git-authentication.md)
56 changes: 56 additions & 0 deletions src/doc/src/appendix/git-authentication.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
# Git Authentication

Cargo supports some forms of authentication when using git dependencies and
registries. This appendix contains some information for setting up git
authentication in a way that works with Cargo.

If you need other authentication methods, the [`net.git-fetch-with-cli`]
config value can be set to cause Cargo to execute the `git` executable to
handle fetching remote repositories instead of using the built-in support.
This can be enabled with the `CARGO_NET_GIT_FETCH_WITH_CLI=true` environment
variable.

## HTTPS authentication

HTTPS authentication requires the [`credential.helper`] mechanism. There are
multiple credential helpers, and you specify the one you want to use in your
global git configuration file.

```ini
# ~/.gitconfig

[credential]
helper = store
```

Cargo does not ask for passwords, so for most helpers you will need to give
the helper the initial username/password before running Cargo. One way to do
this is to run `git clone` of the private git repo and enter the
username/password.

> **Tip:**<br>
> macOS users may want to consider using the osxkeychain helper.<br>
> Windows users may want to consider using the [GCM] helper.
> **Note:** Windows users will need to make sure that the `sh` shell is
> available in your `PATH`. This typically is available with the Git for
> Windows installation.
## SSH authentication

SSH authentication requires `ssh-agent` to be running to acquire the SSH key.
Make sure the appropriate environment variables are set up (`SSH_AUTH_SOCK` on
most Unix-like systems), and that the correct keys are added (with `ssh-add`).
Windows uses Pageant for SSH authentication.

> **Note:** Cargo does not support git's shorthand SSH URLs like
> `[email protected]/user/repo.git`. Use a full SSH URL like
> `ssh://[email protected]/user/repo.git`.
>
> **Note:** SSH configuration files (like OpenSSH's `~/.ssh/config`) are not
> used by Cargo's built-in SSH library. More advanced requirements should use
> [`net.git-fetch-with-cli`].
[`credential.helper`]: https://git-scm.com/book/en/v2/Git-Tools-Credential-Storage
[`net.git-fetch-with-cli`]: ../reference/config.md#netgit-fetch-with-cli
[GCM]: https://github.com/Microsoft/Git-Credential-Manager-for-Windows/
4 changes: 3 additions & 1 deletion src/doc/src/reference/config.md
Original file line number Diff line number Diff line change
Expand Up @@ -538,7 +538,9 @@ indexes and git dependencies. If `false`, then it uses a built-in `git`
library.

Setting this to `true` can be helpful if you have special authentication
requirements that Cargo does not support.
requirements that Cargo does not support. See [Git
Authentication](../appendix/git-authentication.md) for more information about
setting up git authentication.

##### `net.offline`
* Type: boolean
Expand Down
4 changes: 4 additions & 0 deletions src/doc/src/reference/specifying-dependencies.md
Original file line number Diff line number Diff line change
Expand Up @@ -142,6 +142,10 @@ the latest commit on a branch named `next`:
rand = { git = "https://github.com/rust-lang-nursery/rand", branch = "next" }
```

See [Git Authentication] for help with git authentication for private repos.

[Git Authentication]: ../appendix/git-authentication.md

### Specifying path dependencies

Over time, our `hello_world` package from [the guide](../guide/index.md) has
Expand Down

0 comments on commit 5d9eff3

Please sign in to comment.