parseReleaseTrigger parses release triggers
(tokens []string)
| 499 | |
| 500 | // parseReleaseTrigger parses release triggers |
| 501 | func parseReleaseTrigger(tokens []string) (*TriggerIR, error) { |
| 502 | if len(tokens) < 2 { |
| 503 | return nil, errors.New("release trigger requires an activity type. Expected format: 'release <type>'. Valid types: published, unpublished, created, edited, deleted, prereleased, released. Example: 'release published'") |
| 504 | } |
| 505 | |
| 506 | activityType := tokens[1] |
| 507 | |
| 508 | validTypes := map[string]struct { |
| 509 | }{ |
| 510 | "published": {}, |
| 511 | "unpublished": {}, |
| 512 | "created": {}, |
| 513 | "edited": {}, |
| 514 | "deleted": {}, |
| 515 | "prereleased": {}, |
| 516 | "released": {}, |
| 517 | } |
| 518 | |
| 519 | if !setutil.Contains(validTypes, activityType) { |
| 520 | return nil, fmt.Errorf("invalid release activity type: '%s'. Valid types: published, unpublished, created, edited, deleted, prereleased, released. Example: 'release published'", activityType) |
| 521 | } |
| 522 | |
| 523 | return &TriggerIR{ |
| 524 | Event: "release", |
| 525 | Types: []string{activityType}, |
| 526 | AdditionalEvents: map[string]any{ |
| 527 | "workflow_dispatch": nil, |
| 528 | }, |
| 529 | }, nil |
| 530 | } |
| 531 | |
| 532 | // parseRepositoryTrigger parses repository lifecycle triggers |
| 533 | func parseRepositoryTrigger(tokens []string) (*TriggerIR, error) { |
no test coverage detected