Skip to content

FabricBot

TJ Lambert edited this page Apr 29, 2022 · 5 revisions

What is FabricBot?

FabricBot is an internal tool that allows us to add github automations to our Issues and Pull Requests. More info found here on their documentation.

There is a very helpful UI tool to manage tasks found here. Members of the xamarin-macios team can sign in and find our repo's fabricbot.json file directly, but anyone can download our json file (found at xamarin-macios/.github/fabricbot.json) and import the configuration. Here, you can see a more clear explanation of what the tasks are doing, have the ability to easily add new tasks by clicking 'Add task', and configure existing tasks. You can then export the json file by clicking 'Export configuration'.

UI - Overview

FabricBot UI Overview

UI - Adding a new task

FabricBot UI Add Task

What is our FabricBot doing right now?

1. Add comment when 'need-info' is applied to issue

When a need-info label is added, we send out a message saying the issue will be closed in 7 days if no info is provided. The provided message is as follows:

Hi @${issueAuthor}. We have added the "need-info" label to this issue, which indicates that we have an open question for you before we can take further action. This issue will be closed automatically in 7 days if we do not hear back from you by then - please feel free to re-open it if you come back to this issue after that time.

2. [Idle Issue Management] Close stale 'need-info' issues

If we have a need-info label and there has been no activity from anyone in the past 7 days, we will close this issue and apply the following message:

Hi @${issueAuthor}. Due to inactivity, we will be closing this issue. Please feel free to re-open this issue if the issue persists. For enhanced visibility, if over 7 days have passed, please open a new issue and link this issue there. Thank you.

3. [Idle Issue Management] Replace 'need-info' with 'need-attention' label when the customer comments on an issue

If there is a need-info label and someone who does not have write or admin permissions to our repo comments, it will remove the need-info label and add the need-attention label.

4. [Idle Issue Management] For issues closed due to inactivity, re-open an issue if issue author posts a reply within 7 days.

If an issue has been closed due to inactivity for less than 7 days, has the label need-info, and is commented on by issue author, then we will remove the need-info label, add the need-attention label, and reopen the issue.

5. [Closed Issue Management] For issues closed with no activity over 7 days, ask non-contributor to consider opening a new issue instead.

If an issue has been closed for over 7 days and someone who does not have permissions to our repo comments, we send out a message asking this person to open a new issue and link this issue there for enhanced visibility. The message is as follows:

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!

6. [Closed Issue Management] Lock issues closed without activity for over 30 days

If an issue has been closed with no activity for over 30 days, lock the issue.

Things we are possibly looking to add in the future

  • Automatically add the 'community' label for PR's created by someone outside of our organization.
  • When a 'resolved' label is added to an issue, FabricBot can leave a message and then auto close the PR if there is no response in 48 hours. If the issue author does leave a comment before the 48 hours, FabricBot will remove the 'resolved' label and add the 'need-attention' label.
  • Automatically add the 'need-attention' label when an issue is created.
Clone this wiki locally