Skip to content

Conversation

dannywillems
Copy link
Member

@dannywillems dannywillems commented Sep 23, 2025

Summary

  • Fixes API rate limit errors in the board carryover workflow by ensuring proper authentication
  • Adds explicit permissions for repository-projects access
  • Uses fallback token logic (PROJECT_PAT || GITHUB_TOKEN) for better reliability
  • Adds workflow_dispatch trigger for manual testing

Root Cause Analysis

The board carryover workflow was failing due to multiple issues:

  1. Authentication Issues: API rate limit errors from unauthenticated requests
  2. Missing Project Configuration: The GitHub Project (Rust node) lacks an "Iteration" field required by the workflow

Issues Fixed

1. Authentication & Rate Limiting

  • Added explicit permissions for repository-projects access
  • Implemented token fallback logic (PROJECT_PAT || GITHUB_TOKEN)
  • Resolved "API rate limit exceeded" errors

2. Testing Capabilities

  • Added workflow_dispatch trigger for manual testing
  • Documented testing procedures

Changes Made

  1. Added explicit permissions to the workflow for repository projects
  2. Implemented token fallback logic - tries PROJECT_PAT first, falls back to GITHUB_TOKEN
  3. Added workflow_dispatch trigger for manual testing
  4. Updated authentication approach to resolve rate limiting

Manual Testing

To test the board carryover workflow manually:

Via GitHub UI:

  1. Navigate to Actions tab in GitHub
  2. Select "Move unfinished items to next iteration" workflow
  3. Click "Run workflow" button
  4. Select the branch and click "Run workflow"

Via GitHub CLI:

gh workflow run board-carryover-interation.yaml --ref BRANCH_NAME
gh run list --workflow="board-carryover-interation.yaml" --limit=3
gh run watch RUN_ID  # To monitor progress

Remaining Issue

Project Configuration: The current GitHub Project (Rust node) uses Status fields (Todo, In Progress, Done) but lacks an "Iteration" field. The move-to-next-iteration action specifically requires projects with iteration/sprint fields to function.

Recommendations

  1. If iterations are needed: Add an "Iteration" field to the GitHub Project with values like "Sprint 1", "Sprint 2", etc.
  2. If iterations are not needed: Consider removing this workflow entirely as the current project structure doesn't support iteration-based workflows
  3. Alternative: Use a different automation that works with the current Status-based project structure

Testing Results

  • ✅ Authentication issues resolved
  • ✅ Manual trigger capability added
  • ❌ Workflow still fails due to missing Iteration field: "Could not resolve to a ProjectV2 with the number 24" / Iteration field not found

- Add explicit permissions for repository-projects access
- Use fallback token logic (PROJECT_PAT || GITHUB_TOKEN)
- Add workflow_dispatch trigger for manual testing
- Resolves API rate limit errors by ensuring proper authentication
@dannywillems dannywillems marked this pull request as draft September 24, 2025 16:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: No status
Development

Successfully merging this pull request may close these issues.

1 participant