)]}'
{
  "commit": "76532b4cdd53f19d34944c3796c6d6a854651ef9",
  "tree": "0f028695e0458e1fa5e5d08371168561a5580651",
  "parents": [
    "38ff2bfbaf179559fe15fe52f4c257327801477d"
  ],
  "author": {
    "name": "Edwin Kempin",
    "email": "ekempin@google.com",
    "time": "Wed Mar 10 14:53:17 2021 +0100"
  },
  "committer": {
    "name": "Edwin Kempin",
    "email": "ekempin@google.com",
    "time": "Fri Mar 12 08:33:56 2021 +0100"
  },
  "message": "Allow to disable the validation of code owner config files per branch\n\nBeing able to skip the validation on some branches is useful for\nbranches that are fully operated by bots. Bots cannot fix code owner\nconfig files and any issue that blocks them from uploading/submitting is\nmore severe than an invalid code owner config file. So it\u0027s better to\nallow invalid code owner config files and fix them at a later point in\ntime.\n\nWhether code owner config files are validated on commit received and\nsubmit can be controlled on project-level by setting\n`codeOwners.enableValidationOnCommitReceived` and\n`codeOwners.enableValidationOnSubmit` in code-owners.config.\n\nWith this change we now add a possibility to override this configuration\non branch-level by setting\n`validation.\u003cbranch\u003e.enableValidationOnCommitReceived` and\n`validation.\u003cbranch\u003e.enableValidationOnSubmit` in code-owners.config.\n\nAs all configuration parameters the new configuration parameters are\ninherited from parent projects if not set. An inherited branch-level\nconfiguration also overrides a local project-level configuration. This\nallows to exempt branches globally from code owner config validations.\n\n\u0027\u003cbranch\u003e\u0027 can be an exact ref, a ref pattern (e.g. \"refs/heads/*\") or a\nregular expression (e.g. \"^refs/heads/.*\"). If a branch is matched by\nmultiple validation subsections it is undefined which subsection takes\nprecedence. This is because Config#getSubsections returns a Set which\ndoesn\u0027t preserve the order in which subsections appear in the config\nfile.\n\nIn contrast to other configuration parameters branch-level validation\nparameters can only be set in code-owners.config, but not in\ngerrit.config (because as plugin we cannot have subsections in\ngerrit.config). This means to exempt branches globally the configuration\nneeds to be done in the code-owners.config of the All-Projects project.\n\nSigned-off-by: Edwin Kempin \u003cekempin@google.com\u003e\nChange-Id: Ifaa955d56fa499c440ee338ef4c0f40b495a2542\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "a06525de6c5cd8ba2713821b376c499723bbf480",
      "old_mode": 33188,
      "old_path": "java/com/google/gerrit/plugins/codeowners/acceptance/AbstractCodeOwnersTest.java",
      "new_id": "c85c5063c6df96dcabdea9b35fa1f8a6ebfecfbc",
      "new_mode": 33188,
      "new_path": "java/com/google/gerrit/plugins/codeowners/acceptance/AbstractCodeOwnersTest.java"
    },
    {
      "type": "modify",
      "old_id": "72747a6fb753dfcb2de211896d8e9aacee725169",
      "old_mode": 33188,
      "old_path": "java/com/google/gerrit/plugins/codeowners/backend/config/CodeOwnersPluginConfigSnapshot.java",
      "new_id": "4595fff28f5c728b1be978d06d3ffa6ffac2cbd7",
      "new_mode": 33188,
      "new_path": "java/com/google/gerrit/plugins/codeowners/backend/config/CodeOwnersPluginConfigSnapshot.java"
    },
    {
      "type": "modify",
      "old_id": "35585823ab126ea4a58eba727ca3e987c80f8eca",
      "old_mode": 33188,
      "old_path": "java/com/google/gerrit/plugins/codeowners/backend/config/GeneralConfig.java",
      "new_id": "e0f38cbcca78b02ba0eae34b0b7b749980bff01e",
      "new_mode": 33188,
      "new_path": "java/com/google/gerrit/plugins/codeowners/backend/config/GeneralConfig.java"
    },
    {
      "type": "modify",
      "old_id": "3f791352ee5d537f08882b2333f609bb20baa927",
      "old_mode": 33188,
      "old_path": "java/com/google/gerrit/plugins/codeowners/validation/CodeOwnerConfigValidator.java",
      "new_id": "4f03274aa3c61b58af381af35e2a468e6b372815",
      "new_mode": 33188,
      "new_path": "java/com/google/gerrit/plugins/codeowners/validation/CodeOwnerConfigValidator.java"
    },
    {
      "type": "modify",
      "old_id": "34657171e740e668bb81b4f05663de0278a64dec",
      "old_mode": 33188,
      "old_path": "javatests/com/google/gerrit/plugins/codeowners/acceptance/api/CodeOwnerConfigValidatorIT.java",
      "new_id": "b5012774583f770af10ba33023fa3bb9164b369c",
      "new_mode": 33188,
      "new_path": "javatests/com/google/gerrit/plugins/codeowners/acceptance/api/CodeOwnerConfigValidatorIT.java"
    },
    {
      "type": "modify",
      "old_id": "655b45eee6f450093e72f8c8a56a18fbc103a09d",
      "old_mode": 33188,
      "old_path": "javatests/com/google/gerrit/plugins/codeowners/acceptance/api/PutCodeOwnerProjectConfigIT.java",
      "new_id": "50114fe3f4bee55c6bd6b2699e67ef7519b078f6",
      "new_mode": 33188,
      "new_path": "javatests/com/google/gerrit/plugins/codeowners/acceptance/api/PutCodeOwnerProjectConfigIT.java"
    },
    {
      "type": "modify",
      "old_id": "529cbd4e48642562843f41be842359ff29c1bbba",
      "old_mode": 33188,
      "old_path": "javatests/com/google/gerrit/plugins/codeowners/backend/config/CodeOwnersPluginConfigSnapshotTest.java",
      "new_id": "eff2303053c7196a3ef1b3e4c5cc4ea615bad9de",
      "new_mode": 33188,
      "new_path": "javatests/com/google/gerrit/plugins/codeowners/backend/config/CodeOwnersPluginConfigSnapshotTest.java"
    },
    {
      "type": "modify",
      "old_id": "456deb5642c75ab5c985f6895ff5e45fc3c8429a",
      "old_mode": 33188,
      "old_path": "javatests/com/google/gerrit/plugins/codeowners/backend/config/GeneralConfigTest.java",
      "new_id": "3c9fc09c1719c3bf2b5228b6fd19ed020c5ff7e6",
      "new_mode": 33188,
      "new_path": "javatests/com/google/gerrit/plugins/codeowners/backend/config/GeneralConfigTest.java"
    },
    {
      "type": "modify",
      "old_id": "ffa4018de44dda96474e257ac38ede435720ae75",
      "old_mode": 33188,
      "old_path": "resources/Documentation/config.md",
      "new_id": "70e56309d2021b8a05367a2e7332fdcdf4ba6b3f",
      "new_mode": 33188,
      "new_path": "resources/Documentation/config.md"
    }
  ]
}
