diff --git a/plugin/remote/github/helper.go b/plugin/remote/github/helper.go index 311d4453..244b863a 100644 --- a/plugin/remote/github/helper.go +++ b/plugin/remote/github/helper.go @@ -6,6 +6,7 @@ import ( "io/ioutil" "net/http" "net/url" + "strings" "github.com/drone/drone/plugin/remote/github/oauth" "github.com/google/go-github/github" @@ -36,17 +37,21 @@ func GetUserEmail(client *github.Client) (*github.User, error) { return nil, err } - // else we should iterate through the list for _, email := range emails { - if email.Primary == nil { // hack for github enterprise - user.Email = email.Email - return user, nil - } if *email.Primary && *email.Verified { user.Email = email.Email return user, nil } } + + // 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 { + user.Email = emails[0].Email + return user, nil + } + return nil, fmt.Errorf("No verified Email address for GitHub account") }