Webtools/BuildAPI

From MozillaWiki
Jump to: navigation, search

Constructicon

Constructicon is a project to create an API against the buildbot db. The purpose is to replace all those scripts that scrape the builds ftp server.

Authentication should not be required to make calls, as this API is read-only. We may wish to make it internal-only to begin with.

Data should be returned json-encoded.

Related bugs

API calls

Get changeset by buildid

  • uris
    • {url_prefix}/changeset/buildid/{buildid}[/branch/{branch}]
  • params
    • buildid
    • branch
  • return
    • changesets

Get buildids by date

  • uris
    • {url_prefix}/builds/date/{YYYY-MM-DD}[/repo/{repo}]
  • params
    • date in YYYY-MM-DD format
    • repo - optional
  • return
    • array of buildids from that date for a repo or all repos if not specified, links to download on ftp for each

Get latest build

  • uris
    • {url_prefix}/latest[/product/{product}][/repo/{repo}]
  • params
    • product
    • repo
    • one of these must be specified

Later work

These will not be implemented in the first iteration, and may not be available from the buildbot data, in which case we'll need to draw on other sources (e.g. crash-stats)

Get All Products

  • uris
    • {url_prefix}/products
  • params - None
  • return
    • array - an array of products

Get All Versions for a Product

  • uris
    • {url_prefix}/versions/products/{product}[/current]
  • params
    • current - true if requesting all versions within a 90 day start/end date window.
    • product - The name of the product
  • return
    • An array of versions for a product

Get all Builds for a Product

  • uris
    • {url_prefix}/builds/product/{product}
    • {url_prefix}/builds/product/{product}/start/{YYYY-MM-DD}/end/{YYYY-MM-DD}
  • params
    • end - The end of the date range by which to search; format YYYY-MM-DD
    • start - The beginning of the date range by which to search; format YYYY-MM-DD
    • product - The name of the product
  • return
    • array - An array of all builds for a product

Get all Builds for a Product / Version

  • uris
    • {url_prefix}/builds/product/{product}/version/{version}
    • {url_prefix}/builds/product/{product}/version/{version}/start/{YYYY-MM-DD}/end/{YYYY-MM-DD}
  • params
    • end - The end of the date range by which to search; format YYYY-MM-DD
    • start - The beginning of the date range by which to search; format YYYY-MM-DD
    • product - The product name
    • version - The version string
  • return
    • array - An array of all builds for a product / version