<< View previous version | view page history | view next version >>
Since QuickBuild 4.0, you can retrieve changes via RESTful APIs. The base URI for changes RESTful APIs is:
/rest/changes
List all supported APIs
URI | Response Type | Params |
---|---|---|
/rest/changes/help | text/html |
Get the data version of changes
URI | Response Type | Params |
---|---|---|
/rest/changes/version | text/plain |
Get the commit stats
URI | Response Type | Params |
---|---|---|
/rest/changes/stats/{configuration_id} | application/xml |
|
Query stats of a specific build
http://quickbuild:8810/rest/changes/stats/25?build_id=102
the response looks like:
<stats commits="5" modifications="7" added="2" modified="3" deleted="2"/>
Query stats for a build range
http://quickbuild:8810/rest/changes/stats/25?from_build=100&to_build=120
Query stats for a date range
http://quickbuild:8810/rest/changes/stats/25?from_date=20110501&to_date=20110601
by default, the date pattern is yyyyMMdd, you can also specify the date pattern by adding parameter date_pattern, the valid date pattern can be found here, for example:
http://quickbuild:8810/rest/changes/stats/25?from_date=2011-05-01&to_date=2011-06-01&date_pattern=yyyy-MM-dd
Query stats of a specific repository or committer
By adding repository or committer parameter, you can get the stats of a specific repository or committer, for example:
http://quickbuild:8810/rest/changes/stats/25?build_id=102&repository=mysvn
this will get the stats data for repository mysvn.
Retrieve changesets
URI | Response Type | Params |
---|---|---|
/rest/changes/changesets/{configuration_id} | application/xml |
|
Query the changesets of a build
http://quickbuild:8810/rest/changes/commits/19?build_id=102&offset=10&limit=20
the response looks like:
<report name="changesets" version="0.0" locale="en_US"> <row ID="10" buildId="320" changeId="f090cd04725c5551f8a439fe0a53591193ea79c3" repository="hg" commitDate="2011-05-31T03:45:55.000+08:00" modifications="1" committer="steve" userId="2" added="1" modified="0" deleted="0"> <comment><![CDATA[some comments]]></comment> <additional><![CDATA[ 13 ]]></additional> </row> <row ID="11" buildId="320" changeId="f090cd04725c5551f8a439fe0a53591193ea79c3" repository="hg" commitDate="2011-05-31T03:45:55.000+08:00" modifications="1" committer="steve" userId="2" added="1" modified="0" deleted="0"> <comment><![CDATA[some comments]]></comment> <additional><![CDATA[ 13 ]]></additional> </row> ... ... </report>
the format of commit date here is using ISO8601 standard. Element additional stores some additional information of the commits. For mercurial (hg) or bazaar, the additional stores the revision no.
Query the changesets of a build range
http://quickbuild:8810/rest/changes/commits/19?from_build=10&to_build=20
Query the changesets of a date range
http://quickbuild:8810/rest/changes/commits/19?from_date=20110501&to_date=20110601
Query the changesets of a specific repository or committer
By adding repository or committer parameter, you can get the commits of a specific repository or committer, for example:
http://quickbuild:8810/rest/changes/commits/25?build_id=102&repository=mysvn
Retrieve modifications
Normally, a changeset often contains one or more modifications, and a modification usually means a specific action to a file. In QuickBuild, the actions include:
- ADD
- MODIFY
- DELETE
The action in some SCM, for example, git, mercurial, have more actions, like rename, in QuickBuild, it will be speared into two actions, i.e. DELETE first, and then ADD, and maybe there are also other actions, QuickBuild will use MODIFY action to represent.