API: Revisions
Revisions are sets of updates to files in the context of repositories linked in OpenProject.
Linked Properties
Link | Description | Type | Constraints | Supported operations |
---|---|---|---|---|
self | This revision | Revision | not null | READ |
project | The project to which the revision belongs | Project | not null | READ |
author | The user that added this revision, if the authorName was mapped to a user in OpenProject | User | READ | |
showRevision | A URL to the repository view (outside APIv3) showing this revision | - | not null | READ |
Local Properties
Property | Description | Type | Constraints | Supported operations |
---|---|---|---|---|
id | Revision’s id, assigned by OpenProject | Integer | x > 0 | READ |
identifier | The raw SCM identifier of the revision (e.g. full SHA hash) | String | not null | READ |
formattedIdentifier | The SCM identifier of the revision, formatted (e.g. shortened unambiguous SHA hash). May be identical to identifier in many cases | String | not null | READ |
authorName | The name of the author that committed this revision. Note that this name is retrieved from the repository and does not identify a user in OpenProject. | String | not null | READ |
message | The commit message of the revision | Formattable | not null | READ |
createdAt | The time this revision was committed to the repository | DateTime | not null | READ |
Methods
View revision
id
integer
required path
Revision id
Example:1
200
OK
{
"_links": {
"author": {
"href": "/api/v3/users/1"
},
"project": {
"href": "/api/v3/projects/1"
},
"self": {
"href": "/api/v3/revisions/1"
},
"showRevision": {
"href": "/projects/identifier/repository/revision/11f4b07"
}
},
"_type": "Revision",
"authorName": "Some Developer",
"createdAt": "2015-07-21T13:36:59.454Z",
"formattedIdentifier": "11f4b07",
"id": 1,
"identifier": "11f4b07dff4f4ce9548a52b7d002daca7cd63ec6",
"message": {
"format": "plain",
"html": "<p>This revision provides new features<br/><br/>An elaborate description</p>",
"raw": "This revision provides new features\n\nAn elaborate description"
}
}
RevisionModel
{
"type": "object",
"required": [
"identifier",
"formattedIdentifier",
"authorName",
"message",
"createdAt"
],
"properties": {
"id": {
"type": "integer",
"description": "Revision's id, assigned by OpenProject",
"readOnly": true,
"exclusiveMinimum": 0
},
"identifier": {
"type": "string",
"description": "The raw SCM identifier of the revision (e.g. full SHA hash)",
"readOnly": true
},
"formattedIdentifier": {
"type": "string",
"description": "The SCM identifier of the revision, formatted (e.g. shortened unambiguous SHA hash). May be identical to identifier in many cases",
"readOnly": true
},
"authorName": {
"type": "string",
"description": "The name of the author that committed this revision. Note that this name is retrieved from the repository and does not identify a user in OpenProject.",
"readOnly": true
},
"message": {
"allOf": [
{
"$ref": "#/components/schemas/Formattable"
},
{
"description": "The commit message of the revision",
"readOnly": true
}
]
},
"createdAt": {
"type": "string",
"format": "date-time",
"description": "The time this revision was committed to the repository"
},
"_links": {
"type": "object",
"required": [
"self",
"project",
"showRevision"
],
"properties": {
"self": {
"allOf": [
{
"$ref": "#/components/schemas/Link"
},
{
"description": "This revision\n\n**Resource**: Revision",
"readOnly": true
}
]
},
"project": {
"allOf": [
{
"$ref": "#/components/schemas/Link"
},
{
"description": "The project to which the revision belongs\n\n**Resource**: Project",
"readOnly": true
}
]
},
"author": {
"allOf": [
{
"$ref": "#/components/schemas/Link"
},
{
"description": "The user that added this revision, if the authorName was mapped to a user in OpenProject\n\n**Resource**: User",
"readOnly": true
}
]
},
"showRevision": {
"allOf": [
{
"$ref": "#/components/schemas/Link"
},
{
"description": "A URL to the repository view (outside APIv3) showing this revision\n\n**Resource**: -",
"readOnly": true
}
]
}
}
}
},
"example": {
"_type": "Revision",
"_links": {
"self": {
"href": "/api/v3/revisions/1"
},
"project": {
"href": "/api/v3/projects/1"
},
"author": {
"href": "/api/v3/users/1"
},
"showRevision": {
"href": "/projects/identifier/repository/revision/11f4b07"
}
},
"id": 1,
"identifier": "11f4b07dff4f4ce9548a52b7d002daca7cd63ec6",
"formattedIdentifier": "11f4b07",
"authorName": "Some Developer",
"message": {
"format": "plain",
"raw": "This revision provides new features\n\nAn elaborate description",
"html": "<p>This revision provides new features<br/><br/>An elaborate description</p>"
},
"createdAt": "2015-07-21T13:36:59.859Z"
}
}
404
Returned if the revision does not exist or the client does not have sufficient permissions to see it.
Required permission: view changesets for the project the repository is created in.
Note: A client without sufficient permissions shall not be able to test for the existence of a revision. That’s why a 404 is returned here, even if a 403 might be more appropriate.
{
"_type": "Error",
"errorIdentifier": "urn:openproject-org:api:v3:errors:NotFound",
"message": "The specified revision does not exist."
}
ErrorResponse
{
"type": "object",
"required": [
"_type",
"errorIdentifier",
"message"
],
"properties": {
"_embedded": {
"type": "object",
"properties": {
"details": {
"type": "object",
"properties": {
"attribute": {
"type": "string",
"example": "project"
}
}
}
}
},
"_type": {
"type": "string",
"enum": [
"Error"
]
},
"errorIdentifier": {
"type": "string",
"example": "urn:openproject-org:api:v3:errors:PropertyConstraintViolation"
},
"message": {
"type": "string",
"example": "Project can't be blank."
}
}
}