Jenkins Controller Extractor avatar

Jenkins Controller Extractor

Pricing

from $0.35 / 1,000 records

Go to Apify Store
Jenkins Controller Extractor

Jenkins Controller Extractor

Point at any Jenkins or Hudson controller (anonymous-read) and get one structured row per job or build: status, results, timings, build history, job graph. Works on any controller via the standard /api/json Remote Access API.

Pricing

from $0.35 / 1,000 records

Rating

0.0

(0)

Developer

Datamule

Datamule

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

0

Monthly active users

3 days ago

Last modified

Share

Point at any Jenkins or Hudson controller and get clean, structured data out of its standard Remote Access API (/api/json) — no per-host scraper, no setup. Every Jenkins controller (the dominant self-hosted CI server) speaks the identical documented API, and a large population of open-source project controllers leaves anonymous read enabled, so their job graph and build history are yours in one call.

What it does

Three modes, auto-selected from your input:

ModeWhenOutput
jobs (default)just a baseUrlone row per job on the whole controller, each with its last-build result, status, and timings. Jenkins folders are recursed into so nested jobs surface too.
buildsset a jobone row per recent build of that single job — result, duration, timestamp, building flag.
discoverymode = discoveryone row describing the controller itself — Jenkins version, job count, node mode, security.

Input

  • baseUrl (required) — the controller root, e.g. https://jenkins.debian.net or https://ci.adoptium.net. The /api/json path is added for you.
  • modejobs (default) · builds · discovery. Leave empty to auto-select (jobs, or builds when a job is set).
  • job — (builds mode) a job name, a nested folder/child path, or a full job URL.
  • buildDepth — (builds mode) how many recent builds to fetch (default 10).
  • foldersRecurse / maxFolderDepth — (jobs mode) recurse into folders (default on, depth 3).
  • maxRecords — a global cap on rows (each row is one billable event).
  • bearer / extraHeaders — optional auth for a private / rate-limited controller. Never required for public controllers; never logged.

Output

One flat row per job or build. Jobs carry: jobName, jobType (freestyle / pipeline / multibranch / matrix / maven / folder / …), jobClass, folderPath, url, color, statusText, buildable, inQueue, and a lastBuild* summary (number, result, timestamp, duration, url). Builds carry: buildNumber, result, timestamp, durationMs, building, url. Every row also has controller meta (_source, _software, _version, _jobCount) and a lossless _raw copy of the original API entry. Timestamps are ISO-8601 UTC.

Notes

  • Works on any controller that allows anonymous read of its API. For gated controllers, supply a bearer token or extraHeaders.
  • A controller with no jobs, or a job with no build history, returns 0 rows and a clean run — it never invents data.
  • Pay-per-event: one event per row returned.

Example

{ "baseUrl": "https://jenkins.debian.net", "maxRecords": 25 }
{ "baseUrl": "https://ci.adoptium.net", "job": "build-scripts/openjdk21-pipeline", "buildDepth": 20 }