{"slug": "i-made-a-github-action-that-opens-an-issue-before-a-vendor-breaks-your-build", "title": "I made a GitHub Action that opens an issue before a vendor breaks your build", "summary": "A developer has released deadline-check, a GitHub Action that scans a repository weekly for dependencies facing dated vendor shutdowns or price changes — such as retired runner labels, Lambda runtimes, OpenAI models and GKE versions — and opens a single issue listing the file and line, the deadline, days remaining and a suggested fix, closing it automatically once resolved. The action ships with 114 rules covering 94 dated changes drawn from vendors' own deprecation tables and changelogs, and supports options for the lookahead window, failing the job when a deadline is near, and commenting on pull requests.", "body_md": "Every few weeks some vendor retires something my code depends on. A runner label, a Lambda runtime, an OpenAI model, a GKE version. The notice exists - in a changelog, a deprecation table, an email to a billing inbox. We still find out when the build fails.\n\nDependabot tells you when a library is old. Nothing told me \"this line in this repo stops working on Nov 2\". So I made a small GitHub Action for that.\n\nOnce a week it reads your repo on the GitHub runner and looks for things that have a dated shutdown or price change. If it finds any, it opens **one issue** with the file and line, the date, days left and the fix. When you fix everything, the issue closes itself.\n\nThis is from the demo repo ([full issue here](https://github.com/timetobail/deadline-check-demo/issues/1)):\n\nFound 9 places hit by 9 vendor deadlines within 120 days.\n\n- [ ]\n**GKE 1.31 extended support ends October 22, 2026** - 3 days left\n\n`infra/gke.tf:4` `min_master_version = \"1.31\"`\n- Fix: Upgrade the control plane, then each node pool, to 1.32 or newer before GKE does it for you.\n- [ ]\n**OpenAI shuts down gpt-4, gpt-3.5-turbo, o1 and o4-mini on October 23** - 4 days left\n\n`src/ai/summarize.py:7` `\"gpt-4\"`\n- Fix: Change the model name: most go to gpt-5.6-sol or gpt-5.6-terra.\n- [ ]\n**AWS Lambda Python 3.10 runtime deprecated October 31, 2026** - 12 days left\n\n`serverless.yml:4` `runtime: python3.10`\n- [ ]\n**GitHub Actions macos-14 runners retire November 2, 2026** - 14 days left\n\n`.github/workflows/ci.yml:11` `macos-14`\n\nOne file, `.github/workflows/deadline-check.yml`:\n\n```\nname: Vendor deadline check\non:\n  schedule:\n    - cron: '17 6 * * 1'   # Mondays\n  workflow_dispatch:\npermissions:\n  contents: read\n  issues: write\njobs:\n  deadlines:\n    runs-on: ubuntu-latest\n    steps:\n      - uses: actions/checkout@v4\n      - uses: timetobail/deadline-check@v0\n```\n\nThat's it. Options: `days` (default 120), `fail-on-days` if you want the job to fail when something is close, `comment-on-pr`.\n\n114 rules for 94 dated changes, for example:\n\nEvery rule points to a dated change that comes from the vendor's own page (deprecation tables, changelogs, docs). No rumors, no \"or later\" dates.\n\n`\"gpt-4\"` matches, `\"gpt-4o\"` doesn't. `dotnet` matches, `dotnet-isolated` doesn't. Comment lines are skipped.\nIf it misses something in your stack, or flags something it shouldn't, open an issue with a small sample - I'll add or fix the rule. And I'm curious: which deprecation surprised you the most this year?\n\n*Disclosure: I run timetobail.com, where the rules and the change pages live.*", "url": "https://wpnews.pro/news/i-made-a-github-action-that-opens-an-issue-before-a-vendor-breaks-your-build", "canonical_source": "https://dev.to/yuryatrashkevich/i-made-a-github-action-that-opens-an-issue-before-a-vendor-breaks-your-build-58d", "published_at": "2026-10-20 12:07:25+00:00", "updated_at": "2026-10-20 12:18:36.282855+00:00", "lang": "en", "topics": ["ai-tools", "developer-tools", "ai-products"], "entities": ["GitHub", "OpenAI", "AWS", "Google Kubernetes Engine", "timetobail", "deadline-check"], "also_reported_by": [], "alternates": {"html": "https://wpnews.pro/news/i-made-a-github-action-that-opens-an-issue-before-a-vendor-breaks-your-build", "markdown": "https://wpnews.pro/news/i-made-a-github-action-that-opens-an-issue-before-a-vendor-breaks-your-build.md", "text": "https://wpnews.pro/news/i-made-a-github-action-that-opens-an-issue-before-a-vendor-breaks-your-build.txt", "jsonld": "https://wpnews.pro/news/i-made-a-github-action-that-opens-an-issue-before-a-vendor-breaks-your-build.jsonld"}}