Carson is a bot that currently runs on the symfony/symfony repository. Its job is to help automate different issue and pull request workflows.
For an introduction, read: http://symfony.com/blog/calling-for-issue-triagers-a-new-workflow-and-the-carson-butler
Currently, Carson's super powers are used to automatically label issues based on comments from people in the community. This gives anyone the power to review an issue or pull request and comment to update its status.
For details on how this review / label process works, see http://symfony.com/doc/current/contributing/community/reviews.html
Carson is excellent to look at issues and pull requests to make sure they are correctly labeled, uses a supported branch or to say hi to new contributors. Carson also likes cloning a repository and run checks on it time to time, ie making sure all translations are up to date.
Carson will never read the contents of a pull requests, ie it never parses the code to check for typos or other automated fixes.
Here is all the things Carson can help you with. Not all features are enabled. A
list of enabled features for a specific repository is defined in config/services.yaml
.
Using the issue template, Carson adds labels "Bug", "Feature", "BC Break" and "Deprecation" on issues and pull requests.
When a PR is opened, then Carson will add "Needs Review".
If an issue is labeled with "Bug", then Carson will add "Needs Review".
When a PR is labeled, Carson looks for component labels (i.e. labels with color #dddddd).
These labels' names will be added to the PR title (e.g. [HttpKernel]
).
When a PR is open as "draft", Carson adds a comment to encourage people to mark it as "ready to review". If no action is taken, Carson will close the PR in one hour.
When a new PR is opened and it does not target the default branch or current version, then Carson will update the milestone of the PR to a existing milestone that matches the target branch.
The "status" of a pull request defined by one of the labels: "Needs review", "Needs work", "Works for me" and "Reviewed". The status can be changed by adding a comment like: "Status: Needs work".
The status will also be changed if someone adds a review that requests changes or approves the PR. Finally, the status will be "Needs review" after the author pushes changes to the PR.
When a user opens their first PR, they will get a welcome message explaining the review process and how to increase the chances to get the PR merged.
Carson will look for old inactive issues and start a process with them.
- Bot will make a comment to encourage activity and add label "Stalled".
- Bot will make a comment to inform the issue will be closed
- Bot will close the issue.
The process can be interrupted with anyone making a comment on the issue or the "Keep open" label is added.
If a PR is opened towards a branch that is not maintained anymore, Carson will kindly explain to the author what to do.
If a PR is opened towards a branch but the description does not match, Carson will post a nice comment to explain to the author what to do.
The Symfony documentation includes some pages with "configuration reference", to make sure these are always up to date, Carson will look at the bundles' defined config and compare that to what is documented. If Carson finds something that is missing, it will open an issue in the symfony/symfony-docs repository.