in cmd/setupgh.go [77:150]
func fillSetUpConfig(sc *providers.SetUpCmd, gh providers.GhClient, az providers.AzClientInterface) error {
if sc.TenantId == "" {
tenandId, err := providers.PromptTenantId(sc.AzClient, context.Background())
if err != nil {
return fmt.Errorf("prompting tenant ID: %w", err)
}
sc.TenantId = tenandId
}
if sc.AppName == "" {
// Set the application name; default is the current directory name plus "-workflow".
// get the current directory name
currentDir, err := os.Getwd()
if err != nil {
return fmt.Errorf("getting current directory: %w", err)
}
defaultAppName := fmt.Sprintf("%s-workflow", filepath.Base(currentDir))
defaultAppName, err = ToValidAppName(defaultAppName)
if err != nil {
log.Debugf("unable to convert default app name %q to a valid name: %v", defaultAppName, err)
log.Debugf("using default app name %q", defaultAppName)
defaultAppName = "my-workflow"
}
appName, err := PromptAppName(sc.AzClient, defaultAppName)
if err != nil {
return fmt.Errorf("prompting app name: %w", err)
}
sc.AppName = appName
}
if sc.SubscriptionID == "" {
if strings.ToLower(sc.Provider) == "azure" {
currentSub, err := az.GetCurrentAzSubscriptionLabel()
if err != nil {
return fmt.Errorf("getting current subscription ID: %w", err)
}
subLabels, err := az.GetAzSubscriptionLabels()
if err != nil {
return fmt.Errorf("getting subscription labels: %w", err)
}
sc.SubscriptionID, err = getAzSubscriptionId(subLabels, currentSub)
if err != nil {
return fmt.Errorf("getting subscription ID: %w", err)
}
} else {
sc.SubscriptionID = getSubscriptionID()
}
}
if sc.ResourceGroupName == "" {
rg, err := PromptResourceGroup(sc.AzClient, sc.SubscriptionID)
if err != nil {
return fmt.Errorf("getting resource group: %w", err)
}
sc.ResourceGroupName = *rg.Name
}
if sc.Repo == "" {
repo, err := PromptGitHubRepoWithOwner(gh)
if err != nil {
return fmt.Errorf("failed to prompt for GitHub repository: %w", err)
}
if repo == "" {
return errors.New("github repo cannot be empty")
}
sc.Repo = repo
}
return nil
}