From c1ce71563a0a7b7531cb9eb7c7b0f09ab6c5715e Mon Sep 17 00:00:00 2001 From: Brian Cantoni Date: Thu, 25 Jun 2026 19:12:14 -0700 Subject: [PATCH 1/2] Update repo list and counts --- js/github_repos.json | 602 +++++++++++-------------------------------- 1 file changed, 148 insertions(+), 454 deletions(-) diff --git a/js/github_repos.json b/js/github_repos.json index 8e80958..995217e 100644 --- a/js/github_repos.json +++ b/js/github_repos.json @@ -4,611 +4,305 @@ "name": "TabPy", "html_url": "https://github.com/tableau/TabPy", "description": "Execute Python code on the fly and display results in Tableau visualizations:", - "stargazers_count": 1492, + "stargazers_count": 1652, "language": "Python", - "forks_count": 575 - }, - { - "id": 44130110, - "name": "webdataconnector", - "html_url": "https://github.com/tableau/webdataconnector", - "description": "Bring the data you care about into Tableau", - "stargazers_count": 663, - "language": "HTML", - "forks_count": 582 + "forks_count": 611 }, { "id": 62177327, "name": "server-client-python", "html_url": "https://github.com/tableau/server-client-python", "description": "A Python library for the Tableau Server REST API", - "stargazers_count": 627, + "stargazers_count": 711, "language": "Python", - "forks_count": 411 + "forks_count": 444 }, { "id": 63379610, "name": "rest-api-samples", "html_url": "https://github.com/tableau/rest-api-samples", "description": "Samples for the Tableau REST API", - "stargazers_count": 363, + "stargazers_count": 434, "language": "Python", - "forks_count": 263 + "forks_count": 282 }, { "id": 58406499, "name": "document-api-python", "html_url": "https://github.com/tableau/document-api-python", - "description": "Create and modify Tableau workbook and datasource files", - "stargazers_count": 314, + "description": "Create and modify Tableau workbook and datasource files via this Python library.", + "stargazers_count": 360, "language": "Python", - "forks_count": 171 + "forks_count": 181 + }, + { + "id": 976821922, + "name": "tableau-mcp", + "html_url": "https://github.com/tableau/tableau-mcp", + "description": "Tableau's official MCP Server. Helping Agents see and understand data.", + "stargazers_count": 296, + "language": "TypeScript", + "forks_count": 120 }, { "id": 94232596, "name": "extensions-api", "html_url": "https://github.com/tableau/extensions-api", "description": "Extensions API sample code and developer docs.", - "stargazers_count": 262, + "stargazers_count": 288, "language": "JavaScript", - "forks_count": 243 - }, - { - "id": 44121856, - "name": "VizAlerts", - "html_url": "https://github.com/tableau/VizAlerts", - "description": "Data-driven alerting for Tableau Server", - "stargazers_count": 202, - "language": "Python", - "forks_count": 93 + "forks_count": 267 }, { "id": 68328227, "name": "tableau-log-viewer", "html_url": "https://github.com/tableau/tableau-log-viewer", "description": "Tableau Log Viewer is a cross-platform tool for quickly glancing over Tableau log files", - "stargazers_count": 163, + "stargazers_count": 176, "language": "C++", - "forks_count": 48 + "forks_count": 52 }, { "id": 259777710, "name": "hyper-api-samples", "html_url": "https://github.com/tableau/hyper-api-samples", "description": "Sample code to get started with the Hyper API.", - "stargazers_count": 125, + "stargazers_count": 154, "language": "Python", - "forks_count": 71 - }, - { - "id": 45431356, - "name": "TabMigrate", - "html_url": "https://github.com/tableau/TabMigrate", - "description": "A lightweight tool for moving Tableau content between multiple Tableau Server environments", - "stargazers_count": 119, - "language": "C#", - "forks_count": 61 + "forks_count": 79 }, { "id": 216885377, "name": "community-tableau-server-insights", "html_url": "https://github.com/tableau/community-tableau-server-insights", "description": "Community-built data sources for answering questions about Tableau Server", - "stargazers_count": 118, + "stargazers_count": 147, "language": "Python", - "forks_count": 51 + "forks_count": 54 }, { "id": 68472123, "name": "Logshark", "html_url": "https://github.com/tableau/Logshark", "description": "A Tableau log file analysis utility", - "stargazers_count": 110, + "stargazers_count": 120, "language": "C#", - "forks_count": 48 + "forks_count": 49 }, { - "id": 43568654, - "name": "TabMon", - "html_url": "https://github.com/tableau/TabMon", - "description": "A Tableau Server performance monitoring service", - "stargazers_count": 108, - "language": "C#", - "forks_count": 50 + "id": 153317374, + "name": "connector-plugin-sdk", + "html_url": "https://github.com/tableau/connector-plugin-sdk", + "description": "SDK for Developing Tableau Connector Plugins", + "stargazers_count": 114, + "language": "Python", + "forks_count": 108 }, { "id": 33335770, "name": "tabjolt", "html_url": "https://github.com/tableau/tabjolt", "description": "Load generator for Tableau Server", - "stargazers_count": 104, + "stargazers_count": 109, "language": null, - "forks_count": 55 + "forks_count": 52 }, { - "id": 153317374, - "name": "connector-plugin-sdk", - "html_url": "https://github.com/tableau/connector-plugin-sdk", - "description": "SDK for Developing Tableau Connector Plugins", - "stargazers_count": 101, - "language": "Python", - "forks_count": 105 + "id": 71926459, + "name": "query-graphs", + "html_url": "https://github.com/tableau/query-graphs", + "description": "A visualizer for queries - Hyper, Postgres, Tableau", + "stargazers_count": 104, + "language": "TypeScript", + "forks_count": 28 }, { "id": 146358528, "name": "tableau-ui", "html_url": "https://github.com/tableau/tableau-ui", "description": "React UI components that have the look-and-feel of Tableau.", - "stargazers_count": 93, + "stargazers_count": 102, "language": "CSS", "forks_count": 28 }, { - "id": 164955240, - "name": "ts-checked-fsm", - "html_url": "https://github.com/tableau/ts-checked-fsm", - "description": "TypeScript library providing compile-time checking for state machine transitions", - "stargazers_count": 92, - "language": "TypeScript", - "forks_count": 14 - }, - { - "id": 71926459, - "name": "query-graphs", - "html_url": "https://github.com/tableau/query-graphs", - "description": "A visualizer for queries - Hyper, Postgres, Tableau", - "stargazers_count": 82, - "language": "TypeScript", - "forks_count": 27 - }, - { - "id": 212153766, - "name": "altimeter", - "html_url": "https://github.com/tableau/altimeter", - "description": "Graph AWS resources in Neptune", - "stargazers_count": 74, + "id": 826014175, + "name": "tableau_langchain", + "html_url": "https://github.com/tableau/tableau_langchain", + "description": "Tableau tools for Agentic use cases with Langchain & Langgraph. Enfuse agents with updated data so they make better informed decisions that scale with your analytics practice", + "stargazers_count": 79, "language": "Python", - "forks_count": 24 - }, - { - "id": 202216870, - "name": "metadata-api-samples", - "html_url": "https://github.com/tableau/metadata-api-samples", - "description": "This repo holds samples using the Tableau Metadata API with Tableau Server or Tableau Online. ", - "stargazers_count": 62, - "language": null, - "forks_count": 23 + "forks_count": 31 }, { "id": 87847692, "name": "embedding-playbook", "html_url": "https://github.com/tableau/embedding-playbook", "description": "You want to embed your Tableau content in lots of places. Start here.", - "stargazers_count": 56, - "language": "CSS", - "forks_count": 26 - }, - { - "id": 274250417, - "name": "tabcmd", - "html_url": "https://github.com/tableau/tabcmd", - "description": "A Python based app that replicates the functionality of the existing TabCMD command line utility", - "stargazers_count": 40, - "language": "Python", - "forks_count": 11 + "stargazers_count": 64, + "language": "HTML", + "forks_count": 24 }, { - "id": 340534977, - "name": "tableau-server-in-kubernetes", - "html_url": "https://github.com/tableau/tableau-server-in-kubernetes", - "description": "Examples and documentation on how to run Tableau Server in a Container within a Kubernetes environment.", - "stargazers_count": 38, - "language": null, - "forks_count": 17 + "id": 538637478, + "name": "embedding-api-v3-samples", + "html_url": "https://github.com/tableau/embedding-api-v3-samples", + "description": "Samples for the Tableau Embedding API V3.", + "stargazers_count": 55, + "language": "TypeScript", + "forks_count": 25 }, { "id": 206420272, "name": "tableau-data-dictionary", "html_url": "https://github.com/tableau/tableau-data-dictionary", "description": "This data dictionary provides information about the tables and views in the \"workgroup\" PostgreSQL database of the Tableau Server repository.", - "stargazers_count": 37, + "stargazers_count": 53, "language": "HTML", "forks_count": 27 }, { - "id": 185278619, - "name": "react-native-dns-lookup", - "html_url": "https://github.com/tableau/react-native-dns-lookup", - "description": "A React Native module that leverages iOS and Android native networking libraries to lookup all of the IP addresses associated with a hostname", - "stargazers_count": 29, - "language": "Objective-C", - "forks_count": 11 - }, - { - "id": 538637478, - "name": "embedding-api-v3-samples", - "html_url": "https://github.com/tableau/embedding-api-v3-samples", - "description": "Samples for the Tableau Embedding API V3.", - "stargazers_count": 27, - "language": "HTML", - "forks_count": 11 + "id": 274250417, + "name": "tabcmd", + "html_url": "https://github.com/tableau/tabcmd", + "description": "A Python based app that replicates the functionality of the existing TabCMD command line utility", + "stargazers_count": 52, + "language": "Python", + "forks_count": 15 }, { - "id": 366523339, - "name": "embedding-api-v3-guide", - "html_url": "https://github.com/tableau/embedding-api-v3-guide", - "description": "migration guide for moving to embedding api v3", - "stargazers_count": 26, + "id": 340534977, + "name": "tableau-server-in-kubernetes", + "html_url": "https://github.com/tableau/tableau-server-in-kubernetes", + "description": "Examples and documentation on how to run Tableau Server in a Container within a Kubernetes environment.", + "stargazers_count": 46, "language": null, - "forks_count": 9 - }, - { - "id": 146039638, - "name": "mobile-app-bootstrap-react-native", - "html_url": "https://github.com/tableau/mobile-app-bootstrap-react-native", - "description": "A React Native template for creating iOS and Android apps that embed Tableau vizzes", - "stargazers_count": 22, - "language": "JavaScript", - "forks_count": 23 + "forks_count": 14 }, { - "id": 155603580, - "name": "tableau-docker-samples", - "html_url": "https://github.com/tableau/tableau-docker-samples", - "description": "Samples for Dockers for Tableau Server/Online clients", - "stargazers_count": 21, + "id": 1082058155, + "name": "tableau-document-schemas", + "html_url": "https://github.com/tableau/tableau-document-schemas", + "description": null, + "stargazers_count": 37, "language": null, - "forks_count": 8 + "forks_count": 2 }, { - "id": 251735558, - "name": "npm-pack-here", - "html_url": "https://github.com/tableau/npm-pack-here", - "description": "An alternative to the Yarn link and NPM link workflows, this tool packs a local NPM project and puts the packed contents into the given destination directories.", - "stargazers_count": 19, + "id": 604635748, + "name": "hyper-db", + "html_url": "https://github.com/tableau/hyper-db", + "description": "Documentation for Hyper, the blazingly fast SQL engine powering analytics at Tableau and Salesforce", + "stargazers_count": 34, "language": "TypeScript", - "forks_count": 4 - }, - { - "id": 142489303, - "name": "extension-data-driven-parameters", - "html_url": "https://github.com/tableau/extension-data-driven-parameters", - "description": "Automatically update your parameters based on your data!", - "stargazers_count": 18, - "language": "JavaScript", - "forks_count": 18 - }, - { - "id": 171925246, - "name": "datadev-hackathon", - "html_url": "https://github.com/tableau/datadev-hackathon", - "description": "Resources and materials for Tableau #DataDev hackathons.", - "stargazers_count": 17, - "language": null, - "forks_count": 12 - }, - { - "id": 237073877, - "name": "analytics-extensions-api", - "html_url": "https://github.com/tableau/analytics-extensions-api", - "description": "Extend Tableau to dynamically include popular data science programming languages and external tools and platforms.", - "stargazers_count": 17, - "language": "HTML", - "forks_count": 5 + "forks_count": 16 }, { "id": 411330056, "name": "tableau-postman", "html_url": "https://github.com/tableau/tableau-postman", "description": "This repo is for the Tableau REST API Postman collection hosted in the Salesforce Developers Postman workspace. Use the collection to call your Tableau Server or Tableau Cloud site for demonstrations, learning, development & testing of any method in the API. ", - "stargazers_count": 14, + "stargazers_count": 30, "language": null, - "forks_count": 14 - }, - { - "id": 227478360, - "name": "Visualization-Linting", - "html_url": "https://github.com/tableau/Visualization-Linting", - "description": "Code associated with a research project for experimenting with different ways of surfacing stylistic, analytic, or visual discrepancies in visualizations.", - "stargazers_count": 13, - "language": "JavaScript", - "forks_count": 5 - }, - { - "id": 246634708, - "name": "octopus-python-client", - "html_url": "https://github.com/tableau/octopus-python-client", - "description": "Python script and a GUI to manage Octopus deploy servers through the Octopus Restful APIs", - "stargazers_count": 12, - "language": "Python", - "forks_count": 7 - }, - { - "id": 604635748, - "name": "hyper-db", - "html_url": "https://github.com/tableau/hyper-db", - "description": "Documentation for Hyper, the blazingly fast SQL engine powering analytics at Tableau and Salesforce", - "stargazers_count": 12, - "language": "TypeScript", - "forks_count": 9 - }, - { - "id": 143330651, - "name": "tab-compare", - "html_url": "https://github.com/tableau/tab-compare", - "description": "TabCompare is a visual comparison tool to understand differences in dashboards across different versions of Tableau.", - "stargazers_count": 11, - "language": "Python", - "forks_count": 7 - }, - { - "id": 288580152, - "name": "TabProvision", - "html_url": "https://github.com/tableau/TabProvision", - "description": "TabProvision is a flexible tool for automating user/role/groups provisioning in Tableau Cloud", - "stargazers_count": 11, - "language": "C#", - "forks_count": 6 - }, - { - "id": 49598553, - "name": "tableau.github.io", - "html_url": "https://github.com/tableau/tableau.github.io", - "description": "Contains the content for Tableau's OSS contribution guidelines", - "stargazers_count": 10, - "language": "HTML", - "forks_count": 13 + "forks_count": 28 }, { "id": 745152357, "name": "tableau-migration-sdk", "html_url": "https://github.com/tableau/tableau-migration-sdk", "description": "An SDK for building your own application to migrate to a new Tableau environment.", - "stargazers_count": 9, + "stargazers_count": 26, "language": "C#", - "forks_count": 3 - }, - { - "id": 142509244, - "name": "extension-date-updater", - "html_url": "https://github.com/tableau/extension-date-updater", - "description": "Automatically update your date parameters to today's date.", - "stargazers_count": 8, - "language": "TypeScript", - "forks_count": 16 - }, - { - "id": 223289137, - "name": "discover-pane-template", - "html_url": "https://github.com/tableau/discover-pane-template", - "description": "Template for customizing the Tableau Desktop Discover Pane", - "stargazers_count": 8, - "language": "HTML", - "forks_count": 5 - }, - { - "id": 142509314, - "name": "extension-filter-bookmarks", - "html_url": "https://github.com/tableau/extension-filter-bookmarks", - "description": "Instantly revert your dashboards to predefined filter settings.", - "stargazers_count": 6, - "language": "JavaScript", "forks_count": 10 }, { - "id": 148382026, - "name": "extension-parameter-actions", - "html_url": "https://github.com/tableau/extension-parameter-actions", - "description": "A Tableau extension that allows you to update parameter values from worksheet selections.", - "stargazers_count": 6, - "language": "JavaScript", - "forks_count": 6 - }, - { - "id": 227863204, - "name": "extension-hierarchy-navigator-sandboxed", - "html_url": "https://github.com/tableau/extension-hierarchy-navigator-sandboxed", - "description": "Visualize your flat/dimensional or recursive data in a Tree/Hierarchy Extension an a Tableau Dashboard", - "stargazers_count": 6, - "language": "JavaScript", - "forks_count": 7 - }, - { - "id": 143932317, - "name": "redux-saga-observer", - "html_url": "https://github.com/tableau/redux-saga-observer", - "description": "a library that provides observer patterns to redux-sagas, allowing powerful abstractions", - "stargazers_count": 5, - "language": "TypeScript", - "forks_count": 5 - }, - { - "id": 202619974, - "name": "extension-jungle-book", - "html_url": "https://github.com/tableau/extension-jungle-book", - "description": "This extension allows you to create filters using shapes mapped on top of images.", - "stargazers_count": 5, - "language": "TypeScript", + "id": 237073877, + "name": "analytics-extensions-api", + "html_url": "https://github.com/tableau/analytics-extensions-api", + "description": "Extend Tableau to dynamically include popular data science programming languages and external tools and platforms.", + "stargazers_count": 20, + "language": "HTML", "forks_count": 4 }, { - "id": 538686268, - "name": "wdc3", - "html_url": "https://github.com/tableau/wdc3", - "description": "Web Data Connector (WDC), connecting to web application data from Tableau.", - "stargazers_count": 5, - "language": null, - "forks_count": 0 - }, - { - "id": 700622690, - "name": "bridgectl", - "html_url": "https://github.com/tableau/bridgectl", - "description": "Tableau Bridge Utilities", - "stargazers_count": 5, - "language": "Shell", - "forks_count": 0 - }, - { - "id": 349202334, - "name": "vail", - "html_url": "https://github.com/tableau/vail", - "description": "VAIL (Visual Analytic Intent Language) is a language for modeling user intent, inferring missing or ambiguous intent, and figuring out how to effectively visualize intent", - "stargazers_count": 4, - "language": "TypeScript", - "forks_count": 1 + "id": 49598553, + "name": "tableau.github.io", + "html_url": "https://github.com/tableau/tableau.github.io", + "description": "Content for Tableau's OSS projects index", + "stargazers_count": 11, + "language": "HTML", + "forks_count": 13 }, { - "id": 659393881, - "name": "connected-apps-jwt-samples", - "html_url": "https://github.com/tableau/connected-apps-jwt-samples", + "id": 810560590, + "name": "VizQL-Data-Service", + "html_url": "https://github.com/tableau/VizQL-Data-Service", "description": null, - "stargazers_count": 4, - "language": "Java", - "forks_count": 0 - }, - { - "id": 169797767, - "name": "extension-single-checkbox-parameters", - "html_url": "https://github.com/tableau/extension-single-checkbox-parameters", - "description": "Dashboard extension which enables adding a parameter to a Tableau dashboard which will display in the UI as a single checkbox.", - "stargazers_count": 3, - "language": "JavaScript", - "forks_count": 4 + "stargazers_count": 11, + "language": "Python", + "forks_count": 7 }, { - "id": 682691487, - "name": "Tableau-TA", - "html_url": "https://github.com/tableau/Tableau-TA", + "id": 873161536, + "name": "tableau-migration-app", + "html_url": "https://github.com/tableau/tableau-migration-app", "description": null, - "stargazers_count": 3, - "language": null, - "forks_count": 1 - }, - { - "id": 349193329, - "name": "extension-quick-what-if", - "html_url": "https://github.com/tableau/extension-quick-what-if", - "description": "A dashboard extension that allows you to create a list of controllable inputs based on values of a dimension for quick what-if analysis.", - "stargazers_count": 2, - "language": "JavaScript", + "stargazers_count": 10, + "language": "C#", "forks_count": 3 }, { - "id": 573214853, - "name": "bridge_k8s_poc", - "html_url": "https://github.com/tableau/bridge_k8s_poc", + "id": 844966595, + "name": "tableau-app-msft-teams", + "html_url": "https://github.com/tableau/tableau-app-msft-teams", "description": null, - "stargazers_count": 2, - "language": "Shell", - "forks_count": 0 + "stargazers_count": 7, + "language": "HTML", + "forks_count": 5 }, { - "id": 689310253, - "name": "hyper-api-dotnet", - "html_url": "https://github.com/tableau/hyper-api-dotnet", + "id": 660142323, + "name": "tableau-google-workspace-integration", + "html_url": "https://github.com/tableau/tableau-google-workspace-integration", "description": null, - "stargazers_count": 2, - "language": "C#", - "forks_count": 1 - }, - { - "id": 521190386, - "name": "emb-hot-ca-v3", - "html_url": "https://github.com/tableau/emb-hot-ca-v3", - "description": "Embedded Hands-on-training course materials. Connected Apps and Embedding API v3", - "stargazers_count": 1, - "language": "CSS", - "forks_count": 1 + "stargazers_count": 4, + "language": null, + "forks_count": 5 }, { - "id": 553659147, - "name": "container_image_builder", - "html_url": "https://github.com/tableau/container_image_builder", - "description": "Use this tool to install database drivers and other artifacts needed in your Tableau containers.", - "stargazers_count": 1, - "language": "Shell", - "forks_count": 0 + "id": 771642567, + "name": "e-bikes-demo", + "html_url": "https://github.com/tableau/e-bikes-demo", + "description": null, + "stargazers_count": 4, + "language": "TypeScript", + "forks_count": 3 }, { - "id": 571723442, - "name": "bridge_docker_build", - "html_url": "https://github.com/tableau/bridge_docker_build", + "id": 1071010717, + "name": "pulse-api-utilities", + "html_url": "https://github.com/tableau/pulse-api-utilities", "description": null, - "stargazers_count": 1, - "language": "Shell", - "forks_count": 0 + "stargazers_count": 3, + "language": "Python", + "forks_count": 2 }, { - "id": 598750337, - "name": "create-tableau-dashboard-extension", - "html_url": "https://github.com/tableau/create-tableau-dashboard-extension", + "id": 828019120, + "name": "sf-exp-cloud-tableau-embedded-analytics", + "html_url": "https://github.com/tableau/sf-exp-cloud-tableau-embedded-analytics", "description": null, "stargazers_count": 1, "language": "JavaScript", - "forks_count": 0 + "forks_count": 1 }, { - "id": 668315715, - "name": "Accelerators", - "html_url": "https://github.com/tableau/Accelerators", - "description": "This repository is used to share external prerequisites for dashboard accelerators that are published to exchange.tableau.com", + "id": 1236019051, + "name": "hyper-api-rust", + "html_url": "https://github.com/tableau/hyper-api-rust", + "description": "HyperDB API for Rust", "stargazers_count": 1, - "language": null, - "forks_count": 0 - }, - { - "id": 580935011, - "name": "bridge_pre", - "html_url": "https://github.com/tableau/bridge_pre", - "description": null, - "stargazers_count": 0, - "language": null, - "forks_count": 0 - }, - { - "id": 617189186, - "name": "uaf-test-app", - "html_url": "https://github.com/tableau/uaf-test-app", - "description": "Tableau User Attribute Functions Test App", - "stargazers_count": 0, - "language": "JavaScript", - "forks_count": 0 - }, - { - "id": 621770097, - "name": "blog-resources", - "html_url": "https://github.com/tableau/blog-resources", - "description": "Used to share code snippets referenced in HOWTOs, blog posts and articles", - "stargazers_count": 0, - "language": "Python", + "language": "Rust", "forks_count": 1 - }, - { - "id": 657242973, - "name": "dcpat", - "html_url": "https://github.com/tableau/dcpat", - "description": null, - "stargazers_count": 0, - "language": "Python", - "forks_count": 0 - }, - { - "id": 660142323, - "name": "tableau-google-workspace-integration", - "html_url": "https://github.com/tableau/tableau-google-workspace-integration", - "description": null, - "stargazers_count": 0, - "language": null, - "forks_count": 0 - }, - { - "id": 735168811, - "name": "bridgectl_beta", - "html_url": "https://github.com/tableau/bridgectl_beta", - "description": "Beta version of bridgectl, see https://github.com/tableau/bridgectl for the production version.", - "stargazers_count": 0, - "language": null, - "forks_count": 0 } ] \ No newline at end of file From c8acefaa17f75328b98ca59d1756995c6d03b65c Mon Sep 17 00:00:00 2001 From: Brian Cantoni Date: Thu, 25 Jun 2026 19:17:09 -0700 Subject: [PATCH 2/2] Improve readme a bit --- README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index ecee98b..a60839c 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,6 @@ -This is the repository for [Tableau's OSS contributor page](https://tableau.github.io). +# Tableau Open Source Directory + +This is the repository for [Tableau's OSS projects directory and contributor page](https://tableau.github.io). To update the repos list, run the `update_repos.js` script. The `js/github_repos.json` file will be updated.