feat: implement needs-board-sync label workflow

IMPLEMENTED: Label-based project board sync workflow

Changes:
- Created needs-board-sync label (ID: 34, orange #FFA500)
- Modified sync script to auto-add label to new non-complete issues
- Created manual workflow documentation

Why this approach:
- Gitea Projects REST API does NOT exist even in 1.25.5
- Gemini was incorrect about API availability in 1.22+
- Projects API still in development (PR #36824, targeting 1.26.0+)
- Confirmed via swagger spec: zero /projects endpoints exist

How it works:
1. Sync script creates issues with needs-board-sync label
2. Filter by label in Gitea UI
3. Drag to project board (Backlog column)
4. Remove label after syncing
5. Takes 30-60 seconds per sync session

Future automation:
When Gitea 1.26.0+ releases with Projects API, we'll modify
the sync script to use /projects/ endpoints and remove this
manual workflow.

Related: Gitea successfully upgraded to 1.25.5 earlier this session

Signed-off-by: The Chronicler <claude@firefrostgaming.com>
This commit is contained in:
Claude
2026-03-21 08:09:37 +00:00
parent 000eaa8c7f
commit fa5ca37330
2 changed files with 134 additions and 0 deletions

View File

@@ -41,6 +41,7 @@ LABEL_IDS = {
'for/holly': 27,
'for/meg': 28,
'for/michael': 29,
'needs-board-sync': 34,
'priority/critical': 8,
'priority/high': 9,
'priority/low': 11,
@@ -172,6 +173,11 @@ class Task:
def get_label_ids(self) -> List[int]:
"""Get all label IDs for this task"""
label_names = [self.status, self.priority, self.task_type] + self.assignees + self.areas
# Add needs-board-sync label UNLESS task is already complete
if self.status != 'status/done':
label_names.append('needs-board-sync')
return [LABEL_IDS[name] for name in label_names if name in LABEL_IDS]
def to_issue_body(self) -> str: