name: Add Issue to Project Board # Automatically adds new issues to your GitHub Project board # No manual card creation needed on: issues: types: [opened] permissions: issues: write repository-projects: write env: # Replace with your Project number (find in Project URL) # Example: https://github.com/users/YOUR_USERNAME/projects/1 → PROJECT_NUMBER=1 PROJECT_NUMBER: 1 # Replace with your GitHub username or org PROJECT_OWNER: YOUR_GITHUB_USERNAME jobs: add-to-project: runs-on: ubuntu-latest steps: - name: Add issue to project uses: actions/add-to-project@v0.5.0 with: project-url: https://github.com/users/${{ env.PROJECT_OWNER }}/projects/${{ env.PROJECT_NUMBER }} github-token: ${{ secrets.PROJECT_TOKEN }} # Note: You need a PAT with project permissions, not GITHUB_TOKEN # Create one at: Settings → Developer settings → Personal access tokens # Scopes needed: project, repo - name: Set initial status to Inbox uses: actions/github-script@v7 with: github-token: ${{ secrets.PROJECT_TOKEN }} script: | // This sets the Status field to "Inbox" on the project board // You'll need to customize field IDs for your specific project console.log('Issue #${{ github.event.issue.number }} added to project board'); console.log('Title: ${{ github.event.issue.title }}'); - name: Add triage label if no labels if: github.event.issue.labels[0] == null uses: actions/github-script@v7 with: script: | github.rest.issues.addLabels({ owner: context.repo.owner, repo: context.repo.repo, issue_number: context.issue.number, labels: ['triage'] });