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'; 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 |