Add Commit Status documentation
This commit is contained in:
parent
7ef156a242
commit
0aefeeb882
4 changed files with 94 additions and 12 deletions
|
@ -136,7 +136,7 @@ module Ci
|
|||
|
||||
latest_statuses = statuses.latest.to_a
|
||||
latest_statuses.reject! { |status| status.try(&:allow_failure?) }
|
||||
latest_statuses.select! { |status| status.ref == nil || status.ref == ref } if ref
|
||||
latest_statuses.select! { |status| status.ref.nil? || status.ref == ref } if ref
|
||||
|
||||
if latest_statuses.none?
|
||||
return 'skipped'
|
||||
|
|
|
@ -5,7 +5,7 @@ class CommitStatus < ActiveRecord::Base
|
|||
belongs_to :user
|
||||
|
||||
validates :commit, presence: true
|
||||
validates :status, inclusion: {in: %w(pending running failed success canceled)}
|
||||
validates :status, inclusion: { in: %w(pending running failed success canceled) }
|
||||
|
||||
validates_presence_of :name
|
||||
|
||||
|
|
|
@ -157,3 +157,85 @@ Parameters:
|
|||
"line_type": "new"
|
||||
}
|
||||
```
|
||||
|
||||
## Get the status of a commit
|
||||
|
||||
Get the statuses of a commit in a project.
|
||||
|
||||
```
|
||||
GET /projects/:id/repository/commits/:sha/statuses
|
||||
```
|
||||
|
||||
Parameters:
|
||||
|
||||
- `id` (required) - The ID of a project
|
||||
- `sha` (required) - The commit SHA
|
||||
- `ref` (optional) - Filter by ref name, it can be branch or tag
|
||||
- `stage` (optional) - Filter by stage
|
||||
- `name` (optional) - Filer by status name, eg. jenkins
|
||||
- `all` (optional) - The flag to return all statuses, not only latest ones
|
||||
|
||||
```json
|
||||
[
|
||||
{
|
||||
"id": 13,
|
||||
"sha": "b0b3a907f41409829b307a28b82fdbd552ee5a27",
|
||||
"ref": "test",
|
||||
"status": "success",
|
||||
"name": "ci/jenkins",
|
||||
"target_url": "http://jenkins/project/url",
|
||||
"description": "Jenkins success",
|
||||
"created_at": "2015-10-12T09:47:16.250Z",
|
||||
"started_at": "2015-10-12T09:47:16.250Z"",
|
||||
"finished_at": "2015-10-12T09:47:16.262Z",
|
||||
"author": {
|
||||
"id": 1,
|
||||
"username": "admin",
|
||||
"email": "admin@local.host",
|
||||
"name": "Administrator",
|
||||
"blocked": false,
|
||||
"created_at": "2012-04-29T08:46:00Z"
|
||||
}
|
||||
}
|
||||
]
|
||||
```
|
||||
|
||||
## Post the status to commit
|
||||
|
||||
Adds or updates a status of a commit.
|
||||
Optionally you can post comments on a specific line of a commit. Therefor both `path`, `line_new` and `line_old` are required.
|
||||
|
||||
```
|
||||
POST /projects/:id/statuses/:sha
|
||||
```
|
||||
|
||||
- `id` (required) - The ID of a project
|
||||
- `sha` (required) - The commit SHA
|
||||
- `state` (required) - The state of the status. Can be: pending, running, success, failed, canceled
|
||||
- `ref` (optional) - The ref (branch or tag) to which the status refers
|
||||
- `name` or `context` (optional) - The label to differentiate this status from the status of other systems. Default: "default"
|
||||
- `target_url` (optional) - The target URL to associate with this status
|
||||
- `description` (optional) - The short description of the status
|
||||
|
||||
```json
|
||||
{
|
||||
"id": 13,
|
||||
"sha": "b0b3a907f41409829b307a28b82fdbd552ee5a27",
|
||||
"ref": "test",
|
||||
"status": "success",
|
||||
"name": "ci/jenkins",
|
||||
"target_url": "http://jenkins/project/url",
|
||||
"description": "Jenkins success",
|
||||
"created_at": "2015-10-12T09:47:16.250Z",
|
||||
"started_at": "2015-10-12T09:47:16.250Z"",
|
||||
"finished_at": "2015-10-12T09:47:16.262Z",
|
||||
"author": {
|
||||
"id": 1,
|
||||
"username": "admin",
|
||||
"email": "admin@local.host",
|
||||
"name": "Administrator",
|
||||
"blocked": false,
|
||||
"created_at": "2012-04-29T08:46:00Z"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
|
|
@ -56,16 +56,16 @@ module API
|
|||
status.update(attrs)
|
||||
|
||||
case params[:state].to_s
|
||||
when 'running'
|
||||
status.run
|
||||
when 'success'
|
||||
status.success
|
||||
when 'failed'
|
||||
status.drop
|
||||
when 'canceled'
|
||||
status.cancel
|
||||
else
|
||||
status.status = params[:state].to_s
|
||||
when 'running'
|
||||
status.run
|
||||
when 'success'
|
||||
status.success
|
||||
when 'failed'
|
||||
status.drop
|
||||
when 'canceled'
|
||||
status.cancel
|
||||
else
|
||||
status.status = params[:state].to_s
|
||||
end
|
||||
|
||||
if status.save
|
||||
|
|
Loading…
Reference in a new issue