MCPcopy Create free account
hub / github.com/github/gh-aw / resolveDefaultsTarget

Function resolveDefaultsTarget

pkg/cli/env_command.go:425–476  ·  view source on GitHub ↗
(scope, repo, org, enterprise string, scopeRequired bool)

Source from the content-addressed store, hash-verified

423}
424
425func resolveDefaultsTarget(scope, repo, org, enterprise string, scopeRequired bool) (defaultsTarget, error) {
426 normalizedScope := strings.TrimSpace(scope)
427 if normalizedScope == "" {
428 if scopeRequired {
429 return defaultsTarget{}, errors.New("scope is required; use --scope repo|org|ent")
430 }
431 normalizedScope = defaultsScopeRepo
432 }
433
434 switch normalizedScope {
435 case defaultsScopeRepo:
436 repoSlug := strings.TrimSpace(repo)
437 if repoSlug == "" {
438 var err error
439 repoSlug, err = defaultsGetCurrentRepoSlug()
440 if err != nil {
441 return defaultsTarget{}, fmt.Errorf("failed to detect current repository: %w", err)
442 }
443 }
444 owner, name, err := repoutil.SplitRepoSlug(repoSlug)
445 if err != nil {
446 return defaultsTarget{}, fmt.Errorf("invalid repository slug %q: %w", repoSlug, err)
447 }
448 return defaultsTarget{scope: defaultsScopeRepo, repoOwner: owner, repoName: name}, nil
449 case defaultsScopeOrg:
450 targetOrg := strings.TrimSpace(org)
451 if targetOrg == "" {
452 repoSlug := strings.TrimSpace(repo)
453 if repoSlug == "" {
454 var err error
455 repoSlug, err = defaultsGetCurrentRepoSlug()
456 if err != nil {
457 return defaultsTarget{}, fmt.Errorf("failed to detect current repository: %w", err)
458 }
459 }
460 owner, _, err := repoutil.SplitRepoSlug(repoSlug)
461 if err != nil {
462 return defaultsTarget{}, fmt.Errorf("invalid repository slug %q: %w", repoSlug, err)
463 }
464 targetOrg = owner
465 }
466 return defaultsTarget{scope: defaultsScopeOrg, org: targetOrg}, nil
467 case defaultsScopeEnt:
468 targetEnt := strings.TrimSpace(enterprise)
469 if targetEnt == "" {
470 return defaultsTarget{}, errors.New("enterprise scope requires --enterprise <slug>")
471 }
472 return defaultsTarget{scope: defaultsScopeEnt, enterprise: targetEnt}, nil
473 default:
474 return defaultsTarget{}, fmt.Errorf("invalid scope %q; expected repo, org, or ent", scope)
475 }
476}
477
478func (t defaultsTarget) variablesEndpoint() string {
479 switch t.scope {

Callers 3

newDefaultsGetCommandFunction · 0.85
newDefaultsUpdateCommandFunction · 0.85

Calls 2

SplitRepoSlugFunction · 0.92
ErrorfMethod · 0.45

Tested by 1