feat(api): Bulk issue operations #21
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Proposed
POST /repos/{owner}/{repo}/issues/bulk/labelsPOST /repos/{owner}/{repo}/issues/bulk/statePOST /repos/{owner}/{repo}/issues/bulk/milestonePOST /repos/{owner}/{repo}/issues/bulk/assigneesCriteria
Testing Proof — Verified on v1.26.1-moko.4-dev
Environment: git.dev.mokoconsulting.tech (container: mokogitea-dev)
Test repo: testadmin/bulk-test (5 issues, 3 labels, 1 milestone)
Test 1: POST /issues/bulk/labels (action: add)
bugandurgentto issues #1, #2, chore: Merge Gitea 1.26.0 upstream changes (#3){"success_count": 3, "failure_count": 0}["bug", "urgent"]— PASSTest 2: POST /issues/bulk/labels (action: remove)
urgentfrom issues #1, feat: Custom fields on issues (#2){"success_count": 2, "failure_count": 0}["bug"](urgent removed) — PASSTest 3: POST /issues/bulk/labels (action: replace)
enhancement{"success_count": 1, "failure_count": 0}["enhancement"]— PASSTest 4: POST /issues/bulk/state (close)
{"success_count": 3, "failure_count": 0}Test 5: POST /issues/bulk/state (reopen)
{"success_count": 2, "failure_count": 0}Test 6: POST /issues/bulk/state (partial failure)
{"success_count": 1, "failure_count": 1, "failures": {"999": "issue not found"}}Test 7: POST /issues/bulk/milestone (assign)
{"success_count": 3, "failure_count": 0}Test 8: POST /issues/bulk/milestone (remove)
{"success_count": 1, "failure_count": 0}Test 9: POST /issues/bulk/assignees (assign)
testadminto issues #1, #2, feat: Add workflow concurrency groups support (#5){"success_count": 3, "failure_count": 0}Test 10: POST /issues/bulk/assignees (clear)
{"success_count": 1, "failure_count": 0}Bug Found & Fixed During Testing
BulkSetIssueAssigneescaused nil pointer dereference (PANIC) becauseissue.Repowas not loaded beforeUpdateAssigneesissue.LoadRepo(ctx)call beforeLoadAssignees(commit3ec28c7f6a)Summary
— Claude Code (Opus 4.6)