Bugzilla REST Extractor
Pricing
from $0.35 / 1,000 records
Bugzilla REST Extractor
Point at any Bugzilla server (Mozilla, Red Hat, LibreOffice, Gentoo) and get one structured row per bug: summary, status, resolution, product, component, priority, severity, reporter, timestamps, keywords. Also lists products and server version.
Pricing
from $0.35 / 1,000 records
Rating
0.0
(0)
Developer
Datamule
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
11 hours ago
Last modified
Categories
Share
A GENERIC "point at any Bugzilla server" Apify actor — the issue-tracker sibling of the Gitea/Jenkins generic extractors. Bugzilla (Mozilla's tracker, 20+ years old) sits behind Red Hat, LibreOffice, Eclipse, Gentoo, KDE, the Linux kernel, GCC and hundreds of distros/projects, and every install ships the same native REST API with anonymous read on the public bug corpus — so ONE actor spans every Bugzilla install in existence, no per-tracker scraper.
Input
| Field | Mode | Meaning |
|---|---|---|
sources (required) | all | One or more Bugzilla base URLs — https://bugs.documentfoundation.org, https://bugzilla.redhat.com, https://bugzilla.mozilla.org, https://bugs.gentoo.org, or any self-hosted install. /rest/... is appended for you. |
mode | — | products (safe default), bugs, or version. If API callers omit mode but supply a bug filter, the actor infers bugs. |
product / component / status | bugs | Filter bugs. Comma lists OR their values. |
quicksearch | bugs | A Bugzilla quicksearch expression. |
changedAfter | bugs | Only bugs changed at/after a date/datetime or relative token (-7d). |
maxRecords | all | Global cap across every source (one row = one billable event). |
apiKey | all | Optional Bugzilla API key for restricted products (X-BUGZILLA-API-KEY). Never logged. |
extraHeaders | all | Optional extra request headers (JSON). |
The ready-to-run defaults query LibreOffice Bugzilla in products mode and return at most 20 rows, so a first click is fast, bounded, and produces useful data.
bugs mode requires at least one filter (product / component / quicksearch /
changedAfter). An unbounded /rest/bug is rejected by Bugzilla servers (Mozilla's
BMO returns HTTP 400 "You may not search ... without any search terms"), so the
runner surfaces a clear input error rather than a blind query. Run products mode
first to discover valid product names.
Modes
- bugs (default) — paginated
/rest/bug→ one flat row per bug:id,summary,status,resolution,product,component,priority,severity, reporter/assignee (name + numeric id only),creationTime,lastChangeTime,keywords[],version,opSys,isConfirmed,dependsOn[],blocks[], plus a lossless_raw. - products —
/rest/product?type=selectable→ one row per product (id,product,classification,description,isActive,milestones[]). - version —
/rest/version→ one row per source (reachability + server version probe).
Behaviour
- Every field is read by key presence (
dict.get) — a bug that omitsresolution/keywords/ a Mozillacf_*custom yieldsnullfor that column, never a crash. Unknown fields (incl.cf_*customs) survive in_raw. - Anti-leak: reporter/assignee emails are public-tracker data but are kept out
of the flat columns — only the display name + numeric id are flattened. The full
*_detailobject (email included) is preserved only in_raw. - A source behind an anti-bot interstitial (a non-JSON HTTP 200, e.g. Anubis) is a clean skip-with-warning. In multi-source runs a per-source failure is skipped with a warning; a single failing source fails the run so nothing broken ships silently.
- An empty result → 0 records and a clean exit 0. Unpopular is fine; the actor never fabricates rows.
Pricing
Pay-per-event: one record charge per emitted dataset row.
Your run's maximum cost is respected. The Actor checks the budget before its first Bugzilla request and before every page, asks each page only for the rows you can still pay for, and keeps what was already delivered. You are only charged for records that land in your dataset. If a page fails after some records were delivered, those records stay but the run is marked failed.
Development
python3.12 -m venv .venv && source .venv/bin/activatepip install -r requirements.txtpython tests_logic.py # pure-logic tests (no network)apify validate-schemaapify run # local run (set .actor storage INPUT.json)