)]}'
{
  "id": "c848bc6c8ab8b501f171111fafe553efb78da7cd",
  "entries": [
    {
      "mode": 16384,
      "type": "tree",
      "id": "0a2ff31b7848852c9ab3134583566236630b5a60",
      "name": "adding-commit-info"
    },
    {
      "mode": 16384,
      "type": "tree",
      "id": "8f21bd2d864e519d6f12ef8d8027efcb9ac44a07",
      "name": "angular2-combined"
    },
    {
      "mode": 16384,
      "type": "tree",
      "id": "abad8804b62d5c9d5ff2bd41f6c251e9009cb103",
      "name": "building-a-react-app"
    },
    {
      "mode": 16384,
      "type": "tree",
      "id": "c37730943cf7a6af9107aa8fddfe45237a97c554",
      "name": "building-a-vue-app"
    },
    {
      "mode": 16384,
      "type": "tree",
      "id": "e686e43369564204b48eff1ebb440875db6b6a5a",
      "name": "building-an-android-client-powered-by-a-grails-backend"
    },
    {
      "mode": 16384,
      "type": "tree",
      "id": "6658e4d3f1de9177f173e41f986544959806df68",
      "name": "building-an-ios-objectc-client-powered-by-a-grails-backend"
    },
    {
      "mode": 16384,
      "type": "tree",
      "id": "072b428bc43033c292cca7536718f3e9b4f543a7",
      "name": "building-an-ios-swift-client-powered-by-a-grails-backend"
    },
    {
      "mode": 16384,
      "type": "tree",
      "id": "ae0d1552018ce367b0b5bc65d27ceb63e4532655",
      "name": "command-objects-and-forms"
    },
    {
      "mode": 16384,
      "type": "tree",
      "id": "935791d9ac6569ae49820c9880789f69ad1a4687",
      "name": "common"
    },
    {
      "mode": 16384,
      "type": "tree",
      "id": "b84d11a222b24ccb0916c4c3b76712547361275f",
      "name": "creating-your-first-grails-app"
    },
    {
      "mode": 16384,
      "type": "tree",
      "id": "87de0488a48c5455e6288f9db1c3d7fb0e682045",
      "name": "database-per-tenant"
    },
    {
      "mode": 16384,
      "type": "tree",
      "id": "8e506042b8f010bf18b0e9255d2d30545fefddc3",
      "name": "discriminator-per-tenant"
    },
    {
      "mode": 16384,
      "type": "tree",
      "id": "6313a6b9ef70248ea09e40fe3654f10c4ff5f9bd",
      "name": "gorm-event-listeners"
    },
    {
      "mode": 16384,
      "type": "tree",
      "id": "3e851fa0864d28aa9ddc71482a994d2216afa2a2",
      "name": "gorm-graphql-with-react-and-apollo"
    },
    {
      "mode": 16384,
      "type": "tree",
      "id": "cbc3e68842cbda0535225fc6d1ea08521b8c735a",
      "name": "gorm-ratpack"
    },
    {
      "mode": 16384,
      "type": "tree",
      "id": "8a5ce250ce995f24d5ef2d1f4579c8291ad1251e",
      "name": "gorm-without-grails"
    },
    {
      "mode": 16384,
      "type": "tree",
      "id": "2ad323187928bff0fc3573e209cbb378052321b6",
      "name": "grails-as-docker-container"
    },
    {
      "mode": 16384,
      "type": "tree",
      "id": "fd4b329824609971db8a7017c185f36d1137f2a8",
      "name": "grails-async-promises"
    },
    {
      "mode": 16384,
      "type": "tree",
      "id": "abfe170cb6dbf979fa8baec55eea6f187b5ae9f7",
      "name": "grails-basicauth"
    },
    {
      "mode": 16384,
      "type": "tree",
      "id": "adf0140f45037fff9ad1d45fd7730d0e25fac0af",
      "name": "grails-code-coverage"
    },
    {
      "mode": 16384,
      "type": "tree",
      "id": "e14929acf2779e95b56bcb477103bf1d30a96d4e",
      "name": "grails-codenarc"
    },
    {
      "mode": 16384,
      "type": "tree",
      "id": "8777db39e711a40d5b3bbb34da36a32b2d4db127",
      "name": "grails-configuration-properties-micronaut"
    },
    {
      "mode": 16384,
      "type": "tree",
      "id": "5bd3bcc012b148fdd104064d0e2603310a240b58",
      "name": "grails-configuration-properties"
    },
    {
      "mode": 16384,
      "type": "tree",
      "id": "2a69f64e8b1c02c46943fd5e226d79a280b7c676",
      "name": "grails-controller-testing"
    },
    {
      "mode": 16384,
      "type": "tree",
      "id": "79201e85c96f51d5556107d4f07fc6303dcb62cb",
      "name": "grails-custom-security-tenant-resolver"
    },
    {
      "mode": 16384,
      "type": "tree",
      "id": "4b7cdea19ad6c07707dd198b3c20acf42889d977",
      "name": "grails-data-access"
    },
    {
      "mode": 16384,
      "type": "tree",
      "id": "1d165ddaa451c46bb67845568482843fae6950b1",
      "name": "grails-database-migration"
    },
    {
      "mode": 16384,
      "type": "tree",
      "id": "d15136aa5fdad0a92a28c38c9999a9827c65b5ab",
      "name": "grails-docker-bootbuildimage"
    },
    {
      "mode": 16384,
      "type": "tree",
      "id": "8b3e35100e7cccb6c6e3fd39acab6a974aa14b42",
      "name": "grails-docker-external-services"
    },
    {
      "mode": 16384,
      "type": "tree",
      "id": "2ba10bb4a5eaab0b1e59630d8cd876340853f73b",
      "name": "grails-dynamic-multiple-datasources"
    },
    {
      "mode": 16384,
      "type": "tree",
      "id": "34cb337170c90a696d5380774a0d6e4f9e735558",
      "name": "grails-elasticbeanstalk"
    },
    {
      "mode": 16384,
      "type": "tree",
      "id": "1ff4029ccfd390aecac29bb9f19a9194a07e5423",
      "name": "grails-elasticsearch"
    },
    {
      "mode": 16384,
      "type": "tree",
      "id": "1336f6bda520f36925c4baa782cd3f95250913b9",
      "name": "grails-email"
    },
    {
      "mode": 16384,
      "type": "tree",
      "id": "1a10aa3bbc688775e31cc2e0b937cff36112fdd1",
      "name": "grails-events"
    },
    {
      "mode": 16384,
      "type": "tree",
      "id": "8ef6cc642465fe42564edd2ed505dc5170c0b81d",
      "name": "grails-fields-custom-widgets-and-wrappers"
    },
    {
      "mode": 16384,
      "type": "tree",
      "id": "97d9369448839e476ec72efe30b32ff25fdd5cfd",
      "name": "grails-file-download-excel"
    },
    {
      "mode": 16384,
      "type": "tree",
      "id": "03e21b67c7125c8c66968988c27c3fe9ed791a6a",
      "name": "grails-geb-multiple-browsers"
    },
    {
      "mode": 16384,
      "type": "tree",
      "id": "f08993e2e2756e0128fb906123b5421fb8da2034",
      "name": "grails-github-actions-cicd"
    },
    {
      "mode": 16384,
      "type": "tree",
      "id": "e9383d8a49f525edd70610a7247e43c2e908f3e1",
      "name": "grails-google-cloud"
    },
    {
      "mode": 16384,
      "type": "tree",
      "id": "fc587e04f19865d8346e3f585c39137cefd4e29c",
      "name": "grails-google-home"
    },
    {
      "mode": 16384,
      "type": "tree",
      "id": "d8bc2d7522439647b6261a7c93f84935c5d7c252",
      "name": "grails-gorm-data-services"
    },
    {
      "mode": 16384,
      "type": "tree",
      "id": "8c51de6974dd1493567d496260db3d665b26c7e1",
      "name": "grails-htmx"
    },
    {
      "mode": 16384,
      "type": "tree",
      "id": "fca8ac6f453e52521ab94127fe911aa98e4afa06",
      "name": "grails-http-client"
    },
    {
      "mode": 16384,
      "type": "tree",
      "id": "cddf8b63f8c8ca209dad7e715504b18abb066320",
      "name": "grails-javamelody"
    },
    {
      "mode": 16384,
      "type": "tree",
      "id": "1cda9d23ded2bfc2043b038c3a158adef7c8f18e",
      "name": "grails-jobrunr"
    },
    {
      "mode": 16384,
      "type": "tree",
      "id": "c41dfceffd9e3f4f0e9b6335b985ba3552644eb5",
      "name": "grails-logicaldelete"
    },
    {
      "mode": 16384,
      "type": "tree",
      "id": "41dfbaac9e304f83ba9c02130b1fe5900536baeb",
      "name": "grails-micronaut-http"
    },
    {
      "mode": 16384,
      "type": "tree",
      "id": "e33ecb5cddc1d899498da67cfa2c7855a8a8f56f",
      "name": "grails-micronaut-kafka"
    },
    {
      "mode": 16384,
      "type": "tree",
      "id": "3616a4cfbe8429a026a34103de592ee4e3a75669",
      "name": "grails-mock-basics"
    },
    {
      "mode": 16384,
      "type": "tree",
      "id": "5e7b10d82f3c4980b746b01ed23e4e9f1dcd573c",
      "name": "grails-mock-http-server"
    },
    {
      "mode": 16384,
      "type": "tree",
      "id": "bf1fc775b82d951f35e0b9e8c9d1e6e8ce1e15d3",
      "name": "grails-mock-logging-slf4j-test"
    },
    {
      "mode": 16384,
      "type": "tree",
      "id": "bcface36eee0e6a2fb991d5c977886c5f3a83102",
      "name": "grails-multi-datasource"
    },
    {
      "mode": 16384,
      "type": "tree",
      "id": "66f3723bf0ee6fc8f0c69ec8e18ba88cf9acd933",
      "name": "grails-multi-module"
    },
    {
      "mode": 16384,
      "type": "tree",
      "id": "ed4cecf6ec4e38cf94e842e1563167bf9bd47ee2",
      "name": "grails-multi-project-build"
    },
    {
      "mode": 16384,
      "type": "tree",
      "id": "534261323189b45217e302394818881bab24069c",
      "name": "grails-oauth-google"
    },
    {
      "mode": 16384,
      "type": "tree",
      "id": "5718ae9043be841b58a3771fc731212a95bc920a",
      "name": "grails-oauth-twitter"
    },
    {
      "mode": 16384,
      "type": "tree",
      "id": "e6cc66ab0127ba2a9a962b321449ce69f3f5a3fd",
      "name": "grails-on-circleci-basics"
    },
    {
      "mode": 16384,
      "type": "tree",
      "id": "2062b31d20ff1ce3875ddf688720ae8ac257acf6",
      "name": "grails-on-github-actions"
    },
    {
      "mode": 16384,
      "type": "tree",
      "id": "7963ae438dc201ad892fd30adf3e0237c6ff6707",
      "name": "grails-on-travis-basics"
    },
    {
      "mode": 16384,
      "type": "tree",
      "id": "d303028b852cd298b2fcff60f3d6e6701a515c60",
      "name": "grails-quickcast-logging"
    },
    {
      "mode": 16384,
      "type": "tree",
      "id": "3d9c36c490b29a2419d33cdb9a9788c1280a905b",
      "name": "grails-quickcasts-angularjs-scaffolding-with-grails-3"
    },
    {
      "mode": 16384,
      "type": "tree",
      "id": "fbc7052e699bc682682f7fc831faf904db26c5fd",
      "name": "grails-quickcasts-developing-grails-3-applications-with-intellij-idea"
    },
    {
      "mode": 16384,
      "type": "tree",
      "id": "222e065264f52c8bc2792f9f7975747de7a2acfd",
      "name": "grails-quickcasts-interceptors"
    },
    {
      "mode": 16384,
      "type": "tree",
      "id": "af5db9e5f01d16868b2edf2a12c0ee58d0638ea5",
      "name": "grails-quickcasts-json-views"
    },
    {
      "mode": 16384,
      "type": "tree",
      "id": "c7948bcad216075922dc49e9d93c60fa5d2126e9",
      "name": "grails-quickcasts-multi-project-builds"
    },
    {
      "mode": 16384,
      "type": "tree",
      "id": "3021a3884ee9d485e2a17c44a47c362024728c89",
      "name": "grails-quickcasts-retrieving-config-values"
    },
    {
      "mode": 16384,
      "type": "tree",
      "id": "31e87fc5be0a2713c013f2d9b9fc41b58c206be1",
      "name": "grails-rabbitmq"
    },
    {
      "mode": 16384,
      "type": "tree",
      "id": "dea8ef763d630cd9719950f2a9ef8b6746d4799f",
      "name": "grails-rest-library"
    },
    {
      "mode": 16384,
      "type": "tree",
      "id": "fafd018fa2556f937c3e30047f305f1d362757b9",
      "name": "grails-restapi-angularjs"
    },
    {
      "mode": 16384,
      "type": "tree",
      "id": "b2646fad166f4fc6bcd3d1d181b180aae676d908",
      "name": "grails-scheduled"
    },
    {
      "mode": 16384,
      "type": "tree",
      "id": "81a84dc7be4cefc7bb8d0ed4b0f12b476be55317",
      "name": "grails-schwartz"
    },
    {
      "mode": 16384,
      "type": "tree",
      "id": "22d9ca2093deb3f07685f4c489222ddfdf1aa6ed",
      "name": "grails-soap"
    },
    {
      "mode": 16384,
      "type": "tree",
      "id": "40bff27b3bbe67442cc28fc797fd54d29c604733",
      "name": "grails-spock-test-tour"
    },
    {
      "mode": 16384,
      "type": "tree",
      "id": "eaac72eee72f199ca0b38350d222c820526adce6",
      "name": "grails-spring-security-core-plugin-custom-authentication"
    },
    {
      "mode": 16384,
      "type": "tree",
      "id": "70067cde336efec76bd742c64da9b99f7039019e",
      "name": "grails-spring-security"
    },
    {
      "mode": 16384,
      "type": "tree",
      "id": "fe4cd95976b8339fb9b94b247103c176d929b278",
      "name": "grails-taglib-wyswyg-trix"
    },
    {
      "mode": 16384,
      "type": "tree",
      "id": "8a8c91ac134ec74b259a505a6334c05b25f90ef9",
      "name": "grails-tailwindcss"
    },
    {
      "mode": 16384,
      "type": "tree",
      "id": "d18a444b974d60e4c6e1cf5d4e774f614d9e3260",
      "name": "grails-test-domain-class-constraints"
    },
    {
      "mode": 16384,
      "type": "tree",
      "id": "e41be75341b7328f5880e3a15b12acc3a3aefdc4",
      "name": "grails-test-security"
    },
    {
      "mode": 16384,
      "type": "tree",
      "id": "21d54a3100f737f81670a939336aa1318a030875",
      "name": "grails-transactional-events"
    },
    {
      "mode": 16384,
      "type": "tree",
      "id": "5015b7aee9a176ca4fe05ef47cdc5a5b17642270",
      "name": "grails-tvmlapp"
    },
    {
      "mode": 16384,
      "type": "tree",
      "id": "3886142fb766538c0be0a249e87929be9a96a065",
      "name": "grails-upload-file"
    },
    {
      "mode": 16384,
      "type": "tree",
      "id": "b2abf12d67322458215480a6d6c454a2c78b161f",
      "name": "grails-vite-spa"
    },
    {
      "mode": 16384,
      "type": "tree",
      "id": "84265a52347926c6882c959dd7d0f2c322c604fa",
      "name": "grails-vs-nodejs"
    },
    {
      "mode": 16384,
      "type": "tree",
      "id": "a9284156510242ec6a73f15aa68f28f3015c6fd2",
      "name": "grails-vue-combined"
    },
    {
      "mode": 16384,
      "type": "tree",
      "id": "9817b10ad62da6c0f72fbbab596ab6fb1d29c56d",
      "name": "grails-yourkit-profiling"
    },
    {
      "mode": 16384,
      "type": "tree",
      "id": "ff018b36e5832fd9d9220abd4d987929c9f02064",
      "name": "grails_i18n"
    },
    {
      "mode": 16384,
      "type": "tree",
      "id": "0ffab0f91cef2431fa2bd5635299a6d96be7b5ed",
      "name": "grails_url_mappings"
    },
    {
      "mode": 16384,
      "type": "tree",
      "id": "1ff78f6a62cd8fe94774ae9aa9ee192ff49bf339",
      "name": "neo4j-movies"
    },
    {
      "mode": 16384,
      "type": "tree",
      "id": "64bcb341b86c3641c236451b436fe0b6845f8a71",
      "name": "querying-gorm-dynamic-finders"
    },
    {
      "mode": 16384,
      "type": "tree",
      "id": "6933656dd99621f14a717d84f275f777caecce70",
      "name": "react-combined"
    },
    {
      "mode": 16384,
      "type": "tree",
      "id": "ca71f4a5fcb6e196b40d20d69b66725d105a01dd",
      "name": "react-spring-security"
    },
    {
      "mode": 16384,
      "type": "tree",
      "id": "03934cf43f333432bb856ad9a808e2df6ad86301",
      "name": "resources"
    },
    {
      "mode": 16384,
      "type": "tree",
      "id": "9525bc750955a45c4736c576f9158c6f795bb9f0",
      "name": "rest-hibernate"
    },
    {
      "mode": 16384,
      "type": "tree",
      "id": "792ad90378c4380873e03ded2bb038cc2d8b4f28",
      "name": "rest-mongodb"
    },
    {
      "mode": 16384,
      "type": "tree",
      "id": "579c2a4fc51ba232445da14af19d7226d41c2af1",
      "name": "server-sent-events"
    },
    {
      "mode": 16384,
      "type": "tree",
      "id": "44aae9dcab12b14129aacbcf8e471acf284d5219",
      "name": "using-hal-with-json-views"
    },
    {
      "mode": 16384,
      "type": "tree",
      "id": "2b989ff9ae933be8f43e7be5b5f26bef59b14e39",
      "name": "using-the-react-profile"
    },
    {
      "mode": 16384,
      "type": "tree",
      "id": "694b6094c575b6c6394846102af3073273dac4e4",
      "name": "using-the-vue-profile"
    },
    {
      "mode": 16384,
      "type": "tree",
      "id": "ecc4d9daa232e61eb51ce9493f811537ff9d964c",
      "name": "vaadin-grails"
    }
  ]
}
