)]}'
{
  "commit": "a1d3c0de0ae23ee2470c512db88c46f2fd06098b",
  "tree": "2a0bb7609e667c443de2b154df026a9928fa1480",
  "parents": [
    "d3cec48e415dd598a773335532cbc5647c985a93"
  ],
  "author": {
    "name": "Douglas Thor",
    "email": "dougthor42@users.noreply.github.com",
    "time": "Wed May 08 18:33:09 2024 -0700"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Thu May 09 01:33:09 2024 +0000"
  },
  "message": "feat(gazelle): Add \"include_dep\" Python comment annotation (#1863)\n\nAdd a new Python comment annotation for Gazelle: `include_dep`. This\nannotation accepts a comma-separated string of values. Values _should_\nbe targets names, but no validation is done.\n\nThe annotation can be added multiple times, and all values are combined\nand de-duplicated.\n\nFor `python_generation_mode \u003d \"package\"`, the `include_dep` annotations\nfound across all files included in the generated target.\n\nThe `parser.annotations` struct is updated to include a new `includeDep`\nfield, and `parser.parse` is updated to return the `annotations` struct.\nAll\ntarget builders then add the resolved dependencies.\n\nFixes #1862.\n\nExample:\n\n```python\n# gazelle:include_dep //foo:bar,:hello_world,//:abc\n# gazelle:include_dep //:def,//foo:bar\n```\n\nwill cause gazelle to generate:\n\n```starlark\ndeps \u003d [\n    \":hello_world\",\n    \"//:abc\",\n    \"//:def\",\n    \"//foo:bar\",\n]\n```\n\n---------\n\nCo-authored-by: Thulio Ferraz Assis \u003c3149049+f0rmiga@users.noreply.github.com\u003e",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "415b936e8dce199e8c1875814933ec1aad477fcc",
      "old_mode": 33188,
      "old_path": "CHANGELOG.md",
      "new_id": "449dae0cd56b1449035bd753ba1dd3d6a534da06",
      "new_mode": 33188,
      "new_path": "CHANGELOG.md"
    },
    {
      "type": "modify",
      "old_id": "4c1cb2799eb65200a060e78114f7ce6080c899a1",
      "old_mode": 33188,
      "old_path": "gazelle/README.md",
      "new_id": "e7b17669aac11d6412fc84b2628fc845b43d3a00",
      "new_mode": 33188,
      "new_path": "gazelle/README.md"
    },
    {
      "type": "modify",
      "old_id": "1937831c444ec387303292006fefede8ca98c291",
      "old_mode": 33188,
      "old_path": "gazelle/python/generate.go",
      "new_id": "8889438c059cbef5af76fc7e5bca8e148a587e1a",
      "new_mode": 33188,
      "new_path": "gazelle/python/generate.go"
    },
    {
      "type": "modify",
      "old_id": "9b00b831e9e16ba44ca393d94e78dc9a288ede1c",
      "old_mode": 33188,
      "old_path": "gazelle/python/parser.go",
      "new_id": "184fad7c14f3b73b38ff1e8dd113e738a685886d",
      "new_mode": 33188,
      "new_path": "gazelle/python/parser.go"
    },
    {
      "type": "modify",
      "old_id": "a941a7cc7eb51cbc2f66f27383d08a71d91c7fbf",
      "old_mode": 33188,
      "old_path": "gazelle/python/target.go",
      "new_id": "c40d6fb3b71fa6082b7fa73b1859c8755f3e4a93",
      "new_mode": 33188,
      "new_path": "gazelle/python/target.go"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "af2c2cea4bbfb5ede2e7310af577e8b16459cf80",
      "new_mode": 33188,
      "new_path": "gazelle/python/testdata/annotation_include_dep/BUILD.in"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "1cff8f4676653b7b79213d978f30b30432aa69eb",
      "new_mode": 33188,
      "new_path": "gazelle/python/testdata/annotation_include_dep/BUILD.out"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "4c8afbe5ebd225148be345c14ac25a9213d8da8b",
      "new_mode": 33188,
      "new_path": "gazelle/python/testdata/annotation_include_dep/README.md"
    },
    {
      "type": "copy",
      "old_id": "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391",
      "old_mode": 33188,
      "old_path": "gazelle/python/testdata/invalid_annotation/BUILD.in",
      "new_id": "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391",
      "new_mode": 33188,
      "new_path": "gazelle/python/testdata/annotation_include_dep/WORKSPACE",
      "score": 100
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "61015346deeb891b9cef89efb1f94b31c3c20258",
      "new_mode": 33188,
      "new_path": "gazelle/python/testdata/annotation_include_dep/__init__.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "6d9d8aa2469dbcc08327fb5a472a67b6e0bb51dd",
      "new_mode": 33188,
      "new_path": "gazelle/python/testdata/annotation_include_dep/__main__.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "7afe81f8187623cb5796975780240fc48c017f34",
      "new_mode": 33188,
      "new_path": "gazelle/python/testdata/annotation_include_dep/gazelle_python.yaml"
    },
    {
      "type": "copy",
      "old_id": "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391",
      "old_mode": 33188,
      "old_path": "gazelle/python/testdata/invalid_annotation/BUILD.in",
      "new_id": "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391",
      "new_mode": 33188,
      "new_path": "gazelle/python/testdata/annotation_include_dep/module1.py",
      "score": 100
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "23a75afee767da60e0a9c2a372973fcee9ff94c3",
      "new_mode": 33188,
      "new_path": "gazelle/python/testdata/annotation_include_dep/module2.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "6fa18c6f56af029073f60c904323c36d028ed3db",
      "new_mode": 33188,
      "new_path": "gazelle/python/testdata/annotation_include_dep/module2_test.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "421b48688a1f0c42c9a20c0499be2c3c12d25ee1",
      "new_mode": 33188,
      "new_path": "gazelle/python/testdata/annotation_include_dep/subpkg/BUILD.in"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "921c89288992bb78a4789ce46b941fbdb4a88fc3",
      "new_mode": 33188,
      "new_path": "gazelle/python/testdata/annotation_include_dep/subpkg/BUILD.out"
    },
    {
      "type": "copy",
      "old_id": "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391",
      "old_mode": 33188,
      "old_path": "gazelle/python/testdata/invalid_annotation/BUILD.in",
      "new_id": "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391",
      "new_mode": 33188,
      "new_path": "gazelle/python/testdata/annotation_include_dep/subpkg/__init__.py",
      "score": 100
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "01566a07ec2a150f057781dabd3c13f7c0579fba",
      "new_mode": 33188,
      "new_path": "gazelle/python/testdata/annotation_include_dep/subpkg/module1.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "087763a6938903ae59050ad8f3e11baeb07af672",
      "new_mode": 33188,
      "new_path": "gazelle/python/testdata/annotation_include_dep/subpkg/module1_test.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "dabeb6794ac2e466ae99cf74038291794957abdb",
      "new_mode": 33188,
      "new_path": "gazelle/python/testdata/annotation_include_dep/subpkg/module2.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "899a7c4f53ddc3e6709ba37a18923d442d451514",
      "new_mode": 33188,
      "new_path": "gazelle/python/testdata/annotation_include_dep/subpkg/module3.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "2410223e5999e8b2ef1720863d19e2012a0974eb",
      "new_mode": 33188,
      "new_path": "gazelle/python/testdata/annotation_include_dep/test.yaml"
    },
    {
      "type": "rename",
      "old_id": "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391",
      "old_mode": 33188,
      "old_path": "gazelle/python/testdata/invalid_annotation/BUILD.in",
      "new_id": "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391",
      "new_mode": 33188,
      "new_path": "gazelle/python/testdata/invalid_annotation_exclude/BUILD.in",
      "score": 100
    },
    {
      "type": "rename",
      "old_id": "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391",
      "old_mode": 33188,
      "old_path": "gazelle/python/testdata/invalid_annotation/BUILD.out",
      "new_id": "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391",
      "new_mode": 33188,
      "new_path": "gazelle/python/testdata/invalid_annotation_exclude/BUILD.out",
      "score": 100
    },
    {
      "type": "rename",
      "old_id": "b2544b5bdab65bdeb4d92c4504e91418d64de7e1",
      "old_mode": 33188,
      "old_path": "gazelle/python/testdata/invalid_annotation/README.md",
      "new_id": "b2544b5bdab65bdeb4d92c4504e91418d64de7e1",
      "new_mode": 33188,
      "new_path": "gazelle/python/testdata/invalid_annotation_exclude/README.md",
      "score": 100
    },
    {
      "type": "rename",
      "old_id": "faff6af87ac0ef60c3f9dacae80ca00b08118b58",
      "old_mode": 33188,
      "old_path": "gazelle/python/testdata/invalid_annotation/WORKSPACE",
      "new_id": "faff6af87ac0ef60c3f9dacae80ca00b08118b58",
      "new_mode": 33188,
      "new_path": "gazelle/python/testdata/invalid_annotation_exclude/WORKSPACE",
      "score": 100
    },
    {
      "type": "rename",
      "old_id": "7aee8768ada3d5a8c7584848cedc568f7ee10411",
      "old_mode": 33188,
      "old_path": "gazelle/python/testdata/invalid_annotation/__init__.py",
      "new_id": "7aee8768ada3d5a8c7584848cedc568f7ee10411",
      "new_mode": 33188,
      "new_path": "gazelle/python/testdata/invalid_annotation_exclude/__init__.py",
      "score": 100
    },
    {
      "type": "rename",
      "old_id": "19924b1288bd36a1483f86989f1c0f472166de79",
      "old_mode": 33188,
      "old_path": "gazelle/python/testdata/invalid_annotation/test.yaml",
      "new_id": "19924b1288bd36a1483f86989f1c0f472166de79",
      "new_mode": 33188,
      "new_path": "gazelle/python/testdata/invalid_annotation_exclude/test.yaml",
      "score": 100
    },
    {
      "type": "copy",
      "old_id": "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391",
      "old_mode": 33188,
      "old_path": "gazelle/python/testdata/invalid_annotation/BUILD.in",
      "new_id": "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391",
      "new_mode": 33188,
      "new_path": "gazelle/python/testdata/invalid_annotation_include_dep/BUILD.in",
      "score": 100
    },
    {
      "type": "copy",
      "old_id": "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391",
      "old_mode": 33188,
      "old_path": "gazelle/python/testdata/invalid_annotation/BUILD.out",
      "new_id": "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391",
      "new_mode": 33188,
      "new_path": "gazelle/python/testdata/invalid_annotation_include_dep/BUILD.out",
      "score": 100
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "2f8e0240502c83518f2e8524911b6bf9ed2ea2b6",
      "new_mode": 33188,
      "new_path": "gazelle/python/testdata/invalid_annotation_include_dep/README.md"
    },
    {
      "type": "copy",
      "old_id": "faff6af87ac0ef60c3f9dacae80ca00b08118b58",
      "old_mode": 33188,
      "old_path": "gazelle/python/testdata/invalid_annotation/WORKSPACE",
      "new_id": "faff6af87ac0ef60c3f9dacae80ca00b08118b58",
      "new_mode": 33188,
      "new_path": "gazelle/python/testdata/invalid_annotation_include_dep/WORKSPACE",
      "score": 100
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "61f4c76c34a23aafafefa18818ca3e0e0cad9f20",
      "new_mode": 33188,
      "new_path": "gazelle/python/testdata/invalid_annotation_include_dep/__init__.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "f2159a6cd176849e26f8a0d6951649c14ba14802",
      "new_mode": 33188,
      "new_path": "gazelle/python/testdata/invalid_annotation_include_dep/test.yaml"
    }
  ]
}
