payload: {"push_id":3889728659,"size":24,"distinct_size":1,"ref":"refs/heads/chore/update-docker-env-variables","head":"5806e0a12f2a5d8627a13a9cfde1f367ec633fe4","before":"661f29ed40696647494deb9c6dbbc8abe605b459","commits":[{"sha":"8017d442a2c65077e1e286eb374fab3031ea233a","author":{"name":"Russell Garner","email":"2f5af80604b7d20dc9d6470a7ffa914ff153694a@zephyros-systems.co.uk"},"message":"Fix FDL double-sanitisation issue\n\nFramework::Definition#[] is responsible for getting a definition from\nthe cache. Framework::Language#[] is responsible for getting the source\nfrom either the DB or the filesystem and transpiling it.\n\nIn the circumstance that a framework was in the database but had a\nperiod in the short_name, a double sanitisation issue occurred, meaning\nthat Language#[] would try and look for (say) 'RM999_5' in the database\nwhen 'RM999.5' was there, resulting in\n\n```\nFramework::Definition::MissingError: There is no framework definition for \"RM999_5\"\n```\n\nTake the responsibility for sanitisation away from Definition and leave\nit with Language to avoid this.","distinct":false,"url":"https://api.github.com/repos/dxw/DataSubmissionServiceAPI/commits/8017d442a2c65077e1e286eb374fab3031ea233a"},{"sha":"b35114ae454b4bc6fa47b2d927332b6db908c3a7","author":{"name":"James Coglan","email":"1a456c0b27534de77d30357d1503a702485dfb83@dxw.com"},"message":"Merge pull request #484 from dxw/1117-admin-app-fdl-publish-doesnt-correctly-interpret-full-stop-in-framework-short-name\n\nFix FDL double-sanitisation issue","distinct":false,"url":"https://api.github.com/repos/dxw/DataSubmissionServiceAPI/commits/b35114ae454b4bc6fa47b2d927332b6db908c3a7"},{"sha":"fed8aca681966adc41343b547438e120aa7f059a","author":{"name":"bob walker","email":"48181acd22b3edaebc8a447868a7df7ce629920a@dxw.com"},"message":"Use an api specific AUTH0 user service\n\nIn production we have 2 different AUTH0 clients with different levels of\naccess.\n\nMake the API use the one with the access the API needs.","distinct":false,"url":"https://api.github.com/repos/dxw/DataSubmissionServiceAPI/commits/fed8aca681966adc41343b547438e120aa7f059a"},{"sha":"cefdd2c762c65e4c348ba16513dc42a9e6983f29","author":{"name":"James Coglan","email":"1a456c0b27534de77d30357d1503a702485dfb83@dxw.com"},"message":"Merge pull request #476 from dxw/update-auth0-service\n\nUse an api specific AUTH0 user service","distinct":false,"url":"https://api.github.com/repos/dxw/DataSubmissionServiceAPI/commits/cefdd2c762c65e4c348ba16513dc42a9e6983f29"},{"sha":"ea149ea2c727d6a1150cd8e4eb59ba5779b95802","author":{"name":"James Coglan","email":"1a456c0b27534de77d30357d1503a702485dfb83@dxw.com"},"message":"Release 82\n\n- Fix sanitisation of FDL that was causing `.` to be replaced with `_`\n  in framework names\n\n- Use `API_AUTH0` environment variable rather than `AUTH0`","distinct":false,"url":"https://api.github.com/repos/dxw/DataSubmissionServiceAPI/commits/ea149ea2c727d6a1150cd8e4eb59ba5779b95802"},{"sha":"342780dc4a032ddc6856d162810060e888171fa8","author":{"name":"James Coglan","email":"1a456c0b27534de77d30357d1503a702485dfb83@dxw.com"},"message":"Merge pull request #485 from dxw/release-82\n\nRelease 82","distinct":false,"url":"https://api.github.com/repos/dxw/DataSubmissionServiceAPI/commits/342780dc4a032ddc6856d162810060e888171fa8"},{"sha":"f325f26cb62435698e7d664baaabd1d1adc629b7","author":{"name":"James Coglan","email":"1a456c0b27534de77d30357d1503a702485dfb83@dxw.com"},"message":"(fix) Use the latest version of Yarn in Docker\n\nThe Dockerfile specifies an old version of Yarn. The current `yarn.lock`\nfile has been generated with a more recent version that supports the\n`integrity` field, and regenerating it using Yarn 1.9.4 removes such\ninformation from the lock file.\n\nHere I'm bumping Yarn to the latest version; everything still seems to\ninstall fine and the build runs.","distinct":false,"url":"https://api.github.com/repos/dxw/DataSubmissionServiceAPI/commits/f325f26cb62435698e7d664baaabd1d1adc629b7"},{"sha":"c899e00a6030627163c07d61a10ac563d3629bf3","author":{"name":"James Coglan","email":"1a456c0b27534de77d30357d1503a702485dfb83@dxw.com"},"message":"(fix) Add codemirror to the yarn.lock file\n\nThis dependency was missing from `yarn.lock`, which means that when\nDocker runs `yarn` it does not get installed. The absence of this\nlibrary means many of the tests fail.\n\nRunning `yarn` via `docker exec` installs the missing dependency,\nupdates the lock file and this fixes the failing tests.\n\nI have verified that this works in a newly clone repo by deleting my\n`node_modules` directory, stopping and destroying all running\ncontainers, and running the build from a clean state.","distinct":false,"url":"https://api.github.com/repos/dxw/DataSubmissionServiceAPI/commits/c899e00a6030627163c07d61a10ac563d3629bf3"},{"sha":"d62cff537ba37e313f9a4a3274cd74caf001567f","author":{"name":"James Coglan","email":"1a456c0b27534de77d30357d1503a702485dfb83@dxw.com"},"message":"Merge pull request #483 from dxw/fix/yarn-package-manifest","distinct":false,"url":"https://api.github.com/repos/dxw/DataSubmissionServiceAPI/commits/d62cff537ba37e313f9a4a3274cd74caf001567f"},{"sha":"e04d22a11617fa04d43defdb0a8caef670100609","author":{"name":"Tom Hipkin","email":"96431c8f741969838c686438f5fdcfe15b9f1fc4@gmail.com"},"message":"(chore) Add consistent container name to redis service\n\n* All other services have this configured, and I noticed when spinning up containers redis appears with a different name","distinct":false,"url":"https://api.github.com/repos/dxw/DataSubmissionServiceAPI/commits/e04d22a11617fa04d43defdb0a8caef670100609"},{"sha":"e12684322e4501a865ad316bffee9319e235150b","author":{"name":"Tom Hipkin","email":"96431c8f741969838c686438f5fdcfe15b9f1fc4@gmail.com"},"message":"(refactor) Add public and private networks to prepare for external connections\n\n* Before this change everything was running on the default network docker-compose creates called `default`. This is fine when everything is internal.\n* We have the need to connect to the API's web container from an external docker container: the frontend. To do this with Docker networking we can use network aliases https://docs.docker.com/compose/compose-file/compose-file-v2/#aliases - but before we can do so, we need to define what can be connected to externally and what cannot\n* Only the web app is added to the public network\n* Other containers can connect to this by adding the following to their docker-compose.yml:\n\n```\nnetworks:\n  datasubmissionserviceapi_public:\n    external: true\n```\n\nWhere `datasubmissionserviceapi` is the name of the repository that Docker Compose uses in its naming.","distinct":false,"url":"https://api.github.com/repos/dxw/DataSubmissionServiceAPI/commits/e12684322e4501a865ad316bffee9319e235150b"},{"sha":"47aec85989d9e1fae14a1a0ad6a98d8abe52c72e","author":{"name":"Tom Hipkin","email":"96431c8f741969838c686438f5fdcfe15b9f1fc4@gmail.com"},"message":"(feature) Allow other containers to talk to the API using the api hostname\n\n* Before this change containers that joined the datasubmissionserviceapi_public network could make connections to `curl web:3100`, since internally web is defined internally as the puma container.\n* Externally this was a problem since the frontend (which also has its own `web` service) has to use `curl web:3100` which doesn't make immediate sense. This alias will allow that container to use curl `api:3100`.","distinct":false,"url":"https://api.github.com/repos/dxw/DataSubmissionServiceAPI/commits/47aec85989d9e1fae14a1a0ad6a98d8abe52c72e"},{"sha":"1ce32eb50cb0762067b718f335989f1e21806451","author":{"name":"Tom Hipkin","email":"96431c8f741969838c686438f5fdcfe15b9f1fc4@gmail.com"},"message":"Merge pull request #478 from dxw/chore/api-container-can-be-connected-to-locally\n\n(chore) API container can be connected to through Docker by other docker applications","distinct":false,"url":"https://api.github.com/repos/dxw/DataSubmissionServiceAPI/commits/1ce32eb50cb0762067b718f335989f1e21806451"},{"sha":"4e0deb7ac9fc5c16d6932d3af814e1a66401598d","author":{"name":"Tom Hipkin","email":"96431c8f741969838c686438f5fdcfe15b9f1fc4@gmail.com"},"message":"(feature) Class that can update all active users with their auth0 ID\n\n* Since Users without `auth_id` are not returned with the `active` scope we can keep the size of the task down to enumerating only the users who could be out of sync.\n* The performance here isn't great, it loops over O(n) then makes an additional single request which I think comes out at O(n^2). We could switch around to querying for all auth0 users and working backwards, however that might pick up users for other projects, deactivated users or any other variance we aren't concerned with. It seems cleaner to start from the set of data that we believe may not be in sync and work in that direction even if it's costly.\n* This task is designed to be run very rarely and asynchronously on a list of a few thousand users.\n* We could have only targeted this at users within a range however, given that any network error or error downstream in Auth0 could lead to desynchronisation - it seems useful to have a reusable tool that fixes them all.","distinct":false,"url":"https://api.github.com/repos/dxw/DataSubmissionServiceAPI/commits/4e0deb7ac9fc5c16d6932d3af814e1a66401598d"},{"sha":"9256b969a599a9a176a82d1b114bf89e8057c248","author":{"name":"Tom Hipkin","email":"96431c8f741969838c686438f5fdcfe15b9f1fc4@gmail.com"},"message":"(feature) Synchronising users that don't exist in Auth0 logs the user information\n\n* This will allow us to decide whether a new record is needed in auth0 or if a User record needs to be deactivated within the API.","distinct":false,"url":"https://api.github.com/repos/dxw/DataSubmissionServiceAPI/commits/9256b969a599a9a176a82d1b114bf89e8057c248"},{"sha":"81b28d4551ed9d8e3db29cb979a3903e9e24de0a","author":{"name":"Tom Hipkin","email":"96431c8f741969838c686438f5fdcfe15b9f1fc4@gmail.com"},"message":"(feature) User sync task can be run in dry mode\n\n* This will give us confidence on the impact this code will have before we run it, which is important as the impact of getting it wrong is that no suppliers can use the service.","distinct":false,"url":"https://api.github.com/repos/dxw/DataSubmissionServiceAPI/commits/81b28d4551ed9d8e3db29cb979a3903e9e24de0a"},{"sha":"13894df2d143f14b9fa9bd762c4f77fa23dfd60d","author":{"name":"Tom Hipkin","email":"96431c8f741969838c686438f5fdcfe15b9f1fc4@gmail.com"},"message":"(feature) Synchronisation is rate limited\n\n* To 10 requests a second\n* Whilst we pay for auth0 we don't want to introduce problems with usage","distinct":false,"url":"https://api.github.com/repos/dxw/DataSubmissionServiceAPI/commits/13894df2d143f14b9fa9bd762c4f77fa23dfd60d"},{"sha":"71187ec403d49c17cd84021fcdf91ed833221d36","author":{"name":"Tom Hipkin","email":"96431c8f741969838c686438f5fdcfe15b9f1fc4@gmail.com"},"message":"(refactor) Synchronisation task logic broken up into smaller methods\n\n* Rubocop was unhappy with the amount of complexity in this big method","distinct":false,"url":"https://api.github.com/repos/dxw/DataSubmissionServiceAPI/commits/71187ec403d49c17cd84021fcdf91ed833221d36"},{"sha":"bb1a5e30fe7c5d5f71888ef06a15149d29c0cdc8","author":{"name":"Tom Hipkin","email":"96431c8f741969838c686438f5fdcfe15b9f1fc4@gmail.com"},"message":"(fix): User sync will continue after a missing request","distinct":false,"url":"https://api.github.com/repos/dxw/DataSubmissionServiceAPI/commits/bb1a5e30fe7c5d5f71888ef06a15149d29c0cdc8"},{"sha":"d87ed32f9078615b0373d5b644449aa869294985","author":{"name":"Tom Hipkin","email":"96431c8f741969838c686438f5fdcfe15b9f1fc4@gmail.com"},"message":"(feature) Sync user task reports positive progress\n\n* Adding progress bar when we were logging error information would have output a disjointed message that would have been hard to copy and paste information away from where positive and negative results are intertwined. Logging in both states is a quick win to informed the dev that progress is being made!","distinct":false,"url":"https://api.github.com/repos/dxw/DataSubmissionServiceAPI/commits/d87ed32f9078615b0373d5b644449aa869294985"}]}
other: {"actor":{"display_login":"tahb"}}