Skip to content

#164.2 — TriggerType: add GithubIssueUnassigned and GitlabIssueUnassigned variants #178

Description

@zeroklaw

Parent Epic

#164 — Cancel workflow on unassignment

Description

Add two new TriggerType variants to represent unassignment events, so the type system distinguishes them from assignment at compile time rather than relying on runtime string comparison.

Tasks

  • Add two new TriggerType variants: GithubIssueUnassigned { assigned_to: Option<String> } and GitlabIssueUnassigned { assigned_to: Option<String> }
  • Add string constants in triggers module: GITHUB_ISSUE_UNASSIGNED and GITLAB_ISSUE_UNASSIGNED
  • Implement Display, from_trigger(), label(), platform(), webhook_event(), and known_variables() for the new variants
  • webhook_event() should return the same event type as the assignment variants (GitHub: "issues", GitLab: "issues_events") since unassigned comes from the same webhook event type, just with a different action
  • known_variables() should mirror the assignment variants (same template variables: issue_number, assignee, etc.)

Exit Criteria

  • New variants compile, display correctly, and round-trip through from_trigger → label → from_trigger
  • No dependencies — can be done in parallel with Task 1

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions