Curiosity

GitHub

Ingests repositories, issues, pull requests, comments, reviewers, and labels from GitHub. Per-user installed access is mapped onto workspace access groups.

variant=info text="Issue tracking" variant=success text="OAuth / PAT" variant=success text="Maps ACLs"

What gets ingested

Element Mapped to
Repository _IssueProject
Issue _Issue
Pull request _Pull
Comment (issue or PR) _Comment
User (author, assignee, reviewer) _IssueUser
Labels Properties on _Issue / _Pull

Authentication

Two modes:

  • GitHub OAuth (per-user) — the user logs in and Curiosity stores a long-lived token.
  • Personal access token — useful for service accounts that need to ingest organization-wide.

The underlying HTTP client is Octokit.

Access control mapping

Source Carried into the graph?
Repository visibility (public vs. private) Yes — public repos are mapped to the public access group; private repos go to the connecting user's access group.
Per-org/team membership Yes when the GitHub token includes read:org scope.
External contributors Picked up as _IssueUser but don't gain workspace access by themselves.

Sync cadence

  • Default cron: daily at 08:00 UTC.
  • Incremental sync: updated_at watermark per repository, per issue type. The connector pages through the GitHub REST + GraphQL APIs respecting the rate-limit window.

Notable

  • The user selects which repositories to ingest (no global "ingest everything" in private orgs by default).
  • Supports both REST and GraphQL endpoints behind the same task — switching to GraphQL reduces the number of API calls on large repos.