4
0

issue-responsibility.yml 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. ---
  2. name: Issue Responsibility
  3. on:
  4. issue_comment:
  5. types: [created]
  6. jobs:
  7. update-responsibility-labels:
  8. runs-on: ubuntu-latest
  9. steps:
  10. - name: Update responsibility labels
  11. uses: actions/github-script@v7
  12. with:
  13. github-token: ${{ secrets.GITHUB_TOKEN }}
  14. script: |
  15. const commentAuthor = context.payload.comment.user.login;
  16. const issueNumber = context.payload.issue.number;
  17. const owner = context.repo.owner;
  18. const repo = context.repo.repo;
  19. const skipAction = context.payload.comment.body.includes("/skip-responsibility");
  20. if (skipAction) {
  21. core.info("Skipping responsibility label update");
  22. return;
  23. }
  24. const developers = ["jamesread"]
  25. const commenterIsDeveloper = developers.includes(commentAuthor);
  26. const commenterIsUser = !commenterIsDeveloper;
  27. const issueLabels = context.payload.issue.labels.map(label => label.name);
  28. if (issueLabels.includes("waiting-on-developer")) {
  29. if (commenterIsDeveloper) {
  30. await github.rest.issues.removeLabel({
  31. owner,
  32. repo,
  33. issue_number: issueNumber,
  34. name: "waiting-on-developer",
  35. });
  36. await github.rest.issues.addLabels({
  37. owner,
  38. repo,
  39. issue_number: issueNumber,
  40. labels: ["waiting-on-requestor"],
  41. });
  42. core.info(`Switched responsibility to user for issue #${issueNumber}`);
  43. }
  44. }
  45. if (issueLabels.includes("waiting-on-requestor")) {
  46. if (commenterIsUser) {
  47. await github.rest.issues.removeLabel({
  48. owner,
  49. repo,
  50. issue_number: issueNumber,
  51. name: "waiting-on-requestor",
  52. });
  53. await github.rest.issues.addLabels({
  54. owner,
  55. repo,
  56. issue_number: issueNumber,
  57. labels: ["waiting-on-developer"],
  58. });
  59. core.info(`Switched responsibility to developer for issue #${issueNumber}`);
  60. }
  61. }