feat: add merge-request issue type for refinery processing

Add TypeMergeRequest as a valid issue type for tracking merge queue
entries. This enables the refinery to track merge requests with
structured metadata (branch, target, source_issue, worker, rig).

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
Steve Yegge
2025-12-18 20:08:58 -08:00
parent 9dc34da64a
commit 3c04b763fd
4 changed files with 11 additions and 10 deletions

View File

@@ -392,7 +392,7 @@ func init() {
createCmd.Flags().String("title", "", "Issue title (alternative to positional argument)") createCmd.Flags().String("title", "", "Issue title (alternative to positional argument)")
createCmd.Flags().Bool("silent", false, "Output only the issue ID (for scripting)") createCmd.Flags().Bool("silent", false, "Output only the issue ID (for scripting)")
registerPriorityFlag(createCmd, "2") registerPriorityFlag(createCmd, "2")
createCmd.Flags().StringP("type", "t", "task", "Issue type (bug|feature|task|epic|chore)") createCmd.Flags().StringP("type", "t", "task", "Issue type (bug|feature|task|epic|chore|merge-request)")
registerCommonIssueFlags(createCmd) registerCommonIssueFlags(createCmd)
createCmd.Flags().StringSliceP("labels", "l", []string{}, "Labels (comma-separated)") createCmd.Flags().StringSliceP("labels", "l", []string{}, "Labels (comma-separated)")
createCmd.Flags().StringSlice("label", []string{}, "Alias for --labels") createCmd.Flags().StringSlice("label", []string{}, "Alias for --labels")

View File

@@ -519,7 +519,7 @@ func init() {
listCmd.Flags().StringP("status", "s", "", "Filter by status (open, in_progress, blocked, closed)") listCmd.Flags().StringP("status", "s", "", "Filter by status (open, in_progress, blocked, closed)")
registerPriorityFlag(listCmd, "") registerPriorityFlag(listCmd, "")
listCmd.Flags().StringP("assignee", "a", "", "Filter by assignee") listCmd.Flags().StringP("assignee", "a", "", "Filter by assignee")
listCmd.Flags().StringP("type", "t", "", "Filter by type (bug, feature, task, epic, chore)") listCmd.Flags().StringP("type", "t", "", "Filter by type (bug, feature, task, epic, chore, merge-request)")
listCmd.Flags().StringSliceP("label", "l", []string{}, "Filter by labels (AND: must have ALL). Can combine with --label-any") listCmd.Flags().StringSliceP("label", "l", []string{}, "Filter by labels (AND: must have ALL). Can combine with --label-any")
listCmd.Flags().StringSlice("label-any", []string{}, "Filter by labels (OR: must have AT LEAST ONE). Can combine with --label") listCmd.Flags().StringSlice("label-any", []string{}, "Filter by labels (OR: must have AT LEAST ONE). Can combine with --label")
listCmd.Flags().String("title", "", "Filter by title text (case-insensitive substring match)") listCmd.Flags().String("title", "", "Filter by title text (case-insensitive substring match)")

View File

@@ -1313,7 +1313,7 @@ func init() {
updateCmd.Flags().StringP("status", "s", "", "New status") updateCmd.Flags().StringP("status", "s", "", "New status")
registerPriorityFlag(updateCmd, "") registerPriorityFlag(updateCmd, "")
updateCmd.Flags().String("title", "", "New title") updateCmd.Flags().String("title", "", "New title")
updateCmd.Flags().StringP("type", "t", "", "New type (bug|feature|task|epic|chore)") updateCmd.Flags().StringP("type", "t", "", "New type (bug|feature|task|epic|chore|merge-request)")
registerCommonIssueFlags(updateCmd) registerCommonIssueFlags(updateCmd)
updateCmd.Flags().String("notes", "", "Additional notes") updateCmd.Flags().String("notes", "", "Additional notes")
updateCmd.Flags().String("acceptance-criteria", "", "DEPRECATED: use --acceptance") updateCmd.Flags().String("acceptance-criteria", "", "DEPRECATED: use --acceptance")

View File

@@ -218,18 +218,19 @@ type IssueType string
// Issue type constants // Issue type constants
const ( const (
TypeBug IssueType = "bug" TypeBug IssueType = "bug"
TypeFeature IssueType = "feature" TypeFeature IssueType = "feature"
TypeTask IssueType = "task" TypeTask IssueType = "task"
TypeEpic IssueType = "epic" TypeEpic IssueType = "epic"
TypeChore IssueType = "chore" TypeChore IssueType = "chore"
TypeMessage IssueType = "message" // Ephemeral communication between workers TypeMessage IssueType = "message" // Ephemeral communication between workers
TypeMergeRequest IssueType = "merge-request" // Merge queue entry for refinery processing
) )
// IsValid checks if the issue type value is valid // IsValid checks if the issue type value is valid
func (t IssueType) IsValid() bool { func (t IssueType) IsValid() bool {
switch t { switch t {
case TypeBug, TypeFeature, TypeTask, TypeEpic, TypeChore, TypeMessage: case TypeBug, TypeFeature, TypeTask, TypeEpic, TypeChore, TypeMessage, TypeMergeRequest:
return true return true
} }
return false return false