Skip to content

Commit da3f10d

Browse files
wolf99Matthew John Cheetham
andcommitted
Apply suggestions from code review
Co-authored-by: Matthew John Cheetham <[email protected]>
1 parent 9dfa207 commit da3f10d

File tree

6 files changed

+60
-60
lines changed

6 files changed

+60
-60
lines changed

README.md

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -4,19 +4,19 @@
44

55
---
66

7-
[Git Credential Manager][gcm] (GCM) is a secure Git credential helper built on [.NET][] that runs on Windows, macOS, and Linux.
7+
[Git Credential Manager][gcm] (GCM) is a secure Git credential helper built on [.NET][dotnet] that runs on Windows, macOS, and Linux.
88

9-
Compared to Git's [built-in credential helpers][git-tools-credential-storage] (Windows: wincred, macOS: osxkeychain, Linux: gnome-keyring/libsecret) which provides single-factor authentication support working on any HTTP-enabled Git repository, GCM provides multi-factor authentication support for [Azure DevOps][], Azure DevOps Server (formerly Team Foundation Server), GitHub, and Bitbucket.
9+
Compared to Git's [built-in credential helpers][git-tools-credential-storage] (Windows: wincred, macOS: osxkeychain, Linux: gnome-keyring/libsecret) which provides single-factor authentication support working on any HTTP-enabled Git repository, GCM provides multi-factor authentication support for [Azure DevOps][azure-devops], Azure DevOps Server (formerly Team Foundation Server), GitHub, and Bitbucket, and GitLab.
1010

1111
Git Credential Manager (GCM) replaces the .NET Framework-based [Git Credential Manager for Windows][gcm-for-windows] (GCM), and the Java-based [Git Credential Manager for Mac and Linux][gcm-for-mac-and-linux] (Java GCM), providing a consistent authentication experience across all platforms.
1212

1313
## Current status
1414

1515
Git Credential Manager is currently available for Windows, macOS, and Linux\*. GCM only works with HTTP(S) remotes; you can still use Git with SSH:
1616

17-
- [Azure DevOps SSH][]
18-
- [GitHub SSH][]
19-
- [Bitbucket SSH][]
17+
- [Azure DevOps SSH][azure-devops-ssh]
18+
- [GitHub SSH][github-ssh]
19+
- [Bitbucket SSH][bitbucket-ssh]
2020

2121
Feature|Windows|macOS|Linux
2222
-|:-:|:-:|:-:
@@ -162,7 +162,7 @@ rm $(command -v git-credential-manager-core)
162162

163163
### Windows
164164

165-
GCM is included with [Git for Windows][], and the latest version is included in each new Git for Windows release. This is the preferred way to install GCM on Windows. During installation you will be asked to select a credential helper, with GCM being set as the default.
165+
GCM is included with [Git for Windows][git-for-windows], and the latest version is included in each new Git for Windows release. This is the preferred way to install GCM on Windows. During installation you will be asked to select a credential helper, with GCM being set as the default.
166166

167167
![image][git-for-windows-screenshot]
168168

@@ -222,7 +222,7 @@ Git that are not compatible.
222222

223223
Once it's installed and configured, Git Credential Manager is called implicitly by Git.
224224
You don't have to do anything special, and GCM isn't intended to be called directly by the user.
225-
For example, when pushing (`git push`) to [Azure DevOps][], [Bitbucket][], or [GitHub][], a window will automatically open and walk you through the sign-in process.
225+
For example, when pushing (`git push`) to [Azure DevOps][azure-devops], [Bitbucket][bitbucket], or [GitHub][github], a window will automatically open and walk you through the sign-in process.
226226
(This process will look slightly different for each Git host, and even in some cases, whether you've connected to an on-premises or cloud-hosted Git host.)
227227
Later Git commands in the same repository will re-use existing credentials or tokens that GCM has stored for as long as they're valid.
228228

@@ -263,12 +263,12 @@ This project follows [GitHub's Open Source Code of Conduct][gcm-coc].
263263
We're [MIT][gcm-license] licensed.
264264
When using GitHub logos, please be sure to follow the [GitHub logo guidelines][github-logos].
265265

266-
[Azure DevOps]: https://dev.azure.com/
267-
[Azure DevOps SSH]: https://docs.microsoft.com/en-us/azure/devops/repos/git/use-ssh-keys-to-authenticate?view=azure-devops
268-
[Bitbucket]: https://bitbucket.org
269-
[Bitbucket SSH]: https://confluence.atlassian.com/bitbucket/ssh-keys-935365775.html
266+
[azure-devops]: https://dev.azure.com/
267+
[azure-devops-ssh]: https://docs.microsoft.com/en-us/azure/devops/repos/git/use-ssh-keys-to-authenticate?view=azure-devops
268+
[bitbucket]: https://bitbucket.org
269+
[bitbucket-ssh]: https://confluence.atlassian.com/bitbucket/ssh-keys-935365775.html
270270
[build-status-badge]: https://github.com/GitCredentialManager/git-credential-manager/actions/workflows/continuous-integration.yml/badge.svg
271-
[.NET]: https://dotnet.microsoft.com
271+
[dotnet]: https://dotnet.microsoft.com
272272
[gcm]: https://github.com/GitCredentialManager/git-credential-manager
273273
[gcm-arch]: docs/architecture.md
274274
[gcm-azure-tokens]: docs/azrepos-users-and-tokens.md
@@ -291,11 +291,11 @@ When using GitHub logos, please be sure to follow the [GitHub logo guidelines][g
291291
[gcm-usage]: docs/usage.md
292292
[gcm-windows-broker]: docs/windows-broker.md
293293
[gcm-wsl]: docs/wsl.md
294-
[Git for Windows]: https://gitforwindows.org/
294+
[git-for-windows]: https://gitforwindows.org/
295295
[git-for-windows-screenshot]: https://user-images.githubusercontent.com/5658207/140082529-1ac133c1-0922-4a24-af03-067e27b3988b.png
296296
[git-tools-credential-storage]: https://git-scm.com/book/en/v2/Git-Tools-Credential-Storage
297-
[GitHub]: https://github.com
298-
[GitHub SSH]: https://help.github.com/en/articles/connecting-to-github-with-ssh
297+
[github]: https://github.com
298+
[github-ssh]: https://help.github.com/en/articles/connecting-to-github-with-ssh
299299
[github-logos]: https://github.com/logos
300300
[latest-release]: https://github.com/GitCredentialManager/git-credential-manager/releases/latest
301301
[ms-package-repos]: https://packages.microsoft.com/repos/

docs/architecture.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -44,15 +44,15 @@ library (C#). The library targets .NET Standard as well as .NET Framework.
4444
> **Note**
4545
>
4646
> The reason for also targeting .NET Framework directly is that the
47-
> `Microsoft.Identity.Client` ([MSAL.NET][])
47+
> `Microsoft.Identity.Client` ([MSAL.NET][msal])
4848
> library requires a .NET Framework target to be able to show the embedded web
4949
> browser auth pop-up on Windows platforms.
5050
>
5151
> There are extension points that now exist in MSAL.NET meaning we can plug-in
5252
> our own browser pop-up handling code on .NET meaning both Windows and
5353
> Mac. We haven't yet gotten around to exploring this.
5454
>
55-
> See [GCM issue 113][] for more information.
55+
> See [GCM issue 113][issue-113] for more information.
5656
5757
The entry-point for GCM can be found in the `Git-Credential-Manager`
5858
project, a console application that targets both .NET and .NET Framework.
@@ -81,7 +81,7 @@ helpers on Windows.
8181

8282
We hope to be able to migrate the WPF/Windows only helpers to [Avalonia][]
8383
in order to gain cross-platform graphical user interface support. See
84-
[GCM issue 136][] for up-to-date progress on this effort.
84+
[GCM issue 136][issue-136] for up-to-date progress on this effort.
8585

8686
### Microsoft authentication
8787

@@ -147,7 +147,7 @@ Git Credential Manager maintains a set of known commands including
147147
GCM also maintains a set of known, registered host providers that implement
148148
the `IHostProvider` interface. Providers register themselves by adding an
149149
instance of the provider to the `Application` object via the `RegisterProvider`
150-
method in [`Core.Program`][].
150+
method in [`Core.Program`][core-program].
151151
The `GenericHostProvider` is registered last so that it can handle all other
152152
HTTP-based remotes as a catch-all, and provide basic username/password auth and
153153
detect the presence of Windows Integrated Authentication (Kerberos, NTLM,

docs/autodetect.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ In order to detect which host provider to use for a self-hosted instance, each
1818
provider can provide some heuristic matching of the hostname. For example any
1919
hostname that begins "github.*" will be matched to the GitHub host provider.
2020

21-
If a heuristic matches incorrectly, you can always [explicitly configure][]
21+
If a heuristic matches incorrectly, you can always [explicitly configure][explicit-config]
2222
GCM to use a particular provider.
2323

2424
## Remote URL probing
@@ -28,7 +28,7 @@ URL and inspect HTTP response headers to try and detect a self-hosted instance.
2828

2929
This network call is only performed if neither an exact nor fuzzy match by
3030
hostname can be made. Only one HTTP `HEAD` call is made per credential request
31-
received by Git. To avoid this network call, please [explicitly configure][]
31+
received by Git. To avoid this network call, please [explicitly configure][explicit-config]
3232
the host provider for your self-hosted instance.
3333

3434
After a successful detection of the host provider, GCM will automatically set
@@ -65,6 +65,6 @@ git config --global credential.ghe.example.com.provider github
6565

6666
[`credential.autoDetectTimeout`]: configuration.md#credentialautodetecttimeout
6767
[`credential.provider`]: configuration.md#credentialprovider
68-
[explicitly configure]: #manual-configuration
68+
[explicit-config]: #manual-configuration
6969
[`GCM_AUTODETECT_TIMEOUT`]: environment.md#GCM_AUTODETECT_TIMEOUT
7070
[`GCM_PROVIDER`]: environment.md#GCM_PROVIDER

docs/azrepos-users-and-tokens.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ Historically, the only option supported by the Azure Repos host provider was
1818
Azure DevOps Personal Access Tokens (PATs).
1919

2020
These PATs are only used by Azure DevOps, and must be [managed through the Azure
21-
DevOps user settings page][azure-devops-pats] or [REST API][].
21+
DevOps user settings page][azure-devops-pats] or [REST API][azure-devops-api].
2222

2323
PATs have a limited lifetime and new tokens must be created once they expire. In
2424
Git Credential Manager, when a PAT expired (or was manually revoked) this
@@ -188,7 +188,7 @@ inherited).
188188

189189
To associate a user account with a particular Git remote you must manually edit
190190
the remote URL using `git config` commands to include the username in the
191-
[user information][] part of the URL.
191+
[user information][rfc3986-s321] part of the URL.
192192

193193
```shell
194194
git config --local remote.origin.url https://alice-alt%[email protected]/project/_git/repo
@@ -221,5 +221,5 @@ fabrikam:
221221
[azure-devops-pats]: https://docs.microsoft.com/en-us/azure/devops/organizations/accounts/use-personal-access-tokens-to-authenticate?view=azure-devops&tabs=preview-page
222222
[`credential.azreposCredentialType`]: configuration.md#credentialazreposcredentialtype
223223
[`GCM_AZREPOS_CREDENTIALTYPE`]: environment.md#GCM_AZREPOS_CREDENTIALTYPE
224-
[REST API]: https://docs.microsoft.com/en-gb/rest/api/azure/devops/tokens/pats
225-
[user information]: https://tools.ietf.org/html/rfc3986#section-3.2.1
224+
[azure-devops-api]: https://docs.microsoft.com/en-gb/rest/api/azure/devops/tokens/pats
225+
[rfc3986-s321]: https://tools.ietf.org/html/rfc3986#section-3.2.1

docs/bitbucket-development.md

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7,15 +7,15 @@ Additionally Bitbucket supports App-specific passwords which can be used via Bas
77
To enhance security Bitbucket offers optional Two-Factor Authentication (2FA). When 2FA is enabled username/password Basic Auth access to the REST APIs and to Git repositories is suspended.
88
At that point users are left with the choice of username/apps-specific-password Basic Auth for REST APIs and Git interactions, OAuth for REST APIs and Git/Hg interactions or SSH for Git/HG interactions and one of the previous choices for REST APIs.
99
SSH and REST API access are beyond the scope of this document.
10-
Read about [Bitbucket's 2FA implementation][].
10+
Read about [Bitbucket's 2FA implementation][2fa-impl].
1111

1212
App-specific passwords are not particularly user friendly as once created Bitbucket hides their value, even from the owner.
1313
They are intended for use within application that talk to Bitbucket where application can remember and use the app-specific-password.
14-
[Additional information][].
14+
[Additional information][additional-info].
1515

1616
OAuth is the intended authentication method for user interactions with HTTPS remote URL for Git repositories when 2FA is active.
1717
Essentially once a client application has an OAuth access token it can be used in place of a user's password.
18-
Read more about information [Bitbucket's OAuth implementation][].
18+
Read more about information [Bitbucket's OAuth implementation][oauth-impl].
1919

2020
Bitbucket's OAuth implementation follows the standard specifications for OAuth 2.0, which is out of scope for this document.
2121
However it implements a comparatively rare part of OAuth 2.0 Refresh Tokens.
@@ -30,7 +30,7 @@ This is explained in more detail below.
3030

3131
## Multiple User Accounts
3232

33-
Unlike the GitHub implementation within the Git Credential Manager, the Bitbucket implementation stores 'secrets', passwords, app-specific passwords, or OAuth tokens, with usernames in the [Windows Credential Manager][] vault.
33+
Unlike the GitHub implementation within the Git Credential Manager, the Bitbucket implementation stores 'secrets', passwords, app-specific passwords, or OAuth tokens, with usernames in the [Windows Credential Manager][wincred-manager] vault.
3434

3535
Depending on the circumstances this means either saving an explicit username in to the Windows Credential Manager/Vault or including the username in the URL used as the identifying key of entries in the Windows Credential Manager vault, i.e. using a key such as `git:https://[email protected]/` rather than `git:https://bitbucket.org`.
3636
This means that the Bitbucket implementation in the GCM can support multiple accounts, and usernames, for a single user against Bitbucket, e.g. a personal account and a work account.
@@ -81,10 +81,10 @@ This will download and run a standalone instance of Bitbucket Server which can b
8181

8282
Atlassian has [documentation][] on how to download and install their SDK.
8383

84-
[Additional information]:https://confluence.atlassian.com/display/BITBUCKET/App+passwords
84+
[additional-info]:https://confluence.atlassian.com/display/BITBUCKET/App+passwords
8585
[atlas-run-standalone]: https://developer.atlassian.com/server/framework/atlassian-sdk/atlas-run-standalone/
8686
[bitbucket.org]: https://bitbucket.org
87-
[Bitbucket's 2FA implementation]: https://confluence.atlassian.com/bitbucket/two-step-verification-777023203.html
88-
[Bitbucket's OAuth implementation]: https://confluence.atlassian.com/bitbucket/oauth-on-bitbucket-cloud-238027431.html
87+
[2fa-impl]: https://confluence.atlassian.com/bitbucket/two-step-verification-777023203.html
88+
[oauth-impl]: https://confluence.atlassian.com/bitbucket/oauth-on-bitbucket-cloud-238027431.html
8989
[documentation]: https://developer.atlassian.com/server/framework/atlassian-sdk/
90-
[Windows Credential Manager]: https://msdn.microsoft.com/en-us/library/windows/desktop/aa374792(v=vs.85).aspx
90+
[wincred-manager]: https://msdn.microsoft.com/en-us/library/windows/desktop/aa374792(v=vs.85).aspx

0 commit comments

Comments
 (0)