in ci/internal/cli/mitresync.go [217:249]
func parseFlags(stdout io.Writer, args []string) (*mitreSyncFlags, error) {
f := mitreSyncFlags{
repo: "..",
}
fs := flag.NewFlagSet("mitresync", flag.ContinueOnError)
fs.StringVar(&f.sinceCommit, "since-commit", "", "check for record file changes since commit SHA")
fs.BoolVar(&f.update, "update", true, "update modified records on MITRE")
fs.StringVar(&f.mitreBaseURL, "mitre-base-url", mitre.DefaultBaseURL, "base URL to use for MITRE API requests")
fs.BoolVar(&f.dryrun, "dry-run", false, "don't perform data changing actions")
fs.BoolVar(&f.debug, "debug", false, "log debugging information")
if err := fs.Parse(args); err != nil {
if errors.Is(err, flag.ErrHelp) {
fs.Usage()
return nil, err
}
return nil, fmt.Errorf("parsing flags: %w", err)
}
if f.sinceCommit == "" {
f.sinceCommit = os.Getenv("CI_COMMIT_BEFORE_SHA")
}
f.args = fs.Args()
if len(f.args) > 0 {
f.repo = f.args[0]
}
return &f, nil
}