)]}'
{
  "commit": "ba1c8365957c7bbca11cb373b85d5e1125f1d7cb",
  "tree": "2333a96001ef88e3e04f5ec8124538118f88be8c",
  "parents": [
    "87b8ae6f3583080dae252b4e385b4ca162fc638e"
  ],
  "author": {
    "name": "Richard Levasseur",
    "email": "richardlev@gmail.com",
    "time": "Mon Oct 05 21:03:01 2026 -0700"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Mon Oct 05 21:03:01 2026 -0700"
  },
  "message": "build(release): ignore completed release issues when adding backports (#4225)\n\nWhen someone comments `/backport` on a PR, `add-backports`\nauto-discovers the active release tracking issue by looking for open\nissues with the release label. It only checked that an issue was open,\nnot whether the release it tracks had already shipped. A release issue\nwhose \"Tag Final\" task was done but that nobody closed therefore kept\nreceiving new backports.\n\nAuto-discovery now ignores open issues whose \"Tag Final\" task is done\nand emits a workflow warning suggesting the issue be closed. If that\nleaves no open issue, the tool creates a new patch release tracking\nissue, as it does when none is open. A complete issue sitting next to\nan active one no longer triggers the \"multiple open issues\" error.\n\nExplicitly passing `--issue` is unchanged. `sync-changelog` and\n`create-release-issue` still treat any open issue as active; the new\n`is_release_complete()` helper can be reused there in a follow-up.",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "78bcf7879b1a0b601b62f4c25691ad2c6acc78a6",
      "old_mode": 33188,
      "old_path": "dev/release/add_backports.py",
      "new_id": "d36086b95c83c87232816717d46ed7c453343ef8",
      "new_mode": 33188,
      "new_path": "dev/release/add_backports.py"
    },
    {
      "type": "modify",
      "old_id": "6bfa0f58e06b45625842b82fde992001dc6cc8e0",
      "old_mode": 33188,
      "old_path": "dev/release/release_issue.py",
      "new_id": "1b71e4a08240e7bb808e4a8c82b2428dde10ea62",
      "new_mode": 33188,
      "new_path": "dev/release/release_issue.py"
    },
    {
      "type": "modify",
      "old_id": "08fd9a888f7c0f118ad5b21b4f200d897fbb7606",
      "old_mode": 33188,
      "old_path": "tests/tools/private/release/add_backports_test.py",
      "new_id": "24636c6e3ccaeeabfb47c57c40381ea5ff04a77b",
      "new_mode": 33188,
      "new_path": "tests/tools/private/release/add_backports_test.py"
    },
    {
      "type": "modify",
      "old_id": "3530dfd38a2f697ec7994806e44841c2e27effe9",
      "old_mode": 33188,
      "old_path": "tests/tools/private/release/release_issue_test.py",
      "new_id": "be1f2a8c400d5722e1d12f3a7eba36072a76a8bb",
      "new_mode": 33188,
      "new_path": "tests/tools/private/release/release_issue_test.py"
    }
  ]
}
