@@ -74,11 +74,12 @@ func NewGitHubProvider(p *ProviderData) *GitHubProvider {
7474 return &GitHubProvider{ProviderData: p}
7575}
7676
77−func getGitHubHeader(accessToken string) http.Header {
78− header := make(http.Header)
79− header.Set("Accept", "application/vnd.github.v3+json")
80− header.Set("Authorization", fmt.Sprintf("token %s", accessToken))
81− return header
77+func makeGitHubHeader(accessToken string) http.Header {
78+ // extra headers required by the GitHub API when making authenticated requests
79+ extraHeaders := map[string]string{
80+ acceptHeader: "application/vnd.github.v3+json",
81+ }
82+ return makeAuthorizationHeader(tokenTypeToken, accessToken, extraHeaders)
8283}
8384
8485// SetOrgTeam adds GitHub org reading parameters to the OAuth2 scope
@@ -129,7 +130,7 @@ func (p *GitHubProvider) hasOrg(ctx context.Context, accessToken string) (bool,
129130 var op orgsPage
130131 err := requests.New(endpoint.String()).
131132 WithContext(ctx).
132− WithHeaders(getGitHubHeader(accessToken)).
133+ WithHeaders(makeGitHubHeader(accessToken)).
133134 Do().
134135 UnmarshalInto(&op)
135136 if err != nil {
@@ -196,7 +197,7 @@ func (p *GitHubProvider) hasOrgAndTeam(ctx context.Context, accessToken string)
196197 // nolint:bodyclose
197198 result := requests.New(endpoint.String()).
198199 WithContext(ctx).
199− WithHeaders(getGitHubHeader(accessToken)).
200+ WithHeaders(makeGitHubHeader(accessToken)).
200201 Do()
201202 if result.Error() != nil {
202203 return false, result.Error()
@@ -296,7 +297,7 @@ func (p *GitHubProvider) hasRepo(ctx context.Context, accessToken string) (bool,
296297 var repo repository
297298 err := requests.New(endpoint.String()).
298299 WithContext(ctx).
299− WithHeaders(getGitHubHeader(accessToken)).
300+ WithHeaders(makeGitHubHeader(accessToken)).
300301 Do().
301302 UnmarshalInto(&repo)
302303 if err != nil {
@@ -324,7 +325,7 @@ func (p *GitHubProvider) hasUser(ctx context.Context, accessToken string) (bool,
324325
325326 err := requests.New(endpoint.String()).
326327 WithContext(ctx).
327− WithHeaders(getGitHubHeader(accessToken)).
328+ WithHeaders(makeGitHubHeader(accessToken)).
328329 Do().
329330 UnmarshalInto(&user)
330331 if err != nil {
@@ -347,7 +348,7 @@ func (p *GitHubProvider) isCollaborator(ctx context.Context, username, accessTok
347348 }
348349 result := requests.New(endpoint.String()).
349350 WithContext(ctx).
350− WithHeaders(getGitHubHeader(accessToken)).
351+ WithHeaders(makeGitHubHeader(accessToken)).
351352 Do()
352353 if result.Error() != nil {
353354 return false, result.Error()
@@ -411,7 +412,7 @@ func (p *GitHubProvider) GetEmailAddress(ctx context.Context, s *sessions.Sessio
411412 }
412413 err := requests.New(endpoint.String()).
413414 WithContext(ctx).
414− WithHeaders(getGitHubHeader(s.AccessToken)).
415+ WithHeaders(makeGitHubHeader(s.AccessToken)).
415416 Do().
416417 UnmarshalInto(&emails)
417418 if err != nil {
@@ -446,7 +447,7 @@ func (p *GitHubProvider) GetUserName(ctx context.Context, s *sessions.SessionSta
446447
447448 err := requests.New(endpoint.String()).
448449 WithContext(ctx).
449− WithHeaders(getGitHubHeader(s.AccessToken)).
450+ WithHeaders(makeGitHubHeader(s.AccessToken)).
450451 Do().
451452 UnmarshalInto(&user)
452453 if err != nil {
@@ -465,7 +466,7 @@ func (p *GitHubProvider) GetUserName(ctx context.Context, s *sessions.SessionSta
465466
466467// ValidateSessionState validates the AccessToken
467468func (p *GitHubProvider) ValidateSessionState(ctx context.Context, s *sessions.SessionState) bool {
468− return validateToken(ctx, p, s.AccessToken, getGitHubHeader(s.AccessToken))
469+ return validateToken(ctx, p, s.AccessToken, makeGitHubHeader(s.AccessToken))
469470}
470471
471472// isVerifiedUser