@@ -119,49 +119,49 @@ func promptAllModules(modules map[string]moduleconfig.ModuleConfig, projectCrede
119119// requires the projectName to populate defaults
120120func getProjectNamePrompt () PromptHandler {
121121 return PromptHandler {
122- moduleconfig.Parameter {
122+ Parameter : moduleconfig.Parameter {
123123 Field : "projectName" ,
124124 Label : "Project Name" ,
125125 Default : "" ,
126126 },
127- NoCondition ,
128- NoValidation ,
127+ Condition : NoCondition ,
128+ Validate : NoValidation ,
129129 }
130130}
131131
132132func getProjectPrompts (projectName string , modules map [string ]moduleconfig.ModuleConfig ) map [string ]PromptHandler {
133133 handlers := map [string ]PromptHandler {
134134 "ShouldPushRepositories" : {
135- moduleconfig.Parameter {
135+ Parameter : moduleconfig.Parameter {
136136 Field : "ShouldPushRepositories" ,
137137 Label : "Should the created projects be checked into github automatically? (y/n)" ,
138138 Default : "y" ,
139139 },
140- NoCondition ,
141- SpecificValueValidation ("y" , "n" ),
140+ Condition : NoCondition ,
141+ Validate : SpecificValueValidation ("y" , "n" ),
142142 },
143143 "GithubRootOrg" : {
144- moduleconfig.Parameter {
144+ Parameter : moduleconfig.Parameter {
145145 Field : "GithubRootOrg" ,
146146 Label : "What's the root of the github org to create repositories in?" ,
147147 Default : "github.com/" ,
148148 },
149- KeyMatchCondition ("ShouldPushRepositories" , "y" ),
150- NoValidation ,
149+ Condition : KeyMatchCondition ("ShouldPushRepositories" , "y" ),
150+ Validate : NoValidation ,
151151 },
152152 }
153153
154154 for moduleName , module := range modules {
155155 label := fmt .Sprintf ("What do you want to call the %s project?" , moduleName )
156156
157157 handlers [moduleName ] = PromptHandler {
158- moduleconfig.Parameter {
158+ Parameter : moduleconfig.Parameter {
159159 Field : moduleName ,
160160 Label : label ,
161161 Default : module .OutputDir ,
162162 },
163- NoCondition ,
164- NoValidation ,
163+ Condition : NoCondition ,
164+ Validate : NoValidation ,
165165 }
166166 }
167167
@@ -215,63 +215,70 @@ func mapVendorToPrompts(projectCred globalconfig.ProjectCredential, vendor strin
215215 case "aws" :
216216 awsPrompts := []PromptHandler {
217217 {
218- moduleconfig.Parameter {
218+ Parameter : moduleconfig.Parameter {
219219 Field : "use_aws_profile" ,
220220 Label : "Use credentials from existing AWS profiles?" ,
221221 Options : []string {awsPickProfile , awsManualInputCredentials },
222222 },
223- customAwsPickProfileCondition ,
224- NoValidation ,
223+ Condition : customAwsPickProfileCondition ,
224+ Validate : NoValidation ,
225225 },
226226 {
227- moduleconfig.Parameter {
227+ Parameter : moduleconfig.Parameter {
228228 Field : "aws_profile" ,
229229 Label : "Select AWS Profile" ,
230230 Options : profiles ,
231231 },
232- KeyMatchCondition ("use_aws_profile" , awsPickProfile ),
233- NoValidation ,
232+ Condition : KeyMatchCondition ("use_aws_profile" , awsPickProfile ),
233+ Validate : NoValidation ,
234234 },
235235 {
236- moduleconfig.Parameter {
236+ Parameter : moduleconfig.Parameter {
237237 Field : "accessKeyId" ,
238238 Label : "AWS Access Key ID" ,
239239 Default : projectCred .AWSResourceConfig .AccessKeyID ,
240+ Info : `AWS Access Key ID/Secret: used for provisioning infrastructure in AWS
241+ The token can be generated at https://console.aws.amazon.com/iam/home?#/security_credentials` ,
240242 },
241- CustomCondition (customAwsMustInputCondition ),
242- ValidateAKID ,
243+ Condition : CustomCondition (customAwsMustInputCondition ),
244+ Validate : ValidateAKID ,
243245 },
244246 {
245- moduleconfig.Parameter {
247+ Parameter : moduleconfig.Parameter {
246248 Field : "secretAccessKey" ,
247249 Label : "AWS Secret access key" ,
248250 Default : projectCred .AWSResourceConfig .SecretAccessKey ,
249251 },
250- CustomCondition (customAwsMustInputCondition ),
251- ValidateSAK ,
252+ Condition : CustomCondition (customAwsMustInputCondition ),
253+ Validate : ValidateSAK ,
252254 },
253255 }
254256 prompts = append (prompts , awsPrompts ... )
255257 case "github" :
256258 githubPrompt := PromptHandler {
257- moduleconfig.Parameter {
259+ Parameter : moduleconfig.Parameter {
258260 Field : "accessToken" ,
259261 Label : "Github Personal Access Token with access to the above organization" ,
260262 Default : projectCred .GithubResourceConfig .AccessToken ,
263+ Info : `Github personal access token: used for creating repositories for your project
264+ Requires the following permissions: [repo::public_repo, admin::orgread:org]
265+ The token can be created at https://github.com/settings/tokens` ,
261266 },
262- NoCondition ,
263- NoValidation ,
267+ Condition : NoCondition ,
268+ Validate : NoValidation ,
264269 }
265270 prompts = append (prompts , githubPrompt )
266271 case "circleci" :
267272 circleCiPrompt := PromptHandler {
268- moduleconfig.Parameter {
273+ Parameter : moduleconfig.Parameter {
269274 Field : "apiKey" ,
270275 Label : "Circleci api key for CI/CD" ,
271276 Default : projectCred .CircleCiResourceConfig .ApiKey ,
277+ Info : `CircleCI api token: used for setting up CI/CD for your project
278+ The token can be created at https://app.circleci.com/settings/user/tokens` ,
272279 },
273- NoCondition ,
274- NoValidation ,
280+ Condition : NoCondition ,
281+ Validate : NoValidation ,
275282 }
276283 prompts = append (prompts , circleCiPrompt )
277284 }
0 commit comments