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 (
<>
Data catalog with datasets hosted on GitHub by{" "} 🌀 PortalJS
| 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 |