Project volunteer and team management is done via AirTable. Team leads can onboard their own members, and subsequently request that those members are granted neccesary access to ALL THE THINGS, which is done via this repo in a few steps:
- Collect relevent data from AirTable and store in
data/data.json
(only users that are ) - Convert
data.json
into access rules and store asdata/access.json
- TODO: set up system to automatically run (1) and (2), and open a PR if there are any changes (or at least notify that changes need to be made).
- Review these files changes in a Pull Request and commit
- TODO: Protect master branch
- Apply the access permissions in
data/access.json
- TODO: do automatically on master branch.
We use yarn
in this project, to build the scripts, run:
yarn install
yarn run build
-
Get an api key from AirTable
-
Set the environment variable
AIRTABLE_API_KEY
to that key, and the variableAIRTABLE_BASE
to the valueappI4fhfJ4PiYqEqP
. To persist these values you can create the file.env
(ignored by git) with the values like so:AIRTABLE_API_KEY=<your key> AIRTABLE_BASE=appI4fhfJ4PiYqEqP
-
Run
yarn run get-data
- Run
yarn run calculate-access
-
Get a personal access token from GitHub
-
Set the environment variable
GITHUB_TOKEN
to that token. To persist this value you can create the file.env
(ignored by git) with the value like so:GITHUB_TOKEN=<your github token>
-
Run
yarn run apply-access