From 4e70f2519bba83d5f9d6fd0bed80e9837e8b5fc5 Mon Sep 17 00:00:00 2001
From: Tomasz Maczukin <tomasz@maczukin.pl>
Date: Mon, 11 Jan 2016 11:15:04 +0100
Subject: [PATCH] Update ./doc/api/builds.md

---
 doc/api/builds.md   | 301 ++++++++++++++++++++++++++++++++++----------
 lib/api/entities.rb |   3 +-
 2 files changed, 234 insertions(+), 70 deletions(-)

diff --git a/doc/api/builds.md b/doc/api/builds.md
index c52266714d0..64efe6bb3b1 100644
--- a/doc/api/builds.md
+++ b/doc/api/builds.md
@@ -17,37 +17,97 @@ Parameters:
 [
     {
         "commit": {
-            "committed_at": "2015-12-28T14:34:03.814Z",
-            "id": 2,
-            "ref": null,
-            "sha": "6b053ad388c531c21907f022933e5e81598db388"
+            "author_email": "admin@example.com",
+            "author_name": "Administrator",
+            "created_at": "2015-12-24T16:51:14.000+01:00",
+            "id": "0ff3ae198f8601a285adcf5c0fff204ee6fba5fd",
+            "message": "Test the CI integration.",
+            "short_id": "0ff3ae19",
+            "title": "Test the CI integration."
         },
-        "created_at": "2016-01-04T15:41:23.147Z",
-        "finished_at": null,
-        "id": 65,
-        "name": "brakeman",
+        "coverage": null,
+        "created_at": "2015-12-24T15:51:21.802Z",
+        "download_url": null,
+        "finished_at": "2015-12-24T17:54:27.895Z",
+        "id": 7,
+        "name": "teaspoon",
         "ref": "master",
         "runner": null,
         "stage": "test",
-        "started_at": null,
-        "status": "pending"
+        "started_at": "2015-12-24T17:54:27.722Z",
+        "status": "failed",
+        "tag": false,
+        "user": {
+            "avatar_url": "http://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80&d=identicon",
+            "bio": null,
+            "can_create_group": true,
+            "can_create_project": true,
+            "color_scheme_id": 2,
+            "created_at": "2015-12-21T13:14:24.077Z",
+            "current_sign_in_at": "2016-01-11T09:31:40.472Z",
+            "email": "admin@example.com",
+            "id": 1,
+            "identities": [],
+            "is_admin": true,
+            "linkedin": "",
+            "name": "Administrator",
+            "projects_limit": 100,
+            "skype": "",
+            "state": "active",
+            "theme_id": 3,
+            "twitter": "",
+            "two_factor_enabled": false,
+            "username": "root",
+            "web_url": "http://gitlab.dev/u/root",
+            "website_url": ""
+        }
     },
     {
         "commit": {
-            "committed_at": "2015-12-28T14:34:03.814Z",
-            "id": 2,
-            "ref": null,
-            "sha": "6b053ad388c531c21907f022933e5e81598db388"
+            "author_email": "admin@example.com",
+            "author_name": "Administrator",
+            "created_at": "2015-12-24T16:51:14.000+01:00",
+            "id": "0ff3ae198f8601a285adcf5c0fff204ee6fba5fd",
+            "message": "Test the CI integration.",
+            "short_id": "0ff3ae19",
+            "title": "Test the CI integration."
         },
-        "created_at": "2016-01-04T15:41:23.046Z",
-        "finished_at": null,
-        "id": 64,
-        "name": "rubocop",
+        "coverage": null,
+        "created_at": "2015-12-24T15:51:21.727Z",
+        "download_url": null,
+        "finished_at": "2015-12-24T17:54:24.921Z",
+        "id": 6,
+        "name": "spinach:other",
         "ref": "master",
         "runner": null,
         "stage": "test",
-        "started_at": null,
-        "status": "pending"
+        "started_at": "2015-12-24T17:54:24.729Z",
+        "status": "failed",
+        "tag": false,
+        "user": {
+            "avatar_url": "http://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80&d=identicon",
+            "bio": null,
+            "can_create_group": true,
+            "can_create_project": true,
+            "color_scheme_id": 2,
+            "created_at": "2015-12-21T13:14:24.077Z",
+            "current_sign_in_at": "2016-01-11T09:31:40.472Z",
+            "email": "admin@example.com",
+            "id": 1,
+            "identities": [],
+            "is_admin": true,
+            "linkedin": "",
+            "name": "Administrator",
+            "projects_limit": 100,
+            "skype": "",
+            "state": "active",
+            "theme_id": 3,
+            "twitter": "",
+            "two_factor_enabled": false,
+            "username": "root",
+            "web_url": "http://gitlab.dev/u/root",
+            "website_url": ""
+        }
     }
 ]
 ```
@@ -57,7 +117,7 @@ Parameters:
 Get a list of builds for specific commit in a project.
 
 ```
-GET /projects/:id/builds/commit/:sha
+GET /projects/:id/repository/commits/:sha/builds
 ```
 
 Parameters:
@@ -67,45 +127,104 @@ Parameters:
 - `scope` (optional) - The scope of builds to show (one or array of: pending, running, failed, success, canceled; if none provided showing all builds)
 
 ```json
-[
-    {
-        "commit": {
-            "committed_at": "2015-12-28T14:34:03.814Z",
-            "id": 2,
-            "ref": null,
-            "sha": "6b053ad388c531c21907f022933e5e81598db388"
+
+```
+
+## Get a single build
+mmit": {
+            "author_email": "admin@example.com",
+            "author_name": "Administrator",
+            "created_at": "2015-12-24T16:51:14.000+01:00",
+            "id": "0ff3ae198f8601a285adcf5c0fff204ee6fba5fd",
+            "message": "Test the CI integration.",
+            "short_id": "0ff3ae19",
+            "title": "Test the CI integration."
         },
-        "created_at": "2016-01-04T15:41:23.147Z",
-        "finished_at": null,
-        "id": 65,
+        "coverage": null,
+        "created_at": "2015-12-24T15:51:21.957Z",
+        "download_url": null,
+        "finished_at": "2015-12-24T17:54:33.913Z",
+        "id": 9,
         "name": "brakeman",
         "ref": "master",
         "runner": null,
         "stage": "test",
-        "started_at": null,
-        "status": "pending"
+        "started_at": "2015-12-24T17:54:33.727Z",
+        "status": "failed",
+        "tag": false,
+        "user": {
+            "avatar_url": "http://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80&d=identicon",
+            "bio": null,
+            "can_create_group": true,
+            "can_create_project": true,
+            "color_scheme_id": 2,
+            "created_at": "2015-12-21T13:14:24.077Z",
+            "current_sign_in_at": "2016-01-11T09:31:40.472Z",
+            "email": "admin@example.com",
+            "id": 1,
+            "identities": [],
+            "is_admin": true,
+            "linkedin": "",
+            "name": "Administrator",
+            "projects_limit": 100,
+            "skype": "",
+            "state": "active",
+            "theme_id": 3,
+            "twitter": "",
+            "two_factor_enabled": false,
+            "username": "root",
+            "web_url": "http://gitlab.dev/u/root",
+            "website_url": ""
+        }
     },
     {
         "commit": {
-            "committed_at": "2015-12-28T14:34:03.814Z",
-            "id": 2,
-            "ref": null,
-            "sha": "6b053ad388c531c21907f022933e5e81598db388"
+            "author_email": "admin@example.com",
+            "author_name": "Administrator",
+            "created_at": "2015-12-24T16:51:14.000+01:00",
+            "id": "0ff3ae198f8601a285adcf5c0fff204ee6fba5fd",
+            "message": "Test the CI integration.",
+            "short_id": "0ff3ae19",
+            "title": "Test the CI integration."
         },
-        "created_at": "2016-01-04T15:41:23.046Z",
-        "finished_at": null,
-        "id": 64,
+        "coverage": null,
+        "created_at": "2015-12-24T15:51:21.880Z",
+        "download_url": null,
+        "finished_at": "2015-12-24T17:54:31.198Z",
+        "id": 8,
         "name": "rubocop",
         "ref": "master",
         "runner": null,
         "stage": "test",
-        "started_at": null,
-        "status": "pending"
+        "started_at": "2015-12-24T17:54:30.733Z",
+        "status": "failed",
+        "tag": false,
+        "user": {
+            "avatar_url": "http://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80&d=identicon",
+            "bio": null,
+            "can_create_group": true,
+            "can_create_project": true,
+            "color_scheme_id": 2,
+            "created_at": "2015-12-21T13:14:24.077Z",
+            "current_sign_in_at": "2016-01-11T09:31:40.472Z",
+            "email": "admin@example.com",
+            "id": 1,
+            "identities": [],
+            "is_admin": true,
+            "linkedin": "",
+            "name": "Administrator",
+            "projects_limit": 100,
+            "skype": "",
+            "state": "active",
+            "theme_id": 3,
+            "twitter": "",
+            "two_factor_enabled": false,
+            "username": "root",
+            "web_url": "http://gitlab.dev/u/root",
+            "website_url": ""
+        }
     }
 ]
-```
-
-## Get a single build
 
 Get a single build of a project
 
@@ -121,20 +240,50 @@ Parameters:
 ```json
 {
     "commit": {
-        "committed_at": "2015-12-28T14:34:03.814Z",
-        "id": 2,
-        "ref": null,
-        "sha": "6b053ad388c531c21907f022933e5e81598db388"
+        "author_email": "admin@example.com",
+        "author_name": "Administrator",
+        "created_at": "2015-12-24T16:51:14.000+01:00",
+        "id": "0ff3ae198f8601a285adcf5c0fff204ee6fba5fd",
+        "message": "Test the CI integration.",
+        "short_id": "0ff3ae19",
+        "title": "Test the CI integration."
     },
-    "created_at": "2016-01-04T15:41:23.046Z",
-    "finished_at": null,
-    "id": 64,
+    "coverage": null,
+    "created_at": "2015-12-24T15:51:21.880Z",
+    "download_url": null,
+    "finished_at": "2015-12-24T17:54:31.198Z",
+    "id": 8,
     "name": "rubocop",
     "ref": "master",
     "runner": null,
     "stage": "test",
-    "started_at": null,
-    "status": "pending"
+    "started_at": "2015-12-24T17:54:30.733Z",
+    "status": "failed",
+    "tag": false,
+    "user": {
+        "avatar_url": "http://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80&d=identicon",
+        "bio": null,
+        "can_create_group": true,
+        "can_create_project": true,
+        "color_scheme_id": 2,
+        "created_at": "2015-12-21T13:14:24.077Z",
+        "current_sign_in_at": "2016-01-11T09:31:40.472Z",
+        "email": "admin@example.com",
+        "id": 1,
+        "identities": [],
+        "is_admin": true,
+        "linkedin": "",
+        "name": "Administrator",
+        "projects_limit": 100,
+        "skype": "",
+        "state": "active",
+        "theme_id": 3,
+        "twitter": "",
+        "two_factor_enabled": false,
+        "username": "root",
+        "web_url": "http://gitlab.dev/u/root",
+        "website_url": ""
+    }
 }
 ```
 
@@ -154,20 +303,27 @@ Parameters:
 ```json
 {
     "commit": {
-        "committed_at": "2015-12-28T14:34:03.814Z",
-        "id": 2,
-        "ref": null,
-        "sha": "6b053ad388c531c21907f022933e5e81598db388"
+        "author_email": "admin@example.com",
+        "author_name": "Administrator",
+        "created_at": "2015-12-24T16:51:14.000+01:00",
+        "id": "0ff3ae198f8601a285adcf5c0fff204ee6fba5fd",
+        "message": "Test the CI integration.",
+        "short_id": "0ff3ae19",
+        "title": "Test the CI integration."
     },
-    "created_at": "2016-01-05T15:33:25.936Z",
-    "finished_at": "2016-01-05T15:33:47.553Z",
-    "id": 66,
+    "coverage": null,
+    "created_at": "2016-01-11T10:13:33.506Z",
+    "download_url": null,
+    "finished_at": "2016-01-11T10:14:09.526Z",
+    "id": 69,
     "name": "rubocop",
     "ref": "master",
     "runner": null,
     "stage": "test",
     "started_at": null,
-    "status": "canceled"
+    "status": "canceled",
+    "tag": false,
+    "user": null
 }
 ```
 
@@ -187,19 +343,26 @@ Parameters:
 ```json
 {
     "commit": {
-        "committed_at": "2015-12-28T14:34:03.814Z",
-        "id": 2,
-        "ref": null,
-        "sha": "6b053ad388c531c21907f022933e5e81598db388"
+        "author_email": "admin@example.com",
+        "author_name": "Administrator",
+        "created_at": "2015-12-24T16:51:14.000+01:00",
+        "id": "0ff3ae198f8601a285adcf5c0fff204ee6fba5fd",
+        "message": "Test the CI integration.",
+        "short_id": "0ff3ae19",
+        "title": "Test the CI integration."
     },
-    "created_at": "2016-01-05T15:33:25.936Z",
+    "coverage": null,
+    "created_at": "2016-01-11T10:13:33.506Z",
+    "download_url": null,
     "finished_at": null,
-    "id": 66,
+    "id": 69,
     "name": "rubocop",
     "ref": "master",
     "runner": null,
     "stage": "test",
     "started_at": null,
-    "status": "pending"
+    "status": "pending",
+    "tag": false,
+    "user": null
 }
 ```
diff --git a/lib/api/entities.rb b/lib/api/entities.rb
index cb00b392db9..a1a886d6fea 100644
--- a/lib/api/entities.rb
+++ b/lib/api/entities.rb
@@ -375,8 +375,9 @@ module API
     end
 
     class Build < Grape::Entity
-      expose :id, :status, :stage, :name, :ref, :tag, :coverage, :user
+      expose :id, :status, :stage, :name, :ref, :tag, :coverage
       expose :created_at, :started_at, :finished_at
+      expose :user, with: UserFull
       expose :download_url do |repo_obj, options|
         if options[:user_can_download_artifacts]
           repo_obj.download_url
-- 
GitLab