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

Function getTeamMembershipStateFromGitHub

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

Source from the content-addressed store, hash-verified

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)
153 membershipStateResp, err := client.Get(replacements.Replace(cfg.GenOAuth.UserTeamURL))
154 if err != nil {
155 log.Error(err)
156 return false, err
157 }
158 defer func() {
159 if err := membershipStateResp.Body.Close(); err != nil {
160 rerr = err
161 }
162 }()
163 if membershipStateResp.StatusCode == 200 {
164 data, _ := io.ReadAll(membershipStateResp.Body)
165 log.Infof("github team membership body: ", string(data))
166 ghTeamState := structs.GitHubTeamMembershipState{}
167 if err = json.Unmarshal(data, &ghTeamState); err != nil {
168 log.Error(err)
169 return false, err
170 }
171 log.Debugf("getTeamMembershipStateFromGitHub ghTeamState %s", ghTeamState)
172 return ghTeamState.State == "active", nil
173 } else if membershipStateResp.StatusCode == 404 {
174 log.Debug("getTeamMembershipStateFromGitHub isMember: false")
175 return false, err
176 } else {
177 log.Errorf("getTeamMembershipStateFromGitHub: unexpected status code %d", membershipStateResp.StatusCode)
178 return false, errors.New("Unexpected response status " + membershipStateResp.Status)
179 }
180}

Calls

no outgoing calls