@@ -32,7 +32,8 @@ var _ Provider = (*GitHubProvider)(nil)
32
32
33
33
const (
34
34
githubProviderName = "GitHub"
35
- githubDefaultScope = "user:email read:org"
35
+ githubDefaultScope = "user:email"
36
+ githubReadOrgScope = "read:org"
36
37
orgTeamSeparator = ":"
37
38
)
38
39
@@ -66,13 +67,18 @@ var (
66
67
67
68
// NewGitHubProvider initiates a new GitHubProvider
68
69
func NewGitHubProvider (p * ProviderData , opts options.GitHubOptions ) * GitHubProvider {
70
+ scope := githubDefaultScope
71
+ if opts .Team != "" || opts .Org != "" {
72
+ scope += " " + githubReadOrgScope
73
+ }
74
+
69
75
p .setProviderDefaults (providerDefaults {
70
76
name : githubProviderName ,
71
77
loginURL : githubDefaultLoginURL ,
72
78
redeemURL : githubDefaultRedeemURL ,
73
79
profileURL : nil ,
74
80
validateURL : githubDefaultValidateURL ,
75
- scope : githubDefaultScope ,
81
+ scope : scope ,
76
82
})
77
83
78
84
provider := & GitHubProvider {ProviderData : p }
@@ -132,8 +138,11 @@ func (p *GitHubProvider) setUsers(users []string) {
132
138
// EnrichSession updates the User & Email after the initial Redeem
133
139
func (p * GitHubProvider ) EnrichSession (ctx context.Context , s * sessions.SessionState ) error {
134
140
// Construct user info JSON from multiple GitHub API endpoints to have a more detailed session state
135
- if err := p .getOrgAndTeam (ctx , s ); err != nil {
136
- return err
141
+
142
+ if p .Org != "" || p .Team != "" {
143
+ if err := p .getOrgAndTeam (ctx , s ); err != nil {
144
+ return err
145
+ }
137
146
}
138
147
139
148
if err := p .checkRestrictions (ctx , s ); err != nil {
0 commit comments