Overview
Large Azure DevOps organisations accumulate software versions across many projects, repositories, and environments, and over time nobody has a reliable picture of which of those versions are still supported. This tool provides that picture automatically: a single run produces a concrete list of every dependency in the organisation that has fallen out of support.
The problem it solves
Dependency lifecycle management is usually a manual audit: someone trawls repositories, notes versions in a spreadsheet, and cross-references vendor support pages. That audit is slow, goes stale immediately, and misses environments nobody thought to check.
This tool turns the audit into a repeatable check:
- the organisation's software estate is declared once, in configuration
- current versions are retrieved automatically from the repositories where possible, or pinned manually where not
- every version is compared against the community-maintained lifecycle data on endoflife.date
- the output is an actionable list of what is end-of-life, ready for planning upgrades
Technical details
The tool is written in Python against the Azure DevOps REST API, authenticated with a personal access token. Configuration is a simple JSON inventory mapping software to the environment, repository, and file path its version can be read from, which keeps the tool reusable across teams without code changes.
The repository runs a SonarCloud quality gate and CodeQL analysis on every change.