From eb1f7bf2f3a3171967cb1e361e665ccb4cdee976 Mon Sep 17 00:00:00 2001 From: GENTILHOMME Thomas Date: Sat, 11 Jul 2026 15:20:20 +0200 Subject: [PATCH] refactor: migrate to TypeScript and enhance contributors generation + rendering --- eslint.config.mjs | 17 +- index.html | 6 +- package.json | 7 +- public/contributors.json | 1640 +++++------------ public/css/index.css | 155 +- public/scripts/hydrate-contributors.js | 56 + {src => public/scripts}/particules.js | 0 scripts/generate-contributors.js | 95 - scripts/generate-contributors.ts | 126 ++ src/hydrate-contributors.js | 49 - .../zupTransformer.ts | 12 +- tsconfig.json | 15 + vite.config.js => vite.config.ts | 2 +- 13 files changed, 762 insertions(+), 1418 deletions(-) create mode 100644 public/scripts/hydrate-contributors.js rename {src => public/scripts}/particules.js (100%) delete mode 100644 scripts/generate-contributors.js create mode 100644 scripts/generate-contributors.ts delete mode 100644 src/hydrate-contributors.js rename plugins/zupTransformer.js => src/zupTransformer.ts (71%) create mode 100644 tsconfig.json rename vite.config.js => vite.config.ts (75%) diff --git a/eslint.config.mjs b/eslint.config.mjs index 1e58203..03e193c 100644 --- a/eslint.config.mjs +++ b/eslint.config.mjs @@ -1,14 +1,11 @@ // Import Third-party Dependencies -import { ESLintConfig, globals } from "@openally/config.eslint"; +import { typescriptConfig, globals } from "@openally/config.eslint"; -export default [ - ...ESLintConfig, - { - languageOptions: { - sourceType: "module", - globals: { - ...globals.browser - } +export default typescriptConfig({ + languageOptions: { + sourceType: "module", + globals: { + ...globals.browser } } -]; +}); diff --git a/index.html b/index.html index a53ccd9..12a3fc9 100644 --- a/index.html +++ b/index.html @@ -156,6 +156,8 @@

Vulnera

Contributors

+
+

Community Contributors

@@ -185,8 +187,8 @@

Join Us

- - + + diff --git a/package.json b/package.json index 317f02a..4b8db08 100644 --- a/package.json +++ b/package.json @@ -6,10 +6,10 @@ "type": "module", "scripts": { "dev": "vite", - "contributors": "node scripts/generate-contributors.js", + "contributors": "node --env-file-if-exists=.env scripts/generate-contributors.ts", "build": "vite build", "preview": "vite preview", - "lint": "eslint src scripts plugins" + "lint": "eslint src scripts" }, "repository": { "type": "git", @@ -24,9 +24,12 @@ "homepage": "https://github.com/NodeSecure/landing#readme", "devDependencies": { "@openally/config.eslint": "2.4.2", + "@openally/config.typescript": "1.3.0", + "@types/node": "26.1.1", "vite": "8.0.16" }, "dependencies": { + "@openally/github.sdk": "1.2.0", "zup": "0.0.2" } } diff --git a/public/contributors.json b/public/contributors.json index 8ece0ea..a6f8d09 100644 --- a/public/contributors.json +++ b/public/contributors.json @@ -1,1366 +1,578 @@ [ { "login": "fraxken", - "id": 4438263, - "node_id": "MDQ6VXNlcjQ0MzgyNjM=", - "avatar_url": "https://avatars.githubusercontent.com/u/4438263?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/fraxken", + "status": "active", "html_url": "https://github.com/fraxken", - "followers_url": "https://api.github.com/users/fraxken/followers", - "following_url": "https://api.github.com/users/fraxken/following{/other_user}", - "gists_url": "https://api.github.com/users/fraxken/gists{/gist_id}", - "starred_url": "https://api.github.com/users/fraxken/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/fraxken/subscriptions", - "organizations_url": "https://api.github.com/users/fraxken/orgs", - "repos_url": "https://api.github.com/users/fraxken/repos", - "events_url": "https://api.github.com/users/fraxken/events{/privacy}", - "received_events_url": "https://api.github.com/users/fraxken/received_events", - "type": "core", - "user_view_type": "public", - "site_admin": false, - "contributions": 614 + "avatar_url": "https://avatars.githubusercontent.com/u/4438263?v=4", + "contributions": 1966, + "type": "core" }, { "login": "PierreDemailly", - "id": 39910767, - "node_id": "MDQ6VXNlcjM5OTEwNzY3", - "avatar_url": "https://avatars.githubusercontent.com/u/39910767?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/PierreDemailly", + "status": "active", "html_url": "https://github.com/PierreDemailly", - "followers_url": "https://api.github.com/users/PierreDemailly/followers", - "following_url": "https://api.github.com/users/PierreDemailly/following{/other_user}", - "gists_url": "https://api.github.com/users/PierreDemailly/gists{/gist_id}", - "starred_url": "https://api.github.com/users/PierreDemailly/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/PierreDemailly/subscriptions", - "organizations_url": "https://api.github.com/users/PierreDemailly/orgs", - "repos_url": "https://api.github.com/users/PierreDemailly/repos", - "events_url": "https://api.github.com/users/PierreDemailly/events{/privacy}", - "received_events_url": "https://api.github.com/users/PierreDemailly/received_events", - "type": "core", - "user_view_type": "public", - "site_admin": false, - "contributions": 91 + "avatar_url": "https://avatars.githubusercontent.com/u/39910767?v=4", + "contributions": 199, + "type": "core" }, { "login": "clemgbld", - "id": 91478082, - "node_id": "MDQ6VXNlcjkxNDc4MDgy", - "avatar_url": "https://avatars.githubusercontent.com/u/91478082?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/clemgbld", + "status": "active", "html_url": "https://github.com/clemgbld", - "followers_url": "https://api.github.com/users/clemgbld/followers", - "following_url": "https://api.github.com/users/clemgbld/following{/other_user}", - "gists_url": "https://api.github.com/users/clemgbld/gists{/gist_id}", - "starred_url": "https://api.github.com/users/clemgbld/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/clemgbld/subscriptions", - "organizations_url": "https://api.github.com/users/clemgbld/orgs", - "repos_url": "https://api.github.com/users/clemgbld/repos", - "events_url": "https://api.github.com/users/clemgbld/events{/privacy}", - "received_events_url": "https://api.github.com/users/clemgbld/received_events", - "type": "core", - "user_view_type": "public", - "site_admin": false, - "contributions": 33 + "avatar_url": "https://avatars.githubusercontent.com/u/91478082?v=4", + "contributions": 153, + "type": "core" }, { - "login": "targos", - "id": 2352663, - "node_id": "MDQ6VXNlcjIzNTI2NjM=", - "avatar_url": "https://avatars.githubusercontent.com/u/2352663?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/targos", - "html_url": "https://github.com/targos", - "followers_url": "https://api.github.com/users/targos/followers", - "following_url": "https://api.github.com/users/targos/following{/other_user}", - "gists_url": "https://api.github.com/users/targos/gists{/gist_id}", - "starred_url": "https://api.github.com/users/targos/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/targos/subscriptions", - "organizations_url": "https://api.github.com/users/targos/orgs", - "repos_url": "https://api.github.com/users/targos/repos", - "events_url": "https://api.github.com/users/targos/events{/privacy}", - "received_events_url": "https://api.github.com/users/targos/received_events", - "type": "contributor", - "user_view_type": "public", - "site_admin": false, - "contributions": 22 + "login": "antoine-coulon", + "status": "inactive", + "html_url": "https://github.com/antoine-coulon", + "avatar_url": "https://avatars.githubusercontent.com/u/43391199?v=4", + "contributions": 132, + "type": "core" }, { "login": "fabnguess", - "id": 72697416, - "node_id": "MDQ6VXNlcjcyNjk3NDE2", - "avatar_url": "https://avatars.githubusercontent.com/u/72697416?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/fabnguess", + "status": "active", "html_url": "https://github.com/fabnguess", - "followers_url": "https://api.github.com/users/fabnguess/followers", - "following_url": "https://api.github.com/users/fabnguess/following{/other_user}", - "gists_url": "https://api.github.com/users/fabnguess/gists{/gist_id}", - "starred_url": "https://api.github.com/users/fabnguess/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/fabnguess/subscriptions", - "organizations_url": "https://api.github.com/users/fabnguess/orgs", - "repos_url": "https://api.github.com/users/fabnguess/repos", - "events_url": "https://api.github.com/users/fabnguess/events{/privacy}", - "received_events_url": "https://api.github.com/users/fabnguess/received_events", - "type": "contributor", - "user_view_type": "public", - "site_admin": false, - "contributions": 8 + "avatar_url": "https://avatars.githubusercontent.com/u/72697416?v=4", + "contributions": 121, + "type": "committer" }, { "login": "tony-go", - "id": 22824417, - "node_id": "MDQ6VXNlcjIyODI0NDE3", - "avatar_url": "https://avatars.githubusercontent.com/u/22824417?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/tony-go", + "status": "active", "html_url": "https://github.com/tony-go", - "followers_url": "https://api.github.com/users/tony-go/followers", - "following_url": "https://api.github.com/users/tony-go/following{/other_user}", - "gists_url": "https://api.github.com/users/tony-go/gists{/gist_id}", - "starred_url": "https://api.github.com/users/tony-go/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/tony-go/subscriptions", - "organizations_url": "https://api.github.com/users/tony-go/orgs", - "repos_url": "https://api.github.com/users/tony-go/repos", - "events_url": "https://api.github.com/users/tony-go/events{/privacy}", - "received_events_url": "https://api.github.com/users/tony-go/received_events", - "type": "core", - "user_view_type": "public", - "site_admin": false, - "contributions": 7 - }, - { - "login": "Xstoudi", - "id": 2575182, - "node_id": "MDQ6VXNlcjI1NzUxODI=", - "avatar_url": "https://avatars.githubusercontent.com/u/2575182?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/Xstoudi", - "html_url": "https://github.com/Xstoudi", - "followers_url": "https://api.github.com/users/Xstoudi/followers", - "following_url": "https://api.github.com/users/Xstoudi/following{/other_user}", - "gists_url": "https://api.github.com/users/Xstoudi/gists{/gist_id}", - "starred_url": "https://api.github.com/users/Xstoudi/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/Xstoudi/subscriptions", - "organizations_url": "https://api.github.com/users/Xstoudi/orgs", - "repos_url": "https://api.github.com/users/Xstoudi/repos", - "events_url": "https://api.github.com/users/Xstoudi/events{/privacy}", - "received_events_url": "https://api.github.com/users/Xstoudi/received_events", - "type": "contributor", - "user_view_type": "public", - "site_admin": false, - "contributions": 6 + "avatar_url": "https://avatars.githubusercontent.com/u/22824417?v=4", + "contributions": 38, + "type": "core" }, { - "login": "CroquetMickael", - "id": 23740372, - "node_id": "MDQ6VXNlcjIzNzQwMzcy", - "avatar_url": "https://avatars.githubusercontent.com/u/23740372?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/CroquetMickael", - "html_url": "https://github.com/CroquetMickael", - "followers_url": "https://api.github.com/users/CroquetMickael/followers", - "following_url": "https://api.github.com/users/CroquetMickael/following{/other_user}", - "gists_url": "https://api.github.com/users/CroquetMickael/gists{/gist_id}", - "starred_url": "https://api.github.com/users/CroquetMickael/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/CroquetMickael/subscriptions", - "organizations_url": "https://api.github.com/users/CroquetMickael/orgs", - "repos_url": "https://api.github.com/users/CroquetMickael/repos", - "events_url": "https://api.github.com/users/CroquetMickael/events{/privacy}", - "received_events_url": "https://api.github.com/users/CroquetMickael/received_events", - "type": "contributor", - "user_view_type": "public", - "site_admin": false, - "contributions": 6 + "login": "targos", + "status": "active", + "html_url": "https://github.com/targos", + "avatar_url": "https://avatars.githubusercontent.com/u/2352663?v=4", + "contributions": 23, + "type": "contributor" }, { "login": "ErwanRaulo", - "id": 22614778, - "node_id": "MDQ6VXNlcjIyNjE0Nzc4", - "avatar_url": "https://avatars.githubusercontent.com/u/22614778?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/ErwanRaulo", + "status": "active", "html_url": "https://github.com/ErwanRaulo", - "followers_url": "https://api.github.com/users/ErwanRaulo/followers", - "following_url": "https://api.github.com/users/ErwanRaulo/following{/other_user}", - "gists_url": "https://api.github.com/users/ErwanRaulo/gists{/gist_id}", - "starred_url": "https://api.github.com/users/ErwanRaulo/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/ErwanRaulo/subscriptions", - "organizations_url": "https://api.github.com/users/ErwanRaulo/orgs", - "repos_url": "https://api.github.com/users/ErwanRaulo/repos", - "events_url": "https://api.github.com/users/ErwanRaulo/events{/privacy}", - "received_events_url": "https://api.github.com/users/ErwanRaulo/received_events", - "type": "contributor", - "user_view_type": "public", - "site_admin": false, - "contributions": 5 + "avatar_url": "https://avatars.githubusercontent.com/u/22614778?v=4", + "contributions": 20, + "type": "committer" }, { - "login": "FredGuiou", - "id": 99122562, - "node_id": "U_kgDOBeh9gg", - "avatar_url": "https://avatars.githubusercontent.com/u/99122562?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/FredGuiou", - "html_url": "https://github.com/FredGuiou", - "followers_url": "https://api.github.com/users/FredGuiou/followers", - "following_url": "https://api.github.com/users/FredGuiou/following{/other_user}", - "gists_url": "https://api.github.com/users/FredGuiou/gists{/gist_id}", - "starred_url": "https://api.github.com/users/FredGuiou/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/FredGuiou/subscriptions", - "organizations_url": "https://api.github.com/users/FredGuiou/orgs", - "repos_url": "https://api.github.com/users/FredGuiou/repos", - "events_url": "https://api.github.com/users/FredGuiou/events{/privacy}", - "received_events_url": "https://api.github.com/users/FredGuiou/received_events", - "type": "contributor", - "user_view_type": "public", - "site_admin": false, - "contributions": 3 + "login": "Kawacrepe", + "status": "inactive", + "html_url": "https://github.com/Kawacrepe", + "avatar_url": "https://avatars.githubusercontent.com/u/40260517?v=4", + "contributions": 19, + "type": "core" }, { - "login": "kishore881", - "id": 49707819, - "node_id": "MDQ6VXNlcjQ5NzA3ODE5", - "avatar_url": "https://avatars.githubusercontent.com/u/49707819?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/kishore881", - "html_url": "https://github.com/kishore881", - "followers_url": "https://api.github.com/users/kishore881/followers", - "following_url": "https://api.github.com/users/kishore881/following{/other_user}", - "gists_url": "https://api.github.com/users/kishore881/gists{/gist_id}", - "starred_url": "https://api.github.com/users/kishore881/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/kishore881/subscriptions", - "organizations_url": "https://api.github.com/users/kishore881/orgs", - "repos_url": "https://api.github.com/users/kishore881/repos", - "events_url": "https://api.github.com/users/kishore881/events{/privacy}", - "received_events_url": "https://api.github.com/users/kishore881/received_events", - "type": "contributor", - "user_view_type": "public", - "site_admin": false, - "contributions": 3 + "login": "7amed3li", + "status": "active", + "html_url": "https://github.com/7amed3li", + "avatar_url": "https://avatars.githubusercontent.com/u/190534558?v=4", + "contributions": 16, + "type": "contributor" + }, + { + "login": "jean-michelet", + "status": "active", + "html_url": "https://github.com/jean-michelet", + "avatar_url": "https://avatars.githubusercontent.com/u/110341611?v=4", + "contributions": 13, + "type": "contributor" }, { "login": "halcin", - "id": 7302407, - "node_id": "MDQ6VXNlcjczMDI0MDc=", - "avatar_url": "https://avatars.githubusercontent.com/u/7302407?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/halcin", + "status": "active", "html_url": "https://github.com/halcin", - "followers_url": "https://api.github.com/users/halcin/followers", - "following_url": "https://api.github.com/users/halcin/following{/other_user}", - "gists_url": "https://api.github.com/users/halcin/gists{/gist_id}", - "starred_url": "https://api.github.com/users/halcin/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/halcin/subscriptions", - "organizations_url": "https://api.github.com/users/halcin/orgs", - "repos_url": "https://api.github.com/users/halcin/repos", - "events_url": "https://api.github.com/users/halcin/events{/privacy}", - "received_events_url": "https://api.github.com/users/halcin/received_events", - "type": "contributor", - "user_view_type": "public", - "site_admin": false, - "contributions": 2 + "avatar_url": "https://avatars.githubusercontent.com/u/7302407?v=4", + "contributions": 11, + "type": "contributor" }, { - "login": "antoine-coulon", - "id": 43391199, - "node_id": "MDQ6VXNlcjQzMzkxMTk5", - "avatar_url": "https://avatars.githubusercontent.com/u/43391199?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/antoine-coulon", - "html_url": "https://github.com/antoine-coulon", - "followers_url": "https://api.github.com/users/antoine-coulon/followers", - "following_url": "https://api.github.com/users/antoine-coulon/following{/other_user}", - "gists_url": "https://api.github.com/users/antoine-coulon/gists{/gist_id}", - "starred_url": "https://api.github.com/users/antoine-coulon/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/antoine-coulon/subscriptions", - "organizations_url": "https://api.github.com/users/antoine-coulon/orgs", - "repos_url": "https://api.github.com/users/antoine-coulon/repos", - "events_url": "https://api.github.com/users/antoine-coulon/events{/privacy}", - "received_events_url": "https://api.github.com/users/antoine-coulon/received_events", - "type": "core", - "user_view_type": "public", - "site_admin": false, - "contributions": 2 + "login": "intincrab", + "status": "active", + "html_url": "https://github.com/intincrab", + "avatar_url": "https://avatars.githubusercontent.com/u/93028153?v=4", + "contributions": 10, + "type": "contributor" }, { - "login": "iddahadev", - "id": 30631818, - "node_id": "MDQ6VXNlcjMwNjMxODE4", - "avatar_url": "https://avatars.githubusercontent.com/u/30631818?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/iddahadev", - "html_url": "https://github.com/iddahadev", - "followers_url": "https://api.github.com/users/iddahadev/followers", - "following_url": "https://api.github.com/users/iddahadev/following{/other_user}", - "gists_url": "https://api.github.com/users/iddahadev/gists{/gist_id}", - "starred_url": "https://api.github.com/users/iddahadev/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/iddahadev/subscriptions", - "organizations_url": "https://api.github.com/users/iddahadev/orgs", - "repos_url": "https://api.github.com/users/iddahadev/repos", - "events_url": "https://api.github.com/users/iddahadev/events{/privacy}", - "received_events_url": "https://api.github.com/users/iddahadev/received_events", - "type": "contributor", - "user_view_type": "public", - "site_admin": false, - "contributions": 2 + "login": "Max2810", + "status": "active", + "html_url": "https://github.com/Max2810", + "avatar_url": "https://avatars.githubusercontent.com/u/53535185?v=4", + "contributions": 10, + "type": "contributor" }, { - "login": "Kawacrepe", - "id": 40260517, - "node_id": "MDQ6VXNlcjQwMjYwNTE3", - "avatar_url": "https://avatars.githubusercontent.com/u/40260517?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/Kawacrepe", - "html_url": "https://github.com/Kawacrepe", - "followers_url": "https://api.github.com/users/Kawacrepe/followers", - "following_url": "https://api.github.com/users/Kawacrepe/following{/other_user}", - "gists_url": "https://api.github.com/users/Kawacrepe/gists{/gist_id}", - "starred_url": "https://api.github.com/users/Kawacrepe/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/Kawacrepe/subscriptions", - "organizations_url": "https://api.github.com/users/Kawacrepe/orgs", - "repos_url": "https://api.github.com/users/Kawacrepe/repos", - "events_url": "https://api.github.com/users/Kawacrepe/events{/privacy}", - "received_events_url": "https://api.github.com/users/Kawacrepe/received_events", - "type": "core", - "user_view_type": "public", - "site_admin": false, - "contributions": 2 + "login": "bashlor", + "status": "active", + "html_url": "https://github.com/bashlor", + "avatar_url": "https://avatars.githubusercontent.com/u/39790502?v=4", + "contributions": 10, + "type": "contributor" }, { - "login": "rahuld109", - "id": 62885871, - "node_id": "MDQ6VXNlcjYyODg1ODcx", - "avatar_url": "https://avatars.githubusercontent.com/u/62885871?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/rahuld109", - "html_url": "https://github.com/rahuld109", - "followers_url": "https://api.github.com/users/rahuld109/followers", - "following_url": "https://api.github.com/users/rahuld109/following{/other_user}", - "gists_url": "https://api.github.com/users/rahuld109/gists{/gist_id}", - "starred_url": "https://api.github.com/users/rahuld109/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/rahuld109/subscriptions", - "organizations_url": "https://api.github.com/users/rahuld109/orgs", - "repos_url": "https://api.github.com/users/rahuld109/repos", - "events_url": "https://api.github.com/users/rahuld109/events{/privacy}", - "received_events_url": "https://api.github.com/users/rahuld109/received_events", - "type": "contributor", - "user_view_type": "public", - "site_admin": false, - "contributions": 2 + "login": "FredGuiou", + "status": "active", + "html_url": "https://github.com/FredGuiou", + "avatar_url": "https://avatars.githubusercontent.com/u/99122562?v=4", + "contributions": 8, + "type": "contributor" }, { - "login": "abdellah-housni", - "id": 39569278, - "node_id": "MDQ6VXNlcjM5NTY5Mjc4", - "avatar_url": "https://avatars.githubusercontent.com/u/39569278?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/abdellah-housni", - "html_url": "https://github.com/abdellah-housni", - "followers_url": "https://api.github.com/users/abdellah-housni/followers", - "following_url": "https://api.github.com/users/abdellah-housni/following{/other_user}", - "gists_url": "https://api.github.com/users/abdellah-housni/gists{/gist_id}", - "starred_url": "https://api.github.com/users/abdellah-housni/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/abdellah-housni/subscriptions", - "organizations_url": "https://api.github.com/users/abdellah-housni/orgs", - "repos_url": "https://api.github.com/users/abdellah-housni/repos", - "events_url": "https://api.github.com/users/abdellah-housni/events{/privacy}", - "received_events_url": "https://api.github.com/users/abdellah-housni/received_events", - "type": "contributor", - "user_view_type": "public", - "site_admin": false, - "contributions": 1 + "login": "Captainfive", + "status": "active", + "html_url": "https://github.com/Captainfive", + "avatar_url": "https://avatars.githubusercontent.com/u/38983657?v=4", + "contributions": 8, + "type": "contributor" }, { - "login": "zikos2", - "id": 16059617, - "node_id": "MDQ6VXNlcjE2MDU5NjE3", - "avatar_url": "https://avatars.githubusercontent.com/u/16059617?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/zikos2", - "html_url": "https://github.com/zikos2", - "followers_url": "https://api.github.com/users/zikos2/followers", - "following_url": "https://api.github.com/users/zikos2/following{/other_user}", - "gists_url": "https://api.github.com/users/zikos2/gists{/gist_id}", - "starred_url": "https://api.github.com/users/zikos2/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/zikos2/subscriptions", - "organizations_url": "https://api.github.com/users/zikos2/orgs", - "repos_url": "https://api.github.com/users/zikos2/repos", - "events_url": "https://api.github.com/users/zikos2/events{/privacy}", - "received_events_url": "https://api.github.com/users/zikos2/received_events", - "type": "contributor", - "user_view_type": "public", - "site_admin": false, - "contributions": 1 + "login": "CroquetMickael", + "status": "active", + "html_url": "https://github.com/CroquetMickael", + "avatar_url": "https://avatars.githubusercontent.com/u/23740372?v=4", + "contributions": 7, + "type": "contributor" }, { - "login": "SofianD", - "id": 39944043, - "node_id": "MDQ6VXNlcjM5OTQ0MDQz", - "avatar_url": "https://avatars.githubusercontent.com/u/39944043?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/SofianD", - "html_url": "https://github.com/SofianD", - "followers_url": "https://api.github.com/users/SofianD/followers", - "following_url": "https://api.github.com/users/SofianD/following{/other_user}", - "gists_url": "https://api.github.com/users/SofianD/gists{/gist_id}", - "starred_url": "https://api.github.com/users/SofianD/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/SofianD/subscriptions", - "organizations_url": "https://api.github.com/users/SofianD/orgs", - "repos_url": "https://api.github.com/users/SofianD/repos", - "events_url": "https://api.github.com/users/SofianD/events{/privacy}", - "received_events_url": "https://api.github.com/users/SofianD/received_events", - "type": "contributor", - "user_view_type": "public", - "site_admin": false, - "contributions": 1 + "login": "AlexandreMalaj", + "status": "active", + "html_url": "https://github.com/AlexandreMalaj", + "avatar_url": "https://avatars.githubusercontent.com/u/32218832?v=4", + "contributions": 7, + "type": "contributor" }, { - "login": "olivierodo", - "id": 4768226, - "node_id": "MDQ6VXNlcjQ3NjgyMjY=", - "avatar_url": "https://avatars.githubusercontent.com/u/4768226?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/olivierodo", - "html_url": "https://github.com/olivierodo", - "followers_url": "https://api.github.com/users/olivierodo/followers", - "following_url": "https://api.github.com/users/olivierodo/following{/other_user}", - "gists_url": "https://api.github.com/users/olivierodo/gists{/gist_id}", - "starred_url": "https://api.github.com/users/olivierodo/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/olivierodo/subscriptions", - "organizations_url": "https://api.github.com/users/olivierodo/orgs", - "repos_url": "https://api.github.com/users/olivierodo/repos", - "events_url": "https://api.github.com/users/olivierodo/events{/privacy}", - "received_events_url": "https://api.github.com/users/olivierodo/received_events", - "type": "contributor", - "user_view_type": "public", - "site_admin": false, - "contributions": 1 + "login": "Rossb0b", + "status": "active", + "html_url": "https://github.com/Rossb0b", + "avatar_url": "https://avatars.githubusercontent.com/u/39910164?v=4", + "contributions": 7, + "type": "contributor" }, { - "login": "Markobobby", - "id": 15210179, - "node_id": "MDQ6VXNlcjE1MjEwMTc5", - "avatar_url": "https://avatars.githubusercontent.com/u/15210179?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/Markobobby", - "html_url": "https://github.com/Markobobby", - "followers_url": "https://api.github.com/users/Markobobby/followers", - "following_url": "https://api.github.com/users/Markobobby/following{/other_user}", - "gists_url": "https://api.github.com/users/Markobobby/gists{/gist_id}", - "starred_url": "https://api.github.com/users/Markobobby/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/Markobobby/subscriptions", - "organizations_url": "https://api.github.com/users/Markobobby/orgs", - "repos_url": "https://api.github.com/users/Markobobby/repos", - "events_url": "https://api.github.com/users/Markobobby/events{/privacy}", - "received_events_url": "https://api.github.com/users/Markobobby/received_events", - "type": "contributor", - "user_view_type": "public", - "site_admin": false, - "contributions": 1 + "login": "Xstoudi", + "status": "active", + "html_url": "https://github.com/Xstoudi", + "avatar_url": "https://avatars.githubusercontent.com/u/2575182?v=4", + "contributions": 6, + "type": "contributor" }, { - "login": "AlexandreMalaj", - "id": 32218832, - "node_id": "MDQ6VXNlcjMyMjE4ODMy", - "avatar_url": "https://avatars.githubusercontent.com/u/32218832?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/AlexandreMalaj", - "html_url": "https://github.com/AlexandreMalaj", - "followers_url": "https://api.github.com/users/AlexandreMalaj/followers", - "following_url": "https://api.github.com/users/AlexandreMalaj/following{/other_user}", - "gists_url": "https://api.github.com/users/AlexandreMalaj/gists{/gist_id}", - "starred_url": "https://api.github.com/users/AlexandreMalaj/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/AlexandreMalaj/subscriptions", - "organizations_url": "https://api.github.com/users/AlexandreMalaj/orgs", - "repos_url": "https://api.github.com/users/AlexandreMalaj/repos", - "events_url": "https://api.github.com/users/AlexandreMalaj/events{/privacy}", - "received_events_url": "https://api.github.com/users/AlexandreMalaj/received_events", - "type": "contributor", - "user_view_type": "public", - "site_admin": false, - "contributions": 1 + "login": "kishore881", + "status": "active", + "html_url": "https://github.com/kishore881", + "avatar_url": "https://avatars.githubusercontent.com/u/49707819?v=4", + "contributions": 5, + "type": "contributor" }, { - "login": "LouisAntoninLesieur", - "id": 170421915, - "node_id": "U_kgDOCihumw", - "avatar_url": "https://avatars.githubusercontent.com/u/170421915?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/LouisAntoninLesieur", - "html_url": "https://github.com/LouisAntoninLesieur", - "followers_url": "https://api.github.com/users/LouisAntoninLesieur/followers", - "following_url": "https://api.github.com/users/LouisAntoninLesieur/following{/other_user}", - "gists_url": "https://api.github.com/users/LouisAntoninLesieur/gists{/gist_id}", - "starred_url": "https://api.github.com/users/LouisAntoninLesieur/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/LouisAntoninLesieur/subscriptions", - "organizations_url": "https://api.github.com/users/LouisAntoninLesieur/orgs", - "repos_url": "https://api.github.com/users/LouisAntoninLesieur/repos", - "events_url": "https://api.github.com/users/LouisAntoninLesieur/events{/privacy}", - "received_events_url": "https://api.github.com/users/LouisAntoninLesieur/received_events", - "type": "contributor", - "user_view_type": "public", - "site_admin": false, - "contributions": 1 + "login": "s-oleh", + "status": "active", + "html_url": "https://github.com/s-oleh", + "avatar_url": "https://avatars.githubusercontent.com/u/130577508?v=4", + "contributions": 4, + "type": "contributor" }, { - "login": "kecsou", - "id": 33313541, - "node_id": "MDQ6VXNlcjMzMzEzNTQx", - "avatar_url": "https://avatars.githubusercontent.com/u/33313541?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/kecsou", - "html_url": "https://github.com/kecsou", - "followers_url": "https://api.github.com/users/kecsou/followers", - "following_url": "https://api.github.com/users/kecsou/following{/other_user}", - "gists_url": "https://api.github.com/users/kecsou/gists{/gist_id}", - "starred_url": "https://api.github.com/users/kecsou/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/kecsou/subscriptions", - "organizations_url": "https://api.github.com/users/kecsou/orgs", - "repos_url": "https://api.github.com/users/kecsou/repos", - "events_url": "https://api.github.com/users/kecsou/events{/privacy}", - "received_events_url": "https://api.github.com/users/kecsou/received_events", - "type": "contributor", - "user_view_type": "public", - "site_admin": false, - "contributions": 1 + "login": "HoyeongJeon", + "status": "active", + "html_url": "https://github.com/HoyeongJeon", + "avatar_url": "https://avatars.githubusercontent.com/u/78394999?v=4", + "contributions": 4, + "type": "contributor" }, { - "login": "Ineslujan", - "id": 65076833, - "node_id": "MDQ6VXNlcjY1MDc2ODMz", - "avatar_url": "https://avatars.githubusercontent.com/u/65076833?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/Ineslujan", - "html_url": "https://github.com/Ineslujan", - "followers_url": "https://api.github.com/users/Ineslujan/followers", - "following_url": "https://api.github.com/users/Ineslujan/following{/other_user}", - "gists_url": "https://api.github.com/users/Ineslujan/gists{/gist_id}", - "starred_url": "https://api.github.com/users/Ineslujan/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/Ineslujan/subscriptions", - "organizations_url": "https://api.github.com/users/Ineslujan/orgs", - "repos_url": "https://api.github.com/users/Ineslujan/repos", - "events_url": "https://api.github.com/users/Ineslujan/events{/privacy}", - "received_events_url": "https://api.github.com/users/Ineslujan/received_events", - "type": "contributor", - "user_view_type": "public", - "site_admin": false, - "contributions": 1 + "login": "privatenumber", + "status": "active", + "html_url": "https://github.com/privatenumber", + "avatar_url": "https://avatars.githubusercontent.com/u/1075694?v=4", + "contributions": 4, + "type": "contributor" }, { - "login": "7amed3li", - "id": 190534558, - "node_id": "U_kgDOC1tTng", - "avatar_url": "https://avatars.githubusercontent.com/u/190534558?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/7amed3li", - "html_url": "https://github.com/7amed3li", - "followers_url": "https://api.github.com/users/7amed3li/followers", - "following_url": "https://api.github.com/users/7amed3li/following{/other_user}", - "gists_url": "https://api.github.com/users/7amed3li/gists{/gist_id}", - "starred_url": "https://api.github.com/users/7amed3li/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/7amed3li/subscriptions", - "organizations_url": "https://api.github.com/users/7amed3li/orgs", - "repos_url": "https://api.github.com/users/7amed3li/repos", - "events_url": "https://api.github.com/users/7amed3li/events{/privacy}", - "received_events_url": "https://api.github.com/users/7amed3li/received_events", - "type": "contributor", - "user_view_type": "public", - "site_admin": false, - "contributions": 1 + "login": "Markobobby", + "status": "active", + "html_url": "https://github.com/Markobobby", + "avatar_url": "https://avatars.githubusercontent.com/u/15210179?v=4", + "contributions": 3, + "type": "contributor" }, { - "login": "franky47", - "id": 1174092, - "node_id": "MDQ6VXNlcjExNzQwOTI=", - "avatar_url": "https://avatars.githubusercontent.com/u/1174092?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/franky47", - "html_url": "https://github.com/franky47", - "followers_url": "https://api.github.com/users/franky47/followers", - "following_url": "https://api.github.com/users/franky47/following{/other_user}", - "gists_url": "https://api.github.com/users/franky47/gists{/gist_id}", - "starred_url": "https://api.github.com/users/franky47/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/franky47/subscriptions", - "organizations_url": "https://api.github.com/users/franky47/orgs", - "repos_url": "https://api.github.com/users/franky47/repos", - "events_url": "https://api.github.com/users/franky47/events{/privacy}", - "received_events_url": "https://api.github.com/users/franky47/received_events", - "type": "contributor", - "user_view_type": "public", - "site_admin": false, - "contributions": 1 + "login": "zeearth", + "status": "active", + "html_url": "https://github.com/zeearth", + "avatar_url": "https://avatars.githubusercontent.com/u/1954929?v=4", + "contributions": 3, + "type": "contributor" }, { - "login": "s-oleh", - "id": 130577508, - "node_id": "U_kgDOB8h0ZA", - "avatar_url": "https://avatars.githubusercontent.com/u/130577508?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/s-oleh", - "html_url": "https://github.com/s-oleh", - "followers_url": "https://api.github.com/users/s-oleh/followers", - "following_url": "https://api.github.com/users/s-oleh/following{/other_user}", - "gists_url": "https://api.github.com/users/s-oleh/gists{/gist_id}", - "starred_url": "https://api.github.com/users/s-oleh/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/s-oleh/subscriptions", - "organizations_url": "https://api.github.com/users/s-oleh/orgs", - "repos_url": "https://api.github.com/users/s-oleh/repos", - "events_url": "https://api.github.com/users/s-oleh/events{/privacy}", - "received_events_url": "https://api.github.com/users/s-oleh/received_events", - "type": "contributor", - "user_view_type": "public", - "site_admin": false, - "contributions": 4 + "login": "SofianD", + "status": "active", + "html_url": "https://github.com/SofianD", + "avatar_url": "https://avatars.githubusercontent.com/u/39944043?v=4", + "contributions": 3, + "type": "contributor" }, { - "login": "AntonioliBenjamin", - "id": 111560667, - "node_id": "U_kgDOBqZH2w", - "avatar_url": "https://avatars.githubusercontent.com/u/111560667?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/AntonioliBenjamin", - "html_url": "https://github.com/AntonioliBenjamin", - "followers_url": "https://api.github.com/users/AntonioliBenjamin/followers", - "following_url": "https://api.github.com/users/AntonioliBenjamin/following{/other_user}", - "gists_url": "https://api.github.com/users/AntonioliBenjamin/gists{/gist_id}", - "starred_url": "https://api.github.com/users/AntonioliBenjamin/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/AntonioliBenjamin/subscriptions", - "organizations_url": "https://api.github.com/users/AntonioliBenjamin/orgs", - "repos_url": "https://api.github.com/users/AntonioliBenjamin/repos", - "events_url": "https://api.github.com/users/AntonioliBenjamin/events{/privacy}", - "received_events_url": "https://api.github.com/users/AntonioliBenjamin/received_events", - "type": "contributor", - "user_view_type": "public", - "site_admin": false, - "contributions": 2 + "login": "tekeuange23", + "status": "active", + "html_url": "https://github.com/tekeuange23", + "avatar_url": "https://avatars.githubusercontent.com/u/35274201?v=4", + "contributions": 3, + "type": "contributor" }, { "login": "Mathieuka", - "id": 34446722, - "node_id": "MDQ6VXNlcjM0NDQ2NzIy", - "avatar_url": "https://avatars.githubusercontent.com/u/34446722?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/Mathieuka", + "status": "active", "html_url": "https://github.com/Mathieuka", - "followers_url": "https://api.github.com/users/Mathieuka/followers", - "following_url": "https://api.github.com/users/Mathieuka/following{/other_user}", - "gists_url": "https://api.github.com/users/Mathieuka/gists{/gist_id}", - "starred_url": "https://api.github.com/users/Mathieuka/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/Mathieuka/subscriptions", - "organizations_url": "https://api.github.com/users/Mathieuka/orgs", - "repos_url": "https://api.github.com/users/Mathieuka/repos", - "events_url": "https://api.github.com/users/Mathieuka/events{/privacy}", - "received_events_url": "https://api.github.com/users/Mathieuka/received_events", - "type": "contributor", - "user_view_type": "public", - "site_admin": false, - "contributions": 1 + "avatar_url": "https://avatars.githubusercontent.com/u/34446722?v=4", + "contributions": 3, + "type": "contributor" }, { - "login": "Ashish0926", - "id": 55145996, - "node_id": "MDQ6VXNlcjU1MTQ1OTk2", - "avatar_url": "https://avatars.githubusercontent.com/u/55145996?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/Ashish0926", - "html_url": "https://github.com/Ashish0926", - "followers_url": "https://api.github.com/users/Ashish0926/followers", - "following_url": "https://api.github.com/users/Ashish0926/following{/other_user}", - "gists_url": "https://api.github.com/users/Ashish0926/gists{/gist_id}", - "starred_url": "https://api.github.com/users/Ashish0926/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/Ashish0926/subscriptions", - "organizations_url": "https://api.github.com/users/Ashish0926/orgs", - "repos_url": "https://api.github.com/users/Ashish0926/repos", - "events_url": "https://api.github.com/users/Ashish0926/events{/privacy}", - "received_events_url": "https://api.github.com/users/Ashish0926/received_events", - "type": "contributor", - "user_view_type": "public", - "site_admin": false, - "contributions": 1 + "login": "mbalabash", + "status": "active", + "html_url": "https://github.com/mbalabash", + "avatar_url": "https://avatars.githubusercontent.com/u/16868922?v=4", + "contributions": 3, + "type": "contributor" + }, + { + "login": "Aekk0", + "status": "active", + "html_url": "https://github.com/Aekk0", + "avatar_url": "https://avatars.githubusercontent.com/u/110826655?v=4", + "contributions": 3, + "type": "contributor" + }, + { + "login": "tchapacan", + "status": "active", + "html_url": "https://github.com/tchapacan", + "avatar_url": "https://avatars.githubusercontent.com/u/28821702?v=4", + "contributions": 3, + "type": "contributor" + }, + { + "login": "QuentinLpy", + "status": "active", + "html_url": "https://github.com/QuentinLpy", + "avatar_url": "https://avatars.githubusercontent.com/u/31780359?v=4", + "contributions": 3, + "type": "contributor" + }, + { + "login": "iddahadev", + "status": "active", + "html_url": "https://github.com/iddahadev", + "avatar_url": "https://avatars.githubusercontent.com/u/30631818?v=4", + "contributions": 2, + "type": "contributor" + }, + { + "login": "rahuld109", + "status": "active", + "html_url": "https://github.com/rahuld109", + "avatar_url": "https://avatars.githubusercontent.com/u/62885871?v=4", + "contributions": 2, + "type": "contributor" + }, + { + "login": "LouisAntoninLesieur", + "status": "active", + "html_url": "https://github.com/LouisAntoninLesieur", + "avatar_url": "https://avatars.githubusercontent.com/u/170421915?v=4", + "contributions": 2, + "type": "contributor" }, { "login": "Dafyh", - "id": 47780300, - "node_id": "MDQ6VXNlcjQ3NzgwMzAw", - "avatar_url": "https://avatars.githubusercontent.com/u/47780300?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/Dafyh", + "status": "active", "html_url": "https://github.com/Dafyh", - "followers_url": "https://api.github.com/users/Dafyh/followers", - "following_url": "https://api.github.com/users/Dafyh/following{/other_user}", - "gists_url": "https://api.github.com/users/Dafyh/gists{/gist_id}", - "starred_url": "https://api.github.com/users/Dafyh/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/Dafyh/subscriptions", - "organizations_url": "https://api.github.com/users/Dafyh/orgs", - "repos_url": "https://api.github.com/users/Dafyh/repos", - "events_url": "https://api.github.com/users/Dafyh/events{/privacy}", - "received_events_url": "https://api.github.com/users/Dafyh/received_events", - "type": "contributor", - "user_view_type": "public", - "site_admin": false, - "contributions": 1 + "avatar_url": "https://avatars.githubusercontent.com/u/47780300?v=4", + "contributions": 2, + "type": "contributor" }, { - "login": "Yaziidev", - "id": 156483754, - "node_id": "U_kgDOCVPAqg", - "avatar_url": "https://avatars.githubusercontent.com/u/156483754?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/Yaziidev", - "html_url": "https://github.com/Yaziidev", - "followers_url": "https://api.github.com/users/Yaziidev/followers", - "following_url": "https://api.github.com/users/Yaziidev/following{/other_user}", - "gists_url": "https://api.github.com/users/Yaziidev/gists{/gist_id}", - "starred_url": "https://api.github.com/users/Yaziidev/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/Yaziidev/subscriptions", - "organizations_url": "https://api.github.com/users/Yaziidev/orgs", - "repos_url": "https://api.github.com/users/Yaziidev/repos", - "events_url": "https://api.github.com/users/Yaziidev/events{/privacy}", - "received_events_url": "https://api.github.com/users/Yaziidev/received_events", - "type": "contributor", - "user_view_type": "public", - "site_admin": false, - "contributions": 1 + "login": "kulturman", + "status": "active", + "html_url": "https://github.com/kulturman", + "avatar_url": "https://avatars.githubusercontent.com/u/11850979?v=4", + "contributions": 2, + "type": "contributor" }, { - "login": "intincrab", - "id": 93028153, - "node_id": "U_kgDOBYt_OQ", - "avatar_url": "https://avatars.githubusercontent.com/u/93028153?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/intincrab", - "html_url": "https://github.com/intincrab", - "followers_url": "https://api.github.com/users/intincrab/followers", - "following_url": "https://api.github.com/users/intincrab/following{/other_user}", - "gists_url": "https://api.github.com/users/intincrab/gists{/gist_id}", - "starred_url": "https://api.github.com/users/intincrab/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/intincrab/subscriptions", - "organizations_url": "https://api.github.com/users/intincrab/orgs", - "repos_url": "https://api.github.com/users/intincrab/repos", - "events_url": "https://api.github.com/users/intincrab/events{/privacy}", - "received_events_url": "https://api.github.com/users/intincrab/received_events", - "type": "contributor", - "user_view_type": "public", - "site_admin": false, - "contributions": 4 + "login": "AntonioliBenjamin", + "status": "active", + "html_url": "https://github.com/AntonioliBenjamin", + "avatar_url": "https://avatars.githubusercontent.com/u/111560667?v=4", + "contributions": 2, + "type": "contributor" }, { - "login": "mbalabash", - "id": 16868922, - "node_id": "MDQ6VXNlcjE2ODY4OTIy", - "avatar_url": "https://avatars.githubusercontent.com/u/16868922?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/mbalabash", - "html_url": "https://github.com/mbalabash", - "followers_url": "https://api.github.com/users/mbalabash/followers", - "following_url": "https://api.github.com/users/mbalabash/following{/other_user}", - "gists_url": "https://api.github.com/users/mbalabash/gists{/gist_id}", - "starred_url": "https://api.github.com/users/mbalabash/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/mbalabash/subscriptions", - "organizations_url": "https://api.github.com/users/mbalabash/orgs", - "repos_url": "https://api.github.com/users/mbalabash/repos", - "events_url": "https://api.github.com/users/mbalabash/events{/privacy}", - "received_events_url": "https://api.github.com/users/mbalabash/received_events", - "type": "contributor", - "user_view_type": "public", - "site_admin": false, - "contributions": 2 + "login": "jmpp", + "status": "active", + "html_url": "https://github.com/jmpp", + "avatar_url": "https://avatars.githubusercontent.com/u/1759179?v=4", + "contributions": 2, + "type": "contributor" }, { - "login": "Aekk0", - "id": 110826655, - "node_id": "U_kgDOBpsUnw", - "avatar_url": "https://avatars.githubusercontent.com/u/110826655?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/Aekk0", - "html_url": "https://github.com/Aekk0", - "followers_url": "https://api.github.com/users/Aekk0/followers", - "following_url": "https://api.github.com/users/Aekk0/following{/other_user}", - "gists_url": "https://api.github.com/users/Aekk0/gists{/gist_id}", - "starred_url": "https://api.github.com/users/Aekk0/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/Aekk0/subscriptions", - "organizations_url": "https://api.github.com/users/Aekk0/orgs", - "repos_url": "https://api.github.com/users/Aekk0/repos", - "events_url": "https://api.github.com/users/Aekk0/events{/privacy}", - "received_events_url": "https://api.github.com/users/Aekk0/received_events", - "type": "contributor", - "user_view_type": "public", - "site_admin": false, - "contributions": 2 + "login": "Anne-Flower", + "status": "active", + "html_url": "https://github.com/Anne-Flower", + "avatar_url": "https://avatars.githubusercontent.com/u/139115974?v=4", + "contributions": 2, + "type": "contributor" }, { - "login": "tekeuange23", - "id": 35274201, - "node_id": "MDQ6VXNlcjM1Mjc0MjAx", - "avatar_url": "https://avatars.githubusercontent.com/u/35274201?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/tekeuange23", - "html_url": "https://github.com/tekeuange23", - "followers_url": "https://api.github.com/users/tekeuange23/followers", - "following_url": "https://api.github.com/users/tekeuange23/following{/other_user}", - "gists_url": "https://api.github.com/users/tekeuange23/gists{/gist_id}", - "starred_url": "https://api.github.com/users/tekeuange23/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/tekeuange23/subscriptions", - "organizations_url": "https://api.github.com/users/tekeuange23/orgs", - "repos_url": "https://api.github.com/users/tekeuange23/repos", - "events_url": "https://api.github.com/users/tekeuange23/events{/privacy}", - "received_events_url": "https://api.github.com/users/tekeuange23/received_events", - "type": "contributor", - "user_view_type": "public", - "site_admin": false, - "contributions": 1 + "login": "cskwork", + "status": "active", + "html_url": "https://github.com/cskwork", + "avatar_url": "https://avatars.githubusercontent.com/u/76669236?v=4", + "contributions": 2, + "type": "contributor" }, { - "login": "jean-michelet", - "id": 110341611, - "node_id": "U_kgDOBpOt6w", - "avatar_url": "https://avatars.githubusercontent.com/u/110341611?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/jean-michelet", - "html_url": "https://github.com/jean-michelet", - "followers_url": "https://api.github.com/users/jean-michelet/followers", - "following_url": "https://api.github.com/users/jean-michelet/following{/other_user}", - "gists_url": "https://api.github.com/users/jean-michelet/gists{/gist_id}", - "starred_url": "https://api.github.com/users/jean-michelet/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/jean-michelet/subscriptions", - "organizations_url": "https://api.github.com/users/jean-michelet/orgs", - "repos_url": "https://api.github.com/users/jean-michelet/repos", - "events_url": "https://api.github.com/users/jean-michelet/events{/privacy}", - "received_events_url": "https://api.github.com/users/jean-michelet/received_events", - "type": "contributor", - "user_view_type": "public", - "site_admin": false, - "contributions": 1 + "login": "zlplzp123wyt", + "status": "active", + "html_url": "https://github.com/zlplzp123wyt", + "avatar_url": "https://avatars.githubusercontent.com/u/268106051?v=4", + "contributions": 1, + "type": "contributor" }, { - "login": "codingdestro", - "id": 117741944, - "node_id": "U_kgDOBwSZeA", - "avatar_url": "https://avatars.githubusercontent.com/u/117741944?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/codingdestro", - "html_url": "https://github.com/codingdestro", - "followers_url": "https://api.github.com/users/codingdestro/followers", - "following_url": "https://api.github.com/users/codingdestro/following{/other_user}", - "gists_url": "https://api.github.com/users/codingdestro/gists{/gist_id}", - "starred_url": "https://api.github.com/users/codingdestro/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/codingdestro/subscriptions", - "organizations_url": "https://api.github.com/users/codingdestro/orgs", - "repos_url": "https://api.github.com/users/codingdestro/repos", - "events_url": "https://api.github.com/users/codingdestro/events{/privacy}", - "received_events_url": "https://api.github.com/users/codingdestro/received_events", - "type": "contributor", - "user_view_type": "public", - "site_admin": false, - "contributions": 1 + "login": "abdellah-housni", + "status": "active", + "html_url": "https://github.com/abdellah-housni", + "avatar_url": "https://avatars.githubusercontent.com/u/39569278?v=4", + "contributions": 1, + "type": "contributor" }, { - "login": "Rossb0b", - "id": 39910164, - "node_id": "MDQ6VXNlcjM5OTEwMTY0", - "avatar_url": "https://avatars.githubusercontent.com/u/39910164?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/Rossb0b", - "html_url": "https://github.com/Rossb0b", - "followers_url": "https://api.github.com/users/Rossb0b/followers", - "following_url": "https://api.github.com/users/Rossb0b/following{/other_user}", - "gists_url": "https://api.github.com/users/Rossb0b/gists{/gist_id}", - "starred_url": "https://api.github.com/users/Rossb0b/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/Rossb0b/subscriptions", - "organizations_url": "https://api.github.com/users/Rossb0b/orgs", - "repos_url": "https://api.github.com/users/Rossb0b/repos", - "events_url": "https://api.github.com/users/Rossb0b/events{/privacy}", - "received_events_url": "https://api.github.com/users/Rossb0b/received_events", - "type": "contributor", - "user_view_type": "public", - "site_admin": false, - "contributions": 1 + "login": "zikos2", + "status": "active", + "html_url": "https://github.com/zikos2", + "avatar_url": "https://avatars.githubusercontent.com/u/16059617?v=4", + "contributions": 1, + "type": "contributor" }, { - "login": "Nikhilj007", - "id": 95999420, - "node_id": "U_kgDOBbjVvA", - "avatar_url": "https://avatars.githubusercontent.com/u/95999420?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/Nikhilj007", - "html_url": "https://github.com/Nikhilj007", - "followers_url": "https://api.github.com/users/Nikhilj007/followers", - "following_url": "https://api.github.com/users/Nikhilj007/following{/other_user}", - "gists_url": "https://api.github.com/users/Nikhilj007/gists{/gist_id}", - "starred_url": "https://api.github.com/users/Nikhilj007/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/Nikhilj007/subscriptions", - "organizations_url": "https://api.github.com/users/Nikhilj007/orgs", - "repos_url": "https://api.github.com/users/Nikhilj007/repos", - "events_url": "https://api.github.com/users/Nikhilj007/events{/privacy}", - "received_events_url": "https://api.github.com/users/Nikhilj007/received_events", - "type": "contributor", - "user_view_type": "public", - "site_admin": false, - "contributions": 1 + "login": "olivierodo", + "status": "active", + "html_url": "https://github.com/olivierodo", + "avatar_url": "https://avatars.githubusercontent.com/u/4768226?v=4", + "contributions": 1, + "type": "contributor" }, { - "login": "pmartin-dev", - "id": 45450501, - "node_id": "MDQ6VXNlcjQ1NDUwNTAx", - "avatar_url": "https://avatars.githubusercontent.com/u/45450501?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/pmartin-dev", - "html_url": "https://github.com/pmartin-dev", - "followers_url": "https://api.github.com/users/pmartin-dev/followers", - "following_url": "https://api.github.com/users/pmartin-dev/following{/other_user}", - "gists_url": "https://api.github.com/users/pmartin-dev/gists{/gist_id}", - "starred_url": "https://api.github.com/users/pmartin-dev/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/pmartin-dev/subscriptions", - "organizations_url": "https://api.github.com/users/pmartin-dev/orgs", - "repos_url": "https://api.github.com/users/pmartin-dev/repos", - "events_url": "https://api.github.com/users/pmartin-dev/events{/privacy}", - "received_events_url": "https://api.github.com/users/pmartin-dev/received_events", - "type": "contributor", - "user_view_type": "public", - "site_admin": false, - "contributions": 1 + "login": "kecsou", + "status": "active", + "html_url": "https://github.com/kecsou", + "avatar_url": "https://avatars.githubusercontent.com/u/33313541?v=4", + "contributions": 1, + "type": "contributor" }, { - "login": "Max2810", - "id": 53535185, - "node_id": "MDQ6VXNlcjUzNTM1MTg1", - "avatar_url": "https://avatars.githubusercontent.com/u/53535185?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/Max2810", - "html_url": "https://github.com/Max2810", - "followers_url": "https://api.github.com/users/Max2810/followers", - "following_url": "https://api.github.com/users/Max2810/following{/other_user}", - "gists_url": "https://api.github.com/users/Max2810/gists{/gist_id}", - "starred_url": "https://api.github.com/users/Max2810/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/Max2810/subscriptions", - "organizations_url": "https://api.github.com/users/Max2810/orgs", - "repos_url": "https://api.github.com/users/Max2810/repos", - "events_url": "https://api.github.com/users/Max2810/events{/privacy}", - "received_events_url": "https://api.github.com/users/Max2810/received_events", - "type": "contributor", - "user_view_type": "public", - "site_admin": false, - "contributions": 10 + "login": "Ineslujan", + "status": "active", + "html_url": "https://github.com/Ineslujan", + "avatar_url": "https://avatars.githubusercontent.com/u/65076833?v=4", + "contributions": 1, + "type": "contributor" }, { - "login": "jmpp", - "id": 1759179, - "node_id": "MDQ6VXNlcjE3NTkxNzk=", - "avatar_url": "https://avatars.githubusercontent.com/u/1759179?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/jmpp", - "html_url": "https://github.com/jmpp", - "followers_url": "https://api.github.com/users/jmpp/followers", - "following_url": "https://api.github.com/users/jmpp/following{/other_user}", - "gists_url": "https://api.github.com/users/jmpp/gists{/gist_id}", - "starred_url": "https://api.github.com/users/jmpp/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/jmpp/subscriptions", - "organizations_url": "https://api.github.com/users/jmpp/orgs", - "repos_url": "https://api.github.com/users/jmpp/repos", - "events_url": "https://api.github.com/users/jmpp/events{/privacy}", - "received_events_url": "https://api.github.com/users/jmpp/received_events", - "type": "contributor", - "user_view_type": "public", - "site_admin": false, - "contributions": 2 + "login": "franky47", + "status": "active", + "html_url": "https://github.com/franky47", + "avatar_url": "https://avatars.githubusercontent.com/u/1174092?v=4", + "contributions": 1, + "type": "contributor" + }, + { + "login": "foucsi", + "status": "active", + "html_url": "https://github.com/foucsi", + "avatar_url": "https://avatars.githubusercontent.com/u/113919130?v=4", + "contributions": 1, + "type": "contributor" + }, + { + "login": "antoineneff", + "status": "active", + "html_url": "https://github.com/antoineneff", + "avatar_url": "https://avatars.githubusercontent.com/u/9216777?v=4", + "contributions": 1, + "type": "contributor" + }, + { + "login": "Ashish0926", + "status": "active", + "html_url": "https://github.com/Ashish0926", + "avatar_url": "https://avatars.githubusercontent.com/u/55145996?v=4", + "contributions": 1, + "type": "contributor" + }, + { + "login": "Yaziidev", + "status": "active", + "html_url": "https://github.com/Yaziidev", + "avatar_url": "https://avatars.githubusercontent.com/u/156483754?v=4", + "contributions": 1, + "type": "contributor" + }, + { + "login": "codingdestro", + "status": "active", + "html_url": "https://github.com/codingdestro", + "avatar_url": "https://avatars.githubusercontent.com/u/117741944?v=4", + "contributions": 1, + "type": "contributor" + }, + { + "login": "Nikhilj007", + "status": "active", + "html_url": "https://github.com/Nikhilj007", + "avatar_url": "https://avatars.githubusercontent.com/u/95999420?v=4", + "contributions": 1, + "type": "contributor" + }, + { + "login": "pmartin-dev", + "status": "active", + "html_url": "https://github.com/pmartin-dev", + "avatar_url": "https://avatars.githubusercontent.com/u/45450501?v=4", + "contributions": 1, + "type": "contributor" }, { "login": "Nishi46", - "id": 46855953, - "node_id": "MDQ6VXNlcjQ2ODU1OTUz", - "avatar_url": "https://avatars.githubusercontent.com/u/46855953?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/Nishi46", + "status": "active", "html_url": "https://github.com/Nishi46", - "followers_url": "https://api.github.com/users/Nishi46/followers", - "following_url": "https://api.github.com/users/Nishi46/following{/other_user}", - "gists_url": "https://api.github.com/users/Nishi46/gists{/gist_id}", - "starred_url": "https://api.github.com/users/Nishi46/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/Nishi46/subscriptions", - "organizations_url": "https://api.github.com/users/Nishi46/orgs", - "repos_url": "https://api.github.com/users/Nishi46/repos", - "events_url": "https://api.github.com/users/Nishi46/events{/privacy}", - "received_events_url": "https://api.github.com/users/Nishi46/received_events", - "type": "contributor", - "user_view_type": "public", - "site_admin": false, - "contributions": 1 + "avatar_url": "https://avatars.githubusercontent.com/u/46855953?v=4", + "contributions": 1, + "type": "contributor" }, { "login": "lilleeleex", - "id": 55240847, - "node_id": "MDQ6VXNlcjU1MjQwODQ3", - "avatar_url": "https://avatars.githubusercontent.com/u/55240847?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/lilleeleex", + "status": "active", "html_url": "https://github.com/lilleeleex", - "followers_url": "https://api.github.com/users/lilleeleex/followers", - "following_url": "https://api.github.com/users/lilleeleex/following{/other_user}", - "gists_url": "https://api.github.com/users/lilleeleex/gists{/gist_id}", - "starred_url": "https://api.github.com/users/lilleeleex/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/lilleeleex/subscriptions", - "organizations_url": "https://api.github.com/users/lilleeleex/orgs", - "repos_url": "https://api.github.com/users/lilleeleex/repos", - "events_url": "https://api.github.com/users/lilleeleex/events{/privacy}", - "received_events_url": "https://api.github.com/users/lilleeleex/received_events", - "type": "contributor", - "user_view_type": "public", - "site_admin": false, - "contributions": 1 + "avatar_url": "https://avatars.githubusercontent.com/u/55240847?v=4", + "contributions": 1, + "type": "contributor" }, { "login": "DavidBouscarle", - "id": 113177140, - "node_id": "U_kgDOBr7yNA", - "avatar_url": "https://avatars.githubusercontent.com/u/113177140?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/DavidBouscarle", + "status": "active", "html_url": "https://github.com/DavidBouscarle", - "followers_url": "https://api.github.com/users/DavidBouscarle/followers", - "following_url": "https://api.github.com/users/DavidBouscarle/following{/other_user}", - "gists_url": "https://api.github.com/users/DavidBouscarle/gists{/gist_id}", - "starred_url": "https://api.github.com/users/DavidBouscarle/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/DavidBouscarle/subscriptions", - "organizations_url": "https://api.github.com/users/DavidBouscarle/orgs", - "repos_url": "https://api.github.com/users/DavidBouscarle/repos", - "events_url": "https://api.github.com/users/DavidBouscarle/events{/privacy}", - "received_events_url": "https://api.github.com/users/DavidBouscarle/received_events", - "type": "contributor", - "user_view_type": "public", - "site_admin": false, - "contributions": 1 + "avatar_url": "https://avatars.githubusercontent.com/u/113177140?v=4", + "contributions": 1, + "type": "contributor" }, { "login": "Ajaypanchal4326", - "id": 128794124, - "node_id": "U_kgDOB60-DA", - "avatar_url": "https://avatars.githubusercontent.com/u/128794124?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/Ajaypanchal4326", + "status": "active", "html_url": "https://github.com/Ajaypanchal4326", - "followers_url": "https://api.github.com/users/Ajaypanchal4326/followers", - "following_url": "https://api.github.com/users/Ajaypanchal4326/following{/other_user}", - "gists_url": "https://api.github.com/users/Ajaypanchal4326/gists{/gist_id}", - "starred_url": "https://api.github.com/users/Ajaypanchal4326/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/Ajaypanchal4326/subscriptions", - "organizations_url": "https://api.github.com/users/Ajaypanchal4326/orgs", - "repos_url": "https://api.github.com/users/Ajaypanchal4326/repos", - "events_url": "https://api.github.com/users/Ajaypanchal4326/events{/privacy}", - "received_events_url": "https://api.github.com/users/Ajaypanchal4326/received_events", - "type": "contributor", - "user_view_type": "public", - "site_admin": false, - "contributions": 1 + "avatar_url": "https://avatars.githubusercontent.com/u/128794124?v=4", + "contributions": 1, + "type": "contributor" }, { - "login": "bashlor", - "id": 39790502, - "node_id": "MDQ6VXNlcjM5NzkwNTAy", - "avatar_url": "https://avatars.githubusercontent.com/u/39790502?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/bashlor", - "html_url": "https://github.com/bashlor", - "followers_url": "https://api.github.com/users/bashlor/followers", - "following_url": "https://api.github.com/users/bashlor/following{/other_user}", - "gists_url": "https://api.github.com/users/bashlor/gists{/gist_id}", - "starred_url": "https://api.github.com/users/bashlor/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/bashlor/subscriptions", - "organizations_url": "https://api.github.com/users/bashlor/orgs", - "repos_url": "https://api.github.com/users/bashlor/repos", - "events_url": "https://api.github.com/users/bashlor/events{/privacy}", - "received_events_url": "https://api.github.com/users/bashlor/received_events", - "type": "contributor", - "user_view_type": "public", - "site_admin": false, - "contributions": 10 + "login": "zxkmm", + "status": "active", + "html_url": "https://github.com/zxkmm", + "avatar_url": "https://avatars.githubusercontent.com/u/24917424?v=4", + "contributions": 1, + "type": "contributor" }, { - "login": "tchapacan", - "id": 28821702, - "node_id": "MDQ6VXNlcjI4ODIxNzAy", - "avatar_url": "https://avatars.githubusercontent.com/u/28821702?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/tchapacan", - "html_url": "https://github.com/tchapacan", - "followers_url": "https://api.github.com/users/tchapacan/followers", - "following_url": "https://api.github.com/users/tchapacan/following{/other_user}", - "gists_url": "https://api.github.com/users/tchapacan/gists{/gist_id}", - "starred_url": "https://api.github.com/users/tchapacan/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/tchapacan/subscriptions", - "organizations_url": "https://api.github.com/users/tchapacan/orgs", - "repos_url": "https://api.github.com/users/tchapacan/repos", - "events_url": "https://api.github.com/users/tchapacan/events{/privacy}", - "received_events_url": "https://api.github.com/users/tchapacan/received_events", - "type": "contributor", - "user_view_type": "public", - "site_admin": false, - "contributions": 3 - }, - { - "login": "fless-lab", - "id": 71844440, - "node_id": "MDQ6VXNlcjcxODQ0NDQw", - "avatar_url": "https://avatars.githubusercontent.com/u/71844440?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/fless-lab", - "html_url": "https://github.com/fless-lab", - "followers_url": "https://api.github.com/users/fless-lab/followers", - "following_url": "https://api.github.com/users/fless-lab/following{/other_user}", - "gists_url": "https://api.github.com/users/fless-lab/gists{/gist_id}", - "starred_url": "https://api.github.com/users/fless-lab/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/fless-lab/subscriptions", - "organizations_url": "https://api.github.com/users/fless-lab/orgs", - "repos_url": "https://api.github.com/users/fless-lab/repos", - "events_url": "https://api.github.com/users/fless-lab/events{/privacy}", - "received_events_url": "https://api.github.com/users/fless-lab/received_events", - "type": "contributor", - "user_view_type": "public", - "site_admin": false, - "contributions": 1 + "login": "milapemi", + "status": "active", + "html_url": "https://github.com/milapemi", + "avatar_url": "https://avatars.githubusercontent.com/u/65869801?v=4", + "contributions": 1, + "type": "contributor" }, { - "login": "mdinaya", - "id": 101329759, - "node_id": "U_kgDOBgorXw", - "avatar_url": "https://avatars.githubusercontent.com/u/101329759?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/mdinaya", - "html_url": "https://github.com/mdinaya", - "followers_url": "https://api.github.com/users/mdinaya/followers", - "following_url": "https://api.github.com/users/mdinaya/following{/other_user}", - "gists_url": "https://api.github.com/users/mdinaya/gists{/gist_id}", - "starred_url": "https://api.github.com/users/mdinaya/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/mdinaya/subscriptions", - "organizations_url": "https://api.github.com/users/mdinaya/orgs", - "repos_url": "https://api.github.com/users/mdinaya/repos", - "events_url": "https://api.github.com/users/mdinaya/events{/privacy}", - "received_events_url": "https://api.github.com/users/mdinaya/received_events", - "type": "contributor", - "user_view_type": "public", - "site_admin": false, - "contributions": 1 + "login": "sairuss7", + "status": "active", + "html_url": "https://github.com/sairuss7", + "avatar_url": "https://avatars.githubusercontent.com/u/87803528?v=4", + "contributions": 1, + "type": "contributor" }, { - "login": "M4gie", - "id": 33150916, - "node_id": "MDQ6VXNlcjMzMTUwOTE2", - "avatar_url": "https://avatars.githubusercontent.com/u/33150916?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/M4gie", - "html_url": "https://github.com/M4gie", - "followers_url": "https://api.github.com/users/M4gie/followers", - "following_url": "https://api.github.com/users/M4gie/following{/other_user}", - "gists_url": "https://api.github.com/users/M4gie/gists{/gist_id}", - "starred_url": "https://api.github.com/users/M4gie/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/M4gie/subscriptions", - "organizations_url": "https://api.github.com/users/M4gie/orgs", - "repos_url": "https://api.github.com/users/M4gie/repos", - "events_url": "https://api.github.com/users/M4gie/events{/privacy}", - "received_events_url": "https://api.github.com/users/M4gie/received_events", - "type": "contributor", - "user_view_type": "public", - "site_admin": false, - "contributions": 1 + "login": "presham", + "status": "active", + "html_url": "https://github.com/presham", + "avatar_url": "https://avatars.githubusercontent.com/u/26865520?v=4", + "contributions": 1, + "type": "contributor" }, { "login": "michaelmior", - "id": 82501, - "node_id": "MDQ6VXNlcjgyNTAx", - "avatar_url": "https://avatars.githubusercontent.com/u/82501?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/michaelmior", + "status": "active", "html_url": "https://github.com/michaelmior", - "followers_url": "https://api.github.com/users/michaelmior/followers", - "following_url": "https://api.github.com/users/michaelmior/following{/other_user}", - "gists_url": "https://api.github.com/users/michaelmior/gists{/gist_id}", - "starred_url": "https://api.github.com/users/michaelmior/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/michaelmior/subscriptions", - "organizations_url": "https://api.github.com/users/michaelmior/orgs", - "repos_url": "https://api.github.com/users/michaelmior/repos", - "events_url": "https://api.github.com/users/michaelmior/events{/privacy}", - "received_events_url": "https://api.github.com/users/michaelmior/received_events", - "type": "contributor", - "user_view_type": "public", - "site_admin": false, - "contributions": 1 - }, - { - "login": "sairuss7", - "id": 87803528, - "node_id": "MDQ6VXNlcjg3ODAzNTI4", - "avatar_url": "https://avatars.githubusercontent.com/u/87803528?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/sairuss7", - "html_url": "https://github.com/sairuss7", - "followers_url": "https://api.github.com/users/sairuss7/followers", - "following_url": "https://api.github.com/users/sairuss7/following{/other_user}", - "gists_url": "https://api.github.com/users/sairuss7/gists{/gist_id}", - "starred_url": "https://api.github.com/users/sairuss7/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/sairuss7/subscriptions", - "organizations_url": "https://api.github.com/users/sairuss7/orgs", - "repos_url": "https://api.github.com/users/sairuss7/repos", - "events_url": "https://api.github.com/users/sairuss7/events{/privacy}", - "received_events_url": "https://api.github.com/users/sairuss7/received_events", - "type": "contributor", - "user_view_type": "public", - "site_admin": false, - "contributions": 1 + "avatar_url": "https://avatars.githubusercontent.com/u/82501?v=4", + "contributions": 1, + "type": "contributor" }, { - "login": "milapemi", - "id": 65869801, - "node_id": "MDQ6VXNlcjY1ODY5ODAx", - "avatar_url": "https://avatars.githubusercontent.com/u/65869801?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/milapemi", - "html_url": "https://github.com/milapemi", - "followers_url": "https://api.github.com/users/milapemi/followers", - "following_url": "https://api.github.com/users/milapemi/following{/other_user}", - "gists_url": "https://api.github.com/users/milapemi/gists{/gist_id}", - "starred_url": "https://api.github.com/users/milapemi/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/milapemi/subscriptions", - "organizations_url": "https://api.github.com/users/milapemi/orgs", - "repos_url": "https://api.github.com/users/milapemi/repos", - "events_url": "https://api.github.com/users/milapemi/events{/privacy}", - "received_events_url": "https://api.github.com/users/milapemi/received_events", - "type": "contributor", - "user_view_type": "public", - "site_admin": false, - "contributions": 1 + "login": "M4gie", + "status": "active", + "html_url": "https://github.com/M4gie", + "avatar_url": "https://avatars.githubusercontent.com/u/33150916?v=4", + "contributions": 1, + "type": "contributor" }, { - "login": "privatenumber", - "id": 1075694, - "node_id": "MDQ6VXNlcjEwNzU2OTQ=", - "avatar_url": "https://avatars.githubusercontent.com/u/1075694?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/privatenumber", - "html_url": "https://github.com/privatenumber", - "followers_url": "https://api.github.com/users/privatenumber/followers", - "following_url": "https://api.github.com/users/privatenumber/following{/other_user}", - "gists_url": "https://api.github.com/users/privatenumber/gists{/gist_id}", - "starred_url": "https://api.github.com/users/privatenumber/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/privatenumber/subscriptions", - "organizations_url": "https://api.github.com/users/privatenumber/orgs", - "repos_url": "https://api.github.com/users/privatenumber/repos", - "events_url": "https://api.github.com/users/privatenumber/events{/privacy}", - "received_events_url": "https://api.github.com/users/privatenumber/received_events", - "type": "contributor", - "user_view_type": "public", - "site_admin": false, - "contributions": 4 + "login": "mdinaya", + "status": "active", + "html_url": "https://github.com/mdinaya", + "avatar_url": "https://avatars.githubusercontent.com/u/101329759?v=4", + "contributions": 1, + "type": "contributor" }, { - "login": "QuentinLpy", - "id": 31780359, - "node_id": "MDQ6VXNlcjMxNzgwMzU5", - "avatar_url": "https://avatars.githubusercontent.com/u/31780359?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/QuentinLpy", - "html_url": "https://github.com/QuentinLpy", - "followers_url": "https://api.github.com/users/QuentinLpy/followers", - "following_url": "https://api.github.com/users/QuentinLpy/following{/other_user}", - "gists_url": "https://api.github.com/users/QuentinLpy/gists{/gist_id}", - "starred_url": "https://api.github.com/users/QuentinLpy/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/QuentinLpy/subscriptions", - "organizations_url": "https://api.github.com/users/QuentinLpy/orgs", - "repos_url": "https://api.github.com/users/QuentinLpy/repos", - "events_url": "https://api.github.com/users/QuentinLpy/events{/privacy}", - "received_events_url": "https://api.github.com/users/QuentinLpy/received_events", - "type": "contributor", - "user_view_type": "public", - "site_admin": false, - "contributions": 3 + "login": "fless-lab", + "status": "active", + "html_url": "https://github.com/fless-lab", + "avatar_url": "https://avatars.githubusercontent.com/u/71844440?v=4", + "contributions": 1, + "type": "contributor" }, { "login": "anas-codx", - "id": 211504408, - "node_id": "U_kgDODJtNGA", - "avatar_url": "https://avatars.githubusercontent.com/u/211504408?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/anas-codx", + "status": "active", "html_url": "https://github.com/anas-codx", - "followers_url": "https://api.github.com/users/anas-codx/followers", - "following_url": "https://api.github.com/users/anas-codx/following{/other_user}", - "gists_url": "https://api.github.com/users/anas-codx/gists{/gist_id}", - "starred_url": "https://api.github.com/users/anas-codx/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/anas-codx/subscriptions", - "organizations_url": "https://api.github.com/users/anas-codx/orgs", - "repos_url": "https://api.github.com/users/anas-codx/repos", - "events_url": "https://api.github.com/users/anas-codx/events{/privacy}", - "received_events_url": "https://api.github.com/users/anas-codx/received_events", - "type": "contributor", - "user_view_type": "public", - "site_admin": false, - "contributions": 1 + "avatar_url": "https://avatars.githubusercontent.com/u/211504408?v=4", + "contributions": 1, + "type": "contributor" }, { "login": "abbesAlexandre", - "id": 34767221, - "node_id": "MDQ6VXNlcjM0NzY3MjIx", - "avatar_url": "https://avatars.githubusercontent.com/u/34767221?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/abbesAlexandre", + "status": "active", "html_url": "https://github.com/abbesAlexandre", - "followers_url": "https://api.github.com/users/abbesAlexandre/followers", - "following_url": "https://api.github.com/users/abbesAlexandre/following{/other_user}", - "gists_url": "https://api.github.com/users/abbesAlexandre/gists{/gist_id}", - "starred_url": "https://api.github.com/users/abbesAlexandre/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/abbesAlexandre/subscriptions", - "organizations_url": "https://api.github.com/users/abbesAlexandre/orgs", - "repos_url": "https://api.github.com/users/abbesAlexandre/repos", - "events_url": "https://api.github.com/users/abbesAlexandre/events{/privacy}", - "received_events_url": "https://api.github.com/users/abbesAlexandre/received_events", - "type": "contributor", - "user_view_type": "public", - "site_admin": false, - "contributions": 1 - }, - { - "login": "Captainfive", - "id": 38983657, - "node_id": "MDQ6VXNlcjM4OTgzNjU3", - "avatar_url": "https://avatars.githubusercontent.com/u/38983657?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/Captainfive", - "html_url": "https://github.com/Captainfive", - "followers_url": "https://api.github.com/users/Captainfive/followers", - "following_url": "https://api.github.com/users/Captainfive/following{/other_user}", - "gists_url": "https://api.github.com/users/Captainfive/gists{/gist_id}", - "starred_url": "https://api.github.com/users/Captainfive/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/Captainfive/subscriptions", - "organizations_url": "https://api.github.com/users/Captainfive/orgs", - "repos_url": "https://api.github.com/users/Captainfive/repos", - "events_url": "https://api.github.com/users/Captainfive/events{/privacy}", - "received_events_url": "https://api.github.com/users/Captainfive/received_events", - "type": "contributor", - "user_view_type": "public", - "site_admin": false, - "contributions": 8 + "avatar_url": "https://avatars.githubusercontent.com/u/34767221?v=4", + "contributions": 1, + "type": "contributor" }, { "login": "MaximeMRF", - "id": 57860498, - "node_id": "MDQ6VXNlcjU3ODYwNDk4", - "avatar_url": "https://avatars.githubusercontent.com/u/57860498?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/MaximeMRF", + "status": "active", "html_url": "https://github.com/MaximeMRF", - "followers_url": "https://api.github.com/users/MaximeMRF/followers", - "following_url": "https://api.github.com/users/MaximeMRF/following{/other_user}", - "gists_url": "https://api.github.com/users/MaximeMRF/gists{/gist_id}", - "starred_url": "https://api.github.com/users/MaximeMRF/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/MaximeMRF/subscriptions", - "organizations_url": "https://api.github.com/users/MaximeMRF/orgs", - "repos_url": "https://api.github.com/users/MaximeMRF/repos", - "events_url": "https://api.github.com/users/MaximeMRF/events{/privacy}", - "received_events_url": "https://api.github.com/users/MaximeMRF/received_events", - "type": "contributor", - "user_view_type": "public", - "site_admin": false, - "contributions": 1 + "avatar_url": "https://avatars.githubusercontent.com/u/57860498?v=4", + "contributions": 1, + "type": "contributor" } ] \ No newline at end of file diff --git a/public/css/index.css b/public/css/index.css index cceaf91..b044973 100644 --- a/public/css/index.css +++ b/public/css/index.css @@ -269,24 +269,37 @@ header>.header-content>.description b { } /* Contributors Section */ -#core-row, -#contributors-row { +.contributors-subheading { + text-align: center; + font-size: 0.9rem; + font-weight: 700; + letter-spacing: 0.14em; + text-transform: uppercase; + color: rgba(255, 255, 255, 0.55); + margin: 3.5rem 0 1.5rem; +} + +.contributors-subheading:first-of-type { + margin-top: 0; +} + +#core-row { display: flex; justify-content: center; gap: 2.5rem; flex-wrap: wrap; - margin: 2.5rem 0; + margin: 1rem 0 2rem; } -.core-avatar, -.contributor-avatar { - text-align: center; +.core-avatar { + position: relative; + display: block; } /* Core Contributors - Enhanced Style */ .core-avatar img { - width: 120px; - height: 120px; + width: 110px; + height: 110px; border-radius: 50%; border: 4px solid var(--secondary); box-shadow: @@ -298,7 +311,8 @@ header>.header-content>.description b { object-fit: cover; } -.core-avatar img:hover { +.core-avatar:hover img, +.core-avatar:focus-visible img { transform: scale(1.07); box-shadow: 0 0 0 8px #00d1ff88, @@ -306,45 +320,110 @@ header>.header-content>.description b { 0 0 64px 16px #3722af55; } -.core-name { - margin-top: 0.7rem; - font-weight: 700; - color: #fff; - font-size: 1.3rem; - text-shadow: 0 2px 12px #00d1ff55; - letter-spacing: 1px; +/* Emeritus Contributors - Muted, mid-sized */ +#emiritus-row { + display: flex; + justify-content: center; + gap: 1.25rem; + flex-wrap: wrap; + margin: 1rem 0 2rem; +} + +.emeritus-avatar { + position: relative; + display: block; +} + +.emeritus-avatar img { + width: 64px; + height: 64px; + border-radius: 50%; + border: 3px solid rgba(0, 209, 255, 0.25); + background: linear-gradient(120deg, #261877 0%, #3722af 100%); + object-fit: cover; + filter: grayscale(65%); + opacity: 0.7; + transition: transform 0.3s, box-shadow 0.3s, filter 0.3s, opacity 0.3s, border-color 0.3s; +} + +.emeritus-avatar:hover img, +.emeritus-avatar:focus-visible img { + transform: scale(1.07); + filter: grayscale(0%); + opacity: 1; + border-color: var(--secondary); + box-shadow: 0 0 20px 6px #00d1ff44; +} + +/* Contributors - Compact Pack Style */ +#contributors-row { + display: flex; + flex-wrap: wrap; + justify-content: center; + gap: 0.55rem; + max-width: 760px; + margin: 0.5rem auto 2.5rem; +} + +.contributor-avatar { + position: relative; + display: block; + line-height: 0; } -/* Contributors - Enhanced Style */ .contributor-avatar img { - width: 70px; - height: 70px; + width: 36px; + height: 36px; border-radius: 50%; - border: 3px solid var(--secondary); - box-shadow: - 0 0 0 4px rgba(0, 209, 255, 0.12), - 0 0 12px 4px #00d1ff33, - 0 0 24px 4px #3722af22; - transition: transform 0.3s, box-shadow 0.3s; - background: linear-gradient(120deg, #261877 0%, #3722AF 100%); + border: 2px solid rgba(0, 209, 255, 0.3); + background: linear-gradient(120deg, #261877 0%, #3722af 100%); object-fit: cover; + transition: transform 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease; } -.contributor-avatar img:hover { - transform: scale(1.08); - box-shadow: - 0 0 0 6px #00d1ff66, - 0 0 24px 8px #00d1ff44, - 0 0 48px 8px #3722af33; +.contributor-avatar:hover, +.contributor-avatar:focus-visible { + z-index: 2; } -.contributor-name { - margin-top: 0.4rem; - font-weight: 600; +.contributor-avatar:hover img, +.contributor-avatar:focus-visible img { + transform: scale(1.35); + border-color: #00d1ff; + box-shadow: 0 0 16px 4px #00d1ff66; +} + +/* Shared name tooltip, shown on hover/focus for core and pack avatars */ +.core-avatar::after, +.emeritus-avatar::after, +.contributor-avatar::after { + content: attr(data-tooltip); + position: absolute; + bottom: calc(100% + 10px); + left: 50%; + transform: translateX(-50%) translateY(4px); + white-space: nowrap; + background: #0b0630; color: #fff; - font-size: 1.05rem; - text-shadow: 0 2px 8px #00d1ff33; - letter-spacing: 0.5px; + font-size: 0.75rem; + font-weight: 600; + padding: 0.3rem 0.65rem; + border-radius: 6px; + border: 1px solid rgba(0, 209, 255, 0.4); + opacity: 0; + pointer-events: none; + transition: opacity 0.15s ease, transform 0.15s ease; + z-index: 3; +} + +.core-avatar:hover::after, +.core-avatar:focus-visible::after, +.emeritus-avatar:hover::after, +.emeritus-avatar:focus-visible::after, +.contributor-avatar:hover::after, +.contributor-avatar:focus-visible::after { + opacity: 1; + transform: translateX(-50%) translateY(0); } /* Contribute Section */ diff --git a/public/scripts/hydrate-contributors.js b/public/scripts/hydrate-contributors.js new file mode 100644 index 0000000..5f55427 --- /dev/null +++ b/public/scripts/hydrate-contributors.js @@ -0,0 +1,56 @@ +async function hydrateContributors() { + const coreRow = document.getElementById("core-row"); + const commitersRow = document.getElementById("contributors-row"); + const emiritusRow = document.getElementById("emiritus-row"); + + const response = await fetch("/contributors.json"); + + if (!response.ok) { + throw new Error(`Error while fetching contributors list: ${response.status}`); + } + + const contributors = await response.json(); + + for (const contributor of contributors) { + const contributorHTMLElement = createContributor(contributor); + + if ( + contributor.type === "core" || + contributor.type === "committer" + ) { + if (contributor.status === "inactive") { + contributorHTMLElement.className = "emeritus-avatar"; + emiritusRow.appendChild(contributorHTMLElement); + } + else { + contributorHTMLElement.className = "core-avatar"; + coreRow.appendChild(contributorHTMLElement); + } + } + else { + contributorHTMLElement.className = "contributor-avatar"; + commitersRow.appendChild(contributorHTMLElement); + } + } +} + +function createContributor(data) { + const cLink = document.createElement("a"); + + cLink.href = data.html_url; + cLink.target = "_blank"; + cLink.rel = "noopener"; + cLink.dataset.tooltip = data.login; + cLink.setAttribute("aria-label", data.login); + + const img = document.createElement("img"); + img.src = data.avatar_url; + img.alt = ""; + img.loading = "lazy"; + + cLink.appendChild(img); + + return cLink; +} + +hydrateContributors().catch(console.error); diff --git a/src/particules.js b/public/scripts/particules.js similarity index 100% rename from src/particules.js rename to public/scripts/particules.js diff --git a/scripts/generate-contributors.js b/scripts/generate-contributors.js deleted file mode 100644 index 70076c8..0000000 --- a/scripts/generate-contributors.js +++ /dev/null @@ -1,95 +0,0 @@ -// Import Node.js Dependencies -import { writeFile } from "node:fs/promises"; -import { loadEnvFile } from "node:process"; -import path from "node:path"; -loadEnvFile(); - -async function generateContributors() { - const contributors = await getContributors(); - const filepath = path.join( - import.meta.dirname, - "..", - "public", - "contributors.json" - ); - const payload = JSON.stringify(contributors, null, 2); - - await writeFile(filepath, payload); -} - -const bots = [ - "dependabot[bot]", - "allcontributors[bot]", - "snyk-bot", - "step-security-bot", - "github-actions[bot]", - "greenkeeper[bot]" -]; - -const repositories = [ - "cli", - "vulnera", - "ci", - "scanner", - "report", - "js-x-ray", - "npm-registry-sdk", - "ossf-scorecard-sdk", - "github", - "gitlab", - "flags" -]; - -async function getRepositoryContributors(repository) { - const headers = {}; - // GITHUB_TOKEN is not necessary to make request to /contributors - // but the rate limits for calls without auth is very low. - if (process.env.GITHUB_TOKEN) { - headers.Authorization = `Bearer ${process.env.GITHUB_TOKEN}`; - } - - const response = await fetch( - `https://api.github.com/repos/NodeSecure/${repository}/contributors`, - { - headers - } - ); - - return response.json(); -} - -async function getCoreContributors() { - const responseCore = await fetch("https://raw.githubusercontent.com/NodeSecure/Governance/main/contributors.json"); - const responseCoreContributors = await responseCore.json(); - const coreContributors = responseCoreContributors.core.map((contributor) => contributor.github); - - return coreContributors; -} - -async function getContributors() { - const allContributors = await Promise.all( - repositories.map((repository) => getRepositoryContributors(repository)) - ); - const contributors = allContributors.flat(); - - const uniqueContributors = new Map(); - - const coreContributors = await getCoreContributors(); - - for (const contributor of contributors) { - if (bots.includes(contributor.login) || uniqueContributors.has(contributor.login)) { - continue; - } - - if (coreContributors.includes(contributor.login)) { - contributor.type = "core"; - } - else { - contributor.type = "contributor"; - } - uniqueContributors.set(contributor.login, contributor); - } - - return Array.from(uniqueContributors.values()); -} -await generateContributors(); diff --git a/scripts/generate-contributors.ts b/scripts/generate-contributors.ts new file mode 100644 index 0000000..ab0b740 --- /dev/null +++ b/scripts/generate-contributors.ts @@ -0,0 +1,126 @@ +// Import Node.js Dependencies +import { writeFile } from "node:fs/promises"; +import path from "node:path"; + +// Import Third-party Dependencies +import { GithubClient } from "@openally/github.sdk"; + +const github = new GithubClient({ + token: process.env.GITHUB_TOKEN +}); + +const bots = [ + "dependabot[bot]", + "allcontributors[bot]", + "snyk-bot", + "step-security-bot", + "github-actions[bot]", + "greenkeeper[bot]" +]; + +const repositories = [ + "cli", + "vulnera", + "ci", + "scanner", + "report", + "js-x-ray", + "npm-registry-sdk", + "ossf-scorecard-sdk", + "github", + "gitlab", + "flags" +]; + +const contributors = await Array.fromAsync(getContributors()); +await writeFile( + path.join( + import.meta.dirname, "..", "public", "contributors.json" + ), + JSON.stringify(contributors, null, 2) +); + +interface GovernanceContributor { + name: string; + status: "active" | "inactive"; + github: string; + company: { + name: string; + title: string; + }; + links: { + linkedin?: string; + x?: string; + }; +} + +interface Contributor { + login: string; + status: "active" | "inactive"; + html_url?: string; + avatar_url?: string; + contributions: number; +} + +interface ExtendedContributor extends Contributor { + type: "core" | "contributor" | "committer"; +} + +async function* getContributors(): AsyncIterableIterator { + const flattenedContributors = await fetchRemoteContributors(); + + const governanceRawFile = await github.fetchRawFile("NodeSecure/Governance", "contributors.json"); + const governanceData = JSON.parse(governanceRawFile) as { + core: GovernanceContributor[]; + committers: GovernanceContributor[]; + }; + + const coreContributorLogins = new Map([ + ...governanceData.core.map( + (contributor) => [contributor.github, { type: "core", status: contributor.status }] as const + ), + ...governanceData.committers.map( + (contributor) => [contributor.github, { type: "committer", status: contributor.status }] as const + ) + ]); + + for (const contributor of flattenedContributors) { + const { type, status } = coreContributorLogins.get(contributor.login) || { + type: "contributor", + status: "active" + }; + + yield { ...contributor, type, status }; + } +} + +async function fetchRemoteContributors(): Promise { + const flattenedContributors = (await Promise.all( + repositories.map((repository) => github.repos.NodeSecure[repository].contributors()) + )).flat(); + + const uniqueContributors = new Map(); + + for (const contributor of flattenedContributors) { + if (!contributor.login || bots.includes(contributor.login)) { + continue; + } + + if (uniqueContributors.has(contributor.login)) { + const existingContributor = uniqueContributors.get(contributor.login)!; + existingContributor.contributions += contributor.contributions; + } + else { + uniqueContributors.set(contributor.login, { + login: contributor.login, + status: "active", + html_url: contributor.html_url, + avatar_url: contributor.avatar_url, + contributions: contributor.contributions + }); + } + } + + return Array.from(uniqueContributors.values()) + .sort((left, right) => right.contributions - left.contributions); +} diff --git a/src/hydrate-contributors.js b/src/hydrate-contributors.js deleted file mode 100644 index eff19df..0000000 --- a/src/hydrate-contributors.js +++ /dev/null @@ -1,49 +0,0 @@ -async function hydrateContributors() { - const coreRow = document.getElementById("core-row"); - const commitersRow = document.getElementById("contributors-row"); - - const response = await fetch("/contributors.json"); - - if (!response.ok) { - throw new Error(`Error while fetching contributors list: ${response.status}`); - } - - const contributors = await response.json(); - - for (const contributor of contributors) { - if (contributor.type === "core") { - const contributorElement = createContributorElement( - contributor, - "core" - ); - coreRow.appendChild(contributorElement); - } - else { - const contributorElement = createContributorElement(contributor); - commitersRow.appendChild(contributorElement); - } - } -} - -function createContributorElement(data, type = "contributor") { - const cLink = document.createElement("a"); - - cLink.href = data.html_url; - cLink.target = "_blank"; - cLink.className = `${type}-avatar`; - - const img = document.createElement("img"); - img.src = `${data.avatar_url}`; - img.alt = data.login; - - const nameDiv = document.createElement("div"); - nameDiv.className = `${type}-name`; - nameDiv.textContent = data.login; - - cLink.appendChild(img); - cLink.appendChild(nameDiv); - - return cLink; -} - -hydrateContributors(); diff --git a/plugins/zupTransformer.js b/src/zupTransformer.ts similarity index 71% rename from plugins/zupTransformer.js rename to src/zupTransformer.ts index 9cee045..e9bdd2f 100644 --- a/plugins/zupTransformer.js +++ b/src/zupTransformer.ts @@ -1,21 +1,17 @@ -/* eslint-disable consistent-return */ // Import Node.js Dependencies import path from "node:path"; // Import Third-party Dependencies import compile from "zup"; +import type { TransformResult } from "vite"; export default function zupTransformer( - data = {} + data: Record = {} ) { return { name: "zup-transformer", - /** - * @param {!string} src - * @param {!string} id - */ - transform(src, id) { + transform(src: string, id: string): TransformResult | undefined { if ( path.extname(id) === ".html" && path.basename(id) === "index.html" @@ -25,6 +21,8 @@ export default function zupTransformer( map: null }; } + + return void 0; } }; } diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..4904c21 --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,15 @@ +{ + "extends": "@openally/config.typescript/esm-ts-next", + "compilerOptions": { + "outDir": "dist", + "types": ["node"] + }, + "include": [ + "src", + "scripts" + ], + "exclude": [ + "node_modules", + "dist" + ] +} diff --git a/vite.config.js b/vite.config.ts similarity index 75% rename from vite.config.js rename to vite.config.ts index 1230797..ac037a5 100644 --- a/vite.config.js +++ b/vite.config.ts @@ -2,7 +2,7 @@ import { defineConfig } from "vite"; // Import Internal Dependencies -import zupTransformer from "./plugins/zupTransformer.js"; +import zupTransformer from "./src/zupTransformer.ts"; export default defineConfig({ plugins: [