broadsage/Software Lifecycle Tracker
Identifies End-of-Life (EOL) dates and latest releases for your software dependencies.
View on GitHubTrust Signals
- Scorecard Score
- not yet scored
- Maintenance Recency
- Activelast commit Jun 28, 2026
- License
- Apache 2.0
Pinned Snippet
uses: broadsage/lifecycle-action@614a6c9fe2be0988ec7e08fd5437cb1303622bc4 # v4.4.4tags can be moved; commit SHAs can't. why a SHA?
Inputs
| name | description | required | default |
|---|---|---|---|
| products | Comma-separated list of products to track (e.g., "python,nodejs,ubuntu"). Use "all" to fetch all products. | yes | — |
| releases | JSON 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-eol | Check if any tracked versions are end-of-life | no | true |
| eol-threshold-days | Number of days before EOL to trigger warning (default: 90) | no | 90 |
| fail-on-eol | Fail the action if any version is end-of-life | no | false |
| fail-on-approaching-eol | Fail the action if any version is approaching EOL within threshold | no | false |
| fail-on-stale | Fail the action if any version has not received updates within staleness threshold | no | false |
| staleness-threshold-days | Number of days since last release to consider a version stale (default: 365) | no | 365 |
| include-discontinued | Include discontinued products/devices in the analysis (e.g., hardware EOL) | no | true |
| output-format | Output format: json, markdown, or summary (GitHub Step Summary) | no | summary |
| output-file | Path to write output file (optional, in addition to step outputs) | no | "" |
| cache-ttl | Cache TTL in seconds for API responses (default: 3600 = 1 hour) | no | 3600 |
| github-token | GitHub token for creating issues/PRs (optional, for advanced features) | no | "" |
| use-dashboard | Maintain a single persistent dashboard issue instead of multiple EOL issues | no | false |
| dashboard-title | Title for the lifecycle dashboard issue | no | Software Lifecycle Dashboard |
| include-latest-version | Include latest version information in output | no | true |
| include-support-info | Include support status information in output | no | true |
| custom-api-url | Custom API URL (for testing or self-hosted instances) | no | https://endoflife.date/api/v1 |
| file-path | Path to file containing version information (e.g., helm/values.yaml, package.json) | no | "" |
| file-key | Nested key path for YAML/JSON extraction (e.g., "image.tag", "dependencies.python") | no | "" |
| file-format | File format for extraction: yaml, json, or text | no | yaml |
| version-regex | Regular expression to extract version from any file (e.g., "v([0-9]+\.[0-9]+\.[0-9]+)") | no | "" |
| version | Manually specify version (alternative to file extraction). If provided, skips file extraction. | no | "" |
| sbom-file | Path to SBOM file (Software Bill of Materials) in CycloneDX or SPDX format | no | "" |
| sbom-format | SBOM format: cyclonedx, spdx, or auto (auto-detect) | no | auto |
| sbom-component-mapping | Custom JSON mapping of SBOM component names to endoflife.date product names (e.g., {"my-python": "python"}) | no | "" |
| semantic-version-fallback | Enable semantic version fallback matching (1.2.3 → 1.2 → 1) | no | true |
| api-concurrency | Maximum number of concurrent API requests (1-10, default: 5) | no | 5 |
| output-matrix | Enable matrix output generation for GitHub Actions matrix strategies | no | false |
| exclude-eol-from-matrix | Exclude end-of-life versions from matrix output | no | true |
| exclude-approaching-eol-from-matrix | Exclude versions approaching EOL from matrix output | no | false |
| min-release-date | Minimum release date filter (YYYY-MM-DD, YYYY, or >=YYYY) | no | "" |
| max-release-date | Maximum release date filter (YYYY-MM-DD, YYYY, or <=YYYY) | no | "" |
| max-versions | Maximum number of releases to check per product | no | "" |
| version-sort-order | Sort order for versions: newest-first or oldest-first | no | newest-first |
| filter-by-category | Filter products by category (e.g., "os", "lang", "db"). Use API endpoint /categories to see available categories. | no | "" |
| filter-by-tag | Filter products by tag (e.g., "linux", "microsoft"). Use API endpoint /tags to see available tags. | no | "" |
| enable-notifications | Enable notifications (auto-enabled if any webhook URL is provided) | no | false |
| slack-webhook-url | Slack webhook URL for EOL notifications | no | "" |
| discord-webhook-url | Discord webhook URL for EOL notifications | no | "" |
| teams-webhook-url | Microsoft Teams webhook URL for EOL notifications | no | "" |
| google-chat-webhook-url | Google Chat webhook URL for EOL notifications | no | "" |
| custom-webhook-url | Custom webhook URL for EOL notifications (receives JSON payload) | no | "" |
| custom-webhook-headers | Custom headers for webhook (JSON format, e.g., {"Authorization": "Bearer token"}) | no | "" |
| notify-on-eol-only | Only send notifications when EOL is detected (not for approaching EOL) | no | false |
| notify-on-approaching-eol | Send notifications for versions approaching EOL | no | true |
| notification-threshold-days | Days before EOL to trigger notifications (separate from fail threshold) | no | 90 |
| notification-min-severity | Minimum severity for notifications: info, warning, error, critical | no | info |
| notification-retry-attempts | Number of retry attempts for failed notifications | no | 3 |
| notification-retry-delay-ms | Delay in milliseconds between notification retries | no | 1000 |
Outputs
| name | description |
|---|---|
| eol-detected | Boolean indicating if any EOL versions were detected |
| version | Extracted version from file (if file-path was provided) |
| approaching-eol | Boolean indicating if any versions are approaching EOL |
| results | JSON string containing all version information |
| eol-products | JSON array of products that are end-of-life |
| approaching-eol-products | JSON array of products approaching end-of-life |
| latest-versions | JSON object mapping products to their latest versions |
| summary | Human-readable summary of findings |
| total-products-checked | Total number of products checked |
| total-releases-checked | Total number of releases checked |
| matrix | JSON matrix for GitHub Actions (format: { "versions": [...] }) |
| matrix-include | Detailed JSON matrix with metadata (format: { "include": [...] }) |
| stale-detected | Boolean indicating if any stale versions were detected (no recent releases) |
| stale-products | JSON array of products with stale versions (no recent updates) |
| discontinued-detected | Boolean indicating if any discontinued products were detected |
| discontinued-products | JSON array of discontinued products/devices |
| extended-support-products | JSON array of products with extended support available |
| dashboard-issue-number | The number of the created or updated Lifecycle Dashboard issue (if use-dashboard is enabled) |