aboutsummaryrefslogtreecommitdiffstats
path: root/plumbing/transport/http/common.go
diff options
context:
space:
mode:
authorMáximo Cuadros <mcuadros@gmail.com>2018-06-11 10:26:30 +0200
committerGitHub <noreply@github.com>2018-06-11 10:26:30 +0200
commit0710c6cb710a0cdab04ab7f61cc62e23cfcacbee (patch)
tree38ca4ef4d3320aeebed55b5154926bf23dd5b3c4 /plumbing/transport/http/common.go
parente7cf6d22593c8fcdd393b0da9d922c670b61a199 (diff)
parentbf6190841e8b6cd3a216bc056e5b71c73e18c410 (diff)
downloadgo-git-0710c6cb710a0cdab04ab7f61cc62e23cfcacbee.tar.gz
Merge pull request #859 from ebilling/fix-858/token-authentication
plumbing/transport: http, Adds token authentication support [Fixes #858]
Diffstat (limited to 'plumbing/transport/http/common.go')
-rw-r--r--plumbing/transport/http/common.go25
1 files changed, 25 insertions, 0 deletions
diff --git a/plumbing/transport/http/common.go b/plumbing/transport/http/common.go
index 2c337b7..c034846 100644
--- a/plumbing/transport/http/common.go
+++ b/plumbing/transport/http/common.go
@@ -201,6 +201,31 @@ func (a *BasicAuth) String() string {
return fmt.Sprintf("%s - %s:%s", a.Name(), a.Username, masked)
}
+// TokenAuth implements the go-git http.AuthMethod and transport.AuthMethod interfaces
+type TokenAuth struct {
+ Token string
+}
+
+func (a *TokenAuth) setAuth(r *http.Request) {
+ if a == nil {
+ return
+ }
+ r.Header.Add("Authorization", fmt.Sprintf("Bearer %s", a.Token))
+}
+
+// Name is name of the auth
+func (a *TokenAuth) Name() string {
+ return "http-token-auth"
+}
+
+func (a *TokenAuth) String() string {
+ masked := "*******"
+ if a.Token == "" {
+ masked = "<empty>"
+ }
+ return fmt.Sprintf("%s - %s", a.Name(), masked)
+}
+
// Err is a dedicated error to return errors based on status code
type Err struct {
Response *http.Response