auto-label-tui.yml 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. name: Auto-label TUI Issues
  2. on:
  3. issues:
  4. types: [opened]
  5. jobs:
  6. auto-label:
  7. runs-on: ubuntu-latest
  8. permissions:
  9. contents: read
  10. issues: write
  11. steps:
  12. - name: Auto-label and assign issues
  13. uses: actions/github-script@v7
  14. with:
  15. github-token: ${{ secrets.GITHUB_TOKEN }}
  16. script: |
  17. const issue = context.payload.issue;
  18. const title = issue.title;
  19. const description = issue.body || '';
  20. // Check for "opencode web" keyword
  21. const webPattern = /(opencode web)/i;
  22. const isWebRelated = webPattern.test(title) || webPattern.test(description);
  23. // Check for version patterns like v1.0.x or 1.0.x
  24. const versionPattern = /[v]?1\.0\./i;
  25. const isVersionRelated = versionPattern.test(title) || versionPattern.test(description);
  26. if (isWebRelated) {
  27. // Add web label
  28. await github.rest.issues.addLabels({
  29. owner: context.repo.owner,
  30. repo: context.repo.repo,
  31. issue_number: issue.number,
  32. labels: ['web']
  33. });
  34. // Assign to adamdotdevin
  35. await github.rest.issues.addAssignees({
  36. owner: context.repo.owner,
  37. repo: context.repo.repo,
  38. issue_number: issue.number,
  39. assignees: ['adamdotdevin']
  40. });
  41. } else if (isVersionRelated) {
  42. // Only add opentui if NOT web-related
  43. await github.rest.issues.addLabels({
  44. owner: context.repo.owner,
  45. repo: context.repo.repo,
  46. issue_number: issue.number,
  47. labels: ['opentui']
  48. });
  49. }