Provide an initial implementation
This MR is the first version of a script to synchronise a set of folders in a Google Shared Drive with a list of pool applicants. There are a few points/loose ends, as follows:
there's no CI/CD at the moment as I think we need decide where the process will be deployed https://gitlab.developers.cam.ac.uk/uis/devops/uga/pool-applicant-document-management/-/issues/1#note_121309I don't think I've got the credentials quite right - again this depends to an extent on the deployment.- I experimented with batching operation but hit problems with rate limiting. I found that using individual operations avoided rate limiting and, given that our list is not likely to be huge (in the 100's), works pretty well.
Update: @rjw57 tagged in while @mb2174 was away. I've added:
- A GitLab CI pipeline which runs some linting and tests if we had them (which we don't) based on the config from logan.
- An editorconfig file
- flake8 and code-coverage configuration
- A basic packaging using setuptools so that the tool can be
pip install
-ed - Support for using Google default credentials
- A slightly more structured
jobspec.yml
example - Support for using the SMI API directly to get the application list. This means we can configure the drive to include any subset of applications we can select using the UI
- Updated the README with a bit more detail
- Added our standard Copyright license
- Added support for deep-merging job specifications now that we have a nested format
- Changed the folder name to be "{UCAS id} - {Applicant name}" because I can hear the moans from the future that we haven't included the UCAS id.
Closes #1 (closed)