Commit c0e13125 authored by Jacob Vosmaer's avatar Jacob Vosmaer

Merge branch 'master' of github.com:gitlabhq/gitlabhq

parents 15eaeb8e 95336ac0
...@@ -5,7 +5,7 @@ ...@@ -5,7 +5,7 @@
.bs-callout.bs-callout-info .bs-callout.bs-callout-info
%p Protected branches designed to %p Protected branches designed to
%ul %ul
%li prevent push for all except #{link_to "masters", help_page_path("permissions", "permissions"), class: "vlink"}. %li prevent push for all except #{link_to "masters", help_page_path("permissions", "permissions"), class: "vlink"}
%li prevent branch from force push %li prevent branch from force push
%li prevent branch from removal %li prevent branch from removal
%p Read more about project permissions #{link_to "here", help_page_path("permissions", "permissions"), class: "underlined-link"} %p Read more about project permissions #{link_to "here", help_page_path("permissions", "permissions"), class: "underlined-link"}
......
...@@ -132,14 +132,14 @@ When listing resources you can pass the following parameters: ...@@ -132,14 +132,14 @@ When listing resources you can pass the following parameters:
## id vs iid ## id vs iid
When you work with API you may notice two similar fields in api entites: id and iid. The main difference between them is scope. Example: When you work with API you may notice two similar fields in api entities: id and iid. The main difference between them is scope. Example:
Issue: Issue:
id: 46 id: 46
iid: 5 iid: 5
- id - is uniq across all Issues table. It used for any api calls. - id - is unique across all issues. It's used for any api call.
- iid - is uniq only in scope of single project. When you browse issues or merge requests with Web UI - you see iid. - iid - is unique only in scope of a single project. When you browse issues or merge requests with Web UI, you see iid.
So if you want to get issue with api you use `http://host/api/v3/.../issues/:id.json`. But when you want to create a link to web page - use `http:://host/project/issues/:iid.json` So if you want to get issue with api you use `http://host/api/v3/.../issues/:id.json`. But when you want to create a link to web page - use `http:://host/project/issues/:iid.json`
...@@ -174,7 +174,7 @@ Parameters: ...@@ -174,7 +174,7 @@ Parameters:
- `id` (required) - The ID of a project - `id` (required) - The ID of a project
- `branch_name` (required) - The name of the branch - `branch_name` (required) - The name of the branch
- `ref` (required) - Create branch from commit sha or existing branch - `ref` (required) - Create branch from commit SHA or existing branch
```json ```json
{ {
......
...@@ -49,7 +49,7 @@ Parameters: ...@@ -49,7 +49,7 @@ Parameters:
+ `id` (required) - The ID of a project + `id` (required) - The ID of a project
+ `tag_name` (required) - The name of a tag + `tag_name` (required) - The name of a tag
+ `ref` (required) - Create tag using commit sha, another tag name, or branch name. + `ref` (required) - Create tag using commit SHA, another tag name, or branch name.
```json ```json
[ [
...@@ -129,7 +129,7 @@ Parameters: ...@@ -129,7 +129,7 @@ Parameters:
## Raw file content ## Raw file content
Get the raw file contents for a file by commit sha and path. Get the raw file contents for a file by commit SHA and path.
``` ```
GET /projects/:id/repository/blobs/:sha GET /projects/:id/repository/blobs/:sha
...@@ -144,7 +144,7 @@ Parameters: ...@@ -144,7 +144,7 @@ Parameters:
## Raw blob content ## Raw blob content
Get the raw file contents for a blob by blob sha. Get the raw file contents for a blob by blob SHA.
``` ```
GET /projects/:id/repository/raw_blobs/:sha GET /projects/:id/repository/raw_blobs/:sha
...@@ -153,7 +153,7 @@ GET /projects/:id/repository/raw_blobs/:sha ...@@ -153,7 +153,7 @@ GET /projects/:id/repository/raw_blobs/:sha
Parameters: Parameters:
+ `id` (required) - The ID of a project + `id` (required) - The ID of a project
+ `sha` (required) - The blob sha + `sha` (required) - The blob SHA
## Get file archive ## Get file archive
...@@ -166,7 +166,7 @@ GET /projects/:id/repository/archive ...@@ -166,7 +166,7 @@ GET /projects/:id/repository/archive
Parameters: Parameters:
+ `id` (required) - The ID of a project + `id` (required) - The ID of a project
+ `sha` (optional) - The commit sha to download defaults to the tip of the default branch + `sha` (optional) - The commit SHA to download defaults to the tip of the default branch
## Compare branches, tags or commits ## Compare branches, tags or commits
...@@ -177,8 +177,8 @@ GET /projects/:id/repository/compare ...@@ -177,8 +177,8 @@ GET /projects/:id/repository/compare
Parameters: Parameters:
+ `id` (required) - The ID of a project + `id` (required) - The ID of a project
+ `from` (required) - the commit sha or branch name + `from` (required) - the commit SHA or branch name
+ `to` (required) - the commit sha or branch name + `to` (required) - the commit SHA or branch name
``` ```
......
...@@ -22,7 +22,7 @@ To serve repositories over SSH there's an add-on application called gitlab-shell ...@@ -22,7 +22,7 @@ To serve repositories over SSH there's an add-on application called gitlab-shell
![GitLab Diagram Overview](gitlab_diagram_overview.png) ![GitLab Diagram Overview](gitlab_diagram_overview.png)
A typical install of GitLab will be on Ubuntu Linux or RHEL/CentOS. It uses Nginx or Apache as a web front end to proxypass the Unicorn web server. By default, communication between Unicorn and the front end is via a Unix domain socket but forwarding requests via TCP is also supported. The web front end accesses `/home/git/gitlab/public` bypassing the Unicorn server to serve static pages, uploads (e.g. avatar images or attachments), and precompiled assets. GitLab serves web pages and a [GitLab API](https://gitlab.com/gitlab-org/gitlab-ce/tree/master/doc/api) using the Unicorn web server. It uses Sidekiq as a job queue which, in turn, uses redis as a non-persistent database backend for job information, meta data, and incomming jobs. A typical install of GitLab will be on Ubuntu Linux or RHEL/CentOS. It uses Nginx or Apache as a web front end to proxypass the Unicorn web server. By default, communication between Unicorn and the front end is via a Unix domain socket but forwarding requests via TCP is also supported. The web front end accesses `/home/git/gitlab/public` bypassing the Unicorn server to serve static pages, uploads (e.g. avatar images or attachments), and precompiled assets. GitLab serves web pages and a [GitLab API](https://gitlab.com/gitlab-org/gitlab-ce/tree/master/doc/api) using the Unicorn web server. It uses Sidekiq as a job queue which, in turn, uses redis as a non-persistent database backend for job information, meta data, and incoming jobs.
The GitLab web app uses MySQL or PostgreSQL for persistent database information (e.g. users, permissions, issues, other meta data). GitLab stores the bare git repositories it serves in `/home/git/repositories` by default. It also keeps default branch and hook information with the bare repository. `/home/git/gitlab-satellites` keeps checked out repositories when performing actions such as a merge request, editing files in the web interface, etc. The GitLab web app uses MySQL or PostgreSQL for persistent database information (e.g. users, permissions, issues, other meta data). GitLab stores the bare git repositories it serves in `/home/git/repositories` by default. It also keeps default branch and hook information with the bare repository. `/home/git/gitlab-satellites` keeps checked out repositories when performing actions such as a merge request, editing files in the web interface, etc.
...@@ -38,7 +38,7 @@ To summarize here's the [directory structure of the `git` user home directory](. ...@@ -38,7 +38,7 @@ To summarize here's the [directory structure of the `git` user home directory](.
ps aux | grep '^git' ps aux | grep '^git'
GitLab has several components to operate. As a system user (i.e. any user that is not the `git` user) it requires a persistent database (MySQL/PostreSQL) and redis database. It also uses Apache httpd or nginx to proxypass Unicorn. As the `git` user it starts Sidekiq and Unicorn (a simple ruby HTTP server running on port `8080` by default). Under the gitlab user there are normally 4 processes: `unicorn_rails master` (1 process), `unicorn_rails worker` (2 processes), `sidekiq` (1 process). GitLab has several components to operate. As a system user (i.e. any user that is not the `git` user) it requires a persistent database (MySQL/PostreSQL) and redis database. It also uses Apache httpd or nginx to proxypass Unicorn. As the `git` user it starts Sidekiq and Unicorn (a simple ruby HTTP server running on port `8080` by default). Under the GitLab user there are normally 4 processes: `unicorn_rails master` (1 process), `unicorn_rails worker` (2 processes), `sidekiq` (1 process).
### Repository access ### Repository access
......
...@@ -86,7 +86,7 @@ Then select 'Internet Site' and press enter to confirm the hostname. ...@@ -86,7 +86,7 @@ Then select 'Internet Site' and press enter to confirm the hostname.
## 2. Ruby ## 2. Ruby
The use of ruby version managers such as [RVM](http://rvm.io/), [rbenv](https://github.com/sstephenson/rbenv) or [chruby](https://github.com/postmodern/chruby) with GitLab in production frequently leads to hard to diagnose problems. For example, GitLab Shell is called from OpenSSH and having a version manager can prevent pushing and pulling over SSH. Version managers are not supported and we stronly advise everyone to follow the instructions below to use a system ruby. The use of ruby version managers such as [RVM](http://rvm.io/), [rbenv](https://github.com/sstephenson/rbenv) or [chruby](https://github.com/postmodern/chruby) with GitLab in production frequently leads to hard to diagnose problems. For example, GitLab Shell is called from OpenSSH and having a version manager can prevent pushing and pulling over SSH. Version managers are not supported and we strongly advise everyone to follow the instructions below to use a system ruby.
Remove the old Ruby 1.8 if present Remove the old Ruby 1.8 if present
...@@ -107,7 +107,7 @@ Install the Bundler Gem: ...@@ -107,7 +107,7 @@ Install the Bundler Gem:
## 3. System Users ## 3. System Users
Create a `git` user for Gitlab: Create a `git` user for GitLab:
sudo adduser --disabled-login --gecos 'GitLab' git sudo adduser --disabled-login --gecos 'GitLab' git
...@@ -232,9 +232,9 @@ We recommend using a PostgreSQL database. For MySQL check [MySQL setup guide](da ...@@ -232,9 +232,9 @@ We recommend using a PostgreSQL database. For MySQL check [MySQL setup guide](da
### Install GitLab shell ### Install GitLab shell
GitLab Shell is an ssh access and repository management software developed specially for GitLab. GitLab Shell is an SSH access and repository management software developed specially for GitLab.
# Go to the Gitlab installation folder: # Go to the GitLab installation folder:
cd /home/git/gitlab cd /home/git/gitlab
# Run the installation task for gitlab-shell (replace `REDIS_URL` if needed): # Run the installation task for gitlab-shell (replace `REDIS_URL` if needed):
...@@ -269,7 +269,7 @@ And if you are installing with a non-default folder or user copy and edit the de ...@@ -269,7 +269,7 @@ And if you are installing with a non-default folder or user copy and edit the de
sudo cp lib/support/init.d/gitlab.default.example /etc/default/gitlab sudo cp lib/support/init.d/gitlab.default.example /etc/default/gitlab
If you installed gitlab in another directory or as a user other than the default you should change these settings in /etc/default/gitlab. Do not edit /etc/init.d/gitlab as it will be changed on upgrade. If you installed GitLab in another directory or as a user other than the default you should change these settings in `/etc/default/gitlab`. Do not edit `/etc/init.d/gitlab as it will be changed on upgrade.
Make GitLab start on boot: Make GitLab start on boot:
...@@ -372,7 +372,7 @@ If you want to connect the Redis server via socket, then use the "unix:" URL sch ...@@ -372,7 +372,7 @@ If you want to connect the Redis server via socket, then use the "unix:" URL sch
### Custom SSH Connection ### Custom SSH Connection
If you are running SSH on a non-standard port, you must change the gitlab user's SSH config. If you are running SSH on a non-standard port, you must change the GitLab user's SSH config.
# Add to /home/git/.ssh/config # Add to /home/git/.ssh/config
host localhost # Give your setup a name (here: override localhost) host localhost # Give your setup a name (here: override localhost)
...@@ -380,11 +380,11 @@ If you are running SSH on a non-standard port, you must change the gitlab user's ...@@ -380,11 +380,11 @@ If you are running SSH on a non-standard port, you must change the gitlab user's
port 2222 # Your port number port 2222 # Your port number
hostname 127.0.0.1; # Your server name or IP hostname 127.0.0.1; # Your server name or IP
You also need to change the corresponding options (e.g. ssh_user, ssh_host, admin_uri) in the `config\gitlab.yml` file. You also need to change the corresponding options (e.g. `ssh_user`, `ssh_host`, `admin_uri`) in the `config\gitlab.yml` file.
### LDAP authentication ### LDAP authentication
You can configure LDAP authentication in config/gitlab.yml. Please restart GitLab after editing this file. You can configure LDAP authentication in `config/gitlab.yml`. Please restart GitLab after editing this file.
### Using Custom Omniauth Providers ### Using Custom Omniauth Providers
...@@ -422,4 +422,4 @@ If you have successfully set up a provider that is not shipped with GitLab itsel ...@@ -422,4 +422,4 @@ If you have successfully set up a provider that is not shipped with GitLab itsel
You can help others by reporting successful configurations and probably share a few insights or provide warnings for common errors or pitfalls by sharing your experience [in the public Wiki](https://github.com/gitlabhq/gitlab-public-wiki/wiki/Custom-omniauth-provider-configurations). You can help others by reporting successful configurations and probably share a few insights or provide warnings for common errors or pitfalls by sharing your experience [in the public Wiki](https://github.com/gitlabhq/gitlab-public-wiki/wiki/Custom-omniauth-provider-configurations).
While we can't officially support every possible auth mechanism out there, we'd like to at least help those with special needs. While we can't officially support every possible authentication mechanism out there, we'd like to at least help those with special needs.
# Public access # Public access
Gitlab allows you to open selected projects to be accessed **publicly** or **internally**. GitLab allows you to open selected projects to be accessed **publicly** or **internally**.
Projects with either of these visibility levels will be listed in the [public access directory](/public). Projects with either of these visibility levels will be listed in the [public access directory](/public).
......
...@@ -51,7 +51,7 @@ Deleting old backups... [SKIPPING] ...@@ -51,7 +51,7 @@ Deleting old backups... [SKIPPING]
Please be informed that a backup does not store your configuration files. Please be informed that a backup does not store your configuration files.
If you use Omnibus-GitLab please see the [instructions in the readme to backup your configuration](https://gitlab.com/gitlab-org/omnibus-gitlab/blob/master/README.md#backup-and-restore-omnibus-gitlab-configuration). If you use Omnibus-GitLab please see the [instructions in the readme to backup your configuration](https://gitlab.com/gitlab-org/omnibus-gitlab/blob/master/README.md#backup-and-restore-omnibus-gitlab-configuration).
If you have a cookbook installation there should be a copy of your configuration in Chef. If you have a cookbook installation there should be a copy of your configuration in Chef.
If you have a manual installation please consider backing up your gitlab.yml file and any ssl keys and certificates. If you have a manual installation please consider backing up your gitlab.yml file and any SSL keys and certificates.
## Restore a previously created backup ## Restore a previously created backup
......
...@@ -111,9 +111,9 @@ Redis version >= 2.0.0? ... yes ...@@ -111,9 +111,9 @@ Redis version >= 2.0.0? ... yes
Checking GitLab ... Finished Checking GitLab ... Finished
``` ```
## (Re-)Create satellite repos ## (Re-)Create satellite repositories
This will create satellite repos for all your projects. This will create satellite repositories for all your projects.
If necessary, remove the `tmp/repo_satellites` directory and rerun the command below. If necessary, remove the `tmp/repo_satellites` directory and rerun the command below.
......
...@@ -45,7 +45,7 @@ Any changes not yet added to the changelog are added by lead developer and in th ...@@ -45,7 +45,7 @@ Any changes not yet added to the changelog are added by lead developer and in th
* Release CE and EE (#LINK) * Release CE and EE (#LINK)
23th: 23rd:
* Prepare package for GitLab.com release (#LINK) * Prepare package for GitLab.com release (#LINK)
......
...@@ -59,7 +59,7 @@ XXX ...@@ -59,7 +59,7 @@ XXX
### Credit ### Credit
We want to thank XXX of XXX for the reponsible disclosure of this vulnerability. We want to thank XXX of XXX for the responsible disclosure of this vulnerability.
## Email template ## Email template
......
...@@ -67,7 +67,7 @@ sudo rm -rf /home/gitlab/gitlab-satellites ...@@ -67,7 +67,7 @@ sudo rm -rf /home/gitlab/gitlab-satellites
sudo rm /tmp/gitlab.socket sudo rm /tmp/gitlab.socket
``` ```
## 5. Update gitlab to recent version ## 5. Update GitLab to recent version
```bash ```bash
cd /home/git/gitlab cd /home/git/gitlab
...@@ -157,7 +157,7 @@ sudo -u git -H /home/git/gitlab-shell/bin/check ...@@ -157,7 +157,7 @@ sudo -u git -H /home/git/gitlab-shell/bin/check
# /home/git/.ssh/authorized_keys: OK # /home/git/.ssh/authorized_keys: OK
# Now check gitlab instance # Now check GitLab instance
sudo -u git -H bundle exec rake gitlab:check RAILS_ENV=production sudo -u git -H bundle exec rake gitlab:check RAILS_ENV=production
``` ```
......
...@@ -69,3 +69,22 @@ mysql> \q ...@@ -69,3 +69,22 @@ mysql> \q
## 7. Start application ## 7. Start application
sudo service gitlab start sudo service gitlab start
## 8. Check installation
```bash
# In 5-10 seconds lets check gitlab-shell
sudo -u git -H /home/git/gitlab-shell/bin/check
# Example of success output
# Check GitLab API access: OK
# Check directories and files:
# /home/git/repositories: OK
# /home/git/.ssh/authorized_keys: OK
# Now check gitlab instance
sudo -u git -H bundle exec rake gitlab:check RAILS_ENV=production
```
...@@ -32,7 +32,7 @@ sudo -u git -H git fetch ...@@ -32,7 +32,7 @@ sudo -u git -H git fetch
sudo -u git -H git checkout v1.7.9 # Addresses multiple critical security vulnerabilities sudo -u git -H git checkout v1.7.9 # Addresses multiple critical security vulnerabilities
``` ```
The Gitlab-shell config changed recently, so check for config file changes and make `/home/git/gitlab-shell/config.yml` the same as <https://github.com/gitlabhq/gitlab-shell/blob/master/config.yml.example> The gitlab-shell config changed recently, so check for config file changes and make `/home/git/gitlab-shell/config.yml` the same as <https://github.com/gitlabhq/gitlab-shell/blob/master/config.yml.example>
## 4. Install libs, migrations, etc. ## 4. Install libs, migrations, etc.
......
...@@ -18,7 +18,7 @@ cd /home/git/gitlab ...@@ -18,7 +18,7 @@ cd /home/git/gitlab
sudo -u git -H git fetch --all sudo -u git -H git fetch --all
``` ```
For Gitlab Community Edition: For GitLab Community Edition:
```bash ```bash
sudo -u git -H git checkout 6-7-stable sudo -u git -H git checkout 6-7-stable
......
...@@ -20,7 +20,7 @@ cd /home/git/gitlab ...@@ -20,7 +20,7 @@ cd /home/git/gitlab
sudo -u git -H git fetch --all sudo -u git -H git fetch --all
``` ```
For Gitlab Community Edition: For GitLab Community Edition:
```bash ```bash
sudo -u git -H git checkout 6-9-stable sudo -u git -H git checkout 6-9-stable
......
...@@ -52,7 +52,7 @@ cd /home/git/gitlab ...@@ -52,7 +52,7 @@ cd /home/git/gitlab
sudo -u git -H git fetch --all sudo -u git -H git fetch --all
``` ```
For Gitlab Community Edition: For GitLab Community Edition:
```bash ```bash
sudo -u git -H git checkout 7-0-stable sudo -u git -H git checkout 7-0-stable
......
...@@ -52,7 +52,7 @@ cd /home/git/gitlab ...@@ -52,7 +52,7 @@ cd /home/git/gitlab
sudo -u git -H git fetch --all sudo -u git -H git fetch --all
``` ```
For Gitlab Community Edition: For GitLab Community Edition:
```bash ```bash
sudo -u git -H git checkout 7-1-stable sudo -u git -H git checkout 7-1-stable
......
...@@ -21,7 +21,7 @@ When your group has been created you are presented with the group dashboard feed ...@@ -21,7 +21,7 @@ When your group has been created you are presented with the group dashboard feed
You can use the 'New project' button to add a project to the new group. You can use the 'New project' button to add a project to the new group.
## Transfering an existing project into a group ## Transferring an existing project into a group
You can transfer an existing project into a group you own from the project settings page. You can transfer an existing project into a group you own from the project settings page.
First scroll down to the 'Dangerous settings' and click 'Show them to me'. First scroll down to the 'Dangerous settings' and click 'Show them to me'.
......
...@@ -16,7 +16,7 @@ They integrate deeply into GitLab and are easily referenced from anywhere by usi ...@@ -16,7 +16,7 @@ They integrate deeply into GitLab and are easily referenced from anywhere by usi
Using a merge request, you can review and discuss code before it is merged in the branch of your code. Using a merge request, you can review and discuss code before it is merged in the branch of your code.
As with issues, it can be assigned; people, issues, etc. can be refereced; milestones attached. As with issues, it can be assigned; people, issues, etc. can be referenced; milestones attached.
We see it as an integral part of working together on code and couldn't work without it. We see it as an integral part of working together on code and couldn't work without it.
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment