Updated Jul 14, 2026

Recon

Harvest unique repos and users from GitHub Archive

GitHub Archive URLs in, unique repository and user CSVs out.

Python · GPL-2.0 license

Agent

overview

What gh-downloader does

gh-downloader reads a --urls-file of GitHub Archive hourly snapshots, fetches each one, and parses the event stream into deduplicated repository and user CSV files.

Raise --threads to process many archive hours in parallel. Use --one when the next stage wants a single combined file instead of split CSVs.

Trickest runs it as a managed Recon node that writes a folder and a file. Harvest first, then pass the CSVs to gh-investigator (or gh-enhancer) for cleanup and findings.

source github.com/carlospolop/github_archive_scraper

use cases

Where gh-downloader fits

Harvest active repositories from GitHub Archive

Feed a list of hourly GitHub Archive URLs and collect every unique repository that appears, building a deduplicated CSV of projects active in that time window.

Build a target list of GitHub users

Pull every unique user out of the same archive data so you have a clean account list to profile, cross-reference, or enrich in later OSINT stages.

Process large archive sets in parallel

Raise the thread count to work through a long list of hourly archives at once, turning days or weeks of GitHub activity into CSV files in a single run.

Seed a GitHub investigation pipeline

Generate the repository and user CSV files that gh-investigator consumes, so the discovery and analysis stages chain cleanly inside one workflow.

reference

gh-downloader inputs and flags

3 inputs
NameTypeFlagDescription
urls-fileFILE--urls-fileFile containing the GitHub Archive URLs to process.
threadsSTRING--threadsNumber of threads to use for processing the URLs.
oneSTRING--oneCollapse the results into one file under the given file name.

Showing key inputs. gh-downloader exposes 3 inputs in total.

example

Run gh-downloader

gh-downloader · command
# harvest hourly GitHub Archive URLs into deduplicated repo and user CSVs
gh-downloader --urls-file archive-urls.txt --threads 20 --one github-activity.csv
sample output
[+] Queued 24 GitHub Archive URLs across 20 threads
[+] Parsed 41,882 events, wrote deduplicated repos and users
repositories.csv  (repo_name, repo_id)
example-labs/payments-api, 208446120
demo-sandbox/edge-proxy, 331902547
octo-demo/terraform-modules, 417563980
users.csv  (user_login, user_id)
example-labs, 10294857
demo-sandbox, 20481923

guidance

Choosing gh-downloader

Use gh-downloader when you already have GitHub Archive URLs and need clean, deduplicated repository and user CSVs. It harvests archive snapshots; it does not query live GitHub search. Run gh-investigator next for findings. Prefer git-wild-hunt when the source is live GitHub search instead of archive dumps.

gh-investigator

Consumes the repository and user CSVs and pulls out interesting accounts and projects. Run it after, not instead.

gh-enhancer

Enrichment stage in the same family. Use it after harvest when raw CSVs need GraphQL cleanup before investigation.

git-wild-hunt

Hunts leaked credentials across live GitHub search rather than archive snapshots. Different source, complementary coverage.

faq

gh-downloader questions

A text file of GitHub Archive hourly URLs, such as 2024-01-15-9.json.gz links from the gharchive index. On Trickest, wire that file into the urls-file input.

Deduplicated repository and user lists, exposed as a folder and a file. Repeated entries collapse to one row each.

When the URL list spans many hourly snapshots. Each hour is an independent download, so higher --threads shortens wall time on large windows.

It collapses results into one output file under the name you give, instead of keeping repositories and users split. Use it when the next stage wants a single CSV.

gh-downloader mines GitHub Archive snapshots. git-wild-hunt targets live GitHub search for leaked credentials. Different source, complementary coverage.

gh-investigator reads the repository and user CSVs and surfaces accounts and projects worth a closer look. gh-enhancer can enrich those lists via GraphQL first.

Run gh-downloader yourself

A file of GitHub Archive URLs feeds gh-downloader, which writes deduplicated repository and user CSV files, then gh-investigator reads them and surfaces the interesting accounts and projects as a queryable output.

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