broadsage/Software Lifecycle Tracker

Identifies End-of-Life (EOL) dates and latest releases for your software dependencies.

View on GitHub

Trust Signals

Scorecard Score
not yet scored
Maintenance Recency
Activelast commit Jun 28, 2026
License
Apache 2.0

Pinned Snippet

workflow.ymlSHA-pinned
uses: broadsage/lifecycle-action@614a6c9fe2be0988ec7e08fd5437cb1303622bc4 # v4.4.4

tags can be moved; commit SHAs can't. why a SHA?

namedescriptionrequireddefault
productsComma-separated list of products to track (e.g., "python,nodejs,ubuntu"). Use "all" to fetch all products.yes
releasesJSON object mapping products to specific releases to track (e.g., {"python": ["3.11", "3.12"], "nodejs": ["20", "21"]}). Leave empty to track all releases.no{}
check-eolCheck if any tracked versions are end-of-lifenotrue
eol-threshold-daysNumber of days before EOL to trigger warning (default: 90)no90
fail-on-eolFail the action if any version is end-of-lifenofalse
fail-on-approaching-eolFail the action if any version is approaching EOL within thresholdnofalse
fail-on-staleFail the action if any version has not received updates within staleness thresholdnofalse
staleness-threshold-daysNumber of days since last release to consider a version stale (default: 365)no365
include-discontinuedInclude discontinued products/devices in the analysis (e.g., hardware EOL)notrue
output-formatOutput format: json, markdown, or summary (GitHub Step Summary)nosummary
output-filePath to write output file (optional, in addition to step outputs)no""
cache-ttlCache TTL in seconds for API responses (default: 3600 = 1 hour)no3600
github-tokenGitHub token for creating issues/PRs (optional, for advanced features)no""
use-dashboardMaintain a single persistent dashboard issue instead of multiple EOL issuesnofalse
dashboard-titleTitle for the lifecycle dashboard issuenoSoftware Lifecycle Dashboard
include-latest-versionInclude latest version information in outputnotrue
include-support-infoInclude support status information in outputnotrue
custom-api-urlCustom API URL (for testing or self-hosted instances)nohttps://endoflife.date/api/v1
file-pathPath to file containing version information (e.g., helm/values.yaml, package.json)no""
file-keyNested key path for YAML/JSON extraction (e.g., "image.tag", "dependencies.python")no""
file-formatFile format for extraction: yaml, json, or textnoyaml
version-regexRegular expression to extract version from any file (e.g., "v([0-9]+\.[0-9]+\.[0-9]+)")no""
versionManually specify version (alternative to file extraction). If provided, skips file extraction.no""
sbom-filePath to SBOM file (Software Bill of Materials) in CycloneDX or SPDX formatno""
sbom-formatSBOM format: cyclonedx, spdx, or auto (auto-detect)noauto
sbom-component-mappingCustom JSON mapping of SBOM component names to endoflife.date product names (e.g., {"my-python": "python"})no""
semantic-version-fallbackEnable semantic version fallback matching (1.2.3 → 1.2 → 1)notrue
api-concurrencyMaximum number of concurrent API requests (1-10, default: 5)no5
output-matrixEnable matrix output generation for GitHub Actions matrix strategiesnofalse
exclude-eol-from-matrixExclude end-of-life versions from matrix outputnotrue
exclude-approaching-eol-from-matrixExclude versions approaching EOL from matrix outputnofalse
min-release-dateMinimum release date filter (YYYY-MM-DD, YYYY, or >=YYYY)no""
max-release-dateMaximum release date filter (YYYY-MM-DD, YYYY, or <=YYYY)no""
max-versionsMaximum number of releases to check per productno""
version-sort-orderSort order for versions: newest-first or oldest-firstnonewest-first
filter-by-categoryFilter products by category (e.g., "os", "lang", "db"). Use API endpoint /categories to see available categories.no""
filter-by-tagFilter products by tag (e.g., "linux", "microsoft"). Use API endpoint /tags to see available tags.no""
enable-notificationsEnable notifications (auto-enabled if any webhook URL is provided)nofalse
slack-webhook-urlSlack webhook URL for EOL notificationsno""
discord-webhook-urlDiscord webhook URL for EOL notificationsno""
teams-webhook-urlMicrosoft Teams webhook URL for EOL notificationsno""
google-chat-webhook-urlGoogle Chat webhook URL for EOL notificationsno""
custom-webhook-urlCustom webhook URL for EOL notifications (receives JSON payload)no""
custom-webhook-headersCustom headers for webhook (JSON format, e.g., {"Authorization": "Bearer token"})no""
notify-on-eol-onlyOnly send notifications when EOL is detected (not for approaching EOL)nofalse
notify-on-approaching-eolSend notifications for versions approaching EOLnotrue
notification-threshold-daysDays before EOL to trigger notifications (separate from fail threshold)no90
notification-min-severityMinimum severity for notifications: info, warning, error, criticalnoinfo
notification-retry-attemptsNumber of retry attempts for failed notificationsno3
notification-retry-delay-msDelay in milliseconds between notification retriesno1000
namedescription
eol-detectedBoolean indicating if any EOL versions were detected
versionExtracted version from file (if file-path was provided)
approaching-eolBoolean indicating if any versions are approaching EOL
resultsJSON string containing all version information
eol-productsJSON array of products that are end-of-life
approaching-eol-productsJSON array of products approaching end-of-life
latest-versionsJSON object mapping products to their latest versions
summaryHuman-readable summary of findings
total-products-checkedTotal number of products checked
total-releases-checkedTotal number of releases checked
matrixJSON matrix for GitHub Actions (format: { "versions": [...] })
matrix-includeDetailed JSON matrix with metadata (format: { "include": [...] })
stale-detectedBoolean indicating if any stale versions were detected (no recent releases)
stale-productsJSON array of products with stale versions (no recent updates)
discontinued-detectedBoolean indicating if any discontinued products were detected
discontinued-productsJSON array of discontinued products/devices
extended-support-productsJSON array of products with extended support available
dashboard-issue-numberThe number of the created or updated Lifecycle Dashboard issue (if use-dashboard is enabled)