Updated Jul 15, 2026

Recon

Verify GitHub Archive repos and users via GraphQL

GraphQL enrichment and dedupe for archive repo and user CSVs.

Agent

overview

What gh-enhancer does

gh-enhancer is the cleanup stage after archive harvest. It reads --repos-file and --users-file CSVs, confirms entries against the GitHub GraphQL API, and writes a folder of unique repositories and users.

Work runs in --batch-size chunks across --threads. Use --token for small runs, or --file-tokens to rotate credentials when one token nears its rate cap.

Trickest runs it as a managed Recon node between collectors (gh-downloader / gh-scraper) and gh-investigator. Feed noisy CSVs in; hand verified unique lists downstream.

source github.com/carlospolop/github_archive_scraper

use cases

Where gh-enhancer fits

Deduplicate a scraped GitHub Archive dump

Feed the raw repos and users CSV files from the scraper into gh-enhancer to collapse duplicate entries into one clean list per type.

Enrich repos and users through the GraphQL API

Confirm and enrich each entry against GitHub's GraphQL API in batches, dropping stale or invalid records before investigation.

Rotate across multiple GitHub tokens

Point --file-tokens at a list of tokens so large archives keep enriching across several credentials instead of stalling on one rate limit.

Prepare input for gh-investigator

Produce the clean repositories and users folder that the investigator stage reads to surface secrets, contributors, and other findings.

reference

gh-enhancer inputs and flags

6 inputs
NameTypeFlagDescription
repos-fileFILE--repos-filePath of the file containing the repos CSV files to process.
users-fileFILE--users-filePath of the file containing the users CSV files to process.
tokenSTRING--tokenGitHub token used for the API calls.
file-tokensFILE--file-tokensFile of GitHub tokens to rotate across for API calls.
batch-sizeSTRING--batch-sizeHow many entries each GitHub GraphQL request asks for at once.
threadsSTRING--threadsNumber of threads to run the enrichment with.

Showing key inputs. gh-enhancer exposes 6 inputs in total.

example

Run gh-enhancer

gh-enhancer · command
# gh-enhancer: enrich and dedupe archive repos/users via GraphQLgh-enhancer --repos-file repos.csv --users-file users.csv --token "$GITHUB_TOKEN" --batch-size 50 --threads 4
sample output
https://github.com/example-org/web-frontendhttps://github.com/example-org/payments-apihttps://github.com/example-org/infra-terraformhttps://github.com/example-dev/ci-runnershttps://github.com/example-app/mobile-clienthttps://github.com/example-test/docs-sitehttps://github.com/example-net/edge-proxyhttps://github.com/example-io/sdk-python

guidance

Choosing gh-enhancer

Use gh-enhancer when you have raw repos and users CSVs from an archive scrape and need them deduplicated and verified before investigation. Collect first with gh-downloader or gh-scraper; mine findings afterward with gh-investigator.

gh-scraper

Upstream stage. Turns GitHub Archive URLs into the raw repos and users CSVs this node cleans.

gh-downloader

Sibling collector in the same toolkit. Pulls archive data down before enrichment runs.

gh-investigator

Downstream stage. Reads the enriched lists to surface interesting GitHub findings.

faq

gh-enhancer questions

Yes. Enrichment calls the GraphQL API, so supply --token, or --file-tokens to rotate across several credentials on large runs.

Run gh-enhancer yourself

Raw archive CSVs feed gh-scraper, which passes scraped repos and users to GH Enhancer; it deduplicates and enriches them through the GraphQL API into a clean folder of unique lists.

Facts on this page come from the live Trickest tool library.