)]}'
{
  "commit": "e05c0aa00938adc0797bda1e8f2c15675aa13c30",
  "tree": "3013634aab10c8cc58f033ca962f2457839919a3",
  "parents": [
    "f19d5817e7ba85c2fda92e2697be11a4465d3267"
  ],
  "author": {
    "name": "Aaron Wood",
    "email": "aaronwood@google.com",
    "time": "Wed Feb 14 13:40:53 2024 -0800"
  },
  "committer": {
    "name": "GN LUCI",
    "email": "gn-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Wed Feb 28 21:34:21 2024 +0000"
  },
  "message": "[label_matches] Add new functions label_matches(), filter_labels_include() and filter_labels_exclude()\n\nAdd a new function \u0027label_matches(target_label, label_patterns)\u0027 that\ncan be used to test if a given GN label matches any of the given label\npatterns.\n\nAdd a new pair of functions:\n - \u0027filter_labels_include(labels, label_patterns)\u0027\n - \u0027filter_labels_exclude(labels, label_patterns)\u0027\n\nThese returns all labels in the first list that match (or don\u0027t match,\nrespectively) any of the patterns in the second list (much like the\n\u0027filter_include()\u0027 and \u0027filter_exclude()\u0027 functions do for files.\n\nChange-Id: I7670099dce41c3ff38219adf8fd740b6fb935e78\nReviewed-on: https://gn-review.googlesource.com/c/gn/+/16680\nReviewed-by: Dirk Pranke \u003cdpranke@google.com\u003e\nCommit-Queue: Aaron Wood \u003caaronwood@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "e7037bb77933317730d37815a4ba0b98e3a351f6",
      "old_mode": 33261,
      "old_path": "build/gen.py",
      "new_id": "35707460dd4b476af9481a60cbe4fc173cac2ee1",
      "new_mode": 33261,
      "new_path": "build/gen.py"
    },
    {
      "type": "modify",
      "old_id": "24036dcd590151baacd65c69c2b1b51a4f0cf297",
      "old_mode": 33188,
      "old_path": "docs/reference.md",
      "new_id": "96217650134a86f6eeb958c7b455e69f674e5e3a",
      "new_mode": 33188,
      "new_path": "docs/reference.md"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "eb08def6bbd200af495352cdd6294993edc4ca46",
      "new_mode": 33188,
      "new_path": "src/gn/function_filter_labels.cc"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "4a0ebf3612b3b5ede36875c725460095185571f5",
      "new_mode": 33188,
      "new_path": "src/gn/function_filter_labels_unittest.cc"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "45e11d4696378539d79ebddec2358b22f06b3a9f",
      "new_mode": 33188,
      "new_path": "src/gn/function_label_matches.cc"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "f7bda694f5b19bcb367428ad8fe330e43d1241b5",
      "new_mode": 33188,
      "new_path": "src/gn/function_label_matches_unittest.cc"
    },
    {
      "type": "modify",
      "old_id": "770ab02279d739d91a88d63e0d0c35882019bf81",
      "old_mode": 33188,
      "old_path": "src/gn/functions.cc",
      "new_id": "adc1ce31c309e247771649415a064cbf6d9690b7",
      "new_mode": 33188,
      "new_path": "src/gn/functions.cc"
    },
    {
      "type": "modify",
      "old_id": "12305019b76cec482c435d92c6ac1462c72bef3c",
      "old_mode": 33188,
      "old_path": "src/gn/functions.h",
      "new_id": "5cfeb827f862e5c610a42efd393f50b1b8004bac",
      "new_mode": 33188,
      "new_path": "src/gn/functions.h"
    }
  ]
}
