Skip to content

Commit

Permalink
cEP-0015.md: corobo enhancement
Browse files Browse the repository at this point in the history
Closes #110
  • Loading branch information
nvzard committed May 9, 2018
1 parent c1a4b7e commit c3d0e4c
Showing 1 changed file with 97 additions and 0 deletions.
97 changes: 97 additions & 0 deletions cEP-0015.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,97 @@
# corobo Enhancement (security, tests and configurability)

| Metadata | |
| -------- | -------------------------------------------------------- |
| cEP | 15 |
| Version | 1.0 |
| Title | corobo Enhancement (security, tests and configurability) |
| Authors | Nitanshu Vashistha <mailto:[email protected]> |
| Status | Proposed |
| Type | Process |

## Abstract

This cEP describes the details of enhancement of [corobo](https://github.com/coala/corobo)
in terms of security, tests, configurability and the new plugins that are to be
added to corobo as part of the [GSoC Project](https://summerofcode.withgoogle.com/projects/#6603667076022272).

## Security

### Why improve security?

Security has been one of the major concerns due to some past experiences.
We want to provide access controls based on user’s GitHub team memberships.

### How to improve security?

1. Make all LabHub commands except invite require being a member of the
organization.

2. Add ability to ban from all gitter rooms at once.

3. Remove auto-invite and give invite permissions to developers.

4. Prevent newcomers from self-assigning themselves and give developers
permission to assign newcomers.

5. Prevent corobo being used to spam a room.

6. Force newcomers to finish one issue first.

7. Require newcomers to find a newcomer issue to work on before they are
invited to join the organization.

## Tests

### Why improve existing tests and infrastructure?

The default TestBase provided by errbot is not enough for testing plugins like
LabHub, which required intensive mocking. One of the examples of this case is
issues like [this](https://github.com/errbotio/errbot/issues/1086)

### How to improve existing tests and infrastructure?

This will involve making changes upstream in [Errbot](https://github.com/errbotio/errbot/)
and extend the existing testing infrastructure to implement better testing for
plugins like LabHub.

## Configurability

### Why make corobo more configurable?

corobo has a potential to be used by other organizations for similar tasks like
onboarding and automation. Currently, it is not configurable and many plugins
are still very coala specific. Making it more configurable will allow other
organizations to adapt corobo to cater their needs.

### How to make corobo more configurable?

By making existing coala specific plugins generic for other organizations we
can ensure configurability.

List of Plugins which are coala specific and can be generalized:

1. `LabHub Plugin(invite, assign, unassign, mark wip|pending, pr_stats)` are
meant to work for a specific team names like maintainers, developers,
newcomers and coala repositories.

2. `explain` uses hardcoded coala explainations.

3. `coatils (contrib_stats)` shows stats of contributions made to coala.

4. `searchdocs` currently API_DOCS and USER_DOCS links are constants for coala,
we can make it generic by letting orgs setup their custom URL in config file.

## New Features

### Suggest newcomer issues

```
> corobo suggest issues newcomer
Here are some newcomer issues:
coala/coala#5276 [Modify installing from git instructions]
coala/coala-bears#2376 [Fix invalid language setting]
coala/coala-quickstart#128 [add .DS_Store to .gitignore]
coala/coala-bears#2326 [Add .pytest_cache to .gitignore]
```

0 comments on commit c3d0e4c

Please sign in to comment.