)]}'
{
  "commit": "c98799d28b77071e1b24e8e29030db1a3c7040f9",
  "tree": "bc24c93fb1d4a81e429f44a90c0ffb20ef726927",
  "parents": [
    "64c4cf3dca84d895a0f27daaded30cd1e8c3838d"
  ],
  "author": {
    "name": "Alex Sorokoumov",
    "email": "aleksandr.sorokoumov@gmail.com",
    "time": "Wed Mar 26 23:38:56 2025 -0700"
  },
  "committer": {
    "name": "Alex Sorokoumov",
    "email": "aleksandr.sorokoumov@gmail.com",
    "time": "Wed Mar 26 23:38:56 2025 -0700"
  },
  "message": "Add NOTICE file and update license headers\n\nSee the discussion in Slack - https://the-asf.slack.com/archives/C08GS61L40P/p1742747355910289.\n\nTL;DR we should use license header specified in https://www.apache.org/legal/src-headers.html#headers\nand also include the NOTICE.txt file.\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "e3f5d8537f9a7ac9cdf5468eb66f82007ec14c02",
      "old_mode": 33188,
      "old_path": ".pre-commit-config.yaml",
      "new_id": "1eb40b84b66f3144d842c37d0a3ec4edf1a6ce88",
      "new_mode": 33188,
      "new_path": ".pre-commit-config.yaml"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "fd82241a182a810c5ea3c959129717151da60e62",
      "new_mode": 33188,
      "new_path": "NOTICE.txt"
    },
    {
      "type": "modify",
      "old_id": "90edcee40a5ab6c1b9713f3cc263e3ce7dc20a4a",
      "old_mode": 33188,
      "old_path": "ci-tools/license-templates/LICENSE.txt",
      "new_id": "60b675e31016189b951f76d0bf9f668f32a1fb30",
      "new_mode": 33188,
      "new_path": "ci-tools/license-templates/LICENSE.txt"
    },
    {
      "type": "modify",
      "old_id": "732b550fa0554df5345e2b263bc232eb8c269c22",
      "old_mode": 33188,
      "old_path": "ci-tools/wrappers.sh",
      "new_id": "c82ef03dba6fae283198332693d25f716149aab2",
      "new_mode": 33188,
      "new_path": "ci-tools/wrappers.sh"
    },
    {
      "type": "modify",
      "old_id": "66f2960d6ac07bd5707a4743064db172a0c49095",
      "old_mode": 33188,
      "old_path": "docs/BASICS.md",
      "new_id": "4737c2f8cd88b65e2b41675e8ba4b24149bc1e1a",
      "new_mode": 33188,
      "new_path": "docs/BASICS.md"
    },
    {
      "type": "modify",
      "old_id": "fe9a850523acc9106651d2ee504bd722c4ed939f",
      "old_mode": 33188,
      "old_path": "docs/BIG_QUERY.md",
      "new_id": "5c0ade5818ba9539f7030609ffa725aa8c6f2b23",
      "new_mode": 33188,
      "new_path": "docs/BIG_QUERY.md"
    },
    {
      "type": "modify",
      "old_id": "b7fed5a131884c4b72c153b017191414419f2e6e",
      "old_mode": 33188,
      "old_path": "docs/CONTRIBUTING.md",
      "new_id": "a4291ec0267c488092f8c2ef700460b5321f57f0",
      "new_mode": 33188,
      "new_path": "docs/CONTRIBUTING.md"
    },
    {
      "type": "modify",
      "old_id": "38767326b0b5b197d5ba3df865410e812162bd7a",
      "old_mode": 33188,
      "old_path": "docs/CSV.md",
      "new_id": "30305dc66417e7a337aa503e1041d3c8c53884b9",
      "new_mode": 33188,
      "new_path": "docs/CSV.md"
    },
    {
      "type": "modify",
      "old_id": "ff2bbf1d9d4a8fad5070e0f6cf4f8040439321f8",
      "old_mode": 33188,
      "old_path": "docs/GETTING_STARTED.md",
      "new_id": "9e837cfeb26638a61be62e47625ac4cbeebf567f",
      "new_mode": 33188,
      "new_path": "docs/GETTING_STARTED.md"
    },
    {
      "type": "modify",
      "old_id": "591a240097bda7d5840afeb4d8825d9d7f4c72e6",
      "old_mode": 33188,
      "old_path": "docs/GRAFANA.md",
      "new_id": "2841003f0cef90cac864d3733d1a449b4b487f8e",
      "new_mode": 33188,
      "new_path": "docs/GRAFANA.md"
    },
    {
      "type": "modify",
      "old_id": "4b7227b5709eb8863a0b5b5297c3ed6ad54be400",
      "old_mode": 33188,
      "old_path": "docs/GRAPHITE.md",
      "new_id": "d7987b94f5ba43ff7e2adc7986e5a1d5094024ba",
      "new_mode": 33188,
      "new_path": "docs/GRAPHITE.md"
    },
    {
      "type": "modify",
      "old_id": "0a7a7ad03902ea6c9876abd71ba92fb0298d5f30",
      "old_mode": 33188,
      "old_path": "docs/INSTALL.md",
      "new_id": "603e330f2909d8d48f569e72bda9526f3b6bd2ce",
      "new_mode": 33188,
      "new_path": "docs/INSTALL.md"
    },
    {
      "type": "modify",
      "old_id": "1775695ae83e3207d6e0c8c6e0e4c3d4c69ca585",
      "old_mode": 33188,
      "old_path": "docs/POSTGRESQL.md",
      "new_id": "0bbcf1059f095513c2dcead34ab3b7057944777a",
      "new_mode": 33188,
      "new_path": "docs/POSTGRESQL.md"
    },
    {
      "type": "modify",
      "old_id": "05fdb12bd91a25d5c4bfc775d8a37322d390afe0",
      "old_mode": 33188,
      "old_path": "docs/README.md",
      "new_id": "2d8b9700794c18fdedd6fad02606673cb0fcae60",
      "new_mode": 33188,
      "new_path": "docs/README.md"
    },
    {
      "type": "modify",
      "old_id": "8634646496979ba6d9558bb94ab28f4ba5f75120",
      "old_mode": 33188,
      "old_path": "examples/bigquery/config_credentials.sh",
      "new_id": "e28f9d7c1f7eb35b04cb234394c8abab5e033c57",
      "new_mode": 33188,
      "new_path": "examples/bigquery/config_credentials.sh"
    },
    {
      "type": "modify",
      "old_id": "764295c3db51f18e1a513c74104a988bef997b67",
      "old_mode": 33188,
      "old_path": "examples/bigquery/otava.yaml",
      "new_id": "8c89aa8d979d0bc25ee04f97e9ddebb211f1cc43",
      "new_mode": 33188,
      "new_path": "examples/bigquery/otava.yaml"
    },
    {
      "type": "modify",
      "old_id": "c0834c471110965edac3c7fe3d459cf3ee455883",
      "old_mode": 33188,
      "old_path": "examples/bigquery/schema.sql",
      "new_id": "106bdd900e37fd2eca23dc6c6b0e335df5ebc97f",
      "new_mode": 33188,
      "new_path": "examples/bigquery/schema.sql"
    },
    {
      "type": "modify",
      "old_id": "0c171d3dbaf4011639dfc5ba037086fd888cb975",
      "old_mode": 33188,
      "old_path": "examples/csv/docker-compose.yaml",
      "new_id": "57944a831861e2ea3a706fea38da82754eee63e3",
      "new_mode": 33188,
      "new_path": "examples/csv/docker-compose.yaml"
    },
    {
      "type": "modify",
      "old_id": "0b3b8de2004f9cde4de32f4adbe2d0ed555309c1",
      "old_mode": 33188,
      "old_path": "examples/csv/otava.yaml",
      "new_id": "dd639d0da5ab7302e38c68e68b19722d9a847425",
      "new_mode": 33188,
      "new_path": "examples/csv/otava.yaml"
    },
    {
      "type": "modify",
      "old_id": "51fbb142608533b419660e0a918a5e9f6fd1485e",
      "old_mode": 33261,
      "old_path": "examples/graphite/datagen/datagen.sh",
      "new_id": "8217ceb035f6325847c4508c5b014305b0233885",
      "new_mode": 33261,
      "new_path": "examples/graphite/datagen/datagen.sh"
    },
    {
      "type": "modify",
      "old_id": "c16f4c162a88be309aa7a7197887f6fa23dddd2c",
      "old_mode": 33188,
      "old_path": "examples/graphite/docker-compose.yaml",
      "new_id": "a784ea1493bf559227a432d42301e1fcae2239ee",
      "new_mode": 33188,
      "new_path": "examples/graphite/docker-compose.yaml"
    },
    {
      "type": "modify",
      "old_id": "eda4cb61ba9c9b21c95a9a4f2016c6630a2f8b22",
      "old_mode": 33188,
      "old_path": "examples/graphite/grafana/dashboards/dashboards.yaml",
      "new_id": "27c8410ccb16a4f2d5e6005240959d0263682544",
      "new_mode": 33188,
      "new_path": "examples/graphite/grafana/dashboards/dashboards.yaml"
    },
    {
      "type": "modify",
      "old_id": "89be9c347de9d6be2d54be2d20720fe997c8d7a0",
      "old_mode": 33188,
      "old_path": "examples/graphite/grafana/datasources/graphite.yaml",
      "new_id": "145064691da2ab2143d7024a41d8628a0e8017e8",
      "new_mode": 33188,
      "new_path": "examples/graphite/grafana/datasources/graphite.yaml"
    },
    {
      "type": "modify",
      "old_id": "856727ecf8847b939ccb9f90cc8ebd296a238639",
      "old_mode": 33188,
      "old_path": "examples/graphite/otava.yaml",
      "new_id": "09e07f98691cf29782e54bdd02859bd045cec3fb",
      "new_mode": 33188,
      "new_path": "examples/graphite/otava.yaml"
    },
    {
      "type": "modify",
      "old_id": "92832cf4823efadae3d59faa439edc54c320bb20",
      "old_mode": 33188,
      "old_path": "examples/postgresql/docker-compose.yaml",
      "new_id": "f4829da7fa9a90c9cbb9c7df9a8a89bf07778a45",
      "new_mode": 33188,
      "new_path": "examples/postgresql/docker-compose.yaml"
    },
    {
      "type": "modify",
      "old_id": "a8c40fed8c0363796af893e1e5dffb90d0eb31f6",
      "old_mode": 33188,
      "old_path": "examples/postgresql/init-db/schema.sql",
      "new_id": "632cf3fd45130dbb61021ec84662fdb0ba6683c3",
      "new_mode": 33188,
      "new_path": "examples/postgresql/init-db/schema.sql"
    },
    {
      "type": "modify",
      "old_id": "7806fe5b56f2a9828182d4e6006211ccc9a0ca23",
      "old_mode": 33188,
      "old_path": "examples/postgresql/otava.yaml",
      "new_id": "bb52c15fa4442700c8a1aed46bf587ca057c3cd9",
      "new_mode": 33188,
      "new_path": "examples/postgresql/otava.yaml"
    },
    {
      "type": "modify",
      "old_id": "e052c1f86db1fd49772c44fa4a25c9280790a1d6",
      "old_mode": 33188,
      "old_path": "otava/analysis.py",
      "new_id": "67396c8bca308b3095727f83ca8e611865c6e193",
      "new_mode": 33188,
      "new_path": "otava/analysis.py"
    },
    {
      "type": "modify",
      "old_id": "a72a1cae6920e0f47798790815fd4eb118b7f765",
      "old_mode": 33188,
      "old_path": "otava/attributes.py",
      "new_id": "98f6d10575a3a977748afbecf8621d4fa03d329a",
      "new_mode": 33188,
      "new_path": "otava/attributes.py"
    },
    {
      "type": "modify",
      "old_id": "05e4bf9b105d5f99a7b2c0f20ef17df3d0872ab0",
      "old_mode": 33188,
      "old_path": "otava/bigquery.py",
      "new_id": "7ef7c92317d17fae3291ca9bb825921e4c10242f",
      "new_mode": 33188,
      "new_path": "otava/bigquery.py"
    },
    {
      "type": "modify",
      "old_id": "bc025e7d0d0f2e2810aeb84163e8cd802677e348",
      "old_mode": 33188,
      "old_path": "otava/config.py",
      "new_id": "37936c65bffa76091aba2da85e313a8832274ac5",
      "new_mode": 33188,
      "new_path": "otava/config.py"
    },
    {
      "type": "modify",
      "old_id": "4548504d297d360660c0fece2b353fe2489d5acd",
      "old_mode": 33188,
      "old_path": "otava/csv_options.py",
      "new_id": "2c9ddb21a61e8e686ddae6b19fcdb2747a6af4c5",
      "new_mode": 33188,
      "new_path": "otava/csv_options.py"
    },
    {
      "type": "modify",
      "old_id": "a8e3041f524fe1de88b8a31209eca95bf463b9e2",
      "old_mode": 33188,
      "old_path": "otava/data_selector.py",
      "new_id": "1ff86537f6a4fecad5cf60cc236a619351e05561",
      "new_mode": 33188,
      "new_path": "otava/data_selector.py"
    },
    {
      "type": "modify",
      "old_id": "d0e6a81026e1632e683bc494e6cdbbd4df5c5048",
      "old_mode": 33188,
      "old_path": "otava/grafana.py",
      "new_id": "dbf9e42499a755876c7feb8ef31d45ee26cc6d7d",
      "new_mode": 33188,
      "new_path": "otava/grafana.py"
    },
    {
      "type": "modify",
      "old_id": "0ec194cdbceddfe7a4be292833a64e20c410c975",
      "old_mode": 33188,
      "old_path": "otava/graphite.py",
      "new_id": "65360795b43aab87a073b49f6264af5d4b0e61ae",
      "new_mode": 33188,
      "new_path": "otava/graphite.py"
    },
    {
      "type": "modify",
      "old_id": "32caeb3cbf468bca69a5c8dd8fafd967730f566d",
      "old_mode": 33188,
      "old_path": "otava/importer.py",
      "new_id": "634c46a83f79b0610048065a4944231185e8196f",
      "new_mode": 33188,
      "new_path": "otava/importer.py"
    },
    {
      "type": "modify",
      "old_id": "14cfb581b90af9d7bb1aeb370c631a471f523492",
      "old_mode": 33188,
      "old_path": "otava/main.py",
      "new_id": "a158f2c01c6c2e14bc82c5c14f30780d3163a291",
      "new_mode": 33188,
      "new_path": "otava/main.py"
    },
    {
      "type": "modify",
      "old_id": "55637b6d1132abf59db60a90ffcc8544ff3707f1",
      "old_mode": 33188,
      "old_path": "otava/postgres.py",
      "new_id": "6b98c0f3d5665b402c9c987d3f5b7b977541dbe1",
      "new_mode": 33188,
      "new_path": "otava/postgres.py"
    },
    {
      "type": "modify",
      "old_id": "f975025573fdc59b48c5adb97219d00a7bb95cc4",
      "old_mode": 33188,
      "old_path": "otava/report.py",
      "new_id": "d9cf3c431f8e15c8093502d3f62c575bf102a898",
      "new_mode": 33188,
      "new_path": "otava/report.py"
    },
    {
      "type": "modify",
      "old_id": "3fac518f28399c0556a53e476867a7ff8008f9a6",
      "old_mode": 33188,
      "old_path": "otava/resources/otava.yaml",
      "new_id": "44479f3da29e269ec2454f57072595c7c922620e",
      "new_mode": 33188,
      "new_path": "otava/resources/otava.yaml"
    },
    {
      "type": "modify",
      "old_id": "3fec29d64ff20845c645d906e3c6628165d35e2a",
      "old_mode": 33188,
      "old_path": "otava/series.py",
      "new_id": "6959962560cd6edd53cc55540335e7d73be9ca4c",
      "new_mode": 33188,
      "new_path": "otava/series.py"
    },
    {
      "type": "modify",
      "old_id": "993f50165ac1e2c8147d451eec9f5e2cf482d29d",
      "old_mode": 33188,
      "old_path": "otava/slack.py",
      "new_id": "1cad43f7d8cc6e5981ab5c45bfb3c041cc8195c1",
      "new_mode": 33188,
      "new_path": "otava/slack.py"
    },
    {
      "type": "modify",
      "old_id": "bc4e03da74a6f49a3d71a918cae3162b7e9f551d",
      "old_mode": 33188,
      "old_path": "otava/test_config.py",
      "new_id": "c2a2c3bc384eb58a489bd801f6a7e44d170a1d6f",
      "new_mode": 33188,
      "new_path": "otava/test_config.py"
    },
    {
      "type": "modify",
      "old_id": "45d004e9083a5cb8fa6a11ce879e4ee6273de966",
      "old_mode": 33188,
      "old_path": "otava/util.py",
      "new_id": "1fcf072e1f17892646b686ad23c8767782284b6b",
      "new_mode": 33188,
      "new_path": "otava/util.py"
    },
    {
      "type": "modify",
      "old_id": "e1d7908dada5dad4aba417dcd4d5f502ae13ae4c",
      "old_mode": 33188,
      "old_path": "perf/perf_test.py",
      "new_id": "45f554abe9f94b50a8b542b941acec1fca7b74d5",
      "new_mode": 33188,
      "new_path": "perf/perf_test.py"
    },
    {
      "type": "modify",
      "old_id": "ed64a788e026bd563ce65b61fa32addb29c36012",
      "old_mode": 33261,
      "old_path": "poetryw",
      "new_id": "89dee6356e3f927e069192e5d741b5138ce356e6",
      "new_mode": 33261,
      "new_path": "poetryw"
    },
    {
      "type": "modify",
      "old_id": "d125a352847816ab9c232a0ed7b636561f5422c6",
      "old_mode": 33188,
      "old_path": "pyproject.toml",
      "new_id": "bca82080b3ed967f879392adefc5d097eaa63d7e",
      "new_mode": 33188,
      "new_path": "pyproject.toml"
    },
    {
      "type": "modify",
      "old_id": "8d7ba311b7e865e3a488e8b463fdce086880d8a6",
      "old_mode": 33188,
      "old_path": "tests/analysis_test.py",
      "new_id": "2e1ed75bba076dfa338674d85395cde1541bb710",
      "new_mode": 33188,
      "new_path": "tests/analysis_test.py"
    },
    {
      "type": "modify",
      "old_id": "a96d8c0bc4d401cd5fa245a2a6a71912bc9421b8",
      "old_mode": 33188,
      "old_path": "tests/config_test.py",
      "new_id": "a59e83ce017c3784637d7b0ffe599c91b6d7b697",
      "new_mode": 33188,
      "new_path": "tests/config_test.py"
    },
    {
      "type": "modify",
      "old_id": "3beb94bf4e91306456e20af9e763eb4b59cd0848",
      "old_mode": 33188,
      "old_path": "tests/graphite_test.py",
      "new_id": "0fbfd4c6aafd976e43dc8ffcdb58c0eaa2a5cb32",
      "new_mode": 33188,
      "new_path": "tests/graphite_test.py"
    },
    {
      "type": "modify",
      "old_id": "af7e14c9161c7d73cb702b7cba663594d5dc7ad2",
      "old_mode": 33188,
      "old_path": "tests/importer_test.py",
      "new_id": "207083f6dd0f89fb8dab78e8c9aa27e0348e7159",
      "new_mode": 33188,
      "new_path": "tests/importer_test.py"
    },
    {
      "type": "modify",
      "old_id": "2f80e2d90427d488fca1514ba93f731a671a793a",
      "old_mode": 33188,
      "old_path": "tests/report_test.py",
      "new_id": "3692a799f1526bbed1556fb6ce83eb3b79996232",
      "new_mode": 33188,
      "new_path": "tests/report_test.py"
    },
    {
      "type": "modify",
      "old_id": "0a7e14133b4cc230f6382d4b823f26b4493c3a9a",
      "old_mode": 33188,
      "old_path": "tests/resources/histostat_test_config.yaml",
      "new_id": "9040fd36f19f11d4b01ba9bad96bc3103f331dcc",
      "new_mode": 33188,
      "new_path": "tests/resources/histostat_test_config.yaml"
    },
    {
      "type": "modify",
      "old_id": "253c1102ab432fb62ca28aad5634618bcdaa248e",
      "old_mode": 33188,
      "old_path": "tests/resources/sample_config.yaml",
      "new_id": "b6a1175ccffbfb20e512c5a9a4c1068f6eb299cd",
      "new_mode": 33188,
      "new_path": "tests/resources/sample_config.yaml"
    },
    {
      "type": "modify",
      "old_id": "5c56d933aa083b4398b089bea93d381a30226f33",
      "old_mode": 33188,
      "old_path": "tests/series_test.py",
      "new_id": "e12ba01d976711610e75c3476669ab0702404975",
      "new_mode": 33188,
      "new_path": "tests/series_test.py"
    },
    {
      "type": "modify",
      "old_id": "9ef06e482ea19e51faee1f4309d100ce63765e84",
      "old_mode": 33188,
      "old_path": "tests/slack_notification_test.py",
      "new_id": "7bc47054f9cc44a856cc371694f081e580c04228",
      "new_mode": 33188,
      "new_path": "tests/slack_notification_test.py"
    },
    {
      "type": "modify",
      "old_id": "2420735b9e46c3c9c82432e02b738c9728cf9290",
      "old_mode": 33188,
      "old_path": "tests/tigerbeetle_test.py",
      "new_id": "8c50a94f1099f13ae9c4b3b364e0344a55305bf7",
      "new_mode": 33188,
      "new_path": "tests/tigerbeetle_test.py"
    },
    {
      "type": "modify",
      "old_id": "07f8d73b1f91871f79a26d9391218a12fef0f9f4",
      "old_mode": 33188,
      "old_path": "tests/util_test.py",
      "new_id": "4d650c74ca3abd3ceb6b0e5b4786d208c4844be0",
      "new_mode": 33188,
      "new_path": "tests/util_test.py"
    },
    {
      "type": "modify",
      "old_id": "5edbcad87aff17162b315cbde01c43585ee5e812",
      "old_mode": 33188,
      "old_path": "tox.ini",
      "new_id": "ce978e61224a8253dce03427f4a2b58b23154634",
      "new_mode": 33188,
      "new_path": "tox.ini"
    },
    {
      "type": "modify",
      "old_id": "78f7d305afba31f644b1aed9a266aa1920e88ceb",
      "old_mode": 33261,
      "old_path": "toxw",
      "new_id": "d887865485466a87bee6ad2d87d8649b15774112",
      "new_mode": 33261,
      "new_path": "toxw"
    }
  ]
}
