CCExtractor Development

Prevent users from starting the chain (blacklist feature) - Create a data model

At CCExtractor we 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 first of three; this needs to be completed before the others can be done.

We expect a Pull Request from you that has a suitable data model for this blacklist feature implemented.

Pointers:

Task tags

  • blacklist
  • python
  • sqlalchemy
  • sample platform
  • flask

Students who completed this task

Aadi Bajpai

Task type

  • code Code
close

2017