mirror of
https://github.com/strongdm/comply
synced 2024-11-05 23:45:25 +00:00
45 lines
989 B
Go
45 lines
989 B
Go
|
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)
|
||
|
}
|