-
Notifications
You must be signed in to change notification settings - Fork 53
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Closes #141
- Loading branch information
Showing
1 changed file
with
95 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,95 @@ | ||
# Implement GitMate automations and plugins for coala | ||
|
||
| Metadata | | | ||
| -------- | ----------------------------------------------------- | | ||
| cEP | 24 | | ||
| Version | 1.0 | | ||
| Title | Implement Gitmate automations and plugins for coala | | ||
| Authors | Vamshi Krishna Bommerla <mailto:[email protected]> | | ||
| Status | Proposed | | ||
| Type | Process | | ||
|
||
## Abstract | ||
|
||
This cEP describes the details of the process of creating new automations and | ||
plugins in GitMate which helps coala development workflow, as a part of the | ||
[GSoC project](https://summerofcode.withgoogle.com/projects/#5344316227059712). | ||
|
||
## Introduction | ||
|
||
[GitMate](https://gitmate.io/) is an automation tool for developers. While it | ||
works well, there area number of plugins which saves a lot of time of our | ||
community(for example automatically close PRs from master). Many of them are | ||
general plugins, which are required by every org, but we need more plugins | ||
which support coala development workflow. | ||
|
||
## New Features | ||
|
||
### Auto-assign issue based on commit mention | ||
|
||
When a commit mentions(fixes, closes) a unassigned issues, auto assign | ||
commit author to the mentioned unassigned issues. | ||
|
||
### Auto-reject PR opened on master of forks | ||
|
||
Normally, we should make changes in different branch from master of forks, and | ||
submit a PR. But, sometimes we receive PRs from master of forks. To solve this | ||
problem, we need a mechanism by which gitmate automatically rejects those PR’s, | ||
and inform the PR author to work on a different branch. | ||
|
||
### Auto-mark PR with necessary labels as per the reviews done | ||
|
||
When a reviewer reviews a PR, he either approves changes or request changes or | ||
comments something and leaves it there, but PR would be still in the review | ||
queue, so there should be an automation to mark approve label if reviewer | ||
approves changes and mark WIP if reviewer requests changes or comments on the | ||
source code when there is CI failure. | ||
|
||
### Fixes vs Closes automated checking | ||
|
||
Our members often confuse when we should use `Fixes` or `Closes` on a commit. | ||
So, GitMate should automatically check every commit for issues which is being | ||
Fixed or Closed, if those issues have bug label(label will be configurable), | ||
`Fixes` should be used, and vice versa. If there is an error, gitmate commit | ||
review should fail and inform the PR author how to fix it. | ||
|
||
### Add support to ban/blacklist a user | ||
|
||
Sometimes, there will be members in the organisation, misusing the rights, | ||
violating the code of conduct, disturbing our workflow. It will definitely take | ||
some time to fix that security issue, bearing that user until then, there will | ||
be a lot of pain. So, a plugin to ban a user from using GitMate further and | ||
removing his rights at that very moment will be helpful. Ban user plugin, | ||
which can be configured in gitmate UI will be created within this project. | ||
Removing that user from the org will be configurable. | ||
|
||
### Assign Plugin | ||
|
||
Assign issue when a user comments on an issue requesting for an `assignment` | ||
to that issue. Will support settings for each team like limit team to work on | ||
issues with specific set of labels, limit number of issues of specified label, | ||
a team member can work on. corobo does all these things, but it is based just | ||
on gitter messages and corobo is used in coala only, but gitmate is based on | ||
github, used by many other users and is more configurable. | ||
|
||
``` | ||
Settings: | ||
Team - newcomer | ||
Label - newcomer Limit - 1 | ||
Label - low Limit - 2 | ||
Team 2.... | ||
``` | ||
|
||
``` | ||
> @gitmate-bot assign | ||
@user, you have been assigned | ||
``` | ||
|
||
### Auto-review merge conflicts | ||
|
||
Check for merge conflicts in a PR, if there are any conflicts, mark PR with | ||
a certain label(configurable) and post a message(configurable) as a comment | ||
on the PR. |