This documentation relates to 1.6.x
If you are using an earlier version, please view the previous versions of the Crucible documentation and select the relevant version.

Definitions of data types used by the REST API.

ReviewData

Contains basic information about a review.

Sample XML:

<reviewData>
  <allowReviewersToJoin>false</allowReviewersToJoin>
  <author>
    <displayName>Matt Quail</displayName>
    <userName>matt</userName>
  </author>
  <createDate>2008-08-25T12:38:14.603+1000</createDate>
  <creator>
    <displayName>Matt Quail</displayName>
    <userName>matt</userName>
  </creator>
  <description>Review things and stuff</description>
  <metricsVersion>1</metricsVersion>
  <moderator>
    <displayName>Matt Quail</displayName>
    <userName>matt</userName>
  </moderator>
  <name>Test review 1</name><permaId>
  <id>CR-1</id></permaId>
  <projectKey>CR</projectKey>
  <state>Review</state>
</reviewData>

Sample JSON:

{"reviewData": {
	"allowReviewersToJoin":false,
	"author":{"displayName":"Matt Quail","userName":"matt"},
	"createDate":"2008-10-27T09:50:05.064+1100",
	"creator":{"displayName":"Matt Quail","userName":"matt"},
	"moderator":{"displayName":"Matt Quail","userName":"matt"},
	"description":"Review things and stuff",
	"metricsVersion":1,
	"name":"Test review 1",
	"permaId":{"id":"CR-3"},
	"projectKey":"CR",
	"state":"Draft"
}}

DetailedReviewData

Note that the reviewItems element is empty when multiple reviews are retrieved via REST. To include the reviewItems in a detailedReviewData structure you must retrieve a single review via the URL /rest-service/reviews-v1/<review id>/details.

Sample XML:

<detailedReviewData>
	<allowReviewersToJoin>false</allowReviewersToJoin>
	<author>
		<displayName>Matt Quail</displayName>
		<userName>matt</userName>
	</author>
	<createDate>2008-09-16T10:50:26.862+1000</createDate>
	<creator>
		<displayName>Matt Quail</displayName>
		<userName>matt</userName>
	</creator>
	<description/>
	<metricsVersion>1</metricsVersion>
	<moderator>
		<displayName>Matt Quail</displayName>
		<userName>matt</userName>
	</moderator>
	<name/>
	<permaId>
		<id>CR-1</id>
	</permaId>
	<projectKey>CR</projectKey>
	<state>Draft</state>
	<actions>
		<actionData>
			<name>action:abandonReview</name>
		</actionData>
		<actionData>
			<name>action:closeReview</name>
		</actionData>
		<actionData>
			<name>action:submitReview</name>
		</actionData>
		<actionData>
			<name>action:reopenReview</name>
		</actionData>
		<actionData>
			<name>action:summarizeReview</name>
		</actionData>
		<actionData>
			<name>action:rejectReview</name>
		</actionData>
		<actionData>
			<name>action:deleteReview</name>
		</actionData>
		<actionData>
			<name>action:approveReview</name>
		</actionData>
		<actionData>
			<name>action:modifyReviewFiles</name>
		</actionData>
		<actionData>
			<name>action:viewReview</name>
		</actionData>
		<actionData>
			<name>action:commentOnReview</name>
		</actionData>
		<actionData>
			<name>action:recoverReview</name>
		</actionData>
		<actionData>
			<name>action:createReview</name>
		</actionData>
	</actions>
	<generalComments/>
	<reviewItems>
		<reviewItem>
			<permId>
				<id>CFR-1</id>
			</permId>
			<authorName>admin</authorName>
			<commitDate>2008-08-27T10:19:17.000+1000</commitDate>
			<commitType>Modified</commitType>
			<fileType>File</fileType>
			<fromPath>ds/Home</fromPath>
			<fromRevision>1</fromRevision>
			<repositoryName>localhost</repositoryName>
			<toPath>ds/Home</toPath>
			<toRevision>2</toRevision>
		</reviewItem>
		<reviewItem>
			<permId>
				<id>CFR-2</id>
			</permId>
			<authorName>tomd</authorName>
			<commitDate>2008-09-09T16:42:28.786+1000</commitDate>
			<commitType>Added</commitType>
			<fileType>File</fileType>
			<fromPath/>
			<fromRevision/>
			<repositoryName>mylocalsvn</repositoryName>
			<toPath>aaa/bbb/qqq.txt</toPath>
			<toRevision>3</toRevision>
		</reviewItem>
	</reviewItems>
	<reviewers/>
	<transitions>
		<transitionData>
			<name>action:approveReview</name>
		</transitionData>
		<transitionData>
			<name>action:abandonReview</name>
		</transitionData>
	</transitions>
	<versionedComments/>
</detailedReviewData>

Sample JSON:

{"detailedReviewData": {
	"allowReviewersToJoin":false,
	"author":{"displayName":"joe lowercase","userName":"joe"},
	"createDate":"2008-10-27T09:50:05.064+1100",
	"creator":{"displayName":"joe lowercase","userName":"joe"},
	"description":"",
	"metricsVersion":1,
	"moderator":{"displayName":"joe lowercase","userName":"joe"},
	"name":"readme ",
	"permaId":{"id":"CR-3"},
	"projectKey":"CR",
	"state":"Draft",
	"actions": {
		"actionData":[{"name":"action:rejectReview"},{"name":"action:closeReview"},
		{"name":"action:modifyReviewFiles"},{"name":"action:abandonReview"},
		{"name":"action:commentOnReview"},{"name":"action:reopenReview"},
		{"name":"action:createReview"},{"name":"action:recoverReview"},
		{"name":"action:deleteReview"},{"name":"action:approveReview"},
		{"name":"action:viewReview"},{"name":"action:submitReview"},
		{"name":"action:summarizeReview"}]
	},
	"generalComments":"",
	"reviewItems": {"reviewItem":[
		{"permId":{"id":"CFR-1"},
		"authorName":"evzijst",
		"commitDate":"2008-10-14T15:25:08.755+1000",
		"commitType":"Modified",
		"fileType":"File",
		"fromPath":"test2\/trunk\/src\/main\/java\/com\/atlassian\/Test.java",
		"fromRevision":9,
		"repositoryName":"Local",
		"toPath":"test2\/trunk\/src\/main\/java\/com\/atlassian\/Test.java",
		"toRevision":10},
		{"permId":{"id":"CFR-2"},
		"authorName":"evzijst",
		"commitDate":"2008-10-14T15:25:08.755+1000",
		"commitType":"Added",
		"fileType":"Directory",
		"fromPath":"",
		"fromRevision":"",
		"repositoryName":"Local",
		"toPath":"test2\/trunk\/src\/test\/java\/com",
		"toRevision":10}]
	},
	"reviewers":"",
	"transitions":{"transitionData":[
		{"name":"action:approveReview"},
		{"name":"action:abandonReview"}]
	},
	"versionedComments":""}}

|

エラー

When a request cannot be serviced properly due to either a server-side problem, or invalid client input, Crucible will return an error document, combined with an HTTP status code other than 200. This XML document contains a number of elements that describe the problem. Note that the HTTP status code distinguishes between client- and server-side causes.
Below is the error that is returned when asking for a non existent resource. The status code for this response is 404 "Document Not Found". Other possible status codes for error responses include 400 "Bad Request" (for example when a request contains an invalid POST body) and 403 "Forbidden" (when accessing a resource without permission).

Sample XML:

<error>
	<code>NotFound</code>
	<message>Unknown metrics version: 45</message>
	<stacktrace>com.atlassian.crucible.spi.services.NotFoundException: Unknown metrics version: 45
	at com.atlassian.crucible.spi.impl.DefaultReviewService.getMetrics(DefaultReviewService.java:689)
	at com.atlassian.crucible.spi.rpc.RestReviewService$22.doGet(RestReviewService.java:645)
	at com.atlassian.crucible.spi.rpc.RestReviewService$22.doGet(RestReviewService.java:644)
	at com.atlassian.crucible.spi.rpc.ConditionalGet.doConditionalGet(ConditionalGet.java:46)
	at com.atlassian.crucible.spi.rpc.RestReviewService.getMetrics(RestReviewService.java:643)
	...
	</stacktrace>
</error>

Sample JSON:

{
	"code":"NotFound",
	"message":"No review exists with permId 'CR-333'",
	"stacktrace":"com.atlassian.crucible.spi.services.NotFoundException: Unknown metrics version: 45
	at com.atlassian.crucible.spi.impl.DefaultReviewService.getMetrics(DefaultReviewService.java:689)
	at com.atlassian.crucible.spi.rpc.RestReviewService$22.doGet(RestReviewService.java:645)
	at com.atlassian.crucible.spi.rpc.RestReviewService$22.doGet(RestReviewService.java:644)
	at com.atlassian.crucible.spi.rpc.ConditionalGet.doConditionalGet(ConditionalGet.java:46)
	at com.atlassian.crucible.spi.rpc.RestReviewService.getMetrics(RestReviewService.java:643)
	..."
}
  • ラベルなし