Commit 1a6ba7e640577a98b6db480c8e7884882fb0fa03

Authored by Dmitriy Zaporozhets
2 parents 45efba58 62673d58

Merge branch 'master' of dev.gitlab.org:gitlab/gitlabhq

README.md
... ... @@ -127,14 +127,17 @@ or start each component separately
127 127  
128 128 ### GitLab interfaces
129 129  
130   -* [GitLab API](doc/api/README.md)
  130 +* [GitLab API doc](doc/api/README.md) or see the [GitLab API website](http://api.gitlab.org/)
131 131  
132   -* [Rake tasks](doc/raketasks)
  132 +* [Rake tasks](doc/raketasks) including a [backup and restore procedure](doc/raketasks/backup_restore.md)
133 133  
134 134 * [Directory structure](doc/install/structure.md)
135 135  
136   -* [Databases](doc/install/databases.md)
  136 +* [Database installation](doc/install/databases.md)
137 137  
  138 +* [Markdown specification](doc/markdown/markdown.md)
  139 +
  140 +* [Security guide](doc/security/rack_attack.md) to throttle abusive requests
138 141  
139 142 ### Getting help
140 143  
... ... @@ -157,10 +160,8 @@ or start each component separately
157 160  
158 161 ### Getting in touch
159 162  
160   -* [Core team](https://github.com/gitlabhq?tab=members)
161   -
162   -* [Contributors](https://github.com/gitlabhq/gitlabhq/graphs/contributors)
  163 +* [Core team](http://gitlab.org/team/)
163 164  
164   -* [Leader](https://github.com/randx)
  165 +* [Contributors](http://contributors.gitlab.org/)
165 166  
166   -* [Contact page](http://gitlab.org/contact/)
  167 +* [Community](http://gitlab.org/community/)
... ...
config/database.yml.mysql
... ... @@ -7,7 +7,7 @@ production:
7 7 reconnect: false
8 8 database: gitlabhq_production
9 9 pool: 10
10   - username: root
  10 + username: gitlab
11 11 password: "secure password"
12 12 # host: localhost
13 13 # socket: /tmp/mysql.sock
... ...
config/database.yml.postgresql
... ... @@ -6,8 +6,8 @@ production:
6 6 encoding: unicode
7 7 database: gitlabhq_production
8 8 pool: 10
9   - username: git
10   - password:
  9 + # username: git
  10 + # password:
11 11 # host: localhost
12 12 # port: 5432
13 13 # socket: /tmp/postgresql.sock
... ...
config/gitlab.yml.example
... ... @@ -56,9 +56,10 @@ production: &base
56 56 # signup_enabled: true
57 57  
58 58 ## Automatic issue closing
59   - # If a commit message matches this regular express, all issues referenced from the matched text will be closed
60   - # if it's pushed to a project's default branch.
61   - # issue_closing_pattern: ^([Cc]loses|[Ff]ixes) +#\d+
  59 + # If a commit message matches this regular expression, all issues referenced from the matched text will be closed.
  60 + # This happends when the commit is pushed or merged into the default branch of a project.
  61 + # When not specified the default issue_closing_pattern as specified below will be used.
  62 + # issue_closing_pattern: ([Cc]loses|[Ff]ixes) +#\d+
62 63  
63 64 ## Default project features settings
64 65 default_projects_features:
... ...
config/initializers/1_settings.rb
... ... @@ -69,7 +69,7 @@ rescue ArgumentError # no user configured
69 69 end
70 70 Settings.gitlab['signup_enabled'] ||= false
71 71 Settings.gitlab['username_changing_enabled'] = true if Settings.gitlab['username_changing_enabled'].nil?
72   -Settings.gitlab['issue_closing_pattern'] = '^([Cc]loses|[Ff]ixes) #(\d+)' if Settings.gitlab['issue_closing_pattern'].nil?
  72 +Settings.gitlab['issue_closing_pattern'] = '([Cc]loses|[Ff]ixes) #(\d+)' if Settings.gitlab['issue_closing_pattern'].nil?
73 73 Settings.gitlab['default_projects_features'] ||= {}
74 74 Settings.gitlab.default_projects_features['issues'] = true if Settings.gitlab.default_projects_features['issues'].nil?
75 75 Settings.gitlab.default_projects_features['merge_requests'] = true if Settings.gitlab.default_projects_features['merge_requests'].nil?
... ...
doc/api/README.md
... ... @@ -117,7 +117,7 @@ When listing resources you can pass the following parameters:
117 117 + [Deploy Keys](deploy_keys.md)
118 118 + [System Hooks](system_hooks.md)
119 119 + [Groups](groups.md)
120   -+ [User Teams](user_teams.md)
  120 +
121 121  
122 122 ## Clients
123 123  
... ...
doc/api/deploy_keys.md
... ... @@ -20,13 +20,15 @@ Parameters:
20 20 "key": "ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAIEAiPWx6WM4lhHNedGfBpPJNPpZ7yKu+dnn1SJejgt4
21 21 596k6YjzGGphH2TUxwKzxcKDKKezwkpfnxPkSMkuEspGRt/aZZ9wa++Oi7Qkr8prgHc4
22 22 soW6NUlfDzpvZK2H5E7eQaSeP3SAwGmQKUFHCddNaP0L+hM7zhFNzjFvpaMgJw0=",
  23 + "created_at":"2013-10-02T10:12:29Z"
23 24 },
24 25 {
25 26 "id": 3,
26 27 "title" : "Another Public key",
27 28 "key": "ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAIEAiPWx6WM4lhHNedGfBpPJNPpZ7yKu+dnn1SJejgt4
28 29 596k6YjzGGphH2TUxwKzxcKDKKezwkpfnxPkSMkuEspGRt/aZZ9wa++Oi7Qkr8prgHc4
29   - soW6NUlfDzpvZK2H5E7eQaSeP3SAwGmQKUFHCddNaP0L+hM7zhFNzjFvpaMgJw0="
  30 + soW6NUlfDzpvZK2H5E7eQaSeP3SAwGmQKUFHCddNaP0L+hM7zhFNzjFvpaMgJw0=",
  31 + "created_at":"2013-10-02T11:12:29Z"
30 32 }
31 33 ]
32 34 ```
... ... @@ -51,7 +53,8 @@ Parameters:
51 53 "title" : "Public key",
52 54 "key": "ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAIEAiPWx6WM4lhHNedGfBpPJNPpZ7yKu+dnn1SJejgt4
53 55 596k6YjzGGphH2TUxwKzxcKDKKezwkpfnxPkSMkuEspGRt/aZZ9wa++Oi7Qkr8prgHc4
54   - soW6NUlfDzpvZK2H5E7eQaSeP3SAwGmQKUFHCddNaP0L+hM7zhFNzjFvpaMgJw0="
  56 + soW6NUlfDzpvZK2H5E7eQaSeP3SAwGmQKUFHCddNaP0L+hM7zhFNzjFvpaMgJw0=",
  57 + "created_at":"2013-10-02T10:12:29Z"
55 58 }
56 59 ```
57 60  
... ...
doc/api/groups.md
... ... @@ -8,12 +8,12 @@ GET /groups
8 8  
9 9 ```json
10 10 [
11   - {
12   - "id": 1,
13   - "name": "Foobar Group",
14   - "path": "foo-bar",
15   - "owner_id": 18
16   - }
  11 + {
  12 + "id": 1,
  13 + "name": "Foobar Group",
  14 + "path": "foo-bar",
  15 + "owner_id": 18
  16 + }
17 17 ]
18 18 ```
19 19  
... ... @@ -59,6 +59,19 @@ Parameters:
59 59  
60 60 ## Group members
61 61  
  62 +
  63 +**Group access levels**
  64 +
  65 +The group access levels are defined in the `Gitlab::Access` module. Currently, these levels are recognized:
  66 +
  67 +```
  68 + GUEST = 10
  69 + REPORTER = 20
  70 + DEVELOPER = 30
  71 + MASTER = 40
  72 + OWNER = 50
  73 +```
  74 +
62 75 ### List group members
63 76  
64 77 Get a list of group members viewable by the authenticated user.
... ...
doc/api/issues.md
... ... @@ -22,10 +22,10 @@ GET /issues
22 22 "username": "john_smith",
23 23 "email": "john@example.com",
24 24 "name": "John Smith",
25   - "blocked": false,
  25 + "state": "active",
26 26 "created_at": "2012-05-23T08:00:58Z"
27 27 },
28   - "state": 'closed',
  28 + "state": "closed",
29 29 "updated_at": "2012-07-02T17:53:12Z",
30 30 "created_at": "2012-07-02T17:53:12Z"
31 31 },
... ... @@ -42,7 +42,7 @@ GET /issues
42 42 "title": "v1.0",
43 43 "description": "",
44 44 "due_date": "2012-07-20",
45   - "state": 'reopenend',
  45 + "state": "reopenend",
46 46 "updated_at": "2012-07-04T13:42:48Z",
47 47 "created_at": "2012-07-04T13:42:48Z"
48 48 },
... ... @@ -51,7 +51,7 @@ GET /issues
51 51 "username": "jack_smith",
52 52 "email": "jack@example.com",
53 53 "name": "Jack Smith",
54   - "blocked": false,
  54 + "state": "active",
55 55 "created_at": "2012-05-23T08:01:01Z"
56 56 },
57 57 "author": {
... ... @@ -59,10 +59,10 @@ GET /issues
59 59 "username": "john_smith",
60 60 "email": "john@example.com",
61 61 "name": "John Smith",
62   - "blocked": false,
  62 + "state": "active",
63 63 "created_at": "2012-05-23T08:00:58Z"
64 64 },
65   - "state": 'opened',
  65 + "state": "opened",
66 66 "updated_at": "2012-07-12T13:43:19Z",
67 67 "created_at": "2012-06-28T12:58:06Z"
68 68 }
... ... @@ -111,7 +111,7 @@ Parameters:
111 111 "title": "v1.0",
112 112 "description": "",
113 113 "due_date": "2012-07-20",
114   - "state": 'closed',
  114 + "state": "closed",
115 115 "updated_at": "2012-07-04T13:42:48Z",
116 116 "created_at": "2012-07-04T13:42:48Z"
117 117 },
... ... @@ -120,7 +120,7 @@ Parameters:
120 120 "username": "jack_smith",
121 121 "email": "jack@example.com",
122 122 "name": "Jack Smith",
123   - "blocked": false,
  123 + "state": "active",
124 124 "created_at": "2012-05-23T08:01:01Z"
125 125 },
126 126 "author": {
... ... @@ -128,10 +128,10 @@ Parameters:
128 128 "username": "john_smith",
129 129 "email": "john@example.com",
130 130 "name": "John Smith",
131   - "blocked": false,
  131 + "state": "active",
132 132 "created_at": "2012-05-23T08:00:58Z"
133 133 },
134   - "state": 'opened',
  134 + "state": "opened",
135 135 "updated_at": "2012-07-12T13:43:19Z",
136 136 "created_at": "2012-06-28T12:58:06Z"
137 137 }
... ...
doc/api/merge_requests.md
... ... @@ -19,14 +19,13 @@ Parameters:
19 19 "source_branch":"test1",
20 20 "project_id":3,
21 21 "title":"test1",
22   - "closed":true,
23   - "merged":false,
  22 + "state":"opened",
24 23 "author":{
25 24 "id":1,
26 25 "username": "admin",
27 26 "email":"admin@local.host",
28 27 "name":"Administrator",
29   - "blocked":false,
  28 + "state":"active",
30 29 "created_at":"2012-04-29T08:46:00Z"
31 30 },
32 31 "assignee":{
... ... @@ -34,7 +33,7 @@ Parameters:
34 33 "username": "admin",
35 34 "email":"admin@local.host",
36 35 "name":"Administrator",
37   - "blocked":false,
  36 + "state":"active",
38 37 "created_at":"2012-04-29T08:46:00Z"
39 38 }
40 39 }
... ... @@ -62,14 +61,13 @@ Parameters:
62 61 "source_branch":"test1",
63 62 "project_id":3,
64 63 "title":"test1",
65   - "closed":true,
66   - "merged":false,
  64 + "state":"merged",
67 65 "author":{
68 66 "id":1,
69 67 "username": "admin",
70 68 "email":"admin@local.host",
71 69 "name":"Administrator",
72   - "blocked":false,
  70 + "state":"active",
73 71 "created_at":"2012-04-29T08:46:00Z"
74 72 },
75 73 "assignee":{
... ... @@ -77,7 +75,7 @@ Parameters:
77 75 "username": "admin",
78 76 "email":"admin@local.host",
79 77 "name":"Administrator",
80   - "blocked":false,
  78 + "state":"active",
81 79 "created_at":"2012-04-29T08:46:00Z"
82 80 }
83 81 }
... ... @@ -97,7 +95,7 @@ Parameters:
97 95 + `id` (required) - The ID of a project
98 96 + `source_branch` (required) - The source branch
99 97 + `target_branch` (required) - The target branch
100   -+ `assignee_id` - Assignee user ID
  98 ++ `assignee_id` (optional) - Assignee user ID
101 99 + `title` (required) - Title of MR
102 100  
103 101 ```json
... ... @@ -107,14 +105,13 @@ Parameters:
107 105 "source_branch":"test1",
108 106 "project_id":3,
109 107 "title":"test1",
110   - "closed":true,
111   - "merged":false,
  108 + "state":"opened",
112 109 "author":{
113 110 "id":1,
114 111 "username": "admin",
115 112 "email":"admin@local.host",
116 113 "name":"Administrator",
117   - "blocked":false,
  114 + "state":"active",
118 115 "created_at":"2012-04-29T08:46:00Z"
119 116 },
120 117 "assignee":{
... ... @@ -122,7 +119,7 @@ Parameters:
122 119 "username": "admin",
123 120 "email":"admin@local.host",
124 121 "name":"Administrator",
125   - "blocked":false,
  122 + "state":"active",
126 123 "created_at":"2012-04-29T08:46:00Z"
127 124 }
128 125 }
... ... @@ -145,24 +142,22 @@ Parameters:
145 142 + `target_branch` - The target branch
146 143 + `assignee_id` - Assignee user ID
147 144 + `title` - Title of MR
148   -+ `closed` - Status of MR. true - closed
149   -
150 145  
151 146 ```json
  147 +
152 148 {
153 149 "id":1,
154 150 "target_branch":"master",
155 151 "source_branch":"test1",
156 152 "project_id":3,
157 153 "title":"test1",
158   - "closed":true,
159   - "merged":false,
  154 + "state":"opened",
160 155 "author":{
161 156 "id":1,
162 157 "username": "admin",
163 158 "email":"admin@local.host",
164 159 "name":"Administrator",
165   - "blocked":false,
  160 + "state":"active",
166 161 "created_at":"2012-04-29T08:46:00Z"
167 162 },
168 163 "assignee":{
... ... @@ -170,7 +165,7 @@ Parameters:
170 165 "username": "admin",
171 166 "email":"admin@local.host",
172 167 "name":"Administrator",
173   - "blocked":false,
  168 + "state":"active",
174 169 "created_at":"2012-04-29T08:46:00Z"
175 170 }
176 171 }
... ...
doc/api/milestones.md
... ... @@ -6,6 +6,21 @@ Returns a list of project milestones.
6 6 GET /projects/:id/milestones
7 7 ```
8 8  
  9 +```json
  10 +[
  11 + {
  12 + "id":12,
  13 + "project_id":16,
  14 + "title":"10.0",
  15 + "description":"Version",
  16 + "due_date":"2013-11-29",
  17 + "state":"active",
  18 + "updated_at":"2013-10-02T09:24:18Z",
  19 + "created_at":"2013-10-02T09:24:18Z"
  20 + }
  21 +]
  22 +```
  23 +
9 24 Parameters:
10 25  
11 26 + `id` (required) - The ID of a project
... ...
doc/api/notes.md
... ... @@ -8,17 +8,22 @@ Get a list of project wall notes.
8 8 GET /projects/:id/notes
9 9 ```
10 10  
  11 +Parameters:
  12 +
  13 ++ `id` (required) - The ID of a project
  14 +
11 15 ```json
12 16 [
13 17 {
14 18 "id": 522,
15 19 "body": "The solution is rather tricky",
  20 + "attachment":null,
16 21 "author": {
17 22 "id": 1,
18 23 "username": "john_smith",
19 24 "email": "john@example.com",
20 25 "name": "John Smith",
21   - "blocked": false,
  26 + "state": "active",
22 27 "created_at": "2012-05-23T08:00:58Z"
23 28 },
24 29 "created_at": "2012-11-27T19:16:44Z"
... ... @@ -26,11 +31,6 @@ GET /projects/:id/notes
26 31 ]
27 32 ```
28 33  
29   -Parameters:
30   -
31   -+ `id` (required) - The ID of a project
32   -
33   -
34 34 ### Get single wall note
35 35  
36 36 Returns a single wall note.
... ... @@ -74,6 +74,38 @@ Parameters:
74 74 + `id` (required) - The ID of a project
75 75 + `issue_id` (required) - The ID of an issue
76 76  
  77 +```json
  78 +[
  79 + {
  80 + "id":302,
  81 + "body":"_Status changed to closed_",
  82 + "attachment":null,
  83 + "author":{
  84 + "id":1,
  85 + "username":"pipin",
  86 + "email":"admin@example.com",
  87 + "name":"Pip",
  88 + "state":"active",
  89 + "created_at":"2013-09-30T13:46:01Z"
  90 + },
  91 + "created_at":"2013-10-02T09:22:45Z"
  92 + },
  93 + {
  94 + "id":305,
  95 + "body":"Text of the comment\r\n",
  96 + "attachment":null,
  97 + "author":{
  98 + "id":1,
  99 + "username":"pipin",
  100 + "email":"admin@example.com",
  101 + "name":"Pip",
  102 + "state":"active",
  103 + "created_at":"2013-09-30T13:46:01Z"
  104 + },
  105 + "created_at":"2013-10-02T09:56:03Z"
  106 + }
  107 +]
  108 +```
77 109  
78 110 ### Get single issue note
79 111  
... ... @@ -135,6 +167,24 @@ Parameters:
135 167 + `snippet_id` (required) - The ID of a project snippet
136 168 + `note_id` (required) - The ID of an snippet note
137 169  
  170 +```json
  171 +{
  172 + "id":52,
  173 + "title":"Snippet",
  174 + "file_name":"snippet.rb",
  175 + "author":{
  176 + "id":1,
  177 + "username":"pipin",
  178 + "email":"admin@example.com",
  179 + "name":"Pip",
  180 + "state":"active",
  181 + "created_at":"2013-09-30T13:46:01Z"
  182 + },
  183 + "expires_at":null,
  184 + "updated_at":"2013-10-02T07:34:20Z",
  185 + "created_at":"2013-10-02T07:34:20Z"
  186 +}
  187 +```
138 188  
139 189 ### Create new snippet note
140 190  
... ... @@ -181,6 +231,22 @@ Parameters:
181 231 + `merge_request_id` (required) - The ID of a project merge request
182 232 + `note_id` (required) - The ID of a merge request note
183 233  
  234 +```json
  235 +{
  236 + "id":301,
  237 + "body":"Comment for MR",
  238 + "attachment":null,
  239 + "author":{
  240 + "id":1,
  241 + "username":"pipin",
  242 + "email":"admin@example.com",
  243 + "name":"Pip",
  244 + "state":"active",
  245 + "created_at":"2013-09-30T13:46:01Z"
  246 + },
  247 + "created_at":"2013-10-02T08:57:14Z"
  248 +}
  249 +```
184 250  
185 251 ### Create new merge request note
186 252  
... ...
doc/api/project_snippets.md
... ... @@ -34,7 +34,7 @@ Parameters:
34 34 "username": "john_smith",
35 35 "email": "john@example.com",
36 36 "name": "John Smith",
37   - "blocked": false,
  37 + "state": "active",
38 38 "created_at": "2012-05-23T08:00:58Z"
39 39 },
40 40 "expires_at": null,
... ...
doc/api/projects.md
... ... @@ -11,51 +11,72 @@ GET /projects
11 11 ```json
12 12 [
13 13 {
14   - "id": 3,
15   - "name": "rails",
  14 + "id": 4,
16 15 "description": null,
17 16 "default_branch": "master",
  17 + "public": false,
  18 + "ssh_url_to_repo": "git@example.com:diaspora/diaspora-client.git",
  19 + "http_url_to_repo": "http://example.com/diaspora/diaspora-client.git",
  20 + "web_url": "http://example.com/diaspora/diaspora-client",
18 21 "owner": {
19   - "id": 1,
20   - "username": "john_smith",
21   - "email": "john@example.com",
22   - "name": "John Smith",
23   - "blocked": false,
24   - "created_at": "2012-05-23T08:00:58Z"
  22 + "id": 3,
  23 + "name": "Diaspora",
  24 + "created_at": "2013-09-30T13: 46: 02Z"
25 25 },
26   - "public": true,
27   - "path": "rails",
28   - "path_with_namespace": "rails/rails",
29   - "issues_enabled": false,
30   - "merge_requests_enabled": false,
31   - "wall_enabled": true,
  26 + "name": "Diaspora Client",
  27 + "name_with_namespace": "Diaspora / Diaspora Client",
  28 + "path": "diaspora-client",
  29 + "path_with_namespace": "diaspora/diaspora-client",
  30 + "issues_enabled": true,
  31 + "merge_requests_enabled": true,
  32 + "wall_enabled": false,
32 33 "wiki_enabled": true,
33   - "created_at": "2012-05-23T08:05:02Z",
34   - "last_activity_at": "2012-05-23T08:05:02Z"
  34 + "snippets_enabled": false,
  35 + "created_at": "2013-09-30T13: 46: 02Z",
  36 + "last_activity_at": "2013-09-30T13: 46: 02Z",
  37 + "namespace": {
  38 + "created_at": "2013-09-30T13: 46: 02Z",
  39 + "description": "",
  40 + "id": 3,
  41 + "name": "Diaspora",
  42 + "owner_id": 1,
  43 + "path": "diaspora",
  44 + "updated_at": "2013-09-30T13: 46: 02Z"
  45 + }
35 46 },
36 47 {
37   - "id": 5,
38   - "name": "gitlab",
  48 + "id": 6,
39 49 "description": null,
40   - "default_branch": "api",
41   - "owner": {
42   - "id": 1,
43   - "username": "john_smith",
44   - "email": "john@example.com",
45   - "name": "John Smith",
46   - "blocked": false,
47   - "created_at": "2012-05-23T08:00:58Z"
  50 + "default_branch": "master",
  51 + "public": false,
  52 + "ssh_url_to_repo": "git@example.com:brightbox/puppet.git",
  53 + "http_url_to_repo": "http://example.com/brightbox/puppet.git",
  54 + "web_url": "http://example.com/brightbox/puppet",
  55 + "owner": {
  56 + "id": 4,
  57 + "name": "Brightbox",
  58 + "created_at": "2013-09-30T13:46:02Z"
48 59 },
49   - "public": true,
50   - "path": "gitlab",
51   - "path_with_namespace": "randx/gitlab",
  60 + "name": "Puppet",
  61 + "name_with_namespace": "Brightbox / Puppet",
  62 + "path": "puppet",
  63 + "path_with_namespace": "brightbox/puppet",
52 64 "issues_enabled": true,
53 65 "merge_requests_enabled": true,
54   - "wall_enabled": true,
  66 + "wall_enabled": false,
55 67 "wiki_enabled": true,
56   - "snippets_enabled": true,
57   - "created_at": "2012-05-30T12:49:20Z",
58   - "last_activity_at": "2012-05-23T08:05:02Z"
  68 + "snippets_enabled": false,
  69 + "created_at": "2013-09-30T13:46:02Z",
  70 + "last_activity_at": "2013-09-30T13:46:02Z",
  71 + "namespace": {
  72 + "created_at": "2013-09-30T13:46:02Z",
  73 + "description": "",
  74 + "id": 4,
  75 + "name": "Brightbox",
  76 + "owner_id": 1,
  77 + "path": "brightbox",
  78 + "updated_at": "2013-09-30T13:46:02Z"
  79 + }
59 80 }
60 81 ]
61 82 ```
... ... @@ -76,29 +97,38 @@ Parameters:
76 97  
77 98 ```json
78 99 {
79   - "id": 5,
80   - "name": "gitlab",
81   - "name_with_namespace": "GitLab / gitlabhq",
  100 + "id": 3,
82 101 "description": null,
83   - "default_branch": "api",
  102 + "default_branch": "master",
  103 + "public": false,
  104 + "ssh_url_to_repo": "git@example.com:diaspora/diaspora-project-site.git",
  105 + "http_url_to_repo": "http://example.com/diaspora/diaspora-project-site.git",
  106 + "web_url": "http://example.com/diaspora/diaspora-project-site",
84 107 "owner": {
85   - "id": 1,
86   - "username": "john_smith",
87   - "email": "john@example.com",
88   - "name": "John Smith",
89   - "blocked": false,
90   - "created_at": "2012-05-23T08:00:58Z"
  108 + "id": 3,
  109 + "name": "Diaspora",
  110 + "created_at": "2013-09-30T13: 46: 02Z"
91 111 },
92   - "public": true,
93   - "path": "gitlab",
94   - "path_with_namespace": "randx/gitlab",
  112 + "name": "Diaspora Project Site",
  113 + "name_with_namespace": "Diaspora / Diaspora Project Site",
  114 + "path": "diaspora-project-site",
  115 + "path_with_namespace": "diaspora/diaspora-project-site",
95 116 "issues_enabled": true,
96 117 "merge_requests_enabled": true,
97   - "wall_enabled": true,
  118 + "wall_enabled": false,
98 119 "wiki_enabled": true,
99   - "snippets_enabled": true,
100   - "created_at": "2012-05-30T12:49:20Z",
101   - "last_activity_at": "2012-05-23T08:05:02Z"
  120 + "snippets_enabled": false,
  121 + "created_at": "2013-09-30T13: 46: 02Z",
  122 + "last_activity_at": "2013-09-30T13: 46: 02Z",
  123 + "namespace": {
  124 + "created_at": "2013-09-30T13: 46: 02Z",
  125 + "description": "",
  126 + "id": 3,
  127 + "name": "Diaspora",
  128 + "owner_id": 1,
  129 + "path": "diaspora",
  130 + "updated_at": "2013-09-30T13: 46: 02Z"
  131 + }
102 132 }
103 133 ```
104 134  
... ... @@ -191,17 +221,6 @@ Parameters:
191 221 + `snippets_enabled` (optional)
192 222 + `public` (optional)
193 223  
194   -**Project access levels**
195   -
196   -The project access levels are defined in the `user_project.rb` class. Currently, these levels are recognized:
197   -
198   -```
199   - GUEST = 10
200   - REPORTER = 20
201   - DEVELOPER = 30
202   - MASTER = 40
203   -```
204   -
205 224  
206 225 ### Create project for user
207 226  
... ... @@ -261,7 +280,7 @@ Parameters:
261 280 "username": "john_smith",
262 281 "email": "john@example.com",
263 282 "name": "John Smith",
264   - "blocked": false,
  283 + "state": "active",
265 284 "created_at": "2012-05-23T08:00:58Z",
266 285 "access_level": 40
267 286 }
... ... @@ -417,6 +436,55 @@ Parameters:
417 436  
418 437 + `id` (required) - The ID of the project
419 438  
  439 +```json
  440 +[
  441 + {
  442 + "name":"async",
  443 + "commit": {
  444 + "id":"a2b702edecdf41f07b42653eb1abe30ce98b9fca",
  445 + "parents": [{
  446 + "id":"3f94fc7c85061973edc9906ae170cc269b07ca55"
  447 + }],
  448 + "tree": "c68537c6534a02cc2b176ca1549f4ffa190b58ee",
  449 + "message":"give caolan his credit where it's due (up top)",
  450 + "author": {
  451 + "name":"Jeremy Ashkenas",
  452 + "email":"jashkenas@example.com"
  453 + },
  454 + "committer": {
  455 + "name":"Jeremy Ashkenas",
  456 + "email":"jashkenas@example.com"
  457 + },
  458 + "authored_date":"2010-12-08T21:28:50+00:00",
  459 + "committed_date":"2010-12-08T21:28:50+00:00"
  460 + },
  461 + "protected":false
  462 + },
  463 + {
  464 + "name": "gh-pages",
  465 + "commit": {
  466 + "id": "101c10a60019fe870d21868835f65c25d64968fc",
  467 + "parents": [{
  468 + "id": "9c15d2e26945a665131af5d7b6d30a06ba338aaa"
  469 + }],
  470 + "tree": "fb5cc9d45da3014b17a876ad539976a0fb9b352a",
  471 + "message": "Underscore.js 1.5.2",
  472 + "author": {
  473 + "name": "Jeremy Ashkenas",
  474 + "email": "jashkenas@example.com"
  475 + },
  476 + "committer": {
  477 + "name": "Jeremy Ashkenas",
  478 + "email": "jashkenas@example.com"
  479 + },
  480 + "authored_date": "2013-09-07T12: 58: 21+00: 00",
  481 + "committed_date": "2013-09-07T12: 58: 21+00: 00"
  482 + },
  483 + "protected": false
  484 + }
  485 +]
  486 +
  487 +```
420 488  
421 489 ### List single branch
422 490  
... ...
doc/api/system_hooks.md
... ... @@ -12,6 +12,15 @@ Parameters:
12 12  
13 13 + **none**
14 14  
  15 +```json
  16 +[
  17 + {
  18 + "id":3,
  19 + "url":"http://example.com/hook",
  20 + "created_at":"2013-10-02T10:15:31Z"
  21 + }
  22 +]
  23 +```
15 24  
16 25 ## Add new system hook hook
17 26  
... ... @@ -34,6 +43,16 @@ Parameters:
34 43  
35 44 + `id` (required) - The ID of hook
36 45  
  46 +```json
  47 +{
  48 + "event_name":"project_create",
  49 + "name":"Ruby",
  50 + "path":"ruby",
  51 + "project_id":1,
  52 + "owner_name":"Someone",
  53 + "owner_email":"example@gitlabhq.com"
  54 +}
  55 +```
37 56  
38 57 ## Delete system hook
39 58  
... ...
doc/api/user_teams.md
... ... @@ -1,209 +0,0 @@
1   -## User teams
2   -
3   -### List user teams
4   -
5   -Get a list of user teams viewable by the authenticated user.
6   -
7   -```
8   -GET /user_teams
9   -```
10   -
11   -```json
12   -[
13   - {
14   - id: 1,
15   - name: "User team 1",
16   - path: "user_team1",
17   - owner_id: 1
18   - },
19   - {
20   - id: 2,
21   - name: "User team 2",
22   - path: "user_team2",
23   - owner_id: 1
24   - }
25   -]
26   -```
27   -
28   -
29   -### Get single user team
30   -
31   -Get a specific user team, identified by user team ID, which is viewable by the authenticated user.
32   -
33   -```
34   -GET /user_teams/:id
35   -```
36   -
37   -Parameters:
38   -
39   -+ `id` (required) - The ID of a user_team
40   -
41   -```json
42   -{
43   - id: 1,
44   - name: "User team 1",
45   - path: "user_team1",
46   - owner_id: 1
47   -}
48   -```
49   -
50   -
51   -### Create user team
52   -
53   -Creates new user team owned by user. Available only for admins.
54   -
55   -```
56   -POST /user_teams
57   -```
58   -
59   -Parameters:
60   -
61   -+ `name` (required) - new user team name
62   -+ `path` (required) - new user team internal name
63   -
64   -
65   -
66   -## User team members
67   -
68   -### List user team members
69   -
70   -Get a list of project team members.
71   -
72   -```
73   -GET /user_teams/:id/members
74   -```
75   -
76   -Parameters:
77   -
78   -+ `id` (required) - The ID of a user_team
79   -
80   -
81   -### Get user team member
82   -
83   -Gets a user team member.
84   -
85   -```
86   -GET /user_teams/:id/members/:user_id
87   -```
88   -
89   -Parameters:
90   -
91   -+ `id` (required) - The ID of a user_team
92   -+ `user_id` (required) - The ID of a user
93   -
94   -```json
95   -{
96   - id: 2,
97   - username: "john_doe",
98   - email: "joh@doe.org",
99   - name: "John Doe",
100   - state: "active",
101   - created_at: "2012-10-22T14:13:35Z",
102   - access_level: 30
103   -}
104   -```
105   -
106   -
107   -### Add user team member
108   -
109   -Adds a user to a user team.
110   -
111   -```
112   -POST /user_teams/:id/members
113   -```
114   -
115   -Parameters:
116   -
117   -+ `id` (required) - The ID of a user team
118   -+ `user_id` (required) - The ID of a user to add
119   -+ `access_level` (required) - Project access level
120   -
121   -
122   -### Remove user team member
123   -
124   -Removes user from user team.
125   -
126   -```
127   -DELETE /user_teams/:id/members/:user_id
128   -```
129   -
130   -Parameters:
131   -
132   -+ `id` (required) - The ID of a user team
133   -+ `user_id` (required) - The ID of a team member
134   -
135   -## User team projects
136   -
137   -### List user team projects
138   -
139   -Get a list of project team projects.
140   -
141   -```
142   -GET /user_teams/:id/projects
143   -```
144   -
145   -Parameters:
146   -
147   -+ `id` (required) - The ID of a user_team
148   -
149   -
150   -### Get user team project
151   -
152   -Gets a user team project.
153   -
154   -```
155   -GET /user_teams/:id/projects/:project_id
156   -```
157   -
158   -Parameters:
159   -
160   -+ `id` (required) - The ID of a user_team
161   -+ `project_id` (required) - The ID of a user
162   -
163   -```json
164   -{
165   - id: 12,
166   - name: "project1",
167   - description: null,
168   - default_branch: "develop",
169   - public: false,
170   - path: "project1",
171   - path_with_namespace: "group1/project1",
172   - issues_enabled: false,
173   - merge_requests_enabled: true,
174   - wall_enabled: true,
175   - wiki_enabled: false,
176   - created_at: "2013-03-11T12:59:08Z",
177   - greatest_access_level: 30
178   -}
179   -```
180   -
181   -
182   -### Add user team project
183   -
184   -Adds a project to a user team.
185   -
186   -```
187   -POST /user_teams/:id/projects
188   -```
189   -
190   -Parameters:
191   -
192   -+ `id` (required) - The ID of a user team
193   -+ `project_id` (required) - The ID of a project to add
194   -+ `greatest_access_level` (required) - Maximum project access level
195   -
196   -
197   -### Remove user team project
198   -
199   -Removes project from user team.
200   -
201   -```
202   -DELETE /user_teams/:id/projects/:project_id
203   -```
204   -
205   -Parameters:
206   -
207   -+ `id` (required) - The ID of a user team
208   -+ `project_id` (required) - The ID of a team project
209   -
doc/api/users.md
... ... @@ -43,7 +43,8 @@ GET /users
43 43 "theme_id": 1,
44 44 "color_scheme_id": 3,
45 45 "is_admin": false,
46   - "can_create_group": true
  46 + "can_create_group": true,
  47 + "can_create_project": true
47 48 }
48 49 ]
49 50 ```
... ... @@ -78,7 +79,8 @@ Parameters:
78 79 "theme_id": 1,
79 80 "color_scheme_id": 2,
80 81 "is_admin": false,
81   - "can_create_group": true
  82 + "can_create_group": true,
  83 + "can_create_project": true
82 84 }
83 85 ```
84 86  
... ...
doc/install/databases.md
... ... @@ -58,7 +58,7 @@ GitLab supports the following databases:
58 58 sudo -u postgres psql -d template1
59 59  
60 60 # Create a user for GitLab. (change $password to a real password)
61   - template1=# CREATE USER git WITH PASSWORD '$password';
  61 + template1=# CREATE USER git;
62 62  
63 63 # Create the GitLab production database & grant all privileges on database
64 64 template1=# CREATE DATABASE gitlabhq_production OWNER git;
... ...
doc/install/installation.md
... ... @@ -216,18 +216,18 @@ Make sure to edit both `gitlab.yml` and `unicorn.rb` to match your setup.
216 216 # Mysql
217 217 sudo -u git cp config/database.yml.mysql config/database.yml
218 218  
219   - or
220   -
221   - # PostgreSQL
222   - sudo -u git cp config/database.yml.postgresql config/database.yml
223   -
224 219 # Make sure to update username/password in config/database.yml.
225 220 # You only need to adapt the production settings (first part).
226 221 # If you followed the database guide then please do as follows:
227   - # Change 'root' to 'gitlab'
228 222 # Change 'secure password' with the value you have given to $password
229 223 # You can keep the double quotes around the password
230 224 sudo -u git -H editor config/database.yml
  225 +
  226 + or
  227 +
  228 + # PostgreSQL
  229 + sudo -u git cp config/database.yml.postgresql config/database.yml
  230 +
231 231  
232 232 # Make config/database.yml readable to git only
233 233 sudo -u git -H chmod o-rwx config/database.yml
... ...