)]}'
{
  "commit": "f178755c781c74ef242762ceb2c707c9a4dd2676",
  "tree": "5a4dae9bd281ae0ff138cfb72a6883633bac2b22",
  "parents": [
    "a9948c03ce510e5f7aa08c266c9a7b11f817b958"
  ],
  "author": {
    "name": "Philip Zeyliger",
    "email": "philip@bold.dev",
    "time": "Wed May 28 02:44:39 2025 +0000"
  },
  "committer": {
    "name": "Philip Zeyliger",
    "email": "philip@bold.dev",
    "time": "Wed May 28 02:44:39 2025 +0000"
  },
  "message": "github: fix Discord webhook notification User-Agent rejection\n\nThe Discord webhook was failing with 403 Forbidden (error code 1010)\nwhen sending notifications because Discord was rejecting requests from\nPython\u0027s default urllib User-Agent header.\n\nThe issue was that urllib.request.Request was using Python\u0027s default\nUser-Agent which Discord treats as suspicious or automated traffic.\nWhile simple curl requests worked fine, the Python script consistently\nfailed with \u0027Webhook not found\u0027 errors.\n\nFix:\n- Add explicit User-Agent header \u0027sketch.dev developers\u0027 to HTTP request\n- This allows Discord to properly identify the request as a legitimate webhook client\n\nTesting confirmed the fix:\n- Before: 403 Forbidden with error code 1010\n- After: 204 No Content (successful webhook delivery)\n\nThe Discord embed payload structure was already correct - only the\nUser-Agent header was causing the rejection.\n\nCo-Authored-By: sketch \u003chello@sketch.dev\u003e\n\nChange-ID: sc716013db28856a0k\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "b0d69ef90466db187f08e4c08842bab0e4f73a3c",
      "old_mode": 33261,
      "old_path": ".github/scripts/discord_notify.py",
      "new_id": "ca465674da0954eda8283425485ad93a82e363aa",
      "new_mode": 33261,
      "new_path": ".github/scripts/discord_notify.py"
    }
  ]
}
