Skip to content

Commit f230c46

Browse files
authored
Merge pull request #680 from wolf99/ref-style-links
Switch to reference style links
2 parents 1f8e978 + a2c4b85 commit f230c46

23 files changed

+582
-330
lines changed

CODE_OF_CONDUCT.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,6 @@ available at [Contributor Covenant Code of Conduct][cc-coc].
7373
For answers to common questions about this code of conduct, see the
7474
[Contributor Covenant FAQ][cc-faq]
7575

76-
[cc-homepage]: https://www.contributor-covenant.org
7776
[cc-coc]: https://www.contributor-covenant.org/version/1/4/code-of-conduct.html
7877
[cc-faq]: https://www.contributor-covenant.org/faq
78+
[cc-homepage]: https://www.contributor-covenant.org

CONTRIBUTING.md

Lines changed: 15 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,8 @@
11
# Contributing
22

3-
[issue]: https://github.com/GitCredentialManager/git-credential-manager/issues/new/choose
4-
[fork]: https://github.com/GitCredentialManager/git-credential-manager/fork
5-
[pr]: https://github.com/GitCredentialManager/git-credential-manager/compare
6-
[code-of-conduct]: CODE_OF_CONDUCT.md
7-
[commits]: https://www.youtube.com/watch?v=4qLtKx9S9a8
8-
93
Hi there! We're thrilled that you'd like to contribute to GCM :tada:. Your help is essential for keeping it great.
104

11-
Contributions to GCM are [released](https://help.github.com/articles/github-terms-of-service/#6-contributions-under-repository-license) to the public under the [project's open source license](LICENSE).
5+
Contributions to GCM are [released][contribute-under-repo-license] to the public under the [project's open source license][license].
126

137
Please note that this project is released with a [Contributor Code of Conduct][code-of-conduct]. By participating in this project you agree to abide by its terms.
148

@@ -42,6 +36,17 @@ Here are a few things you can do that will increase the likelihood of your pull
4236

4337
## Resources
4438

45-
- [How to Contribute to Open Source](https://opensource.guide/how-to-contribute/)
46-
- [Using Pull Requests](https://help.github.com/articles/about-pull-requests/)
47-
- [GitHub Help](https://help.github.com)
39+
- [How to Contribute to Open Source][how-to-contribute]
40+
- [Using Pull Requests][prs]
41+
- [GitHub Help][github-help]
42+
43+
[code-of-conduct]: CODE_OF_CONDUCT.md
44+
[commits]: https://www.youtube.com/watch?v=4qLtKx9S9a8
45+
[contribute-under-repo-license]: https://help.github.com/articles/github-terms-of-service/#6-contributions-under-repository-license
46+
[fork]: https://github.com/GitCredentialManager/git-credential-manager/fork
47+
[github-help]: https://help.github.com
48+
[how-to-contribute]: https://opensource.guide/how-to-contribute/
49+
[issue]: https://github.com/GitCredentialManager/git-credential-manager/issues/new/choose
50+
[license]: LICENSE
51+
[pr]: https://github.com/GitCredentialManager/git-credential-manager/compare
52+
[prs]: https://help.github.com/articles/about-pull-requests/

README.md

Lines changed: 80 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,27 @@
11
# Git Credential Manager
22

3-
[![Build Status](https://github.com/GitCredentialManager/git-credential-manager/actions/workflows/continuous-integration.yml/badge.svg)](https://github.com/GitCredentialManager/git-credential-manager/actions/workflows/continuous-integration.yml)
3+
[![Build Status][build-status-badge]][workflow-status]
44

55
---
66

7-
[Git Credential Manager](https://github.com/GitCredentialManager/git-credential-manager) (GCM) is a secure Git credential helper built on [.NET](https://dotnet.microsoft.com) 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](https://git-scm.com/book/en/v2/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](https://dev.azure.com/), Azure DevOps Server (formerly Team Foundation Server), GitHub, Bitbucket, and GitLab.
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, Bitbucket, and GitLab.
1010

11-
Git Credential Manager (GCM) replaces the .NET Framework-based [Git Credential Manager for Windows](https://github.com/microsoft/Git-Credential-Manager-for-Windows) (GCM), and the Java-based [Git Credential Manager for Mac and Linux](https://github.com/microsoft/Git-Credential-Manager-for-Mac-and-Linux) (Java GCM), providing a consistent authentication experience across all platforms.
11+
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](https://docs.microsoft.com/en-us/azure/devops/repos/git/use-ssh-keys-to-authenticate?view=azure-devops)
18-
- [GitHub SSH](https://help.github.com/en/articles/connecting-to-github-with-ssh)
19-
- [Bitbucket SSH](https://confluence.atlassian.com/bitbucket/ssh-keys-935365775.html)
17+
- [Azure DevOps SSH][azure-devops-ssh]
18+
- [GitHub SSH][github-ssh]
19+
- [Bitbucket SSH][bitbucket-ssh]
2020

2121
Feature|Windows|macOS|Linux\*
2222
-|:-:|:-:|:-:
2323
Installer/uninstaller|✓|✓|✓
24-
Secure platform credential storage [(see more)](docs/credstores.md)|✓|✓|✓
24+
Secure platform credential storage [(see more)][gcm-credstores]|✓|✓|✓
2525
Multi-factor authentication support for Azure DevOps|✓|✓|✓
2626
Two-factor authentication support for GitHub|✓|✓|✓
2727
Two-factor authentication support for Bitbucket|✓|✓|✓
@@ -75,7 +75,7 @@ brew uninstall --cask git-credential-manager-core
7575

7676
### macOS Package
7777

78-
We also provide a [.pkg installer](https://github.com/GitCredentialManager/git-credential-manager/releases/latest) with each release. To install, double-click the installation package and follow the instructions presented.
78+
We also provide a [.pkg installer][latest-release] with each release. To install, double-click the installation package and follow the instructions presented.
7979

8080
#### Uninstall
8181

@@ -95,15 +95,15 @@ sudo /usr/local/share/gcm-core/uninstall.sh
9595

9696
#### Ubuntu/Debian distributions
9797

98-
Download the latest [.deb package](https://github.com/GitCredentialManager/git-credential-manager/releases/latest), and run the following:
98+
Download the latest [.deb package][latest-release], and run the following:
9999

100100
```shell
101101
sudo dpkg -i <path-to-package>
102102
git-credential-manager-core configure
103103
```
104104

105105
**Note:** Although packages were previously offered on certain
106-
[Microsoft Ubuntu package feeds](https://packages.microsoft.com/repos/),
106+
[Microsoft Ubuntu package feeds][ms-package-repos],
107107
GCM no longer publishes to these repositories. Please install the
108108
Debian package using the above instructions instead.
109109

@@ -118,7 +118,7 @@ sudo dpkg -r gcmcore
118118

119119
##### Option 1: Tarball
120120

121-
Download the latest [tarball](https://github.com/GitCredentialManager/git-credential-manager/releases/latest), and run the following:
121+
Download the latest [tarball][latest-release], and run the following:
122122

123123
```shell
124124
tar -xvf <path-to-tarball> -C /usr/local/bin
@@ -157,21 +157,21 @@ rm $(command -v git-credential-manager-core)
157157

158158
To uninstall:
159159

160-
[Follow these instructions](docs/linux-fromsrc-uninstall.md) for your distribution.
160+
[Follow these instructions][linux-uninstall] for your distribution.
161161

162-
**Note:** all Linux distributions [require additional configuration](https://aka.ms/gcm/credstores) to use GCM.
162+
**Note:** all Linux distributions [require additional configuration][gcm-credstores] to use GCM.
163163

164164
---
165165

166166
### Windows
167167

168-
GCM is included with [Git for Windows](https://gitforwindows.org/), 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.
168+
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.
169169

170-
![image](https://user-images.githubusercontent.com/5658207/140082529-1ac133c1-0922-4a24-af03-067e27b3988b.png)
170+
![image][git-for-windows-screenshot]
171171

172172
#### Standalone installation
173173

174-
You can also download the [latest installer](https://github.com/GitCredentialManager/git-credential-manager/releases/latest) for Windows to install GCM standalone.
174+
You can also download the [latest installer][latest-release] for Windows to install GCM standalone.
175175

176176
**:warning: Important :warning:**
177177

@@ -200,10 +200,10 @@ To uninstall, open Control Panel and navigate to the Programs and Features scree
200200
#### Windows Subsystem for Linux (WSL)
201201

202202
Git Credential Manager can be used with the [Windows Subsystem for Linux
203-
(WSL)](https://aka.ms/wsl) to enable secure authentication of your remote Git
203+
(WSL)][ms-wsl] to enable secure authentication of your remote Git
204204
repositories from inside of WSL.
205205

206-
[Please see the GCM on WSL docs](docs/wsl.md) for more information.
206+
[Please see the GCM on WSL docs][gcm-wsl] for more information.
207207

208208
## Supported Git versions
209209

@@ -218,50 +218,90 @@ Git that are not compatible.
218218
- Git 2.26.2
219219

220220
This version of Git introduced a breaking change with parsing credential
221-
configuration that GCM relies on. This issue was fixed in commit [`12294990`](https://github.com/git/git/commit/12294990c90e043862be9eb7eb22c3784b526340)
221+
configuration that GCM relies on. This issue was fixed in commit [`12294990`][gcm-commit-12294990]
222222
of the Git project, and released in Git 2.27.0.
223223

224224
## How to use
225225

226226
Once it's installed and configured, Git Credential Manager is called implicitly by Git.
227227
You don't have to do anything special, and GCM isn't intended to be called directly by the user.
228-
For example, when pushing (`git push`) to [Azure DevOps](https://dev.azure.com), [Bitbucket](https://bitbucket.org), or [GitHub](https://github.com), a window will automatically open and walk you through the sign-in process.
228+
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.
229229
(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.)
230230
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.
231231

232-
Read full command line usage [here](docs/usage.md).
232+
Read full command line usage [here][gcm-usage].
233233

234234
### Configuring a proxy
235235

236-
See detailed information [here](https://aka.ms/gcm/httpproxy).
236+
See detailed information [here][gcm-http-proxy].
237237

238238
## Additional Resources
239239

240-
- [Frequently asked questions](docs/faq.md)
241-
- [Development and debugging](docs/development.md)
242-
- [Command-line usage](docs/usage.md)
243-
- [Configuration options](docs/configuration.md)
244-
- [Environment variables](docs/environment.md)
245-
- [Enterprise configuration](docs/enterprise-config.md)
246-
- [Network and HTTP configuration](docs/netconfig.md)
247-
- [Credential stores](docs/credstores.md)
248-
- [Architectural overview](docs/architecture.md)
249-
- [Host provider specification](docs/hostprovider.md)
250-
- [Azure Repos OAuth tokens](docs/azrepos-users-and-tokens.md)
251-
- [GitLab support](docs/gitlab.md)
240+
- [Frequently asked questions][gcm-faq]
241+
- [Development and debugging][gcm-dev]
242+
- [Command-line usage][gcm-usage]
243+
- [Configuration options][gcm-config]
244+
- [Environment variables][gcm-env]
245+
- [Enterprise configuration][gcm-enterprise-config]
246+
- [Network and HTTP configuration][gcm-net-config]
247+
- [Credential stores][gcm-credstores]
248+
- [Architectural overview][gcm-arch]
249+
- [Host provider specification][gcm-host-provider]
250+
- [Azure Repos OAuth tokens][gcm-azure-tokens]
251+
- [GitLab support][gcm-gitlab]
252252

253253
## Experimental Features
254254

255-
- [Windows broker (experimental)](docs/windows-broker.md)
255+
- [Windows broker (experimental)][gcm-windows-broker]
256256

257257
## Contributing
258258

259259
This project welcomes contributions and suggestions.
260-
See the [contributing guide](CONTRIBUTING.md) to get started.
260+
See the [contributing guide][gcm-contributing] to get started.
261261

262-
This project follows [GitHub's Open Source Code of Conduct](CODE_OF_CONDUCT.md).
262+
This project follows [GitHub's Open Source Code of Conduct][gcm-coc].
263263

264264
## License
265265

266-
We're [MIT](LICENSE) licensed.
267-
When using GitHub logos, please be sure to follow the [GitHub logo guidelines](https://github.com/logos).
266+
We're [MIT][gcm-license] licensed.
267+
When using GitHub logos, please be sure to follow the [GitHub logo guidelines][github-logos].
268+
269+
[azure-devops]: https://dev.azure.com/
270+
[azure-devops-ssh]: https://docs.microsoft.com/en-us/azure/devops/repos/git/use-ssh-keys-to-authenticate?view=azure-devops
271+
[bitbucket]: https://bitbucket.org
272+
[bitbucket-ssh]: https://confluence.atlassian.com/bitbucket/ssh-keys-935365775.html
273+
[build-status-badge]: https://github.com/GitCredentialManager/git-credential-manager/actions/workflows/continuous-integration.yml/badge.svg
274+
[dotnet]: https://dotnet.microsoft.com
275+
[gcm]: https://github.com/GitCredentialManager/git-credential-manager
276+
[gcm-arch]: docs/architecture.md
277+
[gcm-azure-tokens]: docs/azrepos-users-and-tokens.md
278+
[gcm-coc]: CODE_OF_CONDUCT.md
279+
[gcm-commit-12294990]: https://github.com/git/git/commit/12294990c90e043862be9eb7eb22c3784b526340
280+
[gcm-config]: docs/configuration.md
281+
[gcm-contributing]: CONTRIBUTING.md
282+
[gcm-credstores]: docs/credstores.md
283+
[gcm-dev]: docs/development.md
284+
[gcm-enterprise-config]: docs/enterprise-config.md
285+
[gcm-env]: docs/environment.md
286+
[gcm-faq]: docs/faq.md
287+
[gcm-for-mac-and-linux]: https://github.com/microsoft/Git-Credential-Manager-for-Mac-and-Linux
288+
[gcm-for-windows]: https://github.com/microsoft/Git-Credential-Manager-for-Windows
289+
[gcm-gitlab]: docs/gitlab.md
290+
[gcm-host-provider]: docs/hostprovider.md
291+
[gcm-http-proxy]: docs/netconfig.md#http-proxy
292+
[gcm-license]: LICENSE
293+
[gcm-net-config]: docs/netconfig.md
294+
[gcm-usage]: docs/usage.md
295+
[gcm-windows-broker]: docs/windows-broker.md
296+
[gcm-wsl]: docs/wsl.md
297+
[git-for-windows]: https://gitforwindows.org/
298+
[git-for-windows-screenshot]: https://user-images.githubusercontent.com/5658207/140082529-1ac133c1-0922-4a24-af03-067e27b3988b.png
299+
[git-tools-credential-storage]: https://git-scm.com/book/en/v2/Git-Tools-Credential-Storage
300+
[github]: https://github.com
301+
[github-ssh]: https://help.github.com/en/articles/connecting-to-github-with-ssh
302+
[github-logos]: https://github.com/logos
303+
[latest-release]: https://github.com/GitCredentialManager/git-credential-manager/releases/latest
304+
[linux-uninstall]: docs/linux-fromsrc-uninstall.md
305+
[ms-package-repos]: https://packages.microsoft.com/repos/
306+
[ms-wsl]: https://aka.ms/wsl#
307+
[workflow-status]: https://github.com/GitCredentialManager/git-credential-manager/actions/workflows/continuous-integration.yml

SECURITY.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
# Security
22

3-
If you discover a security issue in this repo, please submit it through the [GitHub Security Bug Bounty](https://hackerone.com/github)
3+
If you discover a security issue in this repo, please submit it through the [GitHub Security Bug Bounty][hackerone-github]
44

55
Thanks for helping make GitHub products safe for everyone.
6+
7+
[hackerone-github]: https://hackerone.com/github

docs/architecture.md

Lines changed: 15 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -44,16 +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](https://github.com/AzureAD/microsoft-authentication-library-for-dotnet))
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 [this](https://github.com/GitCredentialManager/git-credential-manager/issues/113)
56-
> issue for more information.
55+
> See [GCM issue 113][issue-113] for more information.
5756
5857
The entry-point for GCM can be found in the `Git-Credential-Manager`
5958
project, a console application that targets both .NET and .NET Framework.
@@ -80,9 +79,9 @@ helpers on Windows.
8079

8180
### Cross-platform UI
8281

83-
We hope to be able to migrate the WPF/Windows only helpers to [Avalonia](https://avaloniaui.net/)
84-
in order to gain cross-platform graphical user interface support. See [this](https://github.com/GitCredentialManager/git-credential-manager/issues/136)
85-
issue for up-to-date progress on this effort.
82+
We hope to be able to migrate the WPF/Windows only helpers to [Avalonia][avalonia]
83+
in order to gain cross-platform graphical user interface support. See
84+
[GCM issue 136][issue-136] for up-to-date progress on this effort.
8685

8786
### Microsoft authentication
8887

@@ -148,7 +147,7 @@ Git Credential Manager maintains a set of known commands including
148147
GCM also maintains a set of known, registered host providers that implement
149148
the `IHostProvider` interface. Providers register themselves by adding an
150149
instance of the provider to the `Application` object via the `RegisterProvider`
151-
method [in `Core.Program`](../src/shared/Git-Credential-Manager/Program.cs).
150+
method in [`Core.Program`][core-program].
152151
The `GenericHostProvider` is registered last so that it can handle all other
153152
HTTP-based remotes as a catch-all, and provide basic username/password auth and
154153
detect the presence of Windows Integrated Authentication (Kerberos, NTLM,
@@ -162,7 +161,7 @@ The `Get|Store|EraseCommand`s consult the host provider registry for the most
162161
appropriate host provider. The default registry implementation select the a host
163162
provider by asking each registered provider in turn if they understand the
164163
request. The provider selection can be overridden by the user via the
165-
[`credential.provider`](configuration.md#credentialprovider) or [`GCM_PROVIDER`](environment.md#GCM_PROVIDER)
164+
[`credential.provider`][credential-provider] or [`GCM_PROVIDER`][gcm-provider]
166165
configuration and environment variable respectively (3).
167166

168167
The `Get|Store|EraseCommand`s call the corresponding
@@ -277,3 +276,11 @@ operation/authentication.
277276
The `ITrace` component can be found on the `ICommandContext` object or passed in
278277
directly to some constructors. Verbose and diagnostic information is be written
279278
to the trace object in most places of GCM.
279+
280+
[avalonia]: https://avaloniaui.net/
281+
[core-program]: ../src/shared/Git-Credential-Manager/Program.cs
282+
[credential-provider]: configuration.md#credentialprovider
283+
[issue-113]: https://github.com/GitCredentialManager/git-credential-manager/issues/113
284+
[issue-136]: https://github.com/GitCredentialManager/git-credential-manager/issues/136
285+
[gcm-provider]: environment.md#GCM_PROVIDER
286+
[msal]: https://github.com/AzureAD/microsoft-authentication-library-for-dotnet

0 commit comments

Comments
 (0)