)]}'
{
  "commit": "7aa4ec6ebe6f0f5108e9af77c9bd010f671767f2",
  "tree": "ea5198f8182d288f4ab9c23f41b4fa0efd5b2367",
  "parents": [
    "7d18cb37e1cc891821471aa91627fd03a6b1dc6b"
  ],
  "author": {
    "name": "Matt Stark",
    "email": "msta@google.com",
    "time": "Fri Jun 05 14:22:05 2026 +1000"
  },
  "committer": {
    "name": "gn-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "email": "gn-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Mon Jul 06 21:30:22 2026 -0700"
  },
  "message": "Create starlark attr crate\n\nNote for reviewers - I strongly advise reading the code in the following order:\n* globals.rs - Contains the starlark attr.* functions, which creates\n* schema.rs - Contains the schema of an attribute (all the metadata about the type), which is used to create an\n* attr.rs - Contains the value of an attribute, which can be converted to\n* value.rs - Converts an attribute to a starlark value (this part is done in a follow-up CL).\n\nBug: 528225104\nChange-Id: I14f205864735184f8a23295151f0a6596a6a6964\nReviewed-on: https://gn-review.googlesource.com/c/gn/+/23500\nCommit-Queue: Matt Stark \u003cmsta@google.com\u003e\nReviewed-by: Philipp Wollermann \u003cphilwo@google.com\u003e\nReviewed-by: Cole Faust \u003ccolefaust@google.com\u003e\nReviewed-by: Matt Stark \u003cmsta@google.com\u003e\nReviewed-by: Richard Wang \u003crichardwa@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "512a2322dedf51953f72a366cedd6da491fbebc4",
      "old_mode": 33188,
      "old_path": "src/gn/starlark/Cargo.lock",
      "new_id": "f68f352544cf9358c43bdff959deada2f35f7c21",
      "new_mode": 33188,
      "new_path": "src/gn/starlark/Cargo.lock"
    },
    {
      "type": "modify",
      "old_id": "57abfff9b2a120f9d2240c1ebaf25b8cbf844553",
      "old_mode": 33188,
      "old_path": "src/gn/starlark/Cargo.toml",
      "new_id": "9d2a06d297b2f52bdc72c9b73cf4e62bd156db58",
      "new_mode": 33188,
      "new_path": "src/gn/starlark/Cargo.toml"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "32ded57f2abc5fc36dabed7b508fed306abb3732",
      "new_mode": 33188,
      "new_path": "src/gn/starlark/crates/attr/Cargo.toml"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "fca90f8ac1b7ebf3b180126097fa23f7282e4cba",
      "new_mode": 33188,
      "new_path": "src/gn/starlark/crates/attr/src/allow_files.rs"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "5e1fc561f22a6100143ab89e58d1bf45ed291135",
      "new_mode": 33188,
      "new_path": "src/gn/starlark/crates/attr/src/attr.rs"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "e87f30d63969a4b03832de62589035e1eeabee75",
      "new_mode": 33188,
      "new_path": "src/gn/starlark/crates/attr/src/cfg.rs"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "f697bddcd27223d85d3b3c52239ba61a077ffde1",
      "new_mode": 33188,
      "new_path": "src/gn/starlark/crates/attr/src/errors.rs"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "e483de9af8a5eaa1d60f1f5d49a40a9cf1146381",
      "new_mode": 33188,
      "new_path": "src/gn/starlark/crates/attr/src/globals.rs"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "c3819d6bd19e509ecea5fa619f62e7e66da1f1e8",
      "new_mode": 33188,
      "new_path": "src/gn/starlark/crates/attr/src/lib.rs"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "642f99ed9aaccf29384760e7e4b3e341a4fab727",
      "new_mode": 33188,
      "new_path": "src/gn/starlark/crates/attr/src/schema.rs"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "87132af8449f0dd1e4cdb43b0c6dab5e7f637f2a",
      "new_mode": 33188,
      "new_path": "src/gn/starlark/crates/attr/src/traits.rs"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391",
      "new_mode": 33188,
      "new_path": "src/gn/starlark/src/testdata/allow_files/bar.cc"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391",
      "new_mode": 33188,
      "new_path": "src/gn/starlark/src/testdata/allow_files/cc"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391",
      "new_mode": 33188,
      "new_path": "src/gn/starlark/src/testdata/allow_files/file.cc"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391",
      "new_mode": 33188,
      "new_path": "src/gn/starlark/src/testdata/allow_files/file.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391",
      "new_mode": 33188,
      "new_path": "src/gn/starlark/src/testdata/allow_files/foo.cc"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391",
      "new_mode": 33188,
      "new_path": "src/gn/starlark/src/testdata/allow_files/subdir/file.cc"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391",
      "new_mode": 33188,
      "new_path": "src/gn/starlark/src/testdata/allow_files/test.foo.cc"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391",
      "new_mode": 33188,
      "new_path": "src/gn/starlark/src/testdata/foo/file.cc"
    }
  ]
}
