Issue Triage Automation
This page details the automation that is in place to help with the triage of issues and PRs raised against the AVM modules.
Schedule based automation
This section details all automation rules that are based on a schedule.
Note
When calculating the number of business days in the issue/triage automation, the built-in logic considers Monday-Friday as business days. The logic doesn’t consider any holidays.
ITA01BCP.1-2
If a bug/feature/request/general question that has the labels of Type: AVM 🅰️ ✌️ ⓜ️ and Needs: Triage 🔍 is not responded to after 3 business days, then the issue will be marked with the Status: Response Overdue 🚩 label and the AVM Core team will be mentioned in a comment on the issue to reach out to the module owner.
Schedule:
- Triggered every Monday-Friday, at 12:00.
Trigger criteria:
- Is an open issue.
- Had no activity in the last 3 business days.
- Has the Needs: Triage 🔍 and Type: AVM 🅰️ ✌️ ⓜ️ labels added.
Action(s):
- Add a reply, mentioning the
Azure/avm-core-team-technical-bicep
team. - Add the Status: Response Overdue 🚩 label.
Tip
- To prevent further actions to take effect, the Status: Response Overdue 🚩 label must be removed, once this issue has been responded to.
- To avoid this rule being (re)triggered, the Needs: Triage 🔍 must be removed as part of the triage process (when the issue is first responded to).
ITA01TF.1-2
If a bug/feature/request/general question that has the Needs: Triage 🔍 label added is not responded to after 3 business days, then the issue will be marked with the Status: Response Overdue 🚩 label and the AVM Core team will be mentioned in a comment on the issue to reach out to the module owner.
Schedule:
- Triggered every Monday-Friday, at 12:00.
Trigger criteria:
- Is an open issue.
- Had no activity in the last 3 business days.
- Has the Needs: Triage 🔍 label added.
Action(s):
- Add a reply, mentioning the
Azure/avm-core-team-technical-bicep
team. - Add the Status: Response Overdue 🚩 label.
Tip
- To prevent further actions to take effect, the Status: Response Overdue 🚩 label must be removed, once this issue has been responded to.
- To avoid this rule being (re)triggered, the Needs: Triage 🔍 must be removed as part of the triage process (when the issue is first responded to).
ITA02BCP.1-2
If after an additional 3 business days there’s still no update to the issue that has the labels of Type: AVM 🅰️ ✌️ ⓜ️ and Status: Response Overdue 🚩 , the AVM core team will be mentioned on the issue and a further comment stating module owner is unresponsive will be added. The Needs: Immediate Attention ‼️ label will also be added.
Schedule:
- Triggered every Monday-Friday, at 12:00.
Trigger criteria:
- Is an open issue.
- Had no activity in the last 3 business days.
- Has the Status: Response Overdue 🚩 and Type: AVM 🅰️ ✌️ ⓜ️ labels added.
Action(s):
- Add a reply, mentioning the
Azure/avm-core-team-technical-bicep
team. - Add the Needs: Immediate Attention ‼️ label.
Tip
- To avoid this rule being (re)triggered, the Needs: Triage 🔍 and Status: Response Overdue 🚩 labels must be removed when the issue is first responded to!
- Remove the Needs: Immediate Attention ‼️ label once the issue has been responded to.
ITA02TF.1-2
If after an additional 3 business days there’s still no update to the issue that has the Status: Response Overdue 🚩 label added, the AVM core team will be mentioned on the issue and a further comment stating module owner is unresponsive will be added. The Needs: Immediate Attention ‼️ label will also be added.
Schedule:
- Triggered every Monday-Friday, at 12:00.
Trigger criteria:
- Is an open issue.
- Had no activity in the last 3 business days.
- Has the Status: Response Overdue 🚩 label added.
Action(s):
- Add a reply, mentioning the
Azure/avm-core-team-technical-bicep
team. - Add the Needs: Immediate Attention ‼️ label.
Tip
- To avoid this rule being (re)triggered, the Needs: Triage 🔍 and Status: Response Overdue 🚩 labels must be removed when the issue is first responded to!
- Remove the Needs: Immediate Attention ‼️ label once the issue has been responded to.
ITA03BCP
If there’s still no response after 5 days (total from start of issue being raised) on an issue that has the labels of Type: AVM 🅰️ ✌️ ⓜ️ , Needs: Triage 🔍 , Type: Security Bug 🔒 and Status: Response Overdue 🚩 , the Bicep PG GitHub Team will be mentioned on the issue to assist. The Needs: Immediate Attention ‼️ label will also be added.
Schedule:
- Triggered every Monday-Friday, at 12:00.
Trigger criteria:
- Is an open issue.
- Had no activity in the last 5 business days.
- Has the Needs: Triage 🔍 , the Type: Security Bug 🔒 , the Status: Response Overdue 🚩 , and Type: AVM 🅰️ ✌️ ⓜ️ labels added.
Action(s):
- Add a reply, mentioning the
Azure/bicep-admins
team. - Add the Needs: Immediate Attention ‼️ label.
Tip
- To avoid this rule being (re)triggered, the Needs: Triage 🔍 and Status: Response Overdue 🚩 labels must be removed when the issue is first responded to!
- Remove the Needs: Immediate Attention ‼️ label once the issue has been responded to.
ITA03TF
If there’s still no response after 5 days (total from start of issue being raised) on an issue that has the labels of Needs: Triage 🔍 , Type: Security Bug 🔒 and Status: Response Overdue 🚩 , the Terraform PG GitHub Team will be mentioned on the issue to assist. The Needs: Immediate Attention ‼️ label will also be added.
Schedule:
- Triggered every Monday-Friday, at 12:00.
Trigger criteria:
- Is an open issue.
- Had no activity in the last 5 business days.
- Has the Needs: Triage 🔍 , the Type: Security Bug 🔒 , and Status: Response Overdue 🚩 labels added.
Action(s):
- Add a reply, mentioning the
Azure/terraform-avm
team. - Add the Needs: Immediate Attention ‼️ label.
ITA04
If an issue/PR has been labelled with Needs: Author Feedback 👂 and hasn’t had a response in 4 days, label with Status: No Recent Activity 💤 and add a comment.
Schedule:
- Triggered every 3 hours.
Trigger criteria:
- Is an open issue/PR.
- Had no activity in the last 4 days.
- Has the Needs: Author Feedback 👂 label added.
- Does not have the Status: No Recent Activity 💤 label added.
Action(s):
- Add the Status: No Recent Activity 💤 label.
- Add a reply.
Tip
To prevent further actions to take effect, one of the following conditions must be met:
- The author must respond in a comment within 3 days of the automatic comment left on the issue.
- The Status: No Recent Activity 💤 label must be removed.
- If applicable, the Status: Long Term ⏳ or the Needs: Module Owner 📣 label must be added.
ITA05
Warning
This rule is currently disabled in the AVM and BRM repositories.
If an issue/PR has been labelled with Status: No Recent Activity 💤 and hasn’t had any update in 3 days from that point, automatically close it and comment, unless the issue/PR has a Status: Long Term ⏳ - in which case, do not close it.
Schedule:
- Triggered every 3 hours.
Trigger criteria:
- Is an open issue.
- Had no activity in the last 3 days.
- Has the Needs: Author Feedback 👂 and the Status: No Recent Activity 💤 labels added.
- Does not have the Needs: Module Owner 📣 or Status: Long Term ⏳ labels added.
Action(s):
- Add a reply.
- Close the issue.
Tip
- In case the issue needs to be reopened (e.g., the author responds after the issue was closed), the Status: No Recent Activity 💤 label must be removed.
ITA24
Remind module owner(s) to start or continue working on this module if there was no activity on the Module Proposal issue for more than 3 weeks. Add Needs: Attention 👋 label.
Schedule:
- Triggered every 3 hours.
Trigger criteria:
- Is an open issue.
- Had no activity in the last 21 days.
- Has the Type: New Module Proposal 💡 and the Status: Owners Identified 🤘 labels added.
- Does not have the Status: Long Term ⏳ label added.
Action(s):
- Add a reply.
- Add the Needs: Attention 👋 label.
Tip
- To silence this notification, provide an update every 3 weeks on the Module Proposal issue, or add the Status: Long Term ⏳ label.
Event based automation
This chapter details all automation rules that are based on an event.
ITA06
When a new issue or PR of any type is created add the Needs: Triage 🔍 label.
Trigger criteria:
- An issue or PR is opened.
Action(s):
- Add the Needs: Triage 🔍 label.
- Add a reply to explain the action(s).
ITA08BCP
If AVM or “Azure Verified Modules” is mentioned in an uncategorized issue (i.e., one not using any template), apply the label of Type: AVM 🅰️ ✌️ ⓜ️ on the issue.
Trigger criteria:
- An issue, issue comment, PR, or PR comment is opened, created or edited and the body or comment contains the strings of “AVM” or “Azure Verified Modules”.
Action(s):
- Add the Type: AVM 🅰️ ✌️ ⓜ️ label.
ITA09
When #RR is used in an issue, add the label of Needs: Author Feedback 👂 .
Trigger criteria:
- An issue comment or PR comment contains the string of “#RR”.
Action(s):
- Add the Needs: Author Feedback 👂 label.
ITA10
When #wontfix is used in an issue, mark it by using the label of Status: Won’t Fix 💔 and close the issue.
Trigger criteria:
- An issue comment or PR comment contains the string of “#RR”.
Action(s):
- Add the Status: Won’t Fix 💔 label.
- Close the issue.
ITA11
When the author replies, remove the Needs: Author Feedback 👂 label and label with Needs: Attention 👋 .
Trigger criteria:
- Any action on an issue comment or PR comment except closing.
- Has the Needs: Author Feedback 👂 label added.
- The activity was initiated by the issue/PR author.
Action(s):
- Remove the Needs: Author Feedback 👂 label.
- Remove the Status: No Recent Activity 💤 label.
- Add the Needs: Attention 👋 label.
ITA12
Clean up e-mail replies to GitHub Issues for readability.
Trigger criteria:
- Any action on an issue comment.
Action(s):
- Clean email reply. This is useful when someone directly responds to an email notification from GitHub, and the email signature is included in the comment.
ITA13
If the language is set to Bicep in the Module proposal, add the Language: Bicep 💪 label on the issue.
Trigger criteria:
- An issue is opened with its body matching the below pattern.
### Bicep or Terraform?
Bicep
Action(s):
- Add the Language: Bicep 💪 label.
ITA14
If the language is set to Terraform in the Module proposal, add the Language: Terraform 🌐 label on the issue.
Trigger criteria:
- An issue is opened with its body matching the below pattern.
### Bicep or Terraform?
Terraform
Action(s):
- Add the Language: Terraform 🌐 label.
ITA15
Remove the Needs: Triage 🔍 label from a PR, if it already has a “Type: XYZ label added and is assigned to someone at the time of creating it.
Trigger criteria:
- A PR is opened with any of the following labels added and is assigned to someone:
- Type: Bug 🐛
- Type: Documentation 📄
- Type: Duplicate 🤲
- Type: Feature Request ➕
- Type: Hygiene 🧹
- Type: New Module Proposal 💡
- Type: Question/Feedback 🙋♀️
- Type: Security Bug 🔒
Action(s):
- Remove the Needs: Triage 🔍 label.
ITA16
Add the Status: Owners Identified 🤘 label when someone is assigned to a Module Proposal.
Trigger criteria:
- Any action on an issue except closing.
- Has the Type: New Module Proposal 💡 added.
- The issue is assigned to someone.
Action(s):
- Add the Status: Owners Identified 🤘 label.
ITA17
If the issue author says they want to be the module owner, assign the issue to the author and respond to them.
Trigger criteria:
An issue is opened with its body matching the below pattern.
### Do you want to be the owner of this module? Yes
Action(s):
Assign the issue to the author.
Add the below reply and explain the action(s).
@${issueAuthor}, thanks for volunteering to be a module owner! **Please don't start the development just yet!** The AVM core team will review this module proposal and respond to you first. Thank you!
ITA18
Send automatic response to the issue author if they don’t want to be module owner and don’t have any candidate in mind. Add the Needs: Module Owner 📣 label.
Trigger criteria:
An issue is opened with its body matching the below pattern.
### Do you want to be the owner of this module? No ### Module Owner's GitHub Username (handle) _No response_
Action(s):
Add the Needs: Module Owner 📣 label.
Add the below reply and explain the action(s).
@${issueAuthor}, thanks for submitting this module proposal! The AVM core team will review it and will try to find a module owner.
ITA19
Send automatic response to the issue author if they don’t want to be module owner but have a candidate in mind. Add the Status: Owners Identified 🤘 label.
Trigger criteria:
An issue is opened with its body matching the below pattern…
### Do you want to be the owner of this module? No
…AND NOT matching the below pattern.
### Module Owner's GitHub Username (handle) _No response_
Action(s):
Add the Status: Owners Identified 🤘 label.
Add the below reply and explain the action(s).
@${issueAuthor}, thanks for submitting this module proposal with a module owner in mind! **Please don't start the development just yet!** The AVM core team will review this module proposal and respond to you and/or the module owner first. Thank you!
ITA20
If the issue type is feature request, add the Type: Feature Request ➕ label on the issue.
Trigger criteria:
An issue is opened with its body matching the below pattern.
### Issue Type? Feature Request
Action(s):
- Add the Type: Feature Request ➕ label.
ITA21
If the issue type is bug, add the Type: Bug 🐛 label on the issue.
Trigger criteria:
An issue is opened with its body matching the below pattern.
### Issue Type? Bug
Action(s):
- Add the Type: Bug 🐛 label.
ITA22
If the issue type is security bug, add the Type: Security Bug 🔒 label on the issue.
Trigger criteria:
An issue is opened with its body matching the below pattern.
### Issue Type? Security Bug
Action(s):
- Add the Type: Security Bug 🔒 label.
ITA23
Remove the Status: In PR 👉 label from an issue when it’s closed.
Trigger criteria:
- An issue is opened.
Action(s):
- Remove the Status: In PR 👉 label.
ITA25
Inform module owners that they need to add the Needs: Core Team 🧞 label to their PR if they’re the sole owner of their module.
Trigger criteria:
- A PR is opened.
Action(s):
Inform module owners that they need to add the Needs: Core Team 🧞 label to their PR if they’re the sole owner of their module.
Where to apply these rules?
The below table details which repositories the above rules are applied to.
Rules applied for Schedule based automation
ID | AVM Core repository | BRM repository | TF repositories |
---|---|---|---|
ITA01BCP1-2 | ✔️ | ||
ITA01TF1-2 | ✔️ | ||
ITA02BCP1-2 | ✔️ | ||
ITA02TF1-2 | ✔️ | ||
ITA03BCP | ✔️ | ||
ITA03TF | ✔️ | ||
ITA04 | ✔️ | ✔️ | ✔️ |
ITA05 | [✔️] | [✔️] | ✔️ |
ITA24 | ✔️ |
Warning
The ITA05 rule is currently disabled in the AVM and BRM repositories.
Rules applied for Event based automation
ID | AVM Core repository | BRM repository | TF repositories |
---|---|---|---|
ITA06 | ✔️ | ✔️ | ✔️ |
ITA08BCP | ✔️ | ||
ITA09 | ✔️ | ✔️ | ✔️ |
ITA10 | ✔️ | ✔️ | ✔️ |
ITA11 | ✔️ | ✔️ | ✔️ |
ITA12 | ✔️ | ✔️ | ✔️ |
ITA13 | ✔️ | ||
ITA14 | ✔️ | ||
ITA15 | ✔️ | ✔️ | ✔️ |
ITA16 | ✔️ | ||
ITA17 | ✔️ | ||
ITA18 | ✔️ | ||
ITA19 | ✔️ | ||
ITA20 | ✔️ | ✔️ | |
ITA21 | ✔️ | ✔️ | |
ITA22 | ✔️ | ✔️ | |
ITA23 | ✔️ | ✔️ | |
ITA25 | ✔️ |