|
1 | 1 | # Git Credential Manager Host Provider |
2 | 2 |
|
3 | | -Property|Value |
4 | | --|- |
5 | | -Author(s)|Matthew John Cheetham ([@mjcheetham][mjcheetham]) |
6 | | -Revision|1.2 |
7 | | -Last updated|2021-01-08 |
8 | | - |
9 | | -## Revision Summary |
10 | | - |
11 | | -- 1.0. Initial revision. |
12 | | -- 1.1. Replaced `GetCredentialKey` with `GetServiceName`. |
13 | | -- 1.2. Added new `IsSupported(HttpResponseMessage)` overload, the optional |
14 | | - `ICommandProvider` interface, and registration priorities. |
15 | | - |
16 | 3 | ## Abstract |
17 | 4 |
|
18 | 5 | Git Credential Manger, the cross-platform and cross-host Git credential |
19 | 6 | helper, can be extended to support any Git hosting service allowing seamless |
20 | 7 | authentication to secured Git repositories by implementing and registering a |
21 | 8 | "host provider". |
22 | 9 |
|
23 | | -## Table of Contents |
24 | | - |
25 | | -- [1. Introduction](#1-introduction) |
26 | | - - [1.1. Notational Conventions](#11-notational-conventions) |
27 | | - - [1.2. Abbreviations](#12-abbreviations) |
28 | | -- [2. Implementation](#2-implementation) |
29 | | - - [2.1. Registration](#21-registration) |
30 | | - - [2.1.2. Ordering](#212-ordering) |
31 | | - - [2.2. Handling Requests](#22-handling-requests) |
32 | | - - [2.2.1. Rejecting Requests](#221-rejecting-requests) |
33 | | - - [2.3. Retrieving Credentials](#23-retrieving-credentials) |
34 | | - - [2.3.1 Authentication Prompts](#231-authentication-prompts) |
35 | | - - [2.4. Storing Credentials](#24-storing-credentials) |
36 | | - - [2.5. Erasing Credentials](#25-erasing-credentials) |
37 | | - - [2.6 `HostProvider` base class](#26-hostprovider-base-class) |
38 | | - - [2.6.1 `GetServiceName`](#261-getservicename) |
39 | | - - [2.6.2 `GenerateCredentialAsync`](#262-generatecredentialasync) |
40 | | - - [2.7. External Metadata](#27-external-metadata) |
41 | | -- [3. Helpers](#3-helpers) |
42 | | - - [3.1. Discovery](#31-discovery) |
43 | | -- [4. Error Handling](#4-error-handling) |
44 | | -- [5. Custom Commands](#5-custom-commands) |
45 | | -- [References](#references) |
46 | | - |
47 | 10 | ## 1. Introduction |
48 | 11 |
|
49 | 12 | Git Credential Manager (GCM) is a host and platform agnostic Git |
50 | 13 | credential helper application. Support for authenticating to any Git hosting |
51 | 14 | service can be added to GCM by creating a custom "host provider" and |
52 | 15 | registering it within the product. Host providers can be submitted via a pull |
53 | | -request on GitHub at <https://github.com/GitCredentialManager/git-credential-manager>. |
| 16 | +request on [the Git Credential Manager repository on GitHub][gcm]. |
54 | 17 |
|
55 | 18 | This document outlines the required and expected behaviour of a host provider, |
56 | 19 | and what is required to implement and register one. |
@@ -85,7 +48,7 @@ provider with the application via the host provider registry. |
85 | 48 | Host providers MUST implement the `IHostProvider` interface. They can choose to |
86 | 49 | directly implement the interface they MAY derive from the `HostProvider` |
87 | 50 | abstract class (which itself implements the `IHostProvider` interface) - see |
88 | | -[§2.6](#26-hostprovider-base-class). |
| 51 | +[§2.6][hostprovider-base-class]. |
89 | 52 |
|
90 | 53 | Implementors MUST implement all interface properties and abstract methods. |
91 | 54 |
|
@@ -380,5 +343,6 @@ take, but implementors SHOULD attempt to follow existing practices and styles. |
380 | 343 |
|
381 | 344 | 1. [`System.CommandLine` API][github-dotnet-cli] |
382 | 345 |
|
| 346 | +[gcm]: https://github.com/GitCredentialManager/git-credential-manager |
383 | 347 | [github-dotnet-cli]: https://github.com/dotnet/command-line-api |
384 | | -[mjcheetham]: https://github.com/mjcheetham |
| 348 | +[hostprovider-base-class]: #26-hostprovider-base-class |
0 commit comments