| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 |
- ---
- name: Issue Responsibility
- on:
- issue_comment:
- types: [created]
- jobs:
- update-responsibility-labels:
- runs-on: ubuntu-latest
- steps:
- - name: Update responsibility labels
- uses: actions/github-script@v7
- with:
- github-token: ${{ secrets.GITHUB_TOKEN }}
- script: |
- const commentAuthor = context.payload.comment.user.login;
- const issueNumber = context.payload.issue.number;
- const owner = context.repo.owner;
- const repo = context.repo.repo;
- const skipAction = context.payload.comment.body.includes("/skip-responsibility");
- if (skipAction) {
- core.info("Skipping responsibility label update");
- return;
- }
- const developers = ["jamesread"]
- const commenterIsDeveloper = developers.includes(commentAuthor);
- const commenterIsUser = !commenterIsDeveloper;
- const issueLabels = context.payload.issue.labels.map(label => label.name);
- if (issueLabels.includes("waiting-on-developer")) {
- if (commenterIsDeveloper) {
- await github.rest.issues.removeLabel({
- owner,
- repo,
- issue_number: issueNumber,
- name: "waiting-on-developer",
- });
- await github.rest.issues.addLabels({
- owner,
- repo,
- issue_number: issueNumber,
- labels: ["waiting-on-requestor"],
- });
- core.info(`Switched responsibility to user for issue #${issueNumber}`);
- }
- }
- if (issueLabels.includes("waiting-on-requestor")) {
- if (commenterIsUser) {
- await github.rest.issues.removeLabel({
- owner,
- repo,
- issue_number: issueNumber,
- name: "waiting-on-requestor",
- });
- await github.rest.issues.addLabels({
- owner,
- repo,
- issue_number: issueNumber,
- labels: ["waiting-on-developer"],
- });
- core.info(`Switched responsibility to developer for issue #${issueNumber}`);
- }
- }
|