)]}'
{
  "commit": "617c89a7827c8c13d656d9d67e0c8e590641b900",
  "tree": "bdcceb3a31a4b6386bec94beaeca53da5e633673",
  "parents": [
    "9794807a0a71f28aa533952fe5a9009ead6be529"
  ],
  "author": {
    "name": "Orgad Shaneh",
    "email": "orgad.shaneh@audiocodes.com",
    "time": "Thu Nov 12 09:42:05 2026 +0200"
  },
  "committer": {
    "name": "Orgad Shaneh",
    "email": "orgad.shaneh@audiocodes.com",
    "time": "Thu Nov 12 10:28:56 2026 +0200"
  },
  "message": "Show negated passing atoms as blocking submit requirements\n\nA submit requirement that is unsatisfied because of a veto vote\n(-label:Code-Review\u003dMIN) is shown with a red \"cancel\" icon, while one\nthat is merely missing votes is shown with the neutral \"block\" icon.\n\nOther requirements can be blocked in the same way, by something that\nis present but must be absent. For example, a requirement like\n\"-subject:WIP\" or \"-prefixsubject:Edit\" cannot be satisfied by adding\nvotes; the author must change the commit. These were shown with the\nneutral icon, as if waiting for reviewers.\n\nTreat an unsatisfied requirement as blocking when one of its passing\natoms is negated in the submittability expression, either with a unary\nminus or with NOT. The veto vote case is a special case of this rule,\nand the existing check for it is kept.\n\nNote that this also applies to the default No-Unresolved-Comments\nrequirement (-has:unresolved), which is now shown as blocking while\nthere are unresolved comments. These also require action from the\nauthor or the commenter rather than from additional voters.\n\nRelease-Notes: Unsatisfied submit requirements with a negated passing atom are shown as blocking\nChange-Id: Ie5b938b3d376d736a010e58baf5c25ab09d56c85\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "0e13c446986c95450ee7a3c5ee2de407f4a03bc6",
      "old_mode": 33188,
      "old_path": "polygerrit-ui/app/utils/label-util.ts",
      "new_id": "9e377ba3d30696be3c6addee2dc7d0e19c34b4f3",
      "new_mode": 33188,
      "new_path": "polygerrit-ui/app/utils/label-util.ts"
    },
    {
      "type": "modify",
      "old_id": "45b3802bbe2e166bd23b88430bfb3ef561a6daca",
      "old_mode": 33188,
      "old_path": "polygerrit-ui/app/utils/label-util_test.ts",
      "new_id": "8a5ce8e562b0d90647f8a0b1b3b50f309285bfeb",
      "new_mode": 33188,
      "new_path": "polygerrit-ui/app/utils/label-util_test.ts"
    }
  ]
}
