Updated Jul 15, 2026

Recon

Verify GitHub Archive repos and users via GraphQL

GraphQL enrichment and dedupe for archive repo and user CSVs.

Python · GPL-2.0 license

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 GraphQL
gh-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-frontend
https://github.com/example-org/payments-api
https://github.com/example-org/infra-terraform
https://github.com/example-dev/ci-runners
https://github.com/example-app/mobile-client
https://github.com/example-test/docs-site
https://github.com/example-net/edge-proxy
https://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.

The CSV outputs from an upstream scraper or downloader stage. Those are the lists GraphQL enrichment reads and cleans.

It queries in --batch-size chunks, spreads work across --threads, and can rotate through --file-tokens so one credential does not stall the run.

A folder of unique repositories and users, deduplicated and enriched from the CSV inputs you pass in.

gh-downloader harvests archive URLs into raw CSVs. gh-enhancer cleans and verifies those CSVs through GraphQL. Harvest first, enrich second.

Yes. Increase --threads and tune --batch-size to match your token budget. Larger batches finish sooner but spend rate-limit quota faster.

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.