The client is a famous international software publisher. They use a a distributed platform for executing tasks, such as running tests, its continuous integration and delivery platform, to build, test, and release the product and related software automatically.
Release Engineering controls that platform with a spectific tool. Engineers describe the automated jobs they want in their own source repositories. The tool configures what these source repositories are able to do. Release Engineers describe the desired runtime configuration in simple yaml files. Then the tool expands these yaml files, and updates the live configuration of the distributed platform to match. These limits in the tool slow the teams who rely on it. A change to a repository’s job description does not take effect until an engineer redeploys the tool by hand. Scheduled jobs run against only one branch per repository. Branches of private repositories cannot be listed at all, so the tool cannot configure jobs for them. Vendor will remove these three limits, in the tool and in the platform services it depends on. Vendor will validate each change against the client staging environment before production and coordinate the rollout with the client engineers.
Your mission :
Make the platform-github service publish a Pulse event whenever a push changes a repository’s file. The event carries the repositoryname.
Add a hook in the tool that subscribes to that event. When the changed repository is one fxci-config manages, the hook triggers the existing GitHub Actions deploy workflow.
Remove the default_branch concept from the tool
Rework the parts that depend on it, including cron task generation, action-hook branch enumeration, and the default-branch validation checks. Cron tasks will then run across multiple branches of a GitHub repository.
Add support for running cronjobs on multiple branches for github repos
Add support branch globs in private repositories
Add an endpoint to the platform github service that lists a repository’s branches. Protect it with scopes, so that listing a private repository’s branches requires explicit permission and does not leak branch names.
Change the tool to read branch names from that new endpoint instead of querying GitHub directly. This removes the need for a GitHub token when running the tool's ci-admin tool.
The first full remote assignment duration is estimated to 2-3 months
Un plan personnalisé pour postuler intelligemment à cette offre.
Cliquez sur "Postuler" pour accéder à l'offre.