MCPcopy Create free account
hub / github.com/cli/cli / GetOrgMemberCodespace

Method GetOrgMemberCodespace

internal/codespaces/api/api.go:485–534  ·  view source on GitHub ↗
(ctx context.Context, orgName string, userName string, codespaceName string)

Source from the content-addressed store, hash-verified

483}
484
485func (a *API) GetOrgMemberCodespace(ctx context.Context, orgName string, userName string, codespaceName string) (*Codespace, error) {
486 perPage := 100
487 u, err := safeurl.JoinPathWithHostPrefix(a.githubAPI, "orgs", orgName, "members", userName, "codespaces")
488 if err != nil {
489 return nil, err
490 }
491 u.SetQuery("per_page", strconv.Itoa(perPage))
492 var listURL safeurl.SafeURL = u
493
494 for {
495 req, err := http.NewRequest(http.MethodGet, listURL.String(), nil)
496 if err != nil {
497 return nil, fmt.Errorf("error creating request: %w", err)
498 }
499 a.setHeaders(req)
500
501 resp, err := a.do(ctx, req, "/orgs/*/members/*/codespaces")
502 if err != nil {
503 return nil, fmt.Errorf("error making request: %w", err)
504 }
505 defer resp.Body.Close()
506
507 if resp.StatusCode != http.StatusOK {
508 return nil, api.HandleHTTPError(resp)
509 }
510
511 var response struct {
512 Codespaces []*Codespace `json:"codespaces"`
513 }
514
515 dec := json.NewDecoder(resp.Body)
516 if err := dec.Decode(&response); err != nil {
517 return nil, fmt.Errorf("error unmarshalling response: %w", err)
518 }
519
520 for _, cs := range response.Codespaces {
521 if cs.Name == codespaceName {
522 return cs, nil
523 }
524 }
525
526 nextURL := findNextPage(resp.Header.Get("Link"))
527 if nextURL == "" {
528 break
529 }
530 listURL = safeurl.NewImmutableSafeURL(nextURL)
531 }
532
533 return nil, fmt.Errorf("codespace not found for user %s with name %s", userName, codespaceName)
534}
535
536// GetCodespace returns the user codespace based on the provided name.
537// If the codespace is not found, an error is returned.

Callers

nothing calls this directly

Calls 11

StringMethod · 0.95
setHeadersMethod · 0.95
doMethod · 0.95
JoinPathWithHostPrefixFunction · 0.92
HandleHTTPErrorFunction · 0.92
NewImmutableSafeURLFunction · 0.92
SetQueryMethod · 0.80
findNextPageFunction · 0.70
ErrorfMethod · 0.65
CloseMethod · 0.65
GetMethod · 0.65

Tested by

no test coverage detected