handle github enterprise not supporting verified / primary emails

This commit is contained in:
Brad Rydzewski 2014-09-09 00:32:47 -07:00
parent 2cca926a06
commit 1ff56ef51c

View file

@ -6,6 +6,7 @@ import (
"io/ioutil" "io/ioutil"
"net/http" "net/http"
"net/url" "net/url"
"strings"
"github.com/drone/drone/plugin/remote/github/oauth" "github.com/drone/drone/plugin/remote/github/oauth"
"github.com/google/go-github/github" "github.com/google/go-github/github"
@ -35,6 +36,16 @@ func GetUserEmail(client *github.Client) (*github.User, error) {
if err != nil { if err != nil {
return nil, err return nil, err
} }
// WARNING, HACK
// for out-of-date github enterprise editions the primary
// and verified fields won't exist.
if !strings.HasPrefix(*user.HTMLURL, DefaultURL) && len(emails) != 0 && emails[0].Primary == nil {
user.Email = emails[0].Email
return user, nil
}
// else we should iterate through the list
for _, email := range emails { for _, email := range emails {
if *email.Primary && *email.Verified { if *email.Primary && *email.Verified {
user.Email = email.Email user.Email = email.Email