import { promises as fs } from "fs"; import path from "path"; import { getProject } from "../lib/octokit"; import getConfig from "next/config"; import ExternalLinkIcon from "../components/icons/ExternalLinkIcon"; import TimeAgo from "react-timeago"; import Link from "next/link"; import { NextSeo } from "next-seo"; export async function getStaticProps() { const jsonDirectory = path.join(process.cwd(), "/datasets.json"); const repos = await fs.readFile(jsonDirectory, "utf8"); const github_pat = getConfig().serverRuntimeConfig.github_pat; const projects = await Promise.all( JSON.parse(repos).map(async (repo) => { const project = await getProject(repo, github_pat); return { ...project, repo_config: repo }; }) ); return { props: { projects, }, }; } export function Datasets({ projects }) { return ( <>

GitHub Datasets

Data catalog with datasets hosted on GitHub by{" "} 🌀 PortalJS

{projects.map((project) => ( ))}
Name Repository Description Last updated
{project.repo_config.name ? project.repo_config.name : project.full_name + (project.base_path === "/" ? "" : "/" + project.base_path)} @{project.full_name}{" "} {project.repo_config.description ? project.repo_config.description : project.description} info
); } export default Datasets;