Webtools/BuildAPI: Difference between revisions

Jump to navigation Jump to search
(Created page with " This is a rough requirements doc for {{bug|487036}} (with further detail in {{bug|625417}}, duped).")
 
 
(5 intermediate revisions by 2 users not shown)
Line 1: Line 1:
= 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.


This is a rough requirements doc for {{bug|487036}} (with further detail in {{bug|625417}}, duped).
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 ==
* {{bug|487036}} is the main bug
* {{bug|625417}} is duped but has useful info
 
= 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
Confirmed users
1,233

edits

Navigation menu