Many of the new Keysight products use a microservice architecture and this has reduced the time to market for new ideas and made it easier to provide a consistent look & feel between applications. This happens because our architecture makes it easy to reuse only the subset of microservices & UI components that are relevant to each product. However, keeping track of all the changes being made to (parts of) multiple Git repositories by multiple projects is proving to be an ever-increasing challenge. Regular automation tools for generating changelogs exist but have serious limitations (ex: can process a single Git repository, unable to exclude certain parts of the repository, etc).
Our project aims to develop a tool that can be used to identify what relevant changes are included between 2 commits from a repo with additional constraints: - we will only be interested in a subset of Helm charts or microservices included in a repository and wish to ignore changes that do not touch them - we need to include changes made in Helm charts that are referenced in our target Git repository but for which the main code is present in external Git repositories - when Go or NodeJS code dependencies are modified, we need to follow these to the (possibly external) source Git repo automatically and include the relevant changes
The work will involve writing code for a comandline tool, primarily in Golang because it is a portable, easy to pick up language and we already have a lot of experience with it internally. Stretch goals involve adding an interactive CLI or even a UI for the tool.
What you will gain: • Kubernetes & Helm & Docker • microservice architecture • Golang development • Advanced Git usage • Golang & npm package management
Skills required: CS fundamentals: • data structures • algorithms
Extra credit: • Golang skills • Git skills • Any CLI friendliness