Skip to content

GitHub Provider

Use GitHub for the Building card when you want the least extra setup.

Public Repos

Use mode: "public" to show the latest public repo owned by username. Forks and archived repos are skipped by default.

ts
githubSource({
  username: "deveshsangwan",
  token: process.env.GITHUB_TOKEN,
  mode: "public",
  excludeRepos: ["old-demo", "deveshsangwan/test-repo"],
  includeForks: false,
  includeArchived: false
});

Public mode calls GitHub's owner repo listing and only considers public repos owned by username. It does not include organization, member, or collaborator repos.

Allowlisted Repos

Use the default allowlist mode when you want to choose exactly which repos can appear, or when you want to safely display a private repo with a public label.

ts
githubSource({
  username: "deveshsangwan",
  token: process.env.GITHUB_TOKEN,
  repos: [
    "portfolio-presence",
    {
      name: "investment-sync",
      label: "Investment Sync"
    }
  ]
});

Privacy

Public mode only considers public repos owned by username. Allowlist mode only considers repos listed in repos. Private repos are skipped unless allowPrivate: true is set in allowlist mode. If private repos are enabled, provide a public label and optional href so private names do not leak.

GitHub activity does not need to be fetched on every request. A snapshot TTL of 15 to 60 minutes is usually enough for a portfolio.