Commit 1a6ba7e640577a98b6db480c8e7884882fb0fa03
Exists in
master
and in
4 other branches
Merge branch 'master' of dev.gitlab.org:gitlab/gitlabhq
Showing
19 changed files
with
314 additions
and
340 deletions
Show diff stats
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
config/database.yml.postgresql
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
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
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 | ... | ... |