Crucible 2.3 : Review Service - Reviews
This page last changed on Nov 19, 2009 by edawson.
On this page:
ReviewsAdd Changeset To ReviewPOST /reviews-v1/<review id>/addChangeset Description: Status Code: Example XML Return Data: <addChangeset> <repository>aRepositoryName</repository> <changesets> <changesetData> <id>...the id...</id> </changesetData> ... more change sets ... </changesets> </addChangeset> Example JSON Return Data: {"addChangeset": { "repository":"Local", "changesets": { "changesetData":[ {"id":234},{"id":237}, ...more change sets...]} }}
Add Patch Revisions To ReviewPOST /reviews-v1/<review id>/addPatch Description: Status Code: Example XML Request Data: <addPatch> <repository>aRepositoryName</repository> <patch> <![CDATA[ ... text of patch goes here ... ]]> </patch> </addPatch> Example JSON Request Data: {"addPatch":{"repository":"aRepositoryName","patch":"... text of patch goes here ..."}}
Upload Files To ReviewPOST /reviews-v1/<review id>/addFile Description: This action returns the ReviewData document on success. This resources uses multipart form-data to receive the file(s), character set indication and optional comments (it does not expect an XML document with embedded files, as that would require the client to first encode the files in Base64). Making a multipart form-data request can be done manually, but you will probably want to use a library. During testing it is inconvenient to let your browser generate the requests using the test html form below: Example HTML Form for Testing REST-Based File Uploads <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head><title>Rest File Upload Test</title></head> <body> <!-- Point the URL to the review you want to upload to. --> <form action="http://hostname:port/rest-service/reviews-v1/<review id>/addFile" enctype="multipart/form-data" method="POST"> <table> <tr> <td>File (required):</td> <td><input name="file" type="file"/></td> </tr> <tr> <td>Diff to (optional):</td> <td><input name="diffFile" type="file"/></td> </tr> <tr> <td>Character Set (optional):</td> <td><input name="charset" type="text" value="UTF-8"/></td> </tr> <tr> <td>Comments (optional):</td> <td><input type="text" name="comments"/></td> </tr> <tr><td><input type="submit" value="Upload"/></td></tr> </table> </form> </body> </html> The form requests understands the following 4 fields:
When uploading files, make sure you (or your http client library) supplies the proper Content-Type header. For text files, use "text/plain". Crucible will preserve the original file name. Status Code: Create ReviewPOST /reviews-v1 Description: Status Code: Example XML Request Data: XML <createReview> <reviewData> ... </reviewData> </createReview> JSON {createReview: {"reviewData": { "allowReviewersToJoin":false, "author":{"userName":"joe"}, "creator":{"userName":"joe"}, "moderator":{"userName":"matt"}, "description":"Review objectives", "metricsVersion":1, "name":"Stuff to review", "projectKey":"CR" }} 2. A patch review, containing diffs from a patch file, e.g. created by svn diff >patch.txt (note that the text of the patch must be properly escaped in the JSON object): XML <createReview> <reviewData> ... </reviewData> <patch> <![CDATA[ ... text of patch goes here ... ]]> </patch> </createReview> JSON {createReview: {"reviewData": { "allowReviewersToJoin":false, "author":{"userName":"joe"}, "creator":{"userName":"joe"}, "moderator":{"userName":"matt"}, "description":"", "metricsVersion":1, "name":"readme ", "projectKey":"CR"}, "patch":"... text of patch goes here ..."} } 3. A review containing revisions from a set of changesets. XML/JSON: XML <createReview> <reviewData> ... </reviewData> <changesets> <changesetData> <id>...the id...</id> </changesetData> ... more changesets ... </changesets> </createReview> JSON {createReview: {"reviewData": { "allowReviewersToJoin":false, "author":{"userName":"joe"}, "creator":{"userName":"joe"}, "moderator":{"userName":"matt"}, "description":"", "metricsVersion":1, "name":"readme ", "projectKey":"CR"}, "changesets": { "changesetData":[{"id":"234"}, {"id":"237"}],"repository":"Local"} }
Delete ReviewDELETE /reviews-v1/<id> Description: Status Code: Get All ReviewsGET /reviews-v1?state=<states> Description: Status Code: Example XML Return Data: <reviews> <reviewData> ... </reviewData> ... </reviews> Example JSON Return Data: {"reviews": { "reviewData": [ {"allowReviewersToJoin":true, ... }, ...] } }
Get All Reviews (limited)GET /reviews-v1/details?state=<states> Description: Note that the reviewItems list in the detailedReviewData elements will not appear because this URL retrieves multiple reviews. Status Code: Example XML Return Data: <detailedReviews> <detailedReviewData> ... </detailedReviewData> ... </detailedReviews> Example JSON Return Data: {"detailedReviews": { "detailedReviewData": [ {"allowReviewersToJoin":true, ... }, ...] } }
Get Allowed Review ActionsGET /reviews-v1/<id>/actions Description: Status Code: Example XML Return Data: <actions> <actionData> <name>action:summarizeReview</name> </actionData> <actionData> <name>action:viewReview</name> </actionData> <actionData> <name>action:approveReview</name> </actionData> <actionData> <name>action:closeReview</name> </actionData> <actionData> <name>action:modifyReviewFiles</name> </actionData> <actionData> <name>action:rejectReview</name> </actionData> <actionData> <name>action:deleteReview</name> </actionData> <actionData> <name>action:createReview</name> </actionData> <actionData> <name>action:recoverReview</name> </actionData> <actionData> <name>action:commentOnReview</name> </actionData> <actionData> <name>action:reopenReview</name> </actionData> <actionData> <name>action:abandonReview</name> </actionData> <actionData> <name>action:submitReview</name> </actionData> </actions> Example JSON Return Data: {"actions": { "actionData": [ {"name":"action:modifyReviewFiles"}, {"name":"action:recoverReview"}, {"name":"action:createReview"}, {"name":"action:rejectReview"}, {"name":"action:deleteReview"}, {"name":"action:abandonReview"}, {"name":"action:closeReview"}, {"name":"action:reopenReview"}, {"name":"action:approveReview"}, {"name":"action:submitReview"}, {"name":"action:summarizeReview"}, {"name":"action:viewReview"}, {"name":"action:commentOnReview"}] }}
Get Allowed Review TransitionsGET /reviews-v1/<id>/transitions Description: Status Code: Example XML Return Data: <transitions> <transitionData> <name>action:summarizeReview</name> </transitionData> <transitionData> <name>action:abandonReview</name> </transitionData> </transitions> Example JSON Return Data: {"transitions": { "transitionData": [ {"name":"action:approveReview"}, {"name":"action:abandonReview"}] }}
Get ReviewGET /reviews-v1/<id> Description: Status Code: Example XML Return Data: <reviewData> ... </reviewData> Example JSON Return Data: {"reviewData": { "allowReviewersToJoin":false, ... }}
Get Review DetailsGET /reviews-v1/filter/<filter>/details Description: Status Code: Example XML Return Data: <detailedReviews> <detailedReviewData> ... </detailedReviewData> ... </detailedReviews> Example JSON Return Data: {"detailedReviews": { "detailedReviewData": [ {"allowReviewersToJoin":true, ... }, ...] } }
Get Review Details by PathGET /reviews-v1/search/<repository>/details?path=<path> Description: Status Code: Example XML Return Data: <detailedReviews> <detailedReviewData> ... </detailedReviewData> ... </detailedReviews> Example JSON Return Data: {"detailedReviews": { "detailedReviewData": [ {"allowReviewersToJoin":true, ... }, ...] } }
Get Review Details through Custom Filter CriteriaGET /reviews-v1/filter/details?title=..&author=..&moderator=..&creator=..&reviewer=..&orRoles=true|false&complete=true|false&allReviewersComplete=true|false&project=.. Description:
Status Code: Example XML Return Data: <reviews> <reviewData> ... </reviewData> ... </reviews> Example JSON Return Data: {"reviews": { "reviewData": [ {"allowReviewersToJoin":true, ... }, ...] } }
Get Reviews by FilterGET /reviews-v1/filter/<filter> Description:
Status Code: Example XML Return Data: <reviews> <reviewData> ... </reviewData> ... </reviews> Example JSON Return Data: {"reviews": { "reviewData": [ {"allowReviewersToJoin":true, ... }, ...] } }
Get Reviews by PathGET /reviews-v1/search/<repository>?path=<path> Description: Status Code: Example XML Return Data: <reviews> <reviewData> ... </reviewData> ... </reviews> Example JSON Return Data: {"reviews": { "reviewData": [ {"allowReviewersToJoin":true, ... }, ...] } }
Get Reviews through Custom Filter CriteriaGET /reviews-v1/filter?title=..&author=..&moderator=..&creator=..&reviewer=..&orRoles=true|false&complete=true|false&allReviewersComplete=true|false&project=.. Description:
Status Code: Example XML Return Data: <reviews> <reviewData> ... </reviewData> ... </reviews> Example JSON Return Data: {"reviews": { "reviewData": [ {"allowReviewersToJoin":true, ... }, ...] } }
Get Single Review DetailsGET /reviews-v1/<id>/details Description: Status Code: Example XML Return Data: <detailedReviewData> ... </detailedReviewData> Example JSON Return Data: {"detailedReviewData": { "allowReviewersToJoin":false, ... }}
Get Version InfoGET /reviews-v1/versionInfo Description: Status Code: Example XML Return Data: <versionInfo> <buildDate>2008-10-28</buildDate> <releaseNumber>1.6.3</releaseNumber> </versionInfo> Example JSON Return Data: {"versionInfo":{"buildDate":"2008-10-28","releaseNumber":"1.6.3"}}
|
![]() |
Document generated by Confluence on Jul 29, 2010 20:01 |