# I made a GitHub Action that opens an issue before a vendor breaks your build

> Source: <https://dev.to/yuryatrashkevich/i-made-a-github-action-that-opens-an-issue-before-a-vendor-breaks-your-build-58d>
> Published: 2026-10-20 12:07:25+00:00

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.

Dependabot 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.

Once 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.

This is from the demo repo ([full issue here](https://github.com/timetobail/deadline-check-demo/issues/1)):

Found 9 places hit by 9 vendor deadlines within 120 days.

- [ ]
**GKE 1.31 extended support ends October 22, 2026** - 3 days left

`infra/gke.tf:4` `min_master_version = "1.31"`
- Fix: Upgrade the control plane, then each node pool, to 1.32 or newer before GKE does it for you.
- [ ]
**OpenAI shuts down gpt-4, gpt-3.5-turbo, o1 and o4-mini on October 23** - 4 days left

`src/ai/summarize.py:7` `"gpt-4"`
- Fix: Change the model name: most go to gpt-5.6-sol or gpt-5.6-terra.
- [ ]
**AWS Lambda Python 3.10 runtime deprecated October 31, 2026** - 12 days left

`serverless.yml:4` `runtime: python3.10`
- [ ]
**GitHub Actions macos-14 runners retire November 2, 2026** - 14 days left

`.github/workflows/ci.yml:11` `macos-14`

One file, `.github/workflows/deadline-check.yml`:

```
name: Vendor deadline check
on:
  schedule:
    - cron: '17 6 * * 1'   # Mondays
  workflow_dispatch:
permissions:
  contents: read
  issues: write
jobs:
  deadlines:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: timetobail/deadline-check@v0
```

That's it. Options: `days` (default 120), `fail-on-days` if you want the job to fail when something is close, `comment-on-pr`.

114 rules for 94 dated changes, for example:

Every rule points to a dated change that comes from the vendor's own page (deprecation tables, changelogs, docs). No rumors, no "or later" dates.

`"gpt-4"` matches, `"gpt-4o"` doesn't. `dotnet` matches, `dotnet-isolated` doesn't. Comment lines are skipped.
If 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?

*Disclosure: I run timetobail.com, where the rules and the change pages live.*
