diff --git a/app/views/admin/hooks/_data_ex.html.haml b/app/views/admin/hooks/_data_ex.html.haml deleted file mode 100644 index 9861e372efccab6a16049e2523a833a3b3017658..0000000000000000000000000000000000000000 --- a/app/views/admin/hooks/_data_ex.html.haml +++ /dev/null @@ -1,67 +0,0 @@ -= highlight_js do - :erb - 1. Project created: - { - "created_at": "2012-07-21T07:30:54Z", - "event_name": "project_create", - "name": "StoreCloud", - "owner_email": "johnsmith@gmail.com" - "owner_name": "John Smit", - "path": "stormcloud", - "path_with_namespace": "jsmith/stormcloud", - "project_id": 74, - } - - 2. Project destroyed: - { - "created_at": "2012-07-21T07:30:58Z", - "event_name": "project_destroy", - "name": "Underscore", - "owner_email": "johnsmith@gmail.com" - "owner_name": "John Smith", - "path": "underscore", - "path_with_namespace": "jsmith/underscore", - "project_id": 73, - } - - 3. New Team Member: - { - "created_at": "2012-07-21T07:30:56Z", - "event_name": "user_add_to_team", - "project_access": "Master", - "project_id": 74, - "project_name": "StoreCloud", - "project_path": "storecloud", - "user_email": "johnsmith@gmail.com", - "user_name": "John Smith", - } - - 4. Team Member Removed: - { - "created_at": "2012-07-21T07:30:56Z", - "event_name": "user_remove_from_team", - "project_access": "Master", - "project_id": 74, - "project_name": "StoreCloud", - "project_path": "storecloud", - "user_email": "johnsmith@gmail.com", - "user_name": "John Smith", - } - - 5. User created: - { - "created_at": "2012-07-21T07:44:07Z", - "email": "js@gitlabhq.com", - "event_name": "user_create", - "name": "John Smith", - "user_id": 41 - } - - 6. User removed: - { - "created_at": "2012-07-21T07:44:07Z", - "email": "js@gitlabhq.com", - "event_name": "user_destroy", - "name": "John Smith", - "user_id": 41 - } diff --git a/app/views/help/permissions.html.haml b/app/views/help/permissions.html.haml index 7fd0c74057d4a14cebb939c5cfcb54ae2e01fe08..5d3ee4526fec15f76dbbfaf3c7c1c2fcd6e30f15 100644 --- a/app/views/help/permissions.html.haml +++ b/app/views/help/permissions.html.haml @@ -1,220 +1,6 @@ = render layout: 'help/layout' do - %h3.page-title Permissions - %p.light Users have different abilities depending on the access level they have in particular group or project. - %p.light If a user is both in a project group and in the project itself the highest permission level is used. - %p.light If a user is a GitLab administrator they receive all permissions. - %hr + %h3.page-title Permissions - %h4 Project: - %table.table - %thead - %tr - %th Action - %th Guest - %th Reporter - %th Developer - %th Master - %th Owner - %tbody - %tr - %td Create new issue - %td.permission-x ✓ - %td.permission-x ✓ - %td.permission-x ✓ - %td.permission-x ✓ - %td.permission-x ✓ - %tr - %td Leave comments - %td.permission-x ✓ - %td.permission-x ✓ - %td.permission-x ✓ - %td.permission-x ✓ - %td.permission-x ✓ - %tr - %td Write on project wall - %td.permission-x ✓ - %td.permission-x ✓ - %td.permission-x ✓ - %td.permission-x ✓ - %td.permission-x ✓ - %tr - %td Pull project code - %td - %td.permission-x ✓ - %td.permission-x ✓ - %td.permission-x ✓ - %td.permission-x ✓ - %tr - %td Download project - %td - %td.permission-x ✓ - %td.permission-x ✓ - %td.permission-x ✓ - %td.permission-x ✓ - %tr - %td Create code snippets - %td - %td.permission-x ✓ - %td.permission-x ✓ - %td.permission-x ✓ - %td.permission-x ✓ - %tr - %td Create new merge request - %td - %td - %td.permission-x ✓ - %td.permission-x ✓ - %td.permission-x ✓ - %tr - %td Create new branches - %td - %td - %td.permission-x ✓ - %td.permission-x ✓ - %td.permission-x ✓ - %tr - %td Push to non-protected branches - %td - %td - %td.permission-x ✓ - %td.permission-x ✓ - %td.permission-x ✓ - %tr - %td Remove non-protected branches - %td - %td - %td.permission-x ✓ - %td.permission-x ✓ - %td.permission-x ✓ - %tr - %td Add tags - %td - %td - %td.permission-x ✓ - %td.permission-x ✓ - %td.permission-x ✓ - %tr - %td Write a wiki - %td - %td - %td.permission-x ✓ - %td.permission-x ✓ - %td.permission-x ✓ - %tr - %td Manage issue tracker - %td - %td - %td.permission-x ✓ - %td.permission-x ✓ - %td.permission-x ✓ - %tr - %td Add new team members - %td - %td - %td - %td.permission-x ✓ - %td.permission-x ✓ - %tr - %td Push to protected branches - %td - %td - %td - %td.permission-x ✓ - %td.permission-x ✓ - %tr - %td Remove protected branches - %td - %td - %td - %td.permission-x ✓ - %td.permission-x ✓ - %tr - %td Edit project - %td - %td - %td - %td.permission-x ✓ - %td.permission-x ✓ - %tr - %td Add Deploy Keys to project - %td - %td - %td - %td.permission-x ✓ - %td.permission-x ✓ - %tr - %td Configure Project Hooks - %td - %td - %td - %td.permission-x ✓ - %td.permission-x ✓ - %tr - %td Switch visibility level - %td - %td - %td - %td - %td.permission-x ✓ - %tr - %td Transfer project to another namespace - %td - %td - %td - %td - %td.permission-x ✓ - %tr - %td Remove project - %td - %td - %td - %td - %td.permission-x ✓ - - %h4 Group - %table.table - %thead - %tr - %th Action - %th Guest - %th Reporter - %th Developer - %th Master - %th Owner - %tbody - %tr - %td Browse group - %td.permission-x ✓ - %td.permission-x ✓ - %td.permission-x ✓ - %td.permission-x ✓ - %td.permission-x ✓ - %tr - %td Edit group - %td - %td - %td - %td - %td.permission-x ✓ - %tr - %td Create project in group - %td - %td - %td - %td - %td.permission-x ✓ - %tr - %td Manage group members - %td - %td - %td - %td - %td.permission-x ✓ - %tr - %td Remove group - %td - %td - %td - %td - %td.permission-x ✓ - %p.light Any user can remove himself from a group, unless he is the last Owner of the group. + .help_body + = preserve do + = markdown File.read(Rails.root.join("doc", "permissions", "permissions.md")) diff --git a/app/views/help/public_access.html.haml b/app/views/help/public_access.html.haml index e1b2a2ce1fac07914514f708bc8689d53cc8337b..d1ec3f5d5c12eb527d4b3047803026c91f582021 100644 --- a/app/views/help/public_access.html.haml +++ b/app/views/help/public_access.html.haml @@ -1,61 +1,6 @@ = render layout: 'help/layout' do - %h3.page-title Public Access + %h3.page-title Public Access - %p.slead - GitLab allows you to open selected projects to be accessed - %strong publicly - or - %strong internally - \. - %br - Projects with either of these visibility levels will be listed in the #{link_to "public access directory", public_root_path}. - %br - Internal projects will only be available to authenticated users. - - .clearfix - .dashboard-intro-icon - = public_icon - %h4 - Public projects - %p - Public project can be cloned - %strong without any - authentication. - %br - It will also be listed on the #{link_to "public access directory", public_root_path}. - %br - %strong Any logged in user - will have #{link_to "Guest", help_permissions_path} permissions on the repository. - - .clearfix - .dashboard-intro-icon - = internal_icon - %h4 - Internal projects - %p - Internal project can be cloned by any logged in user. - %br - It will also be listed on the #{link_to "public access directory", public_root_path} for logged in users. - %br - Any logged in user will have #{link_to "Guest", help_permissions_path} permissions on the repository. - - %h4 How to change project visibility - %ol - %li Go to your project dashboard - %li Click on the "Edit" tab - %li Change "Visibility Level" - - %h4 Visibility of users - The public page of users, located at - = succeed "," do - %code u/username - is visible if either: - %ul - %li - You are logged in. - %li - %p - You are logged out, and the target user is authorized to (is Guest, Reporter, etc.) - at least one public project. - %p Otherwise, you will be redirected to the sign in page. - When visiting the public page of an user, you will only see listed projects which you can view yourself. + .help_body + = preserve do + = markdown File.read(Rails.root.join("doc", "public_access", "public_access.md")) diff --git a/app/views/help/ssh.html.haml b/app/views/help/ssh.html.haml index 1c7b08aa7cdf4f0d2cd1a894934e16ab1e289367..8ae1ed1ab6e66387a23785de78efc795c2c95fcf 100644 --- a/app/views/help/ssh.html.haml +++ b/app/views/help/ssh.html.haml @@ -1,28 +1,6 @@ = render layout: 'help/layout' do - %h3.page-title SSH Keys + %h3.page-title SSH Keys - %p.slead - SSH key allows you to establish a secure connection between your computer and GitLab - - %p.slead - Before generating an SSH key, check if your system already has one by running cat ~/.ssh/id_rsa.pub - If your see a long string starting with 'ssh-rsa' or 'ssh-dsa', you can skip the ssh-keygen step. - - %p.slead - To generate a new SSH key just open your terminal and use code below. The ssh-keygen command prompts you for a location and filename to store the key pair and for a password. - When prompted for the location and filename you can press enter to use the default. - It is a best practice to use a password for an SSH key but it is not required and you can skip creating a password by pressing enter. - Note that the password you choose here can't be altered or retrieved. - - %pre.dark - ssh-keygen -t rsa -C "#{current_user.email}" - - %p.slead - Use code below to show your public key. - - %pre.dark - cat ~/.ssh/id_rsa.pub - - %p.slead - Copy-paste the key to the 'My SSH Keys' section under the 'SSH' tab in your user profile. - Please copy the complete key starting with 'ssh-' and ending with your username and host. + .help_body + = preserve do + = markdown File.read(Rails.root.join("doc", "ssh", "ssh.md")) diff --git a/app/views/help/system_hooks.html.haml b/app/views/help/system_hooks.html.haml index 3e401a6e19fd6fca5e235411ffe787cd8848b867..e24f566121d3b223cb141ab1a0e68de16f7ba335 100644 --- a/app/views/help/system_hooks.html.haml +++ b/app/views/help/system_hooks.html.haml @@ -1,11 +1,6 @@ = render layout: 'help/layout' do - %h3.page-title System hooks + %h3.page-title System hooks - %p.slead - Your GitLab instance can perform HTTP POST requests on the following events: create_project, delete_project, create_user, delete_user, change_team_member. - %br - %br - System Hooks can be used, e.g. for logging or changing information in a LDAP server. - %br - %h5 Hooks request example: - = render "admin/hooks/data_ex" + .help_body + = preserve do + = markdown File.read(Rails.root.join("doc", "system_hooks", "system_hooks.md")) diff --git a/app/views/help/web_hooks.html.haml b/app/views/help/web_hooks.html.haml index 7bde7fcc3d0aa799f3bf2f487b6368c1e7d17460..9e2b54ab6ecdd15d3635982d4a4e9bdc8b656e05 100644 --- a/app/views/help/web_hooks.html.haml +++ b/app/views/help/web_hooks.html.haml @@ -1,115 +1,6 @@ = render layout: 'help/layout' do - %h3.page-title Project web hooks - %p.light - Project web hooks allow you to trigger url if new code is pushed or new issue is created - %hr + %h3.page-title Project web hooks - %p.slead - You can configure web hook to listen for specific events like pushes, issues, merge requests. - %br - GitLab will send POST request with data to web hook url. - %br - Web Hooks can be used to update an external issue tracker, trigger CI builds, update a backup mirror, or even deploy to your production server. - %hr - - %h4 Push events - %p.light - Triggered when you push to the repository except pushing tags. - %br - Request body: - = highlight_js do - :erb - { - "before": "95790bf891e76fee5e1747ab589903a6a1f80f22", - "after": "da1560886d4f094c3e6c9ef40349f7d38b5d27d7", - "ref": "refs/heads/master", - "user_id": 4, - "user_name": "John Smith", - "project_id": 15, - "repository": { - "name": "Diaspora", - "url": "git@localhost:diaspora.git", - "description": "", - "homepage": "http://localhost/diaspora", - }, - "commits": [ - { - "id": "b6568db1bc1dcd7f8b4d5a946b0b91f9dacd7327", - "message": "Update Catalan translation to e38cb41.", - "timestamp": "2011-12-12T14:27:31+02:00", - "url": "http://localhost/diaspora/commits/b6568db1bc1dcd7f8b4d5a946b0b91f9dacd7327", - "author": { - "name": "Jordi Mallach", - "email": "jordi@softcatala.org", - } - }, - // ... - { - "id": "da1560886d4f094c3e6c9ef40349f7d38b5d27d7", - "message": "fixed readme", - "timestamp": "2012-01-03T23:36:29+02:00", - "url": "http://localhost/diaspora/commits/da1560886d4f094c3e6c9ef40349f7d38b5d27d7", - "author": { - "name": "GitLab dev user", - "email": "gitlabdev@dv6700.(none)", - }, - }, - ], - "total_commits_count": 4, - }; - - - %h4.prepend-top-20 Issues events - %p.light - Triggered when new issue created or existing issue was updated/closed/reopened. - %br - Request body: - = highlight_js do - :erb - { - "object_kind":"issue", - "object_attributes":{ - "id":301, - "title":"New API: create/update/delete file", - "assignee_id":51, - "author_id":51, - "project_id":14, - "created_at":"2013-12-03T17:15:43Z", - "updated_at":"2013-12-03T17:15:43Z", - "position":0, - "branch_name":null, - "description":"Create new API for manipulations with repository", - "milestone_id":null, - "state":"opened", - "iid":23 - } - } - %h4.prepend-top-20 Merge request events - %p.light - Triggered when new merge request created or existing merge request was updated/merged/closed. - %br - Request body: - = highlight_js do - :erb - { - "object_kind":"merge_request", - "object_attributes":{ - "id":99, - "target_branch":"master", - "source_branch":"ms-viewport", - "source_project_id":14, - "author_id":51, - "assignee_id":6, - "title":"MS-Viewport", - "created_at":"2013-12-03T17:23:34Z", - "updated_at":"2013-12-03T17:23:34Z", - "st_commits":null, - "st_diffs":null, - "milestone_id":null, - "state":"opened", - "merge_status":"unchecked", - "target_project_id":14, - "iid":1, - "description":"" - } - } + .help_body + = preserve do + = markdown File.read(Rails.root.join("doc", "web_hooks", "web_hooks.md")) diff --git a/app/views/help/workflow.html.haml b/app/views/help/workflow.html.haml index 2ac5cd3a650947b0f81706749514211f4ef32c6d..47de4ad796cdd5c6dd4b4a6dc90a7d4adb5ca584 100644 --- a/app/views/help/workflow.html.haml +++ b/app/views/help/workflow.html.haml @@ -1,73 +1,6 @@ = render layout: 'help/layout' do - %h3.page-title Workflow + %h3.page-title Workflow - %h4 Summary - - %ol.help - %li - %p Clone project - .bash - %pre.dark - git clone git@example.com:project-name.git - - %li - %p Create branch with your feature - .bash - %pre.dark - git checkout -b $feature_name - - %li - %p Write code. Commit changes - .bash - %pre.dark - git commit -am "My feature is ready" - - %li - %p Push your branch to GitLab - .bash - %pre.dark - git push origin $feature_name - - %li - %p Review your code on Commits page - - %li - %p Create a merge request - - %li - %p Your team lead will review code & merge it to main branch - - %h3 Authorization for Merge Requests - %p - There are two main ways to have a merge request flow with GitLab: working with protected branches in a single repository, or working with forks of an authoritative project. - - %h4 Protected branch flow - %p - With the protected branch flow everybody works within the same GitLab project. - The project maintainers get Master access and the regular developers get Developer access. - The maintainers mark the authoritative branches as 'Protected'. - The developers push feature branches to the project and create merge requests to have their feature branches reviewed and merged into one of the protected branches. - Only users with Master access can merge changes into a protected branch. - - %h5 Advantages - %ul - %li fewer projects means less clutter - %li developers need to consider only one remote repository - - %h5 Disadvantages - %ul - %li manual setup of protected branch required for each new project - - %h4 Forking workflow - %p - With the forking workflow the maintainers get Master access and the regular developers get Reporter access to the authoritative repository, which prohibits them from pushing any changes to it. - Developers create forks of the authoritative project and push their feature branches to their own forks. - To get their changes into master they need to create a merge request across forks. - - %h5 Advantages - %ul - %li in an appropriately configured GitLab group, new projects automatically get the required access restrictions for regular developers: fewer manual steps to configure authorization for new projects - - %h5 Disadvantages - %ul - %li all developers on the project need to keep their forks up to date, which requires more advanced Git skills (managing multiple remotes) + .help_body + = preserve do + = markdown File.read(Rails.root.join("doc", "workflow", "workflow.md")) diff --git a/doc/permissions/permissions.md b/doc/permissions/permissions.md new file mode 100644 index 0000000000000000000000000000000000000000..73e1728a55983ab23d3bdf98558a78c63c47a0f4 --- /dev/null +++ b/doc/permissions/permissions.md @@ -0,0 +1,45 @@ +Users have different abilities depending on the access level they have in a particular group or project. +If a user is both in a project group and in the project itself, the highest permission level is used. +If a user is a GitLab administrator they receive all permissions. + +--- + +#### Project: + + +| Action| Guest | Reporter | Developer | Master | Owner| +|-------|-------|----------|-----------|--------|------| +|Create new issue|✓|✓|✓|✓|✓| +|Leave comments|✓|✓|✓|✓|✓| +|Write on project wall|✓|✓|✓|✓|✓| +|Pull project code| |✓|✓|✓|✓| +|Download project| |✓|✓|✓|✓| +|Create code snippets| |✓|✓|✓|✓| +|Create new merge request| ||✓|✓|✓| +|Create new branches| ||✓|✓|✓| +|Push to non-protected branches| ||✓|✓|✓| +|Remove non-protected branches| ||✓|✓|✓| +|Add tags| ||✓|✓|✓| +|Write a wiki| ||✓|✓|✓| +|Manage issue tracker| ||✓|✓|✓| +|Add new team members| |||✓|✓| +|Push to protected branches| |||✓|✓| +|Remove protected branches| |||✓|✓| +|Edit project| |||✓|✓| +|Add Deploy Keys to project| |||✓|✓| +|Confiure Project Hooks| |||✓|✓| +|Switch visibility level| ||||✓| +|Transfer project to another namespace| ||||✓| +|Remove project| ||||✓| + +#### Group + +|Action|Guest|Reporter|Developer|Master|Owner| +|------|-----|--------|---------|------|-----| +|Browse group|✓|✓|✓|✓|✓| +|Edit group|||||✓| +|create project in group|||||✓| +|Manage group members|||||✓| +|Remove group|||||✓| + +Any user can remove himself from a group, unless he is the last Owner of the group. diff --git a/doc/public_access/public_access.md b/doc/public_access/public_access.md new file mode 100644 index 0000000000000000000000000000000000000000..bf9d2784affbf38f50a39e2253c5f376bda5dc3d --- /dev/null +++ b/doc/public_access/public_access.md @@ -0,0 +1,28 @@ +Gitlab allows you to open selected projects to be accessed **publicly** or **internally**. +Projects with either of these visibility levels will be listen in the [public access directory](/public). +Internal projects will only be available to authenticated users. + +#### Public projects +Public projects can be cloned **without any** authentication. +It will also be listen on the [public access directory](/public). +**Any logged in user** will have [Guest](/help/permissions) permissions on the repository. + +#### Internal projects +Internal projects can be cloned by any logged in user. +It will also be listed on the [public access directory](/public) for logged in users. +Any logged in user will have [Guest](/help/permissions) permissions on the repository. + +#### How to change project visibility +1. Go to your project dashboard +2. Click on the "Edit" tab +3. Change "Visibility Level" + +#### Visibility of users +The public page of users, located at `/u/username` is visible if either: + +* You are logged in. +* You are logged out, and the target user is authorized to (is Guest, Reporter, etc.) at least one public project. + +Otherwise, you will be redirected to the sign in page. + +When visiting the public page of an user, you will only see listed projects which you can view yourself. diff --git a/doc/ssh/ssh.md b/doc/ssh/ssh.md new file mode 100644 index 0000000000000000000000000000000000000000..0a38bc16b49ce85171a49203fb6fd471785eb8c6 --- /dev/null +++ b/doc/ssh/ssh.md @@ -0,0 +1,24 @@ +SSH key allows you to establish a secure connection between your computer and GitLab + + +Before generating an SSH key, check if your system already has one by running `cat ~/.ssh/id_rsa.pub` +If your see a long string starting with `ssh-rsa` or `ssh-dsa`, you can skip the ssh-keygen step. + + +To generate a new SSH key just open your terminal and use code below. The ssh-keygen command prompts you for a location and filename to store the key pair and for a password. +When prompted for the location and filename you can press enter to use the default. +It is a best practice to use a password for an SSH key but it is not required and you can skip creating a password by pressing enter. +Note that the password you choose here can't be altered or retrieved. + +```bash +ssh-keygen -t rsa -C "$your_email" +``` + +Use the code below to show your public key. + +```bash +cat ~/.ssh/id_rsa.pub +``` + +Copy-paste the key to the 'My SSH Keys' section under the 'SSH' tab in your user profile. +Please copy the complete key starting with `ssh-` and ending with your username and host. diff --git a/doc/system_hooks/system_hooks.md b/doc/system_hooks/system_hooks.md new file mode 100644 index 0000000000000000000000000000000000000000..fe32ca1a9faa7e6c66fa66234314472425d474dc --- /dev/null +++ b/doc/system_hooks/system_hooks.md @@ -0,0 +1,89 @@ +Your GitLab instance can perform HTTP POST requests on the following events: `create_project`, `delete_project`, `create_user`, `delete_user` and `change_team_member`. + +System hooks can be used, e.g. for logging or changing information in a LDAP server. + +#### Hooks request example: + +**Project created:** + +```json +{ + "created_at": "2012-07-21T07:30:54Z", + "event_name": "project_create", + "name": "StoreCloud", + "owner_email": "johnsmith@gmail.com" + "owner_name": "John Smit", + "path": "stormcloud", + "path_with_namespace": "jsmith/stormcloud", + "project_id": 74, +} +``` + +**Project destroyed:** + +```json +{ + "created_at": "2012-07-21T07:30:58Z", + "event_name": "project_destroy", + "name": "Underscore", + "owner_email": "johnsmith@gmail.com" + "owner_name": "John Smith", + "path": "underscore", + "path_with_namespace": "jsmith/underscore", + "project_id": 73, +} +``` + +**New Team Member:** + +```ruby +{ + "created_at": "2012-07-21T07:30:56Z", + "event_name": "user_add_to_team", + "project_access": "Master", + "project_id": 74, + "project_name": "StoreCloud", + "project_path": "storecloud", + "user_email": "johnsmith@gmail.com", + "user_name": "John Smith", +} +``` + +**Team Member Removed:** + +```json +{ + "created_at": "2012-07-21T07:30:56Z", + "event_name": "user_remove_from_team", + "project_access": "Master", + "project_id": 74, + "project_name": "StoreCloud", + "project_path": "storecloud", + "user_email": "johnsmith@gmail.com", + "user_name": "John Smith", +} +``` + +**User created:** + +```json +{ + "created_at": "2012-07-21T07:44:07Z", + "email": "js@gitlabhq.com", + "event_name": "user_create", + "name": "John Smith", + "user_id": 41 +} +``` + +**User removed:** + +```json +{ + "created_at": "2012-07-21T07:44:07Z", + "email": "js@gitlabhq.com", + "event_name": "user_destroy", + "name": "John Smith", + "user_id": 41 +} +``` diff --git a/doc/web_hooks/web_hooks.md b/doc/web_hooks/web_hooks.md new file mode 100644 index 0000000000000000000000000000000000000000..ba8083c3601245f41d0e9761cacad49379195af0 --- /dev/null +++ b/doc/web_hooks/web_hooks.md @@ -0,0 +1,113 @@ +Project web hooks allow you to trihher an url if new code is pushed or a new issue is created. + +--- + +You can configure web hook to listen for specific events like pushes, issues, merge requests. +GitLab will send POST request with data to web hook url. +Web Hooks can be used to update an external issue tracker, trigger CI builds, update a backup mirror, or even deploy to your production server. + +--- + +#### Push events +Triggered when you push to the repository except pushing tags. + +**Request body:** + +```json +{ + "before": "95790bf891e76fee5e1747ab589903a6a1f80f22", + "after": "da1560886d4f094c3e6c9ef40349f7d38b5d27d7", + "ref": "refs/heads/master", + "user_id": 4, + "user_name": "John Smith", + "project_id": 15, + "repository": { + "name": "Diaspora", + "url": "git@localhost:diaspora.git", + "description": "", + "homepage": "http://localhost/diaspora", + }, + "commits": [ + { + "id": "b6568db1bc1dcd7f8b4d5a946b0b91f9dacd7327", + "message": "Update Catalan translation to e38cb41.", + "timestamp": "2011-12-12T14:27:31+02:00", + "url": "http://localhost/diaspora/commits/b6568db1bc1dcd7f8b4d5a946b0b91f9dacd7327", + "author": { + "name": "Jordi Mallach", + "email": "jordi@softcatala.org", + } + }, + // ... + { + "id": "da1560886d4f094c3e6c9ef40349f7d38b5d27d7", + "message": "fixed readme", + "timestamp": "2012-01-03T23:36:29+02:00", + "url": "http://localhost/diaspora/commits/da1560886d4f094c3e6c9ef40349f7d38b5d27d7", + "author": { + "name": "GitLab dev user", + "email": "gitlabdev@dv6700.(none)", + }, + }, + ], + "total_commits_count": 4, +}; +``` + +#### Issues events + +Triggered when a new issue is created or an existing issue was updated/closed/reopened. + +**Request body:** + +```json +{ + "object_kind":"issue", + "object_attributes":{ + "id":301, + "title":"New API: create/update/delete file", + "assignee_id":51, + "author_id":51, + "project_id":14, + "created_at":"2013-12-03T17:15:43Z", + "updated_at":"2013-12-03T17:15:43Z", + "position":0, + "branch_name":null, + "description":"Create new API for manipulations with repository", + "milestone_id":null, + "state":"opened", + "iid":23 + } +} +``` + +#### Merge request events + +Triggered when a new merge request is created or an existing merge request was updated/merges/closed. + +**Request body:** + +```json +{ + "object_kind":"merge_request", + "object_attributes":{ + "id":99, + "target_branch":"master", + "source_branch":"ms-viewport", + "source_project_id":14, + "author_id":51, + "assignee_id":6, + "title":"MS-Viewport", + "created_at":"2013-12-03T17:23:34Z", + "updated_at":"2013-12-03T17:23:34Z", + "st_commits":null, + "st_diffs":null, + "milestone_id":null, + "state":"opened", + "merge_status":"unchecked", + "target_project_id":14, + "iid":1, + "description":"" + } +} +``` diff --git a/doc/workflow/workflow.md b/doc/workflow/workflow.md new file mode 100644 index 0000000000000000000000000000000000000000..1c238f74957786a21d9d033b25a2e07e5de9ad70 --- /dev/null +++ b/doc/workflow/workflow.md @@ -0,0 +1,26 @@ +1. Clone project + + ```bash + git clone git@example.com:project-name.git + ``` +2. Create branch with your feature + + ```bash + git checkout -b $feature_name + ``` + +3. Write code. Comit changes + + ```bash + git commit -am "My feature is ready" + ``` + +4. Push your branch to GitLab + + ```bash + git push origin $feature_name + ``` + +5. Review your code on Commits page +6. Create a merge request +7. Your team lead will review the code & merge it to the main branch