repocop

Gathers metadata from source code repositories

RepoCop

RepoCop monitors your source code repositories and reports violations to committers.

  1. Each repository should have a file called repocop.json in the root directory
  2. repocop.json should contain at least the following element
{
  "importance": "<critical|high|medium|low>"
}
  1. node
  2. git

Thanks to all sorts of interactive shenanigans with ssh and bower you are best running this by hand

mkdir -p $INSTALL_DIR
git clone https://github.com/acuminous/RepoCop.git $INSTALL_DIR
cd $INSTALL_DIR
npm install
bower install
./node_modules/.bin/gulp build
NODE_ENV=production node server.js --server.host=$HOST --server.port=$PORT
cd $INSTALL_DIR
git fetch
git reset --hard origin/master  
npm install
./node_modules/.bin/gulp build
kill -s SIGUSR2 $REPOCOP_PID

RepoCop requires you to define organisations in conf/private.json, e.g.

{
    "survey": {
        "organisations": [
            {
                "name": "<organisation name>",
                "providerKey": "github",
                "authentication": {
                    "type": "basic",
                    "username": "<machine user>",
                    "password": "<application key>"
                }
            }          
        ]
    }
}

The application key can be generated in GitHub on the Applications settings page, under Personal Access Tokens. It should have access to the following roles

  1. repo
  2. public_repo
  3. user:email
  4. repo:status
  5. read:org
$ curl -X POST localhost:8080/api/survey
Accepted