Continous Integration (CI) - Prevent users from starting the chain (blacklist feature) - Management
At CCExtractor we have a need to be able to test changes on real-life examples. For this purpose we developed a Continuous Integration (CI) tool (a.k.a. the sample platform) which automatically runs a test suite for us on VM's. This test suite has a time limit on execution, but that time limit is pretty royal compared to the time it normally needs to complete.
In case a malicious user decides to create a version of CCExtractor on a fork which does nothing but an infinite loop, and opens a Pull Request with these changes, it will trigger the time-out, potentially creating a huge queue, which is a form of DoS.
To prevent this from happening, we'd like to see a possibility to manage a list of blacklisted users. These users can no longer run tests on their forks (see GitHub issue #19, https://github.com/CCExtractor/sample-platform/issues/19, which aims to add support for running tests on forks), or if they open up a PR, it won't be tested either. This list should be manageable through the platform site (admins only), so that users can be added and removed.
This task is the last of three; it can only be completed if the first one is done.
We expect a Pull Request that contains a management page for the blacklist so that administrators can easily add/remove users on the blacklist.
Pointers:
- https://github.com/CCExtractor/sample-platform/blob/master/mod_ci/controllers.py#L888 (similar management page)