issue-label.yml 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. name: New issues labeler
  2. on:
  3. issues:
  4. types:
  5. - opened
  6. permissions:
  7. issues: write
  8. jobs:
  9. new-contributor-labeler:
  10. name: Label issues when they are created by a first time contributor
  11. permissions:
  12. contents: read
  13. issues: write
  14. runs-on: ubuntu-latest
  15. steps:
  16. - uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7
  17. with:
  18. script: |
  19. console.log("Verify that the issue was created by a first time contributor");
  20. const labelName = "triage/pending-triage";
  21. const creator = context.payload.sender.login
  22. const owner = context.repo.owner;
  23. const repo = context.repo.repo;
  24. const contributors = await github.paginate(
  25. github.rest.repos.listContributors,
  26. { owner, repo, per_page: 100 }
  27. );
  28. let isAlreadyContributor = contributors.some(
  29. (c) => (c.login ?? "").toLowerCase() === creator.toLowerCase()
  30. );
  31. if (isAlreadyContributor) {
  32. console.log("User %s is already a contributor", creator);
  33. return;
  34. }
  35. console.log("Adding label %s to issue number %d", labelName, context.issue.number)
  36. await github.rest.issues.addLabels({
  37. issue_number: context.issue.number,
  38. owner: owner,
  39. repo: repo,
  40. labels: [labelName]
  41. })