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 | ... | ... |