aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEllis Clayton <ellis@ellis.codes>2021-04-19 10:21:11 +1000
committerEllis Clayton <ellis@ellis.codes>2021-04-19 10:21:11 +1000
commita80152890cd3db27c25717fdc45ae19b5b2d5b8c (patch)
tree2e44d363785661d68a4e237865d11a1fa14687bf
parent24155156223595e48f215e87cf9ce7895e22f4a7 (diff)
downloadgit-bug-a80152890cd3db27c25717fdc45ae19b5b2d5b8c.tar.gz
Support new GitHub token formats
GitHub have introduced a new format for their access tokens, which does not fit within the rules of the previous regex. For the time being, the previous token format is still being supported by GitHub, so it makes sense to continue allowing legacy tokens. https://github.blog/changelog/2021-03-04-authentication-token-format-updates/
-rw-r--r--bridge/github/config.go5
1 files changed, 3 insertions, 2 deletions
diff --git a/bridge/github/config.go b/bridge/github/config.go
index 1e23c8ee..55a09c53 100644
--- a/bridge/github/config.go
+++ b/bridge/github/config.go
@@ -365,12 +365,13 @@ func promptToken() (*auth.Token, error) {
fmt.Println(" - 'repo' : to be able to read private repositories")
fmt.Println()
- re := regexp.MustCompile(`^[a-zA-Z0-9]{40}$`)
+ legacyRe := regexp.MustCompile(`^[a-zA-Z0-9]{40}$`)
+ re := regexp.MustCompile(`^(?:ghp|gho|ghu|ghs|ghr)_[a-zA-Z0-9]{36,255}$`)
var login string
validator := func(name string, value string) (complaint string, err error) {
- if !re.MatchString(value) {
+ if !re.MatchString(value) && !legacyRe.MatchString(value) {
return "token has incorrect format", nil
}
login, err = getLoginFromToken(auth.NewToken(target, value))