diff --git a/.prettierignore b/.prettierignore index f45f060316..26cbea7e4e 100644 --- a/.prettierignore +++ b/.prettierignore @@ -9,5 +9,4 @@ pnpm-lock.yaml !src/pages/blog/2025-06-19-multioption-inputs-with-oneof/index.mdx *.jpg -scripts/sync-sched/*.json -src/github-stats.json +scripts/**/*.json diff --git a/package.json b/package.json index 38fb6fe294..a90c1b0c26 100644 --- a/package.json +++ b/package.json @@ -15,7 +15,7 @@ "lint:docs": "eslint --ignore-path .gitignore src/pages/learn --format stylish", "lint:docs:ci": "eslint --ignore-path .gitignore src/pages/learn --format eslint-formatter-github", "postbuild": "next-sitemap", - "prebuild": "tsx src/get-github-info.ts", + "prebuild": "tsx scripts/get-github-info", "serve": "pnpx serve out", "test": "playwright test && pnpm test:unit", "test:e2e": "playwright test", diff --git a/src/get-github-info.ts b/scripts/get-github-info/get-github-info.ts similarity index 68% rename from src/get-github-info.ts rename to scripts/get-github-info/get-github-info.ts index d3cdb9a80a..0d2428d2e4 100644 --- a/src/get-github-info.ts +++ b/scripts/get-github-info/get-github-info.ts @@ -4,13 +4,31 @@ import grayMatter from "gray-matter" import { getGitHubStats, type GitHubInfo, -} from "../scripts/sort-libraries/get-github-stats" +} from "../sort-libraries/get-github-stats" + +const DATA_PATH = new URL("./github-stats.json", import.meta.url).pathname +const LAST_RUN_PATH = new URL("./last-success.isodate", import.meta.url) + .pathname +const CODE_DIR = new URL("../../src/code", import.meta.url).pathname async function main() { - const filePaths = await fg("./src/code/**/*.md") + const filePaths = await fg("./**/*.md", { cwd: CODE_DIR, absolute: true }) const errors: Error[] = [] + { + // we only sync once every two hours + const TWO_HOURS = 2 * 60 * 60 * 1000 + const lastRun = await fs.readFile(LAST_RUN_PATH, "utf8").catch(() => "") + const twoHoursAgo = new Date(Date.now() - TWO_HOURS) + if (lastRun && new Date(lastRun).getTime() > twoHoursAgo.getTime()) { + console.info( + "Skipping sync of GitHub stars, last run was within two hours.", + ) + return + } + } + const newState = new Map() const filePathToRepoName = new Map< string /* file path */, @@ -57,8 +75,7 @@ async function main() { // If it errored for some reason, we don't do anything. // If we got it, we overwrite. { - const dataPath = "./src/github-stats.json" - const data = await fs.readFile(dataPath, "utf8") + const data = await fs.readFile(DATA_PATH, "utf8") const existingStats = JSON.parse(data) as Record const result: Record = {} @@ -79,7 +96,8 @@ async function main() { result[repoName] = newState.get(repoName)! } - await fs.writeFile(dataPath, JSON.stringify(result, null, 2)) + await fs.writeFile(DATA_PATH, JSON.stringify(result, null, 2)) + await fs.writeFile(LAST_RUN_PATH, new Date().toISOString()) } } diff --git a/src/github-stats.json b/scripts/get-github-info/github-stats.json similarity index 98% rename from src/github-stats.json rename to scripts/get-github-info/github-stats.json index 2cefcaaa8a..c5cd5a9e33 100644 --- a/src/github-stats.json +++ b/scripts/get-github-info/github-stats.json @@ -33,7 +33,7 @@ }, "dgraph-io/dgraph": { "hasCommitsInLast3Months": false, - "stars": 21217, + "stars": 21216, "formattedStars": "21k", "license": "Apache License 2.0", "lastRelease": "2025-08-18T17:32:20Z", @@ -57,7 +57,7 @@ }, "hasura/graphql-engine": { "hasCommitsInLast3Months": false, - "stars": 31693, + "stars": 31692, "formattedStars": "32k", "license": "Apache License 2.0", "lastRelease": "2025-08-19T12:12:37Z", @@ -73,7 +73,7 @@ }, "Kong/insomnia": { "hasCommitsInLast3Months": false, - "stars": 37124, + "stars": 37122, "formattedStars": "37k", "license": "Apache License 2.0", "lastRelease": "2025-09-05T08:10:58Z", @@ -113,7 +113,7 @@ }, "webiny/webiny-js": { "hasCommitsInLast3Months": false, - "stars": 7833, + "stars": 7832, "formattedStars": "8k", "license": "Other", "lastRelease": "2025-09-05T07:39:55Z", @@ -215,38 +215,6 @@ "lastRelease": "2022-07-20T09:24:02Z", "formattedLastRelease": "3 years ago" }, - "alumbra/alumbra": { - "hasCommitsInLast3Months": false, - "stars": 148, - "formattedStars": "148", - "license": "MIT License", - "lastRelease": "2017-06-12T12:14:25Z", - "formattedLastRelease": "8 years ago" - }, - "tendant/graphql-clj": { - "hasCommitsInLast3Months": false, - "stars": 285, - "formattedStars": "285", - "license": "Eclipse Public License 1.0", - "lastRelease": "", - "formattedLastRelease": "" - }, - "walmartlabs/lacinia": { - "hasCommitsInLast3Months": false, - "stars": 1839, - "formattedStars": "2k", - "license": "Other", - "lastRelease": "", - "formattedLastRelease": "" - }, - "burner/graphqld": { - "hasCommitsInLast3Months": false, - "stars": 35, - "formattedStars": "35", - "license": "GNU Lesser General Public License v3.0", - "lastRelease": "2024-05-14T13:42:29Z", - "formattedLastRelease": "1 year ago" - }, "annkissam/common_graphql_client": { "hasCommitsInLast3Months": false, "stars": 42, @@ -263,14 +231,6 @@ "lastRelease": "", "formattedLastRelease": "" }, - "dillonkearns/elm-graphql": { - "hasCommitsInLast3Months": false, - "stars": 782, - "formattedStars": "1k", - "license": "BSD 3-Clause \"New\" or \"Revised\" License", - "lastRelease": "", - "formattedLastRelease": "" - }, "absinthe-graphql/absinthe": { "hasCommitsInLast3Months": false, "stars": 4353, @@ -287,13 +247,21 @@ "lastRelease": "2016-09-09T04:49:46Z", "formattedLastRelease": "9 years ago" }, - "jlouis/graphql-erlang": { + "burner/graphqld": { "hasCommitsInLast3Months": false, - "stars": 314, - "formattedStars": "314", - "license": "Other", - "lastRelease": "2018-06-22T12:35:43Z", - "formattedLastRelease": "7 years ago" + "stars": 35, + "formattedStars": "35", + "license": "GNU Lesser General Public License v3.0", + "lastRelease": "2024-05-14T13:42:29Z", + "formattedLastRelease": "1 year ago" + }, + "dillonkearns/elm-graphql": { + "hasCommitsInLast3Months": false, + "stars": 782, + "formattedStars": "1k", + "license": "BSD 3-Clause \"New\" or \"Revised\" License", + "lastRelease": "", + "formattedLastRelease": "" }, "gql-dart/ferry": { "hasCommitsInLast3Months": false, @@ -405,7 +373,15 @@ "formattedStars": "1k", "license": "MIT License", "lastRelease": "2025-09-09T14:14:55Z", - "formattedLastRelease": "22 hours ago" + "formattedLastRelease": "1 day ago" + }, + "jlouis/graphql-erlang": { + "hasCommitsInLast3Months": false, + "stars": 314, + "formattedStars": "314", + "license": "Other", + "lastRelease": "2018-06-22T12:35:43Z", + "formattedLastRelease": "7 years ago" }, "dosco/graphjin": { "hasCommitsInLast3Months": false, @@ -431,6 +407,54 @@ "lastRelease": "2024-11-05T10:13:23Z", "formattedLastRelease": "10 months ago" }, + "alumbra/alumbra": { + "hasCommitsInLast3Months": false, + "stars": 148, + "formattedStars": "148", + "license": "MIT License", + "lastRelease": "2017-06-12T12:14:25Z", + "formattedLastRelease": "8 years ago" + }, + "tendant/graphql-clj": { + "hasCommitsInLast3Months": false, + "stars": 285, + "formattedStars": "285", + "license": "Eclipse Public License 1.0", + "lastRelease": "", + "formattedLastRelease": "" + }, + "walmartlabs/lacinia": { + "hasCommitsInLast3Months": false, + "stars": 1839, + "formattedStars": "2k", + "license": "Other", + "lastRelease": "", + "formattedLastRelease": "" + }, + "morpheusgraphql/morpheus-graphql": { + "hasCommitsInLast3Months": false, + "stars": 417, + "formattedStars": "417", + "license": "MIT License", + "lastRelease": "2024-06-10T08:34:35Z", + "formattedLastRelease": "1 year ago" + }, + "jasonsychau/graphql-w-persistent": { + "hasCommitsInLast3Months": false, + "stars": 10, + "formattedStars": "10", + "license": "Unknown", + "lastRelease": "", + "formattedLastRelease": "" + }, + "higherkindness/mu-haskell": { + "hasCommitsInLast3Months": false, + "stars": 334, + "formattedStars": "334", + "license": "Apache License 2.0", + "lastRelease": "2021-01-11T11:19:38Z", + "formattedLastRelease": "4 years ago" + }, "apollographql/apollo-kotlin": { "hasCommitsInLast3Months": false, "stars": 3897, @@ -485,7 +509,7 @@ "formattedStars": "1k", "license": "Apache License 2.0", "lastRelease": "2025-09-10T11:59:29Z", - "formattedLastRelease": "45 minutes ago" + "formattedLastRelease": "2 hours ago" }, "aPureBase/KGraphQL": { "hasCommitsInLast3Months": false, @@ -527,103 +551,375 @@ "lastRelease": "", "formattedLastRelease": "" }, - "jasonsychau/graphql-w-persistent": { + "apollographql/apollo-client": { "hasCommitsInLast3Months": false, - "stars": 10, - "formattedStars": "10", + "stars": 19626, + "formattedStars": "20k", + "license": "MIT License", + "lastRelease": "2025-09-02T16:52:29Z", + "formattedLastRelease": "1 week ago" + }, + "aws-amplify/amplify-js": { + "hasCommitsInLast3Months": false, + "stars": 9548, + "formattedStars": "10k", + "license": "Apache License 2.0", + "lastRelease": "2025-08-06T12:33:16Z", + "formattedLastRelease": "1 month ago" + }, + "Houfeng/gq-loader": { + "hasCommitsInLast3Months": false, + "stars": 59, + "formattedStars": "59", "license": "Unknown", "lastRelease": "", "formattedLastRelease": "" }, - "morpheusgraphql/morpheus-graphql": { + "gqty-dev/gqty": { "hasCommitsInLast3Months": false, - "stars": 417, - "formattedStars": "417", + "stars": 1022, + "formattedStars": "1k", "license": "MIT License", - "lastRelease": "2024-06-10T08:34:35Z", - "formattedLastRelease": "1 year ago" + "lastRelease": "2025-07-17T11:50:27Z", + "formattedLastRelease": "1 month ago" }, - "higherkindness/mu-haskell": { + "grafoojs/grafoo": { "hasCommitsInLast3Months": false, - "stars": 334, - "formattedStars": "334", - "license": "Apache License 2.0", - "lastRelease": "2021-01-11T11:19:38Z", - "formattedLastRelease": "4 years ago" + "stars": 274, + "formattedStars": "274", + "license": "MIT License", + "lastRelease": "2018-06-20T15:21:00Z", + "formattedLastRelease": "7 years ago" }, - "neomatrixcode/Diana.jl": { + "badbatch/graphql-box": { "hasCommitsInLast3Months": false, - "stars": 116, - "formattedStars": "116", + "stars": 27, + "formattedStars": "27", "license": "MIT License", - "lastRelease": "2022-08-16T03:22:22Z", - "formattedLastRelease": "3 years ago" + "lastRelease": "", + "formattedLastRelease": "" }, - "DeloitteDigitalAPAC/GraphQLClient.jl": { + "nearform/graphql-hooks": { "hasCommitsInLast3Months": false, - "stars": 47, - "formattedStars": "47", + "stars": 1889, + "formattedStars": "2k", "license": "Other", - "lastRelease": "2022-10-26T16:48:16Z", - "formattedLastRelease": "2 years ago" + "lastRelease": "2025-01-08T18:45:52Z", + "formattedLastRelease": "8 months ago" }, - "andreas/ocaml-graphql-server": { + "graphql/graphql-http": { "hasCommitsInLast3Months": false, - "stars": 622, - "formattedStars": "1k", + "stars": 350, + "formattedStars": "350", "license": "MIT License", - "lastRelease": "2022-07-08T16:26:45Z", - "formattedLastRelease": "3 years ago" + "lastRelease": "2025-01-17T14:16:52Z", + "formattedLastRelease": "7 months ago" }, - "graphql-perl/graphql-perl": { + "jasonkuhrt/graphql-request": { "hasCommitsInLast3Months": false, - "stars": 72, - "formattedStars": "72", - "license": "Unknown", - "lastRelease": "", - "formattedLastRelease": "" + "stars": 6039, + "formattedStars": "6k", + "license": "MIT License", + "lastRelease": "2020-05-29T13:00:56Z", + "formattedLastRelease": "5 years ago" }, - "api-platform/api-platform": { + "enisdenjo/graphql-sse": { "hasCommitsInLast3Months": false, - "stars": 8983, - "formattedStars": "9k", + "stars": 428, + "formattedStars": "428", "license": "MIT License", - "lastRelease": "2025-03-11T16:15:41Z", - "formattedLastRelease": "6 months ago" + "lastRelease": "2025-01-10T11:57:20Z", + "formattedLastRelease": "7 months ago" }, - "GatoGraphQL/GatoGraphQL": { + "babyfish-ct/graphql-ts-client": { "hasCommitsInLast3Months": false, - "stars": 374, - "formattedStars": "374", - "license": "GNU General Public License v2.0", - "lastRelease": "2025-09-09T13:18:27Z", - "formattedLastRelease": "23 hours ago" + "stars": 148, + "formattedStars": "148", + "license": "MIT License", + "lastRelease": "2023-12-14T03:06:21Z", + "formattedLastRelease": "1 year ago" }, - "infinityloop-dev/graphpinator": { + "enisdenjo/graphql-ws": { "hasCommitsInLast3Months": false, - "stars": 44, - "formattedStars": "44", + "stars": 1832, + "formattedStars": "2k", "license": "MIT License", - "lastRelease": "2025-06-26T12:08:01Z", - "formattedLastRelease": "2 months ago" + "lastRelease": "2025-07-14T12:15:37Z", + "formattedLastRelease": "1 month ago" }, - "jerowork/graphql-attribute-schema": { + "hasura/graphqurl": { "hasCommitsInLast3Months": false, - "stars": 16, - "formattedStars": "16", - "license": "MIT License", - "lastRelease": "2025-09-03T17:08:46Z", - "formattedLastRelease": "6 days ago" + "stars": 3369, + "formattedStars": "3k", + "license": "Apache License 2.0", + "lastRelease": "", + "formattedLastRelease": "" }, - "webonyx/graphql-php": { + "kadirahq/lokka": { "hasCommitsInLast3Months": false, - "stars": 4680, - "formattedStars": "5k", + "stars": 1529, + "formattedStars": "2k", "license": "MIT License", - "lastRelease": "2025-08-20T10:10:24Z", - "formattedLastRelease": "3 weeks ago" + "lastRelease": "", + "formattedLastRelease": "" }, - "ivome/graphql-relay-php": { + "choojs/nanographql": { + "hasCommitsInLast3Months": false, + "stars": 420, + "formattedStars": "420", + "license": "MIT License", + "lastRelease": "", + "formattedLastRelease": "" + }, + "facebook/relay": { + "hasCommitsInLast3Months": false, + "stars": 18853, + "formattedStars": "19k", + "license": "MIT License", + "lastRelease": "2025-08-06T23:45:00Z", + "formattedLastRelease": "1 month ago" + }, + "FormidableLabs/urql": { + "hasCommitsInLast3Months": false, + "stars": 8848, + "formattedStars": "9k", + "license": "MIT License", + "lastRelease": "2025-08-29T08:06:41Z", + "formattedLastRelease": "1 week ago" + }, + "andreas/ocaml-graphql-server": { + "hasCommitsInLast3Months": false, + "stars": 622, + "formattedStars": "1k", + "license": "MIT License", + "lastRelease": "2022-07-08T16:26:45Z", + "formattedLastRelease": "3 years ago" + }, + "neomatrixcode/Diana.jl": { + "hasCommitsInLast3Months": false, + "stars": 116, + "formattedStars": "116", + "license": "MIT License", + "lastRelease": "2022-08-16T03:22:22Z", + "formattedLastRelease": "3 years ago" + }, + "DeloitteDigitalAPAC/GraphQLClient.jl": { + "hasCommitsInLast3Months": false, + "stars": 47, + "formattedStars": "47", + "license": "Other", + "lastRelease": "2022-10-26T16:48:16Z", + "formattedLastRelease": "2 years ago" + }, + "networkimprov/brangr": { + "hasCommitsInLast3Months": false, + "stars": 4, + "formattedStars": "4", + "license": "Mozilla Public License 2.0", + "lastRelease": "2023-06-02T09:20:18Z", + "formattedLastRelease": "2 years ago" + }, + "hayes/giraphql": { + "hasCommitsInLast3Months": false, + "stars": 2521, + "formattedStars": "3k", + "license": "ISC License", + "lastRelease": "2025-09-07T21:17:51Z", + "formattedLastRelease": "2 days ago" + }, + "graphql/graphiql": { + "hasCommitsInLast3Months": false, + "stars": 16625, + "formattedStars": "17k", + "license": "MIT License", + "lastRelease": "2025-07-19T17:43:48Z", + "formattedLastRelease": "1 month ago" + }, + "Urigo/graphql-cli": { + "hasCommitsInLast3Months": false, + "stars": 2018, + "formattedStars": "2k", + "license": "MIT License", + "lastRelease": "2020-10-07T12:54:45Z", + "formattedLastRelease": "4 years ago" + }, + "dotansimha/graphql-code-generator": { + "hasCommitsInLast3Months": false, + "stars": 11139, + "formattedStars": "11k", + "license": "MIT License", + "lastRelease": "2025-09-07T17:01:52Z", + "formattedLastRelease": "2 days ago" + }, + "kamilkisiela/graphql-config": { + "hasCommitsInLast3Months": false, + "stars": 1191, + "formattedStars": "1k", + "license": "MIT License", + "lastRelease": "2025-04-28T15:15:29Z", + "formattedLastRelease": "4 months ago" + }, + "dimaMachina/graphql-eslint/": { + "hasCommitsInLast3Months": false, + "stars": 830, + "formattedStars": "1k", + "license": "MIT License", + "lastRelease": "2025-03-26T14:11:23Z", + "formattedLastRelease": "5 months ago" + }, + "kamilkisiela/graphql-inspector": { + "hasCommitsInLast3Months": false, + "stars": 1718, + "formattedStars": "2k", + "license": "MIT License", + "lastRelease": "2024-12-09T13:34:14Z", + "formattedLastRelease": "9 months ago" + }, + "graphql/graphql-language-service": { + "hasCommitsInLast3Months": false, + "stars": 418, + "formattedStars": "418", + "license": "Unknown", + "lastRelease": "", + "formattedLastRelease": "" + }, + "n1ru4l/graphql-live-query": { + "hasCommitsInLast3Months": false, + "stars": 437, + "formattedStars": "437", + "license": "MIT License", + "lastRelease": "2022-07-29T09:27:53Z", + "formattedLastRelease": "3 years ago" + }, + "Urigo/graphql-mesh": { + "hasCommitsInLast3Months": false, + "stars": 3425, + "formattedStars": "3k", + "license": "MIT License", + "lastRelease": "2025-09-06T12:58:22Z", + "formattedLastRelease": "4 days ago" + }, + "maticzav/graphql-middleware": { + "hasCommitsInLast3Months": false, + "stars": 1147, + "formattedStars": "1k", + "license": "MIT License", + "lastRelease": "2023-07-07T16:38:02Z", + "formattedLastRelease": "2 years ago" + }, + "Urigo/graphql-modules": { + "hasCommitsInLast3Months": false, + "stars": 1327, + "formattedStars": "1k", + "license": "MIT License", + "lastRelease": "2025-02-19T10:43:37Z", + "formattedLastRelease": "6 months ago" + }, + "Urigo/graphql-scalars": { + "hasCommitsInLast3Months": false, + "stars": 1913, + "formattedStars": "2k", + "license": "MIT License", + "lastRelease": "2025-03-19T11:10:44Z", + "formattedLastRelease": "5 months ago" + }, + "maticzav/graphql-shield": { + "hasCommitsInLast3Months": false, + "stars": 3566, + "formattedStars": "4k", + "license": "MIT License", + "lastRelease": "2022-11-22T19:08:37Z", + "formattedLastRelease": "2 years ago" + }, + "ardatan/graphql-tools": { + "hasCommitsInLast3Months": false, + "stars": 5412, + "formattedStars": "5k", + "license": "MIT License", + "lastRelease": "2025-09-05T16:16:42Z", + "formattedLastRelease": "4 days ago" + }, + "anvilco/graphql-introspection-tools": { + "hasCommitsInLast3Months": false, + "stars": 34, + "formattedStars": "34", + "license": "MIT License", + "lastRelease": "", + "formattedLastRelease": "" + }, + "graphile/postgraphile": { + "hasCommitsInLast3Months": false, + "stars": 12799, + "formattedStars": "13k", + "license": "Other", + "lastRelease": "2023-10-05T16:27:00Z", + "formattedLastRelease": "1 year ago" + }, + "Urigo/SOFA": { + "hasCommitsInLast3Months": false, + "stars": 1109, + "formattedStars": "1k", + "license": "MIT License", + "lastRelease": "2024-12-16T10:06:41Z", + "formattedLastRelease": "8 months ago" + }, + "anvilco/spectaql": { + "hasCommitsInLast3Months": false, + "stars": 1174, + "formattedStars": "1k", + "license": "MIT License", + "lastRelease": "", + "formattedLastRelease": "" + }, + "graphql-perl/graphql-perl": { + "hasCommitsInLast3Months": false, + "stars": 72, + "formattedStars": "72", + "license": "Unknown", + "lastRelease": "", + "formattedLastRelease": "" + }, + "api-platform/api-platform": { + "hasCommitsInLast3Months": false, + "stars": 8984, + "formattedStars": "9k", + "license": "MIT License", + "lastRelease": "2025-03-11T16:15:41Z", + "formattedLastRelease": "6 months ago" + }, + "GatoGraphQL/GatoGraphQL": { + "hasCommitsInLast3Months": false, + "stars": 374, + "formattedStars": "374", + "license": "GNU General Public License v2.0", + "lastRelease": "2025-09-09T13:18:27Z", + "formattedLastRelease": "1 day ago" + }, + "infinityloop-dev/graphpinator": { + "hasCommitsInLast3Months": false, + "stars": 44, + "formattedStars": "44", + "license": "MIT License", + "lastRelease": "2025-06-26T12:08:01Z", + "formattedLastRelease": "2 months ago" + }, + "jerowork/graphql-attribute-schema": { + "hasCommitsInLast3Months": false, + "stars": 16, + "formattedStars": "16", + "license": "MIT License", + "lastRelease": "2025-09-03T17:08:46Z", + "formattedLastRelease": "6 days ago" + }, + "webonyx/graphql-php": { + "hasCommitsInLast3Months": false, + "stars": 4680, + "formattedStars": "5k", + "license": "MIT License", + "lastRelease": "2025-08-20T10:10:24Z", + "formattedLastRelease": "3 weeks ago" + }, + "ivome/graphql-relay-php": { "hasCommitsInLast3Months": false, "stars": 271, "formattedStars": "271", @@ -653,7 +949,7 @@ "formattedStars": "3k", "license": "MIT License", "lastRelease": "2025-09-10T12:40:07Z", - "formattedLastRelease": "4 minutes ago" + "formattedLastRelease": "2 hours ago" }, "railt/railt": { "hasCommitsInLast3Months": false, @@ -701,7 +997,7 @@ "formattedStars": "2k", "license": "MIT License", "lastRelease": "2025-09-05T14:22:54Z", - "formattedLastRelease": "4 days ago" + "formattedLastRelease": "5 days ago" }, "denisart/graphql-query": { "hasCommitsInLast3Months": false, @@ -719,6 +1015,14 @@ "lastRelease": "", "formattedLastRelease": "" }, + "dsal3389/ql": { + "hasCommitsInLast3Months": false, + "stars": 8, + "formattedStars": "8", + "license": "Unknown", + "lastRelease": "2025-02-04T17:36:51Z", + "formattedLastRelease": "7 months ago" + }, "qlient-org/python-qlient": { "hasCommitsInLast3Months": false, "stars": 46, @@ -767,189 +1071,53 @@ "lastRelease": "2024-11-09T20:43:58Z", "formattedLastRelease": "10 months ago" }, - "strawberry-graphql/strawberry": { - "hasCommitsInLast3Months": false, - "stars": 4402, - "formattedStars": "4k", - "license": "MIT License", - "lastRelease": "2025-09-07T20:28:35Z", - "formattedLastRelease": "2 days ago" - }, - "tartiflette/tartiflette": { - "hasCommitsInLast3Months": false, - "stars": 859, - "formattedStars": "1k", - "license": "MIT License", - "lastRelease": "2021-11-15T11:05:03Z", - "formattedLastRelease": "3 years ago" - }, - "ropensci/ghql": { - "hasCommitsInLast3Months": false, - "stars": 148, - "formattedStars": "148", - "license": "Other", - "lastRelease": "2025-09-08T08:41:00Z", - "formattedLastRelease": "2 days ago" - }, - "ohler55/agoo": { - "hasCommitsInLast3Months": false, - "stars": 920, - "formattedStars": "1k", - "license": "MIT License", - "lastRelease": "", - "formattedLastRelease": "" - }, - "rmosolgo/graphql-ruby": { - "hasCommitsInLast3Months": false, - "stars": 5410, - "formattedStars": "5k", - "license": "MIT License", - "lastRelease": "2025-07-19T17:15:49Z", - "formattedLastRelease": "1 month ago" - }, - "virtualshield/rails-graphql": { - "hasCommitsInLast3Months": false, - "stars": 186, - "formattedStars": "186", - "license": "MIT License", - "lastRelease": "2025-08-25T17:53:38Z", - "formattedLastRelease": "2 weeks ago" - }, - "apollographql/apollo-client": { - "hasCommitsInLast3Months": false, - "stars": 19626, - "formattedStars": "20k", - "license": "MIT License", - "lastRelease": "2025-09-02T16:52:29Z", - "formattedLastRelease": "1 week ago" - }, - "aws-amplify/amplify-js": { - "hasCommitsInLast3Months": false, - "stars": 9548, - "formattedStars": "10k", - "license": "Apache License 2.0", - "lastRelease": "2025-08-06T12:33:16Z", - "formattedLastRelease": "1 month ago" - }, - "Houfeng/gq-loader": { - "hasCommitsInLast3Months": false, - "stars": 59, - "formattedStars": "59", - "license": "Unknown", - "lastRelease": "", - "formattedLastRelease": "" - }, - "gqty-dev/gqty": { - "hasCommitsInLast3Months": false, - "stars": 1022, - "formattedStars": "1k", - "license": "MIT License", - "lastRelease": "2025-07-17T11:50:27Z", - "formattedLastRelease": "1 month ago" - }, - "grafoojs/grafoo": { - "hasCommitsInLast3Months": false, - "stars": 274, - "formattedStars": "274", - "license": "MIT License", - "lastRelease": "2018-06-20T15:21:00Z", - "formattedLastRelease": "7 years ago" - }, - "badbatch/graphql-box": { - "hasCommitsInLast3Months": false, - "stars": 27, - "formattedStars": "27", - "license": "MIT License", - "lastRelease": "", - "formattedLastRelease": "" - }, - "nearform/graphql-hooks": { - "hasCommitsInLast3Months": false, - "stars": 1889, - "formattedStars": "2k", - "license": "Other", - "lastRelease": "2025-01-08T18:45:52Z", - "formattedLastRelease": "8 months ago" - }, - "graphql/graphql-http": { - "hasCommitsInLast3Months": false, - "stars": 350, - "formattedStars": "350", - "license": "MIT License", - "lastRelease": "2025-01-17T14:16:52Z", - "formattedLastRelease": "7 months ago" - }, - "jasonkuhrt/graphql-request": { - "hasCommitsInLast3Months": false, - "stars": 6039, - "formattedStars": "6k", - "license": "MIT License", - "lastRelease": "2020-05-29T13:00:56Z", - "formattedLastRelease": "5 years ago" - }, - "enisdenjo/graphql-sse": { - "hasCommitsInLast3Months": false, - "stars": 428, - "formattedStars": "428", - "license": "MIT License", - "lastRelease": "2025-01-10T11:57:20Z", - "formattedLastRelease": "7 months ago" - }, - "babyfish-ct/graphql-ts-client": { - "hasCommitsInLast3Months": false, - "stars": 148, - "formattedStars": "148", - "license": "MIT License", - "lastRelease": "2023-12-14T03:06:21Z", - "formattedLastRelease": "1 year ago" - }, - "enisdenjo/graphql-ws": { + "strawberry-graphql/strawberry": { "hasCommitsInLast3Months": false, - "stars": 1832, - "formattedStars": "2k", + "stars": 4402, + "formattedStars": "4k", "license": "MIT License", - "lastRelease": "2025-07-14T12:15:37Z", - "formattedLastRelease": "1 month ago" + "lastRelease": "2025-09-07T20:28:35Z", + "formattedLastRelease": "2 days ago" }, - "hasura/graphqurl": { + "tartiflette/tartiflette": { "hasCommitsInLast3Months": false, - "stars": 3369, - "formattedStars": "3k", - "license": "Apache License 2.0", - "lastRelease": "", - "formattedLastRelease": "" + "stars": 859, + "formattedStars": "1k", + "license": "MIT License", + "lastRelease": "2021-11-15T11:05:03Z", + "formattedLastRelease": "3 years ago" }, - "kadirahq/lokka": { + "ropensci/ghql": { "hasCommitsInLast3Months": false, - "stars": 1529, - "formattedStars": "2k", - "license": "MIT License", - "lastRelease": "", - "formattedLastRelease": "" + "stars": 148, + "formattedStars": "148", + "license": "Other", + "lastRelease": "2025-09-08T08:41:00Z", + "formattedLastRelease": "2 days ago" }, - "choojs/nanographql": { + "ohler55/agoo": { "hasCommitsInLast3Months": false, - "stars": 420, - "formattedStars": "420", + "stars": 920, + "formattedStars": "1k", "license": "MIT License", "lastRelease": "", "formattedLastRelease": "" }, - "facebook/relay": { + "rmosolgo/graphql-ruby": { "hasCommitsInLast3Months": false, - "stars": 18853, - "formattedStars": "19k", + "stars": 5410, + "formattedStars": "5k", "license": "MIT License", - "lastRelease": "2025-08-06T23:45:00Z", + "lastRelease": "2025-07-19T17:15:49Z", "formattedLastRelease": "1 month ago" }, - "FormidableLabs/urql": { + "virtualshield/rails-graphql": { "hasCommitsInLast3Months": false, - "stars": 8848, - "formattedStars": "9k", + "stars": 186, + "formattedStars": "186", "license": "MIT License", - "lastRelease": "2025-08-29T08:06:41Z", - "formattedLastRelease": "1 week ago" + "lastRelease": "2025-08-25T17:53:38Z", + "formattedLastRelease": "2 weeks ago" }, "apollographql/apollo-server": { "hasCommitsInLast3Months": false, @@ -1023,166 +1191,6 @@ "lastRelease": "2025-09-08T23:23:40Z", "formattedLastRelease": "1 day ago" }, - "networkimprov/brangr": { - "hasCommitsInLast3Months": false, - "stars": 4, - "formattedStars": "4", - "license": "Mozilla Public License 2.0", - "lastRelease": "2023-06-02T09:20:18Z", - "formattedLastRelease": "2 years ago" - }, - "hayes/giraphql": { - "hasCommitsInLast3Months": false, - "stars": 2521, - "formattedStars": "3k", - "license": "ISC License", - "lastRelease": "2025-09-07T21:17:51Z", - "formattedLastRelease": "2 days ago" - }, - "graphql/graphiql": { - "hasCommitsInLast3Months": false, - "stars": 16625, - "formattedStars": "17k", - "license": "MIT License", - "lastRelease": "2025-07-19T17:43:48Z", - "formattedLastRelease": "1 month ago" - }, - "Urigo/graphql-cli": { - "hasCommitsInLast3Months": false, - "stars": 2018, - "formattedStars": "2k", - "license": "MIT License", - "lastRelease": "2020-10-07T12:54:45Z", - "formattedLastRelease": "4 years ago" - }, - "dotansimha/graphql-code-generator": { - "hasCommitsInLast3Months": false, - "stars": 11139, - "formattedStars": "11k", - "license": "MIT License", - "lastRelease": "2025-09-07T17:01:52Z", - "formattedLastRelease": "2 days ago" - }, - "kamilkisiela/graphql-config": { - "hasCommitsInLast3Months": false, - "stars": 1191, - "formattedStars": "1k", - "license": "MIT License", - "lastRelease": "2025-04-28T15:15:29Z", - "formattedLastRelease": "4 months ago" - }, - "dimaMachina/graphql-eslint/": { - "hasCommitsInLast3Months": false, - "stars": 830, - "formattedStars": "1k", - "license": "MIT License", - "lastRelease": "2025-03-26T14:11:23Z", - "formattedLastRelease": "5 months ago" - }, - "kamilkisiela/graphql-inspector": { - "hasCommitsInLast3Months": false, - "stars": 1718, - "formattedStars": "2k", - "license": "MIT License", - "lastRelease": "2024-12-09T13:34:14Z", - "formattedLastRelease": "9 months ago" - }, - "graphql/graphql-language-service": { - "hasCommitsInLast3Months": false, - "stars": 418, - "formattedStars": "418", - "license": "Unknown", - "lastRelease": "", - "formattedLastRelease": "" - }, - "n1ru4l/graphql-live-query": { - "hasCommitsInLast3Months": false, - "stars": 437, - "formattedStars": "437", - "license": "MIT License", - "lastRelease": "2022-07-29T09:27:53Z", - "formattedLastRelease": "3 years ago" - }, - "Urigo/graphql-mesh": { - "hasCommitsInLast3Months": false, - "stars": 3425, - "formattedStars": "3k", - "license": "MIT License", - "lastRelease": "2025-09-06T12:58:22Z", - "formattedLastRelease": "3 days ago" - }, - "maticzav/graphql-middleware": { - "hasCommitsInLast3Months": false, - "stars": 1147, - "formattedStars": "1k", - "license": "MIT License", - "lastRelease": "2023-07-07T16:38:02Z", - "formattedLastRelease": "2 years ago" - }, - "Urigo/graphql-modules": { - "hasCommitsInLast3Months": false, - "stars": 1327, - "formattedStars": "1k", - "license": "MIT License", - "lastRelease": "2025-02-19T10:43:37Z", - "formattedLastRelease": "6 months ago" - }, - "Urigo/graphql-scalars": { - "hasCommitsInLast3Months": false, - "stars": 1913, - "formattedStars": "2k", - "license": "MIT License", - "lastRelease": "2025-03-19T11:10:44Z", - "formattedLastRelease": "5 months ago" - }, - "maticzav/graphql-shield": { - "hasCommitsInLast3Months": false, - "stars": 3566, - "formattedStars": "4k", - "license": "MIT License", - "lastRelease": "2022-11-22T19:08:37Z", - "formattedLastRelease": "2 years ago" - }, - "ardatan/graphql-tools": { - "hasCommitsInLast3Months": false, - "stars": 5412, - "formattedStars": "5k", - "license": "MIT License", - "lastRelease": "2025-09-05T16:16:42Z", - "formattedLastRelease": "4 days ago" - }, - "anvilco/graphql-introspection-tools": { - "hasCommitsInLast3Months": false, - "stars": 34, - "formattedStars": "34", - "license": "MIT License", - "lastRelease": "", - "formattedLastRelease": "" - }, - "graphile/postgraphile": { - "hasCommitsInLast3Months": false, - "stars": 12799, - "formattedStars": "13k", - "license": "Other", - "lastRelease": "2023-10-05T16:27:00Z", - "formattedLastRelease": "1 year ago" - }, - "Urigo/SOFA": { - "hasCommitsInLast3Months": false, - "stars": 1109, - "formattedStars": "1k", - "license": "MIT License", - "lastRelease": "2024-12-16T10:06:41Z", - "formattedLastRelease": "8 months ago" - }, - "anvilco/spectaql": { - "hasCommitsInLast3Months": false, - "stars": 1174, - "formattedStars": "1k", - "license": "MIT License", - "lastRelease": "", - "formattedLastRelease": "" - }, "ghostdogpr/caliban": { "hasCommitsInLast3Months": false, "stars": 972, @@ -1255,14 +1263,6 @@ "lastRelease": "2025-09-08T15:08:21Z", "formattedLastRelease": "1 day ago" }, - "Escape-Technologies/graphql-armor": { - "hasCommitsInLast3Months": false, - "stars": 544, - "formattedStars": "1k", - "license": "MIT License", - "lastRelease": "2025-08-22T13:32:40Z", - "formattedLastRelease": "2 weeks ago" - }, "eerimoq/gqt": { "hasCommitsInLast3Months": false, "stars": 470, @@ -1271,13 +1271,13 @@ "lastRelease": "", "formattedLastRelease": "" }, - "ldebruijn/graphql-protect": { + "Escape-Technologies/graphql-armor": { "hasCommitsInLast3Months": false, - "stars": 33, - "formattedStars": "33", + "stars": 544, + "formattedStars": "1k", "license": "MIT License", - "lastRelease": "2025-09-09T20:03:39Z", - "formattedLastRelease": "16 hours ago" + "lastRelease": "2025-08-22T13:32:40Z", + "formattedLastRelease": "2 weeks ago" }, "graphql-hive/gateway": { "hasCommitsInLast3Months": false, @@ -1287,6 +1287,14 @@ "lastRelease": "2025-09-09T09:52:51Z", "formattedLastRelease": "1 day ago" }, + "ldebruijn/graphql-protect": { + "hasCommitsInLast3Months": false, + "stars": 33, + "formattedStars": "33", + "license": "MIT License", + "lastRelease": "2025-09-09T20:03:39Z", + "formattedLastRelease": "18 hours ago" + }, "microcks/microcks": { "hasCommitsInLast3Months": false, "stars": 1701, @@ -1295,14 +1303,6 @@ "lastRelease": "2025-07-21T12:44:11Z", "formattedLastRelease": "1 month ago" }, - "glideapps/quicktype": { - "hasCommitsInLast3Months": false, - "stars": 13296, - "formattedStars": "13k", - "license": "Apache License 2.0", - "lastRelease": "", - "formattedLastRelease": "" - }, "schemathesis/schemathesis": { "hasCommitsInLast3Months": false, "stars": 2711, @@ -1310,5 +1310,13 @@ "license": "MIT License", "lastRelease": "2025-09-01T19:49:28Z", "formattedLastRelease": "1 week ago" + }, + "glideapps/quicktype": { + "hasCommitsInLast3Months": false, + "stars": 13297, + "formattedStars": "13k", + "license": "Apache License 2.0", + "lastRelease": "", + "formattedLastRelease": "" } } \ No newline at end of file diff --git a/scripts/get-github-info/index.ts b/scripts/get-github-info/index.ts new file mode 100644 index 0000000000..bdb29b7d3a --- /dev/null +++ b/scripts/get-github-info/index.ts @@ -0,0 +1 @@ +import "./get-github-info" diff --git a/scripts/get-github-info/last-success.isodate b/scripts/get-github-info/last-success.isodate new file mode 100644 index 0000000000..ed7952c596 --- /dev/null +++ b/scripts/get-github-info/last-success.isodate @@ -0,0 +1 @@ +2025-09-10T14:47:22.723Z \ No newline at end of file diff --git a/src/pages/community/tools-and-libraries.mdx b/src/pages/community/tools-and-libraries.mdx index 500de43d5a..c75492d773 100644 --- a/src/pages/community/tools-and-libraries.mdx +++ b/src/pages/community/tools-and-libraries.mdx @@ -7,7 +7,7 @@ import { NextAdapter } from "next-query-params" import { QueryParamProvider } from "use-query-params" import { CodePage } from "../../components/tools-and-libraries" import { getGitHubStats } from "../../../scripts/sort-libraries/get-github-stats" -import githubInfo from "@/github-stats.json" +import githubInfo from "../../../scripts/get-github-info/github-stats.json" {}