diff --git a/.github/fabricbot.json b/.github/fabricbot.json new file mode 100644 index 0000000..9f6b4d0 --- /dev/null +++ b/.github/fabricbot.json @@ -0,0 +1,1373 @@ +{ + "version": "1.0", + "tasks": [ + { + "taskType": "trigger", + "capabilityId": "IssueResponder", + "subCapability": "IssuesOnlyResponder", + "version": "1.0", + "config": { + "taskName": "Add needs triage label to new issues", + "conditions": { + "operator": "and", + "operands": [ + { + "name": "isAction", + "parameters": { + "action": "opened" + } + }, + { + "operator": "not", + "operands": [ + { + "name": "isPartOfProject", + "parameters": {} + } + ] + }, + { + "operator": "not", + "operands": [ + { + "name": "isAssignedToSomeone", + "parameters": {} + } + ] + } + ] + }, + "actions": [ + { + "name": "addLabel", + "parameters": { + "label": "needs triage :mag:" + } + }, + { + "name": "addReply", + "parameters": { + "comment": "Hello ${issueAuthor}, thank you for opening an issue with us! \n\nI have automatically added a \"needs triage\" label to help get things started. Our team will analyze and investigate the issue, and escalate it to the relevant team if possible. Other community members may also look into the issue and provide feedback 🙌" + } + } + ], + "eventType": "issue", + "eventNames": [ + "issues", + "project_card" + ] + }, + "id": "s4mfxSkIB" + }, + { + "taskType": "trigger", + "capabilityId": "IssueResponder", + "subCapability": "IssueCommentResponder", + "version": "1.0", + "config": { + "taskName": "Replace needs author feedback label with needs attention label when the author comments on an issue", + "conditions": { + "operator": "and", + "operands": [ + { + "name": "isAction", + "parameters": { + "action": "created" + } + }, + { + "name": "isActivitySender", + "parameters": { + "user": { + "type": "author" + } + } + }, + { + "name": "hasLabel", + "parameters": { + "label": "needs author feedback :memo:" + } + }, + { + "name": "isOpen", + "parameters": {} + } + ] + }, + "actions": [ + { + "name": "addLabel", + "parameters": { + "label": "needs attention :wave:" + } + }, + { + "name": "removeLabel", + "parameters": { + "label": "needs author feedback :memo:" + } + } + ], + "eventType": "issue", + "eventNames": [ + "issue_comment" + ] + }, + "id": "t0ViW3K0bY" + }, + { + "taskType": "trigger", + "capabilityId": "IssueResponder", + "subCapability": "IssuesOnlyResponder", + "version": "1.0", + "config": { + "taskName": "Remove no recent activity label from issues", + "conditions": { + "operator": "and", + "operands": [ + { + "operator": "not", + "operands": [ + { + "name": "isAction", + "parameters": { + "action": "closed" + } + } + ] + }, + { + "name": "hasLabel", + "parameters": { + "label": "no-recent-activity :chart_with_downwards_trend:" + } + }, + { + "name": "isAction", + "parameters": { + "action": "edited" + } + } + ] + }, + "actions": [ + { + "name": "removeLabel", + "parameters": { + "label": "no-recent-activity :chart_with_downwards_trend:" + } + } + ], + "eventType": "issue", + "eventNames": [ + "issues", + "project_card" + ] + }, + "id": "o_NjsZUa9h" + }, + { + "taskType": "trigger", + "capabilityId": "IssueResponder", + "subCapability": "IssueCommentResponder", + "version": "1.0", + "config": { + "taskName": "Remove no recent activity label when an issue is commented on", + "conditions": { + "operator": "and", + "operands": [ + { + "name": "hasLabel", + "parameters": { + "label": "no-recent-activity :chart_with_downwards_trend:" + } + } + ] + }, + "actions": [ + { + "name": "removeLabel", + "parameters": { + "label": "no-recent-activity :chart_with_downwards_trend:" + } + } + ], + "eventType": "issue", + "eventNames": [ + "issue_comment" + ] + }, + "id": "bEzixsuJ-w" + }, + { + "taskType": "scheduled", + "capabilityId": "ScheduledSearch", + "subCapability": "ScheduledSearch", + "version": "1.1", + "config": { + "taskName": "Close stale issues", + "frequency": [ + { + "weekDay": 0, + "hours": [ + 1, + 7, + 13, + 19 + ] + }, + { + "weekDay": 1, + "hours": [ + 1, + 7, + 13, + 19 + ] + }, + { + "weekDay": 2, + "hours": [ + 1, + 7, + 13, + 19 + ] + }, + { + "weekDay": 3, + "hours": [ + 1, + 7, + 13, + 19 + ] + }, + { + "weekDay": 4, + "hours": [ + 1, + 7, + 13, + 19 + ] + }, + { + "weekDay": 5, + "hours": [ + 1, + 7, + 13, + 19 + ] + }, + { + "weekDay": 6, + "hours": [ + 1, + 7, + 13, + 19 + ] + } + ], + "searchTerms": [ + { + "name": "isIssue", + "parameters": {} + }, + { + "name": "isOpen", + "parameters": {} + }, + { + "name": "hasLabel", + "parameters": { + "label": "needs author feedback :memo:" + } + }, + { + "name": "hasLabel", + "parameters": { + "label": "no-recent-activity :chart_with_downwards_trend:" + } + }, + { + "name": "noActivitySince", + "parameters": { + "days": 30 + } + } + ], + "actions": [ + { + "name": "addReply", + "parameters": { + "comment": "${issueAuthor} This issue has been automatically closed because it was marked as requiring author feedback but has not had any activity for **30 days**." + } + }, + { + "name": "closeIssue", + "parameters": {} + } + ] + }, + "id": "nEltPLqKtz" + }, + { + "taskType": "scheduled", + "capabilityId": "ScheduledSearch", + "subCapability": "ScheduledSearch", + "version": "1.1", + "config": { + "taskName": "Add no recent activity label to issues", + "frequency": [ + { + "weekDay": 0, + "hours": [ + 2, + 8, + 14, + 20 + ] + }, + { + "weekDay": 1, + "hours": [ + 2, + 8, + 14, + 20 + ] + }, + { + "weekDay": 2, + "hours": [ + 2, + 8, + 14, + 20 + ] + }, + { + "weekDay": 3, + "hours": [ + 2, + 8, + 14, + 20 + ] + }, + { + "weekDay": 4, + "hours": [ + 2, + 8, + 14, + 20 + ] + }, + { + "weekDay": 5, + "hours": [ + 2, + 8, + 14, + 20 + ] + }, + { + "weekDay": 6, + "hours": [ + 2, + 8, + 14, + 20 + ] + } + ], + "searchTerms": [ + { + "name": "isIssue", + "parameters": {} + }, + { + "name": "isOpen", + "parameters": {} + }, + { + "name": "hasLabel", + "parameters": { + "label": "needs author feedback :memo:" + } + }, + { + "name": "noActivitySince", + "parameters": { + "days": 4 + } + }, + { + "name": "noLabel", + "parameters": { + "label": "no-recent-activity :chart_with_downwards_trend:" + } + } + ], + "actions": [ + { + "name": "addLabel", + "parameters": { + "label": "no-recent-activity :chart_with_downwards_trend:" + } + }, + { + "name": "addReply", + "parameters": { + "comment": "${issueAuthor} This issue has been automatically marked as stale because it has been marked as requiring author feedback but has not had any activity for **4 days**. It will be closed if no further activity occurs **within 26 days of this comment**." + } + } + ] + }, + "id": "7HLNxAJ9TG" + }, + { + "taskType": "scheduled", + "capabilityId": "ScheduledSearch", + "subCapability": "ScheduledSearch", + "version": "1.1", + "config": { + "taskName": "Close duplicate issues", + "frequency": [ + { + "weekDay": 0, + "hours": [ + 3, + 9, + 15, + 21 + ] + }, + { + "weekDay": 1, + "hours": [ + 3, + 9, + 15, + 21 + ] + }, + { + "weekDay": 2, + "hours": [ + 3, + 9, + 15, + 21 + ] + }, + { + "weekDay": 3, + "hours": [ + 3, + 9, + 15, + 21 + ] + }, + { + "weekDay": 4, + "hours": [ + 3, + 9, + 15, + 21 + ] + }, + { + "weekDay": 5, + "hours": [ + 3, + 9, + 15, + 21 + ] + }, + { + "weekDay": 6, + "hours": [ + 3, + 9, + 15, + 21 + ] + } + ], + "searchTerms": [ + { + "name": "isIssue", + "parameters": {} + }, + { + "name": "isOpen", + "parameters": {} + }, + { + "name": "hasLabel", + "parameters": { + "label": "duplicate :busts_in_silhouette:" + } + }, + { + "name": "noActivitySince", + "parameters": { + "days": 1 + } + } + ], + "actions": [ + { + "name": "addReply", + "parameters": { + "comment": "This issue has been marked as duplicate and has not had any activity for **1 day**. It will be closed for housekeeping purposes." + } + }, + { + "name": "closeIssue", + "parameters": {} + } + ] + }, + "id": "t4VmeoaqUT" + }, + { + "taskType": "trigger", + "capabilityId": "InPrLabel", + "subCapability": "InPrLabel", + "version": "1.0", + "config": { + "taskName": "Add 'In-PR' label on issue when an open pull request is targeting it", + "inPrLabelText": "Status: In PR", + "fixedLabelText": "Status: Fixed", + "fixedLabelEnabled": true, + "label_inPr": "auto merge", + "label_fixed": "completed :fire:" + }, + "id": "NqUKpb6AiH" + }, + { + "taskType": "trigger", + "capabilityId": "IssueResponder", + "subCapability": "IssueCommentResponder", + "version": "1.0", + "config": { + "conditions": { + "operator": "and", + "operands": [ + { + "operator": "not", + "operands": [ + { + "name": "isOpen", + "parameters": {} + } + ] + }, + { + "name": "isAction", + "parameters": { + "action": "created" + } + }, + { + "name": "hasLabel", + "parameters": { + "label": "no-recent-activity :chart_with_downwards_trend:" + } + }, + { + "name": "hasLabel", + "parameters": { + "label": "needs author feedback :memo:" + } + }, + { + "operator": "not", + "operands": [ + { + "name": "noActivitySince", + "parameters": { + "days": 7 + } + } + ] + }, + { + "operator": "not", + "operands": [ + { + "name": "isCloseAndComment", + "parameters": {} + } + ] + }, + { + "name": "isActivitySender", + "parameters": { + "user": { + "type": "author" + } + } + }, + { + "name": "activitySenderHasPermissions", + "parameters": { + "permissions": "none" + } + } + ] + }, + "eventType": "issue", + "eventNames": [ + "issue_comment" + ], + "taskName": "For issues closed due to inactivity, re-open an issue if issue author posts a reply within 7 days.", + "actions": [ + { + "name": "reopenIssue", + "parameters": {} + }, + { + "name": "removeLabel", + "parameters": { + "label": "no-recent-activity :chart_with_downwards_trend:" + } + }, + { + "name": "removeLabel", + "parameters": { + "label": "needs author feedback :memo:" + } + }, + { + "name": "addLabel", + "parameters": { + "label": "needs attention :wave:" + } + } + ] + }, + "id": "PAfX4S3kg" + }, + { + "taskType": "trigger", + "capabilityId": "IssueResponder", + "subCapability": "IssueCommentResponder", + "version": "1.0", + "config": { + "conditions": { + "operator": "and", + "operands": [ + { + "name": "isAction", + "parameters": { + "action": "created" + } + }, + { + "operator": "not", + "operands": [ + { + "name": "isOpen", + "parameters": {} + } + ] + }, + { + "name": "activitySenderHasPermissions", + "parameters": { + "permissions": "none" + } + }, + { + "name": "noActivitySince", + "parameters": { + "days": 7 + } + }, + { + "operator": "not", + "operands": [ + { + "name": "isCloseAndComment", + "parameters": {} + } + ] + } + ] + }, + "eventType": "issue", + "eventNames": [ + "issue_comment" + ], + "taskName": "For issues closed with no activity over 7 days, ask non-contributor to consider opening a new issue instead.", + "actions": [ + { + "name": "addReply", + "parameters": { + "comment": "Hello lovely human, thank you for your comment on this issue. Because this issue has been closed for a period of time, please strongly consider opening a new issue linking to this issue instead to ensure better visibility of your comment. Thank you!" + } + } + ] + }, + "id": "71bsZ9yLHQ" + }, + { + "taskType": "scheduled", + "capabilityId": "ScheduledSearch", + "subCapability": "ScheduledSearch", + "version": "1.1", + "config": { + "frequency": [ + { + "weekDay": 0, + "hours": [ + 0, + 6, + 12, + 18 + ] + }, + { + "weekDay": 1, + "hours": [ + 0, + 6, + 12, + 18 + ] + }, + { + "weekDay": 2, + "hours": [ + 0, + 6, + 12, + 18 + ] + }, + { + "weekDay": 3, + "hours": [ + 0, + 6, + 12, + 18 + ] + }, + { + "weekDay": 4, + "hours": [ + 0, + 6, + 12, + 18 + ] + }, + { + "weekDay": 5, + "hours": [ + 0, + 6, + 12, + 18 + ] + }, + { + "weekDay": 6, + "hours": [ + 0, + 6, + 12, + 18 + ] + } + ], + "searchTerms": [ + { + "name": "isClosed", + "parameters": {} + }, + { + "name": "noActivitySince", + "parameters": { + "days": 30 + } + }, + { + "name": "isUnlocked", + "parameters": {} + }, + { + "name": "isIssue", + "parameters": {} + } + ], + "taskName": "Lock issues closed without activity for over 30 days", + "actions": [ + { + "name": "lockIssue", + "parameters": { + "reason": "resolved" + } + } + ] + }, + "id": "hAPhS2m5ae" + }, + { + "taskType": "trigger", + "capabilityId": "EmailCleanser", + "subCapability": "EmailCleanser", + "version": "1.0", + "id": "Ew5Nzru7H", + "config": { + "taskName": "Remove Quoted Email Content" + } + }, + { + "taskType": "trigger", + "capabilityId": "IssueResponder", + "subCapability": "PullRequestReviewResponder", + "version": "1.0", + "config": { + "taskName": "Add needs author feedback label to pull requests when changes are requested", + "conditions": { + "operator": "and", + "operands": [ + { + "name": "isAction", + "parameters": { + "action": "submitted" + } + }, + { + "name": "isReviewState", + "parameters": { + "state": "changes_requested" + } + } + ] + }, + "actions": [ + { + "name": "addLabel", + "parameters": { + "label": "needs author feedback :memo:" + } + } + ], + "eventType": "pull_request", + "eventNames": [ + "pull_request_review" + ] + }, + "id": "azaSIhdH7J" + }, + { + "taskType": "trigger", + "capabilityId": "IssueResponder", + "subCapability": "PullRequestResponder", + "version": "1.0", + "config": { + "taskName": "Remove needs author feedback label when the author responds to a pull request", + "conditions": { + "operator": "and", + "operands": [ + { + "name": "isActivitySender", + "parameters": { + "user": { + "type": "author" + } + } + }, + { + "operator": "not", + "operands": [ + { + "name": "isAction", + "parameters": { + "action": "closed" + } + } + ] + }, + { + "name": "hasLabel", + "parameters": { + "label": "needs author feedback :memo:" + } + } + ] + }, + "actions": [ + { + "name": "removeLabel", + "parameters": { + "label": "needs author feedback :memo:" + } + } + ], + "eventType": "pull_request", + "eventNames": [ + "pull_request", + "issues", + "project_card" + ] + }, + "id": "kxeK-B4YXi" + }, + { + "taskType": "trigger", + "capabilityId": "IssueResponder", + "subCapability": "PullRequestCommentResponder", + "version": "1.0", + "config": { + "taskName": "Remove needs author feedback label when the author comments on a pull request", + "conditions": { + "operator": "and", + "operands": [ + { + "name": "isActivitySender", + "parameters": { + "user": { + "type": "author" + } + } + }, + { + "name": "hasLabel", + "parameters": { + "label": "needs author feedback :memo:" + } + } + ] + }, + "actions": [ + { + "name": "removeLabel", + "parameters": { + "label": "needs author feedback :memo:" + } + } + ], + "eventType": "pull_request", + "eventNames": [ + "issue_comment" + ] + }, + "id": "UP45rhZHlg" + }, + { + "taskType": "trigger", + "capabilityId": "IssueResponder", + "subCapability": "PullRequestReviewResponder", + "version": "1.0", + "config": { + "taskName": "Remove needs author feedback label when the author responds to a pull request review comment", + "conditions": { + "operator": "and", + "operands": [ + { + "name": "isActivitySender", + "parameters": { + "user": { + "type": "author" + } + } + }, + { + "name": "hasLabel", + "parameters": { + "label": "needs author feedback :memo:" + } + } + ] + }, + "actions": [ + { + "name": "removeLabel", + "parameters": { + "label": "needs author feedback :memo:" + } + } + ], + "eventType": "pull_request", + "eventNames": [ + "pull_request_review" + ] + }, + "id": "2GuH0DBsJT" + }, + { + "taskType": "trigger", + "capabilityId": "IssueResponder", + "subCapability": "PullRequestResponder", + "version": "1.0", + "config": { + "taskName": "Remove no recent activity label from pull requests", + "conditions": { + "operator": "and", + "operands": [ + { + "operator": "not", + "operands": [ + { + "name": "isAction", + "parameters": { + "action": "closed" + } + } + ] + }, + { + "name": "hasLabel", + "parameters": { + "label": "no-recent-activity :chart_with_downwards_trend:" + } + } + ] + }, + "actions": [ + { + "name": "removeLabel", + "parameters": { + "label": "no-recent-activity :chart_with_downwards_trend:" + } + } + ], + "eventType": "pull_request", + "eventNames": [ + "pull_request", + "issues", + "project_card" + ] + }, + "id": "xxNAyxc3jk" + }, + { + "taskType": "trigger", + "capabilityId": "IssueResponder", + "subCapability": "PullRequestCommentResponder", + "version": "1.0", + "config": { + "taskName": "Remove no recent activity label when a pull request is commented on", + "conditions": { + "operator": "and", + "operands": [ + { + "name": "hasLabel", + "parameters": { + "label": "no-recent-activity :chart_with_downwards_trend:" + } + } + ] + }, + "actions": [ + { + "name": "removeLabel", + "parameters": { + "label": "no-recent-activity :chart_with_downwards_trend:" + } + } + ], + "eventType": "pull_request", + "eventNames": [ + "issue_comment" + ] + }, + "id": "6GucTTOzm2" + }, + { + "taskType": "trigger", + "capabilityId": "IssueResponder", + "subCapability": "PullRequestReviewResponder", + "version": "1.0", + "config": { + "taskName": "Remove no recent activity label when a pull request is reviewed", + "conditions": { + "operator": "and", + "operands": [ + { + "name": "hasLabel", + "parameters": { + "label": "no-recent-activity :chart_with_downwards_trend:" + } + } + ] + }, + "actions": [ + { + "name": "removeLabel", + "parameters": { + "label": "no-recent-activity :chart_with_downwards_trend:" + } + } + ], + "eventType": "pull_request", + "eventNames": [ + "pull_request_review" + ] + }, + "id": "MzzXj2YrAd" + }, + { + "taskType": "scheduled", + "capabilityId": "ScheduledSearch", + "subCapability": "ScheduledSearch", + "version": "1.1", + "config": { + "taskName": "Close stale pull requests", + "frequency": [ + { + "weekDay": 0, + "hours": [ + 4, + 10, + 16, + 22 + ] + }, + { + "weekDay": 1, + "hours": [ + 4, + 10, + 16, + 22 + ] + }, + { + "weekDay": 2, + "hours": [ + 4, + 10, + 16, + 22 + ] + }, + { + "weekDay": 3, + "hours": [ + 4, + 10, + 16, + 22 + ] + }, + { + "weekDay": 4, + "hours": [ + 4, + 10, + 16, + 22 + ] + }, + { + "weekDay": 5, + "hours": [ + 4, + 10, + 16, + 22 + ] + }, + { + "weekDay": 6, + "hours": [ + 4, + 10, + 16, + 22 + ] + } + ], + "searchTerms": [ + { + "name": "isPr", + "parameters": {} + }, + { + "name": "isOpen", + "parameters": {} + }, + { + "name": "hasLabel", + "parameters": { + "label": "needs author feedback :memo:" + } + }, + { + "name": "hasLabel", + "parameters": { + "label": "no-recent-activity :chart_with_downwards_trend:" + } + }, + { + "name": "noActivitySince", + "parameters": { + "days": 7 + } + } + ], + "actions": [ + { + "name": "closeIssue", + "parameters": {} + } + ] + }, + "id": "xtiQUtQwf9" + }, + { + "taskType": "scheduled", + "capabilityId": "ScheduledSearch", + "subCapability": "ScheduledSearch", + "version": "1.1", + "config": { + "taskName": "Add no recent activity label to pull requests", + "frequency": [ + { + "weekDay": 0, + "hours": [ + 5, + 11, + 17, + 23 + ] + }, + { + "weekDay": 1, + "hours": [ + 5, + 11, + 17, + 23 + ] + }, + { + "weekDay": 2, + "hours": [ + 5, + 11, + 17, + 23 + ] + }, + { + "weekDay": 3, + "hours": [ + 5, + 11, + 17, + 23 + ] + }, + { + "weekDay": 4, + "hours": [ + 5, + 11, + 17, + 23 + ] + }, + { + "weekDay": 5, + "hours": [ + 5, + 11, + 17, + 23 + ] + }, + { + "weekDay": 6, + "hours": [ + 5, + 11, + 17, + 23 + ] + } + ], + "searchTerms": [ + { + "name": "isPr", + "parameters": {} + }, + { + "name": "isOpen", + "parameters": {} + }, + { + "name": "hasLabel", + "parameters": { + "label": "needs author feedback :memo:" + } + }, + { + "name": "noActivitySince", + "parameters": { + "days": 7 + } + }, + { + "name": "noLabel", + "parameters": { + "label": "no-recent-activity :chart_with_downwards_trend:" + } + } + ], + "actions": [ + { + "name": "addLabel", + "parameters": { + "label": "no-recent-activity :chart_with_downwards_trend:" + } + }, + { + "name": "addReply", + "parameters": { + "comment": "${issueAuthor} This pull request has been automatically marked as stale because it has been marked as requiring author feedback but has not had any activity for **7 days**. It will be closed if no further activity occurs **within 7 days of this comment**." + } + } + ] + }, + "id": "mm4QPH2OvJ" + }, + { + "taskType": "trigger", + "capabilityId": "AutoMerge", + "subCapability": "AutoMerge", + "version": "1.0", + "config": { + "taskName": "Automatically merge pull requests", + "label": "auto merge", + "silentMode": false, + "minMinutesOpen": 480, + "mergeType": "merge", + "allowAutoMergeInstructionsWithoutLabel": true, + "deleteBranches": true, + "enforceDMPAsStatus": true, + "removeLabelOnPush": true, + "usePrDescriptionAsCommitMessage": true + }, + "id": "821Wy6f6k9" + } + ], + "userGroups": [] +}