Run your own pipeline
Fork the project, plug in two free API keys, and the data feed publishes to your own GitHub Pages site — independent of nukeforum.github.io.
Why you might do this
- Auditability. See exactly what data gets published, on what cadence, from what sources.
- Durability. If this deployment ever goes offline, your fork keeps running on its own schedule.
- Customization. Tweak the filter rules, the schedule, the sources, or the manifest shape for your own purposes.
What you'll need
- A GitHub account.
- A Congress.gov API key — free, instant signup. api.congress.gov/sign-up/. Default rate limit is 5000 requests per hour, which is more than enough for the daily fetch and the historical backfill combined.
- A HUD USER token — free, but manual approval can take a day. huduser.gov/portal/dataset/uspszip-api.html. This powers the ZIP→district lookup; the workflow only runs quarterly, so the low rate budget is fine.
Steps
-
Fork the repo.
nukeforum/bill-summarizer. Public is fine — every byte the pipeline produces is already public. -
Add your secrets. In your fork, go to Settings → Secrets and variables → Actions → New repository secret. Add two secrets:
CONGRESS_API_KEY = <your Congress.gov key> HUD_API_TOKEN = <your HUD token> -
Enable GitHub Pages. Settings → Pages → Build and deployment → Source: Deploy from a branch. Pick
mainbranch and/docsfolder. Save. GitHub provisionshttps://<your-user>.github.io/bill-summarizer/within a minute or two. - Enable Actions. Go to the Actions tab and click the green "I understand my workflows, go ahead and enable them" button. (GitHub disables workflows on forks by default.)
-
Trigger an initial run. Actions → "Update bills" → Run workflow → Run workflow. After ~3 minutes the workflow commits the day's data, GitHub Pages rebuilds, and your manifest is live at
https://<your-user>.github.io/bill-summarizer/data/congresses.json.
What runs and when
| Workflow | Cadence | What it produces |
|---|---|---|
update-bills.yml | Daily, 06:00 UTC | The 60-day rolling window of passage-action bills for the current Congress. |
backfill-bills.yml | Daily, 12:00 UTC | One chunk of historical bills per run (1000 candidates). Walks every Congress from the 93rd onward and resumes from a persisted cursor. |
update-session-calendar.yml | Daily | House and Senate session days derived from the USHOR voting-days ICS and the Senate session XML. |
update-members.yml | Weekly, Sundays 03:00 UTC | Current-Congress member roster (phase 1) and per-member sponsored/cosponsored legislation (phase 2). |
update-zip-crosswalk.yml | Quarterly | Bundled HUD USPS ZIP→Congressional-district lookup table. |
Pointing the Android app at your pipeline
Today this requires a code change: the BillsApi base URL is hardcoded to nukeforum.github.io/bill-summarizer/. To run the app against your fork, you'll need to override that URL for a debug build and rebuild from source. A proper environment-driven override is an open TODO — track it on the issue tracker. For now, see the README's Building section for how to produce a local debug APK.
Going deeper
- Full README — engineering setup, modularization, the strict toolchain.
- data-pipeline/ — the Python scripts behind every workflow.
- pipeline.html — live freshness of this deployment, for reference.