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 3, 2018
1 parent f0c598f commit dca240c
Showing 1 changed file with 93 additions and 0 deletions.
93 changes: 93 additions & 0 deletions cEP-0015.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,93 @@
corobo Enhancement (security, tests and configurability)
========================================================

|Metadata| |
|--------|-----------------------------------------------------------|
|cEP |15 |
|Version |1.0 |
|Title |corobo Enhancement (security, tests and configurability) |
|Authors |Nitanshu Vashistha <[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.
8. Add ability for maintainers to run corobo in safe mode in emergency situations.

## 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?

Currently, the LabHub plugins are coala specific as they are meant to work for a specific
team name like Maintainers, developers, and newcomers which are coala specific and might be
different for other organizations.

List of Plugins are:

1. invite
2. assign
3. unassign
4. mark wip|pending

## 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]
```

### Safe mode

```
> corobo stop
corobo has been sent to safe-mode by @Makman2
```

0 comments on commit dca240c

Please sign in to comment.