)]}'
{
  "commit": "b76ffcdc7a42ca1dd09ed83e41a593380f20c8e1",
  "tree": "c3722b2fa6dc4a296885e2bb116dd65eb69fdad4",
  "parents": [
    "1213e831d60f8120619b49aa5c4f785e3aa4b996"
  ],
  "author": {
    "name": "Richard Levasseur",
    "email": "richardlev@gmail.com",
    "time": "Mon Aug 17 01:02:43 2026 -0700"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Mon Aug 17 01:02:43 2026 -0700"
  },
  "message": "build(release): separate sync changelog into standalone workflow and CLI tool (#4067)\n\nBackport processing previously combined applying backports to a\nrelease branch with synchronizing the changelog back to main. This\ntight coupling prevented changelog synchronization from being\ntriggered, dispatched, or retried independently of the backport\nprocess.\n\nSeparate changelog synchronization into a dedicated sync-changelog\nCLI command and standalone GitHub Actions workflows. Update backport\nprocessing to record changelog sync tasks rather than executing them\ndirectly. Add event parsing helpers to inspect GITHUB_EVENT_PATH in\nworkflows, integrate GitHub Actions workflow command annotations\ninto release logging, and expand documentation and test coverage.",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "1aa0f1baa05483881d3cc669d6e78431727583c6",
      "old_mode": 33261,
      "old_path": ".github/workflows/on_comment.py",
      "new_id": "7a0ac45f2623dfe2fdbb7b6bf0ff15824f86dc7f",
      "new_mode": 33261,
      "new_path": ".github/workflows/on_comment.py"
    },
    {
      "type": "modify",
      "old_id": "e94c382f2631a443110813f336535cd11ff5a29d",
      "old_mode": 33188,
      "old_path": ".github/workflows/on_comment.yaml",
      "new_id": "487d114a118563fd84fd48829af30e75037aa490",
      "new_mode": 33188,
      "new_path": ".github/workflows/on_comment.yaml"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "0d437abec82a85cce73753ec9953919bb482d001",
      "new_mode": 33188,
      "new_path": ".github/workflows/on_pr_closed.py"
    },
    {
      "type": "modify",
      "old_id": "94c49b6561b86a8f28ec3af29d8d98b7854e8d19",
      "old_mode": 33188,
      "old_path": ".github/workflows/on_pr_closed.yaml",
      "new_id": "c5f5b404475ebc5e995a5495d1356d5652bf05f3",
      "new_mode": 33188,
      "new_path": ".github/workflows/on_pr_closed.yaml"
    },
    {
      "type": "modify",
      "old_id": "ca719778df4ef76c25c072e2383c9e998dab0aff",
      "old_mode": 33188,
      "old_path": ".github/workflows/release_process_backports.yaml",
      "new_id": "8e221d643de39b2480f0ec66e51074a14b04c2da",
      "new_mode": 33188,
      "new_path": ".github/workflows/release_process_backports.yaml"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "70f3cf8f04554a9585ab1ba1c92b05463aee0429",
      "new_mode": 33188,
      "new_path": ".github/workflows/release_sync_changelog.yaml"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "e210f3b5e1f6922d171237d4bc90cc2f80d925e4",
      "new_mode": 33188,
      "new_path": ".github/workflows/release_sync_changelog_complete.yaml"
    },
    {
      "type": "modify",
      "old_id": "318434cc1a2297cdbbe1125e010250f667ee86c5",
      "old_mode": 33188,
      "old_path": "RELEASING.md",
      "new_id": "6e3a72d009ef74c9be8232cacf78220348299550",
      "new_mode": 33188,
      "new_path": "RELEASING.md"
    },
    {
      "type": "modify",
      "old_id": "e69e19050686736968400b4c364d23bac6469873",
      "old_mode": 33188,
      "old_path": "tests/tools/private/release/BUILD.bazel",
      "new_id": "4f94c9b9ccb6507c8fc0c5d007fe414ec26f63b4",
      "new_mode": 33188,
      "new_path": "tests/tools/private/release/BUILD.bazel"
    },
    {
      "type": "modify",
      "old_id": "d0eb148b57d670c6e7809b64d56ee5a51ae7bf74",
      "old_mode": 33188,
      "old_path": "tests/tools/private/release/complete_sync_changelog_test.py",
      "new_id": "6948dc54ca93001a54bd2695f5eb100a562525ad",
      "new_mode": 33188,
      "new_path": "tests/tools/private/release/complete_sync_changelog_test.py"
    },
    {
      "type": "modify",
      "old_id": "dd768400ba5bf519d1984c2232347714aa983a7d",
      "old_mode": 33188,
      "old_path": "tests/tools/private/release/process_backports_test.py",
      "new_id": "1acc93a192d7e75342127da0b4f4f6c121470cf7",
      "new_mode": 33188,
      "new_path": "tests/tools/private/release/process_backports_test.py"
    },
    {
      "type": "modify",
      "old_id": "064b5c260cb51bee622dfbcdb8978be7448a0960",
      "old_mode": 33188,
      "old_path": "tests/tools/private/release/release_test_helper.py",
      "new_id": "b7abd5e7272a8b9a258521a5afb408538a85690d",
      "new_mode": 33188,
      "new_path": "tests/tools/private/release/release_test_helper.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "9e7bc4af391eedd8d4912aee0a1eabcf1feba5f9",
      "new_mode": 33188,
      "new_path": "tests/tools/private/release/sync_changelog_test.py"
    },
    {
      "type": "modify",
      "old_id": "d5809a6d1ca159fa1c2d32bfabf9e5ded92b9ac2",
      "old_mode": 33188,
      "old_path": "tests/workflows/BUILD.bazel",
      "new_id": "13d3ebbd01a8390428ee6615a8aed99b73c7a908",
      "new_mode": 33188,
      "new_path": "tests/workflows/BUILD.bazel"
    },
    {
      "type": "modify",
      "old_id": "d7df7da13e1aacb3f09efb966de90e94320be727",
      "old_mode": 33188,
      "old_path": "tests/workflows/on_comment_test.py",
      "new_id": "8ec67804566d476671cfdbc0af793a7ac157d911",
      "new_mode": 33188,
      "new_path": "tests/workflows/on_comment_test.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "5ae84f542b9b23ce68679f30f469ae586bc0c1ca",
      "new_mode": 33188,
      "new_path": "tests/workflows/on_pr_closed_test.py"
    },
    {
      "type": "modify",
      "old_id": "9c8d9028f03c6ba16c66e2df853d2285cc477491",
      "old_mode": 33188,
      "old_path": "tools/private/release/complete_sync_changelog.py",
      "new_id": "9180506a0919e75d25b097dea046662c25359ef7",
      "new_mode": 33188,
      "new_path": "tools/private/release/complete_sync_changelog.py"
    },
    {
      "type": "modify",
      "old_id": "bde969068b9b2077e0aa8035dce9199b1be8a13a",
      "old_mode": 33188,
      "old_path": "tools/private/release/gh.py",
      "new_id": "4e7abb9b4e8d67a9988b2a8acc15379047b3ae5c",
      "new_mode": 33188,
      "new_path": "tools/private/release/gh.py"
    },
    {
      "type": "modify",
      "old_id": "ce1d54ee347d042e4cedb259c269ceb8f8933caf",
      "old_mode": 33188,
      "old_path": "tools/private/release/process_backports.py",
      "new_id": "50c6aadbe30e59c099520fd02dc5b51442812033",
      "new_mode": 33188,
      "new_path": "tools/private/release/process_backports.py"
    },
    {
      "type": "modify",
      "old_id": "9df5ba8606884eaa71c0200f9307933d9dbe793d",
      "old_mode": 33188,
      "old_path": "tools/private/release/release.py",
      "new_id": "64fd1185026d9ff01c34cc46edde5759e414233e",
      "new_mode": 33188,
      "new_path": "tools/private/release/release.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "7e775d356563e0c48dcf007ec172d4b76ad56a5a",
      "new_mode": 33188,
      "new_path": "tools/private/release/sync_changelog.py"
    }
  ]
}
