Jump to >

Diff Resource

Provides information on a collection of complete diffs.

Each diff contains individual per-file diffs as child resources. A diff is revisioned, and more than one can be associated with any particular review request.

Details

Name diff
URI /api/review-requests/{review_request_id}/diffs/{diff_revision}/
Token Policy ID diff
HTTP Methods
  • GET - Returns the information or contents on a particular diff.
  • PUT - Updates a diff.
Parent Resource Diff List Resource
Child Resources
Anonymous Access Yes, if anonymous site access is enabled

Fields

base_commit_idString

The ID/revision this change is built upon. If using a parent diff, then this is the base for that diff. This may not be provided for all diffs or repository types, depending on how the diff was uploaded.

Added in 1.7.13

basedirString

The base directory that will prepended to all paths in the diff. This is needed for some types of repositories. The directory must be between the root of the repository and the top directory referenced in the diff paths.

Added in 1.7

commit_countInteger

The number of commits present in the case of review requests created with commit history.

Added in 4.0

extra_dataDictionary

Extra data as part of the diff. This can be set by the API or extensions.

Added in 2.0

idInteger The numeric ID of the diff.
nameString The name of the diff, usually the filename.
repositoryRepository Resource The repository that the diff is applied against.
revisionInteger The revision of the diff. Starts at 1 for public diffs. Draft diffs may be at 0.
timestampISO 8601 Date/Time The date and time that the diff was uploaded.

HTTP GET

Returns the information or contents on a particular diff.

The output varies by mimetype.

If application/json or application/xml is used, then the fields for the diff are returned, like with any other resource.

If text/x-patch is used, then the actual diff file itself is returned. This diff should be as it was when uploaded originally, with potentially some extra SCM-specific headers stripped. The contents will contain that of all per-file diffs that make up this diff.

Errors

100 - Does Not ExistHTTP 404 - Not Found Object does not exist
101 - Permission DeniedHTTP 403 - Forbidden You don’t have permission for this
103 - Not Logged InHTTP 401 - Unauthorized You are not logged in
112 - OAuth2 Missing Scope ErrorHTTP 403 - Forbidden Your OAuth2 token lacks the necessary scopes for this request.
113 - OAuth2 Access Denied ErrorHTTP 403 - Forbidden OAuth2 token access for this resource is prohibited.

HTTP PUT

Updates a diff.

This is used solely for updating extra data on a diff. The contents of a diff cannot be modified.

Extra data can be stored later lookup. See Storing/Accessing Extra Data for more information.

Errors

100 - Does Not ExistHTTP 404 - Not Found Object does not exist
101 - Permission DeniedHTTP 403 - Forbidden You don’t have permission for this
103 - Not Logged InHTTP 401 - Unauthorized You are not logged in
105 - Invalid Form DataHTTP 400 - Bad Request One or more fields had errors
112 - OAuth2 Missing Scope ErrorHTTP 403 - Forbidden Your OAuth2 token lacks the necessary scopes for this request.
113 - OAuth2 Access Denied ErrorHTTP 403 - Forbidden OAuth2 token access for this resource is prohibited.

Examples

application/vnd.reviewboard.org.diff+json

$ curl http://reviews.example.com/api10/1/ -H "Accept: application/json"
Last-Modified: Fri, 10 Aug 2018 22:16:22 GMT
ETag: a60833a62f618bf5115470ddc6b706fad4db0721
Content-Type: application/vnd.reviewboard.org.diff+json
X-Content-Type-Options: nosniff
Vary: Accept, Cookie
{
  "diff": {
    "base_commit_id": "1baa5285167980271becd922acd77a20a20b916b", 
    "basedir": "", 
    "commit_count": 1, 
    "extra_data": {}, 
    "id": 13, 
    "links": {
      "commits": {
        "href": "http://reviews.example.com/api/review-requests/10/diffs/1/commits/", 
        "method": "GET"
      }, 
      "files": {
        "href": "http://reviews.example.com/api/review-requests/10/diffs/1/files/", 
        "method": "GET"
      }, 
      "repository": {
        "href": "http://reviews.example.com/api/repositories/3/", 
        "method": "GET", 
        "title": "Git Repo"
      }, 
      "self": {
        "href": "http://reviews.example.com/api/review-requests/10/diffs/1/", 
        "method": "GET"
      }, 
      "update": {
        "href": "http://reviews.example.com/api/review-requests/10/diffs/1/", 
        "method": "PUT"
      }
    }, 
    "name": "diff", 
    "revision": 1, 
    "timestamp": "2018-08-10T22:16:22Z"
  }, 
  "stat": "ok"
}