{
  "id": 13772566,
  "title": "Vibe Coding Is Quietly Shipping Your API Keys to GitHub",
  "url": "https://urgent.news/2026/10/11/vibe-coding-is-quietly-shipping-your-api-keys-to-github",
  "topic": "tech",
  "section": "Tech",
  "published": "2026-10-11T18:33:28.000Z",
  "source": {
    "name": "Dev.to",
    "slug": "dev-to",
    "url": "https://dev.to/learn-to-earn/vibe-coding-is-quietly-shipping-your-api-keys-to-github-2ha"
  },
  "original_language": "en",
  "account": "AI coding assistants are inadvertently leaking API keys to GitHub by pasting them inline during debugging or copying example configurations into the code. AI-generated diffs often contain hard-coded strings that go unnoticed until a pull request is merged. Leaked keys can be abused within minutes by automated scrapers watching for new commits that match key formats. The fix involves rotating the key and cleaning up the history if the repository is public. To prevent leaks, keep secrets out of the code entirely, block secrets before committing using tools like Gitleaks or detect-secrets, and automatically review every pull request for secrets. A new AI code review tool called Diffnix can flag hard-coded secrets and suggest moving them to environment variables in under five seconds, helping to catch secrets before they are merged into the codebase.",
  "summary": "You asked the AI to \"just get Stripe webhooks working.\" Thirty seconds later it did. The code ran, the test payment went through, and you pushed. What you may not have noticed is line 14: const secret = \" sk_live_51Hx...9Qa \" ; That is a live Stripe key, now sitting in your Git history. Deleting the line in the next commit does not remove it. Anyone who clones the repo — or any bot scanning…",
  "key_points": [
    "AI coding assistants leak API keys to GitHub during debugging.",
    "Leaked keys can be abused within minutes by automated scrapers.",
    "Diffnix tool flags hard-coded secrets and suggests environment variables."
  ],
  "editors_take": null,
  "illustration": null,
  "coverage": {
    "outlets": 1,
    "also_reported_by": []
  },
  "ai_generated": true,
  "disclaimer": "Summaries, key points and the editor’s take are written by software from other outlets’ reporting and may contain errors — always check the linked original."
}