MCPcopy
hub / github.com/vouch/vouch-proxy / getOrgMembershipStateFromGitHub

Function getOrgMembershipStateFromGitHub

pkg/providers/github/github.go:120–149  ·  view source on GitHub ↗
(client *http.Client, user *structs.User, orgID string)

Source from the content-addressed store, hash-verified

118}
119
120func getOrgMembershipStateFromGitHub(client *http.Client, user *structs.User, orgID string) (isMember bool, rerr error) {
121 replacements := strings.NewReplacer(":org_id", orgID, ":username", user.Username)
122 orgMembershipResp, err := client.Get(replacements.Replace(cfg.GenOAuth.UserOrgURL))
123 if err != nil {
124 log.Error(err)
125 return false, err
126 }
127
128 if orgMembershipResp.StatusCode == 302 {
129 log.Debug("Need to check public membership")
130 location := orgMembershipResp.Header.Get("Location")
131 if location != "" {
132 orgMembershipResp, err = client.Get(location)
133 if err != nil {
134 log.Error(err)
135 }
136 }
137 }
138
139 if orgMembershipResp.StatusCode == 204 {
140 log.Debug("getOrgMembershipStateFromGitHub isMember: true")
141 return true, nil
142 } else if orgMembershipResp.StatusCode == 404 {
143 log.Debug("getOrgMembershipStateFromGitHub isMember: false")
144 return false, nil
145 } else {
146 log.Errorf("getOrgMembershipStateFromGitHub: unexpected status code %d", orgMembershipResp.StatusCode)
147 return false, errors.New("Unexpected response status " + orgMembershipResp.Status)
148 }
149}
150
151func getTeamMembershipStateFromGitHub(client *http.Client, user *structs.User, orgID string, team string) (isMember bool, rerr error) {
152 replacements := strings.NewReplacer(":org_id", orgID, ":team_slug", team, ":username", user.Username)

Calls

no outgoing calls