8.0 KiB
8.0 KiB
Issue/PR Management Bot Information
Overview
The goal here is to help us automate, manage, and narrow down what we actually need to focus on in this repository. We'll be using tags, primarily, to help us understand what needs attention, what is sitting around and turning stale, etc.
Quick-Guidance to Core Contributors
- Look at
Needs-Attention
as top priority - Look at
Needs-Triage
during triage meetings to get a handle on what's new and sort it out - Look at
Needs-Tag-Fix
when you have a few minutes to fix up things tagged improperly - Manually add
Needs-Author-Feedback
when there's something we need the author to follow up on and want attention if they return it or an auto-close for inactivity if it goes stale.
Tagging/Process Details
- When new issues arrive, or when issues are not properly tagged... we'll mark them as
Needs-Triage
automatically.- The core contributor team will then come through and mark them up as appropriate. The goal is to have a tag that fits the
Product
,Area
, andIssue
category. - The
Needs-Triage
tag will be removed manually by the core contributor team during a triage meeting. (Exception, triage may also be done offline by senior team members during high-volume times.) - An issue may or may not be assigned to a contributor during triage. It is not necessary to assign someone to complete it.
- We're not focusing on Projects yet.
- The core contributor team will then come through and mark them up as appropriate. The goal is to have a tag that fits the
- When core contributors need to ask something of the author, they will manually assign the
Needs-Author-Feedback
tag.- This tag will automatically drop off when the author comes back around and applies activity to the thread.
- When this tag drops off, the bot will apply the
Needs-Attention
tag to get the core contribution team's attention again. If an author cares enough to be active, we will attempt to prioritize engaging with that author. - If the author doesn't come back around in a while, this will become a
No-Recent-Activity
tag. - If there's activity on an issue, the
No-Recent-Activity
tag will automatically drop. - If the
No-Recent-Activity
stays, the issue will be closed as stale.
- PRs will automatically get a
Needs-Author-Feedback
tag when reviewers wait on the author- This follows a similar decay strategy to issues.
- If the author responds, the
Needs-Author-Feedback
tag will drop. - If there is no activity in a while, the
No-Recent-Activity
tag will appear. - If the
No-Recent-Activity
tag exists for a while, the PR will be closed as stale.
- Issues manually marked as
Resolution-Duplicate
will be closed shortly after activity stops - Pull requests manually marked as
AutoMerge
will permit the bot to complete the PR and do cleanup when certain conditions are met. See details below.
Rules
Triage Shorthand
- All rules in this category apply to triaging issues. They're shorthand comments that the triage team can use in order to complete the triage process faster.
- Only individuals with
Write
orAdmin
privileges on the repository can use these responses.
Duplicate Issues
- When a comment on the thread says
/dup #<issue ID>
...
- Reply with a comment explaining that the issue is a duplicate and recommend that the opener and interested parties follow the issue on the listed ID number.
- Close the issue
- Remove all
Needs-*
tags - Add
Resolution-Duplicate
Issue Management
Mark as Triage Needed
- When an issue doesn't meet triage criteria, applies
Needs-Triage
tag. Right now, this is just when it's opened.
Author Has Responded
- When an issue with
Needs-Author-Feedback
gets an author response, drops that tag in favor ofNeeds-Attention
to flag core contributors to drop by.
Remove Activity Tag
- When an issue with
No-Recent-Activity
has activity, drops this tag
Close Stale
- Every hour, checks if there's an issue with
Needs-Author-Feedback
andNo-Recent-Activity
for 3 days. Closes as stale.
Tag as No Activity
- Every hour, checks if there's been no activity in 4 days on an issue that
Needs-Author-Feedback
. If it's been 4 days, markNo-Recent-Activity
as well.
Close Duplicate Issues
- Every hour, checks if there's been a day since the last activity on an issue with tag
Resolution-Duplicate
and closes it if inactive.
Enforce tag system
- When an issue is opened or labels are changed in any way, we will check if the tagging matches the system. If not, it will get
Needs-Tag-Fix
. The system is to have anArea-
,Issue-
, andProduct-
tag for all open things, and also aResolution-
for closed ones. - When the tags from appropriate categories are applied, it will auto-remove the
Needs-Tag-Fix
tag. Resolution-Duplicate
is sufficient to fix all tagging. (Area-
,Issue-
, andProduct-
are not needed for a duplicate.)
Clean-up low quality issues
- If an issue is filed with an incomplete title...
- If an issue is filed with nothing in the body...
- If an issue is filed matching a pattern that happens all the time (common duplicate phrase, obvious multiple-issues-in-one pattern)...
- Then close the issue automatically informing the opener that they can resolve the problem and reopen the issue. (See Bug/Feature templates for example situations.)
Help ask for Feedback Hub
- When a comment on the thread says
/feedback
...
- Then reply to the issue with a bit of text on asking the author to send us data with Feedback Hub and give us the link.
- And add the
Needs-Author-Feedback
tag
Remove Help Wanted from In PR issues
- If an issue gets the
In-PR
tag when a new PR is created, we will remove theHelp-Wanted
tag to avoid someone trying to work on an issue where another person has already submitted a proposed fix.
PR Management
Codeflow Link (Disabled)
- Bumps a PR with a link to the Microsoft CodeFlow tool for reviewing PRs
Marks PR as Awaiting Author Feedback
- When a reviewer marks the PR as changes requested, the
Needs-Author-Feedback
tag will be applied
Removes Awaiting Author Feedback
- When the PR author updates the pull request, comments on it, or responds to a review, the
Needs-Author-Feedback
tag is removed.
Removes No Recent Activity
- When anyone touches the pull request, the
No-Recent-Activity
tag is removed.
Markup stale pull requests
- Every hour, if a pull request
Needs-Author-Feedback
and hasn't been touched in 7 days, it will get theNo-Recent-Activity
tag.
Close stale pull requests
- Every hour, if a pull request has
No-Recent-Activity
and hasn't been touched in a further 7 days, it will be closed.
Auto-Merge pull requests
- When a pull request has the
AutoMerge
label...- If it has been at least 480 minutes and all the statuses pass, merge it in.
- Will use Squash merge strategy
- Will attempt to delete branch after merge, if possible
- Will automatically remove the
AutoMerge
label if changes are pushed by someone without Write Access. - More information on bot-logic that can be controlled with comments is here
Mark issues with an active PR
- If there is an active PR for an issue, label that issue with the
In-PR
label
Add committed fix tag for completed PRs
- When a PR is finished and there's no outstanding work left on a linked issue, add the
Resolution-Fix-Committed
label
Remove Needs-Second from completed PRs
- If a PR is closed and it has the
Needs-Second
tag, the bot will remove the tag.
Release Management
When a release is created, if the PR ID number is linked inside the release description, the bot will walk through the related PR and all of its related issues and leave a message.
- PR message: "🎉{release name} {release version} has been released which incorporates this pull request.🎉
- Issue message: 🎉This issue was addressed in #{pull request ID}, which has now been successfully released as {release name} {release version}.🎉"