1
0
mirror of https://github.com/strongdm/comply synced 2024-11-25 17:14:53 +00:00

trigger procedure by ID

This commit is contained in:
Justin McCarthy 2018-05-17 23:08:34 -07:00
parent 8fbc7ab65a
commit 4c1b6fad7e
No known key found for this signature in database
GPG Key ID: 900437410E142A48
2 changed files with 45 additions and 0 deletions

View File

@ -44,6 +44,7 @@ func newApp() *cli.App {
} }
app.Commands = append(app.Commands, beforeCommand(buildCommand, projectMustExist)) app.Commands = append(app.Commands, beforeCommand(buildCommand, projectMustExist))
app.Commands = append(app.Commands, beforeCommand(procedureCommand, projectMustExist))
app.Commands = append(app.Commands, beforeCommand(schedulerCommand, projectMustExist)) app.Commands = append(app.Commands, beforeCommand(schedulerCommand, projectMustExist))
app.Commands = append(app.Commands, beforeCommand(serveCommand, projectMustExist)) app.Commands = append(app.Commands, beforeCommand(serveCommand, projectMustExist))
app.Commands = append(app.Commands, beforeCommand(syncCommand, projectMustExist)) app.Commands = append(app.Commands, beforeCommand(syncCommand, projectMustExist))

44
internal/cli/procedure.go Normal file
View File

@ -0,0 +1,44 @@
package cli
import (
"fmt"
"github.com/strongdm/comply/internal/model"
"github.com/urfave/cli"
)
var procedureCommand = cli.Command{
Name: "procedure",
ShortName: "proc",
Usage: "create ticket by procedure ID",
ArgsUsage: "procedureID",
Action: procedureAction,
Before: projectMustExist,
}
func procedureAction(c *cli.Context) error {
procedures, err := model.ReadProcedures()
if err != nil {
return err
}
if c.NArg() != 1 {
return cli.NewExitError("provide a procedure ID", 1)
}
procedureID := c.Args().First()
for _, procedure := range procedures {
if procedure.ID == procedureID {
// TODO: don't hardcode GH
tp := model.GetPlugin(model.GitHub)
tp.Create(&model.Ticket{
Name: procedure.Name,
Body: fmt.Sprintf("%s\n\n\n---\nProcedure-ID: %s", procedure.Body, procedure.ID),
}, []string{"comply", "comply-procedure"})
return nil
}
}
return cli.NewExitError(fmt.Sprintf("unknown procedure ID: %s", procedureID), 1)
}