Remove consecutive blank lines from markdown files
For the sake of consistency, removes any extraneous consecutive blank lines from the doc suite.
This commit is contained in:
parent
951e891276
commit
47fb1c5235
87 changed files with 143 additions and 274 deletions
|
@ -50,7 +50,6 @@ Authentiq will generate a Client ID and the accompanying Client Secret for you t
|
|||
}
|
||||
```
|
||||
|
||||
|
||||
1. The `scope` is set to request the user's name, email (required and signed), and permission to send push notifications to sign in on subsequent visits.
|
||||
See [OmniAuth Authentiq strategy](https://github.com/AuthentiqID/omniauth-authentiq/wiki/Scopes,-callback-url-configuration-and-responses) for more information on scopes and modifiers.
|
||||
|
||||
|
|
|
@ -448,7 +448,6 @@ ldapsearch -H ldaps://$host:$port -D "$bind_dn" -y bind_dn_password.txt -b "$ba
|
|||
port.
|
||||
- We are assuming the password for the bind_dn user is in bind_dn_password.txt.
|
||||
|
||||
|
||||
### Invalid credentials when logging in
|
||||
|
||||
- Make sure the user you are binding with has enough permissions to read the user's
|
||||
|
|
|
@ -140,7 +140,6 @@ Now that the Okta app is configured, it's time to enable it in GitLab.
|
|||
}
|
||||
```
|
||||
|
||||
|
||||
1. [Reconfigure][reconf] or [restart] GitLab for Omnibus and installations
|
||||
from source respectively for the changes to take effect.
|
||||
|
||||
|
|
|
@ -542,7 +542,6 @@ Read more about the Container Registry notifications config options in the
|
|||
>**Note:**
|
||||
Multiple endpoints can be configured for the Container Registry.
|
||||
|
||||
|
||||
**Omnibus GitLab installations**
|
||||
|
||||
To configure a notification endpoint in Omnibus:
|
||||
|
|
|
@ -855,7 +855,6 @@ To make sure your configuration is correct:
|
|||
You should see a different port after a few seconds delay
|
||||
(the failover/reconnect time).
|
||||
|
||||
|
||||
## Changelog
|
||||
|
||||
Changes to Redis HA over time.
|
||||
|
|
|
@ -52,7 +52,6 @@ http://localhost:8080/plantuml
|
|||
|
||||
you can change these defaults by editing the `/etc/tomcat7/server.xml` file.
|
||||
|
||||
|
||||
## GitLab
|
||||
|
||||
You need to enable PlantUML integration from Settings under Admin Area. To do
|
||||
|
|
|
@ -20,7 +20,6 @@ configuration settings if you have used the advanced Redis
|
|||
settings outlined in
|
||||
[Configuration Files Documentation](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/config/README.md).
|
||||
|
||||
|
||||
First we define a shell function with the proper Redis connection details.
|
||||
|
||||
```
|
||||
|
|
|
@ -41,7 +41,6 @@ Registry, etc.
|
|||
|
||||
## Hashed Storage
|
||||
|
||||
|
||||
Hashed Storage is the new storage behavior we rolled out with 10.0. Instead
|
||||
of coupling project URL and the folder structure where the repository will be
|
||||
stored on disk, we are coupling a hash, based on the project's ID. This makes
|
||||
|
|
|
@ -137,7 +137,6 @@ If you are using other init systems, like systemd, you can check the
|
|||
[GitLab Recipes][gl-recipes] repository for some unofficial services. These are
|
||||
**not** officially supported so use them at your own risk.
|
||||
|
||||
|
||||
[omnibus-dl]: https://about.gitlab.com/downloads/ "Download the Omnibus packages"
|
||||
[install]: ../install/installation.md "Documentation to install GitLab from source"
|
||||
[mailroom]: reply_by_email.md "Used for replying by email in GitLab issues and merge requests"
|
||||
|
|
|
@ -18,7 +18,6 @@ GET /projects/:id/repository/commits
|
|||
| `all` | boolean | no | Retrieve every commit from the repository |
|
||||
| `with_stats` | boolean | no | Stats about each commit will be added to the response |
|
||||
|
||||
|
||||
```bash
|
||||
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/5/repository/commits"
|
||||
```
|
||||
|
@ -81,7 +80,6 @@ POST /projects/:id/repository/commits
|
|||
| `author_name` | string | no | Specify the commit author's name |
|
||||
| `stats` | boolean | no | Include commit stats. Default is true |
|
||||
|
||||
|
||||
| `actions[]` Attribute | Type | Required | Description |
|
||||
| --------------------- | ---- | -------- | ----------- |
|
||||
| `action` | string | yes | The action to perform, `create`, `delete`, `move`, `update`, `chmod`|
|
||||
|
@ -601,7 +599,6 @@ GET /projects/:id/repository/commits/:sha/merge_requests
|
|||
| `id` | integer/string | yes | The ID or [URL-encoded path of the project](README.md#namespaced-path-encoding) owned by the authenticated user
|
||||
| `sha` | string | yes | The commit SHA
|
||||
|
||||
|
||||
```bash
|
||||
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/5/repository/commits/af5b13261899fb2c0db30abdd0af8b07cb44fdc5/merge_requests"
|
||||
```
|
||||
|
|
|
@ -16,7 +16,6 @@ GET /projects/:id/registry/repositories
|
|||
| --------- | ---- | -------- | ----------- |
|
||||
| `id` | integer/string | yes | The ID or [URL-encoded path of the project](README.md#namespaced-path-encoding) owned by the authenticated user. |
|
||||
|
||||
|
||||
```bash
|
||||
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/5/registry/repositories"
|
||||
```
|
||||
|
|
|
@ -641,7 +641,6 @@ Parameters:
|
|||
curl --request PUT --header "PRIVATE-TOKEN: <your_access_token>" https://gitlab.example.com/api/v4/projects/5/merge_requests/11/discussions/6a9c1750b37d513a43987b574953fceb50b03ce7?resolved=true
|
||||
```
|
||||
|
||||
|
||||
### Add note to existing merge request discussion
|
||||
|
||||
Adds a new note to the discussion.
|
||||
|
|
|
@ -48,7 +48,6 @@ Example Response:
|
|||
]
|
||||
```
|
||||
|
||||
|
||||
## Get single milestone
|
||||
|
||||
Gets a single group milestone.
|
||||
|
|
|
@ -15,7 +15,6 @@ POST /import/github
|
|||
| `new_name` | string | no | New repo name |
|
||||
| `target_namespace` | string | yes | Namespace to import repo into |
|
||||
|
||||
|
||||
```bash
|
||||
curl --request POST --header "PRIVATE-TOKEN: 9koXpg98eAheJpvBs5tK" --data "personal_access_token=abc123&repo_id=12345&target_namespace=root" https://gitlab.example.com/api/v4/import/github
|
||||
```
|
||||
|
@ -30,4 +29,3 @@ Example response:
|
|||
"full_name": "Administrator / my-repo"
|
||||
}
|
||||
```
|
||||
|
||||
|
|
|
@ -168,7 +168,6 @@ GET /groups/:id/issues?my_reaction_emoji=star
|
|||
| `updated_after` | datetime | no | Return issues updated on or after the given time |
|
||||
| `updated_before` | datetime | no | Return issues updated on or before the given time |
|
||||
|
||||
|
||||
```bash
|
||||
curl --header "PRIVATE-TOKEN: <your_access_token>" https://gitlab.example.com/api/v4/groups/4/issues
|
||||
```
|
||||
|
@ -568,7 +567,6 @@ PUT /projects/:id/issues/:issue_iid
|
|||
| `due_date` | string | no | Date time string in the format YEAR-MONTH-DAY, e.g. `2016-03-11` |
|
||||
| `discussion_locked` | boolean | no | Flag indicating if the issue's discussion is locked. If the discussion is locked only project members can add or edit comments. |
|
||||
|
||||
|
||||
```bash
|
||||
curl --request PUT --header "PRIVATE-TOKEN: <your_access_token>" https://gitlab.example.com/api/v4/projects/4/issues/85?state_event=close
|
||||
```
|
||||
|
@ -822,7 +820,6 @@ Example response:
|
|||
|
||||
**Note**: `assignee` column is deprecated, now we show it as a single-sized array `assignees` to conform to the GitLab EE API.
|
||||
|
||||
|
||||
**Note**: The `closed_by` attribute was [introduced in GitLab 10.6][ce-17042]. This value will only be present for issues which were closed after GitLab 10.6 and when the user account that closed the issue still exists.
|
||||
|
||||
## Unsubscribe from an issue
|
||||
|
@ -990,7 +987,6 @@ Example response:
|
|||
|
||||
**Note**: `assignee` column is deprecated, now we show it as a single-sized array `assignees` to conform to the GitLab EE API.
|
||||
|
||||
|
||||
**Note**: The `closed_by` attribute was [introduced in GitLab 10.6][ce-17042]. This value will only be present for issues which were closed after GitLab 10.6 and when the user account that closed the issue still exists.
|
||||
|
||||
## Set a time estimate for an issue
|
||||
|
@ -1288,7 +1284,6 @@ Example response:
|
|||
]
|
||||
```
|
||||
|
||||
|
||||
## Participants on issues
|
||||
|
||||
```
|
||||
|
@ -1327,7 +1322,6 @@ Example response:
|
|||
]
|
||||
```
|
||||
|
||||
|
||||
## Comments on issues
|
||||
|
||||
Comments are done via the [notes](notes.md) resource.
|
||||
|
|
|
@ -161,7 +161,6 @@ PUT /projects/:id/labels
|
|||
| `description` | string | no | The new description of the label |
|
||||
| `priority` | integer | no | The new priority of the label. Must be greater or equal than zero or `null` to remove the priority. |
|
||||
|
||||
|
||||
```bash
|
||||
curl --request PUT --data "name=documentation&new_name=docs&color=#8E44AD&description=Documentation" --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/1/labels"
|
||||
```
|
||||
|
|
|
@ -160,7 +160,6 @@ will be the same. In the case of a merge request from a fork,
|
|||
`target_project_id` and `project_id` will be the same and
|
||||
`source_project_id` will be the fork project's ID.
|
||||
|
||||
|
||||
Parameters:
|
||||
|
||||
| Attribute | Type | Required | Description |
|
||||
|
@ -531,7 +530,6 @@ Parameters:
|
|||
- `id` (required) - The ID or [URL-encoded path of the project](README.md#namespaced-path-encoding) owned by the authenticated user
|
||||
- `merge_request_iid` (required) - The internal ID of the merge request
|
||||
|
||||
|
||||
```json
|
||||
[
|
||||
{
|
||||
|
@ -566,7 +564,6 @@ Parameters:
|
|||
- `id` (required) - The ID or [URL-encoded path of the project](README.md#namespaced-path-encoding) owned by the authenticated user
|
||||
- `merge_request_iid` (required) - The internal ID of the merge request
|
||||
|
||||
|
||||
```json
|
||||
[
|
||||
{
|
||||
|
|
|
@ -206,4 +206,3 @@ or you can put the token to the Authorization header:
|
|||
```
|
||||
curl --header "Authorization: Bearer OAUTH-TOKEN" https://gitlab.example.com/api/v4/user
|
||||
```
|
||||
|
||||
|
|
|
@ -124,7 +124,6 @@ Parameters:
|
|||
> **Notes:**
|
||||
> [Introduced][ce-29508] in GitLab 9.4.
|
||||
|
||||
|
||||
Available only for admins.
|
||||
|
||||
```
|
||||
|
|
|
@ -101,7 +101,6 @@ GET /projects/:id/templates/:type/:key
|
|||
|
||||
Example response (Dockerfile):
|
||||
|
||||
|
||||
```json
|
||||
{
|
||||
"name": "Binary",
|
||||
|
|
|
@ -281,7 +281,6 @@ Example response:
|
|||
]
|
||||
```
|
||||
|
||||
|
||||
## Group Search API
|
||||
|
||||
Search within the specified group.
|
||||
|
@ -520,7 +519,6 @@ Search the expression within the specified scope. Currently these scopes are sup
|
|||
|
||||
The response depends on the requested scope.
|
||||
|
||||
|
||||
### Scope: issues
|
||||
|
||||
```bash
|
||||
|
|
|
@ -149,4 +149,3 @@ Example response:
|
|||
}
|
||||
}
|
||||
```
|
||||
|
||||
|
|
|
@ -163,7 +163,6 @@ Parameters:
|
|||
- `id` (required) - The ID or [URL-encoded path of the project](README.md#namespaced-path-encoding) owned by the authenticated user
|
||||
- `tag_name` (required) - The name of a tag
|
||||
|
||||
|
||||
## Create a new release
|
||||
|
||||
Add release notes to the existing git tag. If there
|
||||
|
|
|
@ -1043,7 +1043,6 @@ Will return `201 OK` on success, `404 User Not Found` is user cannot be found or
|
|||
|
||||
Please refer to the [Events API documentation](events.md#get-user-contribution-events)
|
||||
|
||||
|
||||
## Get all impersonation tokens of a user
|
||||
|
||||
> Requires admin permissions.
|
||||
|
|
|
@ -119,7 +119,6 @@ PUT /projects/:id/wikis/:slug
|
|||
| `format` | string | no | The format of the wiki page. Available formats are: `markdown` (default), `rdoc`, and `asciidoc` |
|
||||
| `slug` | string | yes | The slug (a unique string) of the wiki page |
|
||||
|
||||
|
||||
```bash
|
||||
curl --request PUT --data "format=rdoc&content=documentation&title=Docs" --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/1/wikis/foo"
|
||||
```
|
||||
|
|
|
@ -1,4 +1,3 @@
|
|||
---
|
||||
redirect_to: '../../install/openshift_and_gitlab/index.html'
|
||||
---
|
||||
|
||||
|
|
|
@ -46,7 +46,6 @@ needed to compile the project:
|
|||
with stages and shared artifacts before investing time in changes to the
|
||||
setup.
|
||||
|
||||
|
||||
It's sometimes confusing because the name artifact sounds like something that
|
||||
is only useful outside of the job, like for downloading a final image. But
|
||||
artifacts are also available in between stages within a pipeline. So if you
|
||||
|
|
|
@ -4,7 +4,6 @@ This guide covers the building dependencies of a PHP project while compiling ass
|
|||
|
||||
While is possible to create your own image with custom PHP and Node JS versions, for brevity, we will use an existing [Docker image](https://hub.docker.com/r/tetraweb/php/) that contains both PHP and NodeJS installed.
|
||||
|
||||
|
||||
```yaml
|
||||
image: tetraweb/php
|
||||
```
|
||||
|
|
|
@ -68,7 +68,6 @@ Since we have our app up and running locally, it's time to push the codebase to
|
|||
Let's create [a new project](../../../gitlab-basics/create-project.md) in GitLab named `laravel-sample`.
|
||||
After that, follow the command line instructions displayed on the project's homepage to initiate the repository on our machine and push the first commit.
|
||||
|
||||
|
||||
```bash
|
||||
cd laravel-sample
|
||||
git init
|
||||
|
@ -127,7 +126,6 @@ We'll use this variable in the `.gitlab-ci.yml` later, to easily connect to our
|
|||
|
||||
We also need to add the public key to **Project** > **Settings** > **Repository** as a [Deploy Key](../../../ssh/README.md#deploy-keys), which gives us the ability to access our repository from the server through [SSH protocol](../../../gitlab-basics/command-line-commands.md#start-working-on-your-project).
|
||||
|
||||
|
||||
```bash
|
||||
# As the deployer user on the server
|
||||
#
|
||||
|
@ -186,7 +184,6 @@ To use Envoy, we should first install it on our local machine [using the given i
|
|||
The pros of Envoy is that it doesn't require Blade engine, it just uses Blade syntax to define tasks.
|
||||
To start, we create an `Envoy.blade.php` in the root of our app with a simple task to test Envoy.
|
||||
|
||||
|
||||
```php
|
||||
@servers(['web' => 'remote_username@remote_host'])
|
||||
|
||||
|
@ -220,7 +217,6 @@ Our deployment plan is to clone the latest release from GitLab repository, insta
|
|||
The first step of our deployment process is to define a set of variables within [@setup](https://laravel.com/docs/envoy/#setup) directive.
|
||||
You may change the `app` to your application's name:
|
||||
|
||||
|
||||
```php
|
||||
...
|
||||
|
||||
|
@ -246,7 +242,6 @@ You may change the `app` to your application's name:
|
|||
The [@story](https://laravel.com/docs/envoy/#stories) directive allows us define a list of tasks that can be run as a single task.
|
||||
Here we have three tasks called `clone_repository`, `run_composer`, `update_symlinks`. These variables are usable to making our task's codes more cleaner:
|
||||
|
||||
|
||||
```php
|
||||
...
|
||||
|
||||
|
@ -618,7 +613,7 @@ Lastly, `when: manual` is used to turn the job from running automatically to a m
|
|||
|
||||
deploy_production:
|
||||
script:
|
||||
# Add the private SSH key to the build environment
|
||||
# Add the private SSH key to the build environment
|
||||
- 'which ssh-agent || ( apt-get update -y && apt-get install openssh-client -y )'
|
||||
- eval $(ssh-agent -s)
|
||||
- ssh-add <(echo "$SSH_PRIVATE_KEY")
|
||||
|
|
|
@ -38,7 +38,6 @@ For example, you host a service on `http://libravatar.example.com` the `plain_ur
|
|||
|
||||
`http://libravatar.example.com/avatar/%{hash}?s=%{size}&d=identicon`
|
||||
|
||||
|
||||
## Omnibus-gitlab example
|
||||
|
||||
In `/etc/gitlab/gitlab.rb`:
|
||||
|
@ -57,10 +56,8 @@ gitlab_rails['gravatar_enabled'] = true
|
|||
gitlab_rails['gravatar_ssl_url'] = "https://seccdn.libravatar.org/avatar/%{hash}?s=%{size}&d=identicon"
|
||||
```
|
||||
|
||||
|
||||
Run `sudo gitlab-ctl reconfigure` for changes to take effect.
|
||||
|
||||
|
||||
## Default URL for missing images
|
||||
|
||||
[Libravatar supports different sets](https://wiki.libravatar.org/api/) of `missing images` for emails not found on the Libravatar service.
|
||||
|
@ -68,7 +65,6 @@ Run `sudo gitlab-ctl reconfigure` for changes to take effect.
|
|||
In order to use a different set other than `identicon`, replace `&d=identicon` portion of the URL with another supported set.
|
||||
For example, you can use `retro` set in which case the URL would look like: `plain_url: "http://cdn.libravatar.org/avatar/%{hash}?s=%{size}&d=retro"`
|
||||
|
||||
|
||||
## Usage examples
|
||||
|
||||
#### For Microsoft Office 365
|
||||
|
|
|
@ -35,7 +35,7 @@ run: redis: (pid 30560) 14274s; run: log: (pid 13807) 2432047s
|
|||
run: redis-exporter: (pid 30946) 14205s; run: log: (pid 13869) 2432045s
|
||||
run: sidekiq: (pid 30953) 14205s; run: log: (pid 13810) 2432047s
|
||||
run: unicorn: (pid 30960) 14204s; run: log: (pid 13809) 2432047s
|
||||
```
|
||||
```
|
||||
|
||||
### Layers
|
||||
|
||||
|
@ -51,11 +51,11 @@ GitLab can be considered to have two layers from a process perspective:
|
|||
- Omnibus configuration options
|
||||
- Layer: Monitoring
|
||||
|
||||
[Alert manager](https://prometheus.io/docs/alerting/alertmanager/) is a tool provided by prometheus that _"handles alerts sent by client applications such as the Prometheus server. It takes care of deduplicating, grouping, and routing them to the correct receiver integration such as email, PagerDuty, or OpsGenie. It also takes care of silencing and inhibition of alerts."_ You can read more in [issue gitlab-ce#45740](https://gitlab.com/gitlab-org/gitlab-ce/issues/45740) about what we will be alerting on.
|
||||
[Alert manager](https://prometheus.io/docs/alerting/alertmanager/) is a tool provided by prometheus that _"handles alerts sent by client applications such as the Prometheus server. It takes care of deduplicating, grouping, and routing them to the correct receiver integration such as email, PagerDuty, or OpsGenie. It also takes care of silencing and inhibition of alerts."_ You can read more in [issue gitlab-ce#45740](https://gitlab.com/gitlab-org/gitlab-ce/issues/45740) about what we will be alerting on.
|
||||
|
||||
### gitaly
|
||||
|
||||
- [Omnibus configuration options](https://gitlab.com/gitlab-org/gitaly/tree/master/doc/configuration)
|
||||
- [Omnibus configuration options](https://gitlab.com/gitlab-org/gitaly/tree/master/doc/configuration)
|
||||
- Layer: Core Service (Data)
|
||||
|
||||
Gitaly is a service designed by GitLab to remove our need for NFS for Git storage in distributed deployments of GitLab. (Think GitLab.com or High Availablity Deployments) As of 11.3.0, This service handles all Git level access in GitLab. You can read more about the project [in the project's readme](https://gitlab.com/gitlab-org/gitaly).
|
||||
|
@ -63,7 +63,7 @@ Gitaly is a service designed by GitLab to remove our need for NFS for Git storag
|
|||
### gitlab-monitor
|
||||
|
||||
- Omnibus configuration options
|
||||
- Layer: Monitoring
|
||||
- Layer: Monitoring
|
||||
|
||||
GitLab Monitor is a process disigned in house that allows us to export metrics about GitLab application internals to prometheus. You can read more [in the project's readme](https://gitlab.com/gitlab-org/gitlab-monitor)
|
||||
|
||||
|
@ -100,14 +100,14 @@ Nginx as an ingress port for all HTTP requests and routes them to the approriate
|
|||
- [Omnibus configuration options](https://docs.gitlab.com/ee/administration/monitoring/prometheus/postgres_exporter.html)
|
||||
- Layer: Monitoring
|
||||
|
||||
[Postgres-exporter](https://github.com/wrouesnel/postgres_exporter) is the community provided Prometheus exporter that will deliver data about Postgres to prometheus for use in Grafana Dashboards.
|
||||
[Postgres-exporter](https://github.com/wrouesnel/postgres_exporter) is the community provided Prometheus exporter that will deliver data about Postgres to prometheus for use in Grafana Dashboards.
|
||||
|
||||
### postgresql
|
||||
|
||||
- [Omnibus configuration options](https://docs.gitlab.com/omnibus/settings/database.html)
|
||||
- Layer: Core Service (Data)
|
||||
|
||||
GitLab packages the popular Database to provide storage for Application meta data and user information.
|
||||
GitLab packages the popular Database to provide storage for Application meta data and user information.
|
||||
|
||||
### prometheus
|
||||
|
||||
|
@ -121,11 +121,11 @@ Prometheus is a time-series tool that helps GitLab administrators expose metrics
|
|||
- [Omnibus configuration options](https://docs.gitlab.com/omnibus/settings/redis.html)
|
||||
- Layer: Core Service (Data)
|
||||
|
||||
Redis is packaged to provide a place to store:
|
||||
Redis is packaged to provide a place to store:
|
||||
|
||||
- session data
|
||||
- temporary cache information
|
||||
- background job queues.
|
||||
- background job queues.
|
||||
|
||||
### redis-exporter
|
||||
|
||||
|
@ -146,7 +146,7 @@ Sidekiq is a Ruby background job processor that pulls jobs from the redis queue
|
|||
- [Omnibus configuration options](https://docs.gitlab.com/omnibus/settings/unicorn.html)
|
||||
- Layer: Core Service (Processor)
|
||||
|
||||
[Unicorn](https://bogomips.org/unicorn/) is a Ruby application server that is used to run the core Rails Application that provides the user facing features in GitLab. Often process output you will see this as `bundle` or `config.ru` depending on the GitLab version.
|
||||
[Unicorn](https://bogomips.org/unicorn/) is a Ruby application server that is used to run the core Rails Application that provides the user facing features in GitLab. Often process output you will see this as `bundle` or `config.ru` depending on the GitLab version.
|
||||
|
||||
### Additional Processes
|
||||
|
||||
|
@ -176,7 +176,6 @@ When making a request to an HTTP Endpoint (Think `/users/sign_in`) the request w
|
|||
- unicorn - Since this is a web request, and it needs to access the application it will go to Unicorn.
|
||||
- Postgres/Gitaly/Redis - Depending on the type of request, it may hit these services to store or retreive data.
|
||||
|
||||
|
||||
### GitLab Git Request Cycle
|
||||
|
||||
Below we describe the different pathing that HTTP vs. SSH Git requests will take. There is some overlap with the Web Request Cycle but also some differences.
|
||||
|
|
|
@ -13,7 +13,6 @@ Available `RAILS_ENV`
|
|||
- `development` (this is your main GDK db)
|
||||
- `test` (used for tests like rspec)
|
||||
|
||||
|
||||
## Nuke everything and start over
|
||||
|
||||
If you just want to delete everything and start over with an empty DB (~1 minute):
|
||||
|
@ -36,7 +35,6 @@ If your test DB is giving you problems, it is safe to nuke it because it doesn't
|
|||
- `bundle exec rake db:migrate:up VERSION=20170926203418 RAILS_ENV=development`: Set up a migration
|
||||
- `bundle exec rake db:migrate:redo VERSION=20170926203418 RAILS_ENV=development`: Re-run a specific migration
|
||||
|
||||
|
||||
## Manually access the database
|
||||
|
||||
Access the database via one of these commands (they all get you to the same place)
|
||||
|
@ -54,7 +52,6 @@ bundle exec rails db RAILS_ENV=development
|
|||
- `SELECT * FROM schema_migrations WHERE version = '20170926203418';`: Check if a migration was run
|
||||
- `DELETE FROM schema_migrations WHERE version = '20170926203418';`: Manually remove a migration
|
||||
|
||||
|
||||
## FAQ
|
||||
|
||||
### `ActiveRecord::PendingMigrationError` with Spring
|
||||
|
|
|
@ -59,28 +59,24 @@ Gitlab::Git::DiffCollection.collection_limits[:safe_max_files] = Gitlab::Git::Di
|
|||
|
||||
File diffs will be collapsed (but be expandable) if 100 files have already been rendered.
|
||||
|
||||
|
||||
```ruby
|
||||
Gitlab::Git::DiffCollection.collection_limits[:safe_max_lines] = Gitlab::Git::DiffCollection::DEFAULT_LIMITS[:max_lines] = 5000
|
||||
```
|
||||
|
||||
File diffs will be collapsed (but be expandable) if 5000 lines have already been rendered.
|
||||
|
||||
|
||||
```ruby
|
||||
Gitlab::Git::DiffCollection.collection_limits[:safe_max_bytes] = Gitlab::Git::DiffCollection.collection_limits[:safe_max_files] * 5.kilobytes = 500.kilobytes
|
||||
```
|
||||
|
||||
File diffs will be collapsed (but be expandable) if 500 kilobytes have already been rendered.
|
||||
|
||||
|
||||
```ruby
|
||||
Gitlab::Git::DiffCollection.collection_limits[:max_files] = Commit::DIFF_HARD_LIMIT_FILES = 1000
|
||||
```
|
||||
|
||||
No more files will be rendered at all if 1000 files have already been rendered.
|
||||
|
||||
|
||||
```ruby
|
||||
Gitlab::Git::DiffCollection.collection_limits[:max_lines] = Commit::DIFF_HARD_LIMIT_LINES = 50000
|
||||
```
|
||||
|
@ -129,4 +125,3 @@ Diff Viewers, which can be found on `models/diff_viewer/*` are classes used to m
|
|||
whether it's a binary, which partial should be used to render it or which File extensions this class accounts for.
|
||||
|
||||
`DiffViewer::Base` validates _blobs_ (old and new versions) content, extension and file type in order to check if it can be rendered.
|
||||
|
||||
|
|
|
@ -234,7 +234,7 @@ Examples:
|
|||
```yaml
|
||||
- category_title: Issues
|
||||
category_url: 'user/project/issues/'
|
||||
# note that the above URL does not start with a slash and
|
||||
# note that the above URL does not start with a slash and
|
||||
# does not include index.html at the end
|
||||
|
||||
docs:
|
||||
|
@ -295,7 +295,6 @@ On the other hand, if the user is looking at `/ce/` docs,
|
|||
all the links in the CE nav should link internally to `/ce/`
|
||||
files, except for [`ee-only` docs](#ee-only-docs).
|
||||
|
||||
|
||||
```html
|
||||
<% if dir != 'ce' %>
|
||||
<a href="/ee/<%= sec[:section_url] %>">...</a>
|
||||
|
|
|
@ -8,6 +8,5 @@ are useful for testing for potential accessibility problems in GitLab.
|
|||
Accessibility best-practices and more in-depth information is available on
|
||||
[the Audit Rules page][audit-rules] for the Chrome Accessibility Developer Tools.
|
||||
|
||||
|
||||
[chrome-accessibility-developer-tools]: https://github.com/GoogleChrome/accessibility-developer-tools
|
||||
[audit-rules]: https://github.com/GoogleChrome/accessibility-developer-tools/wiki/Audit-Rules
|
||||
|
|
|
@ -74,5 +74,4 @@ new Foo({ container: '.my-element' });
|
|||
```
|
||||
You can find an example of the above in this [class][container-class-example];
|
||||
|
||||
|
||||
[container-class-example]: https://gitlab.com/gitlab-org/gitlab-ce/blob/master/app/assets/javascripts/mini_pipeline_graph_dropdown.js
|
||||
|
|
|
@ -90,7 +90,6 @@ const list = document.getElementById('list');
|
|||
droplab.addHook(trigger, list);
|
||||
```
|
||||
|
||||
|
||||
### Dynamic data
|
||||
|
||||
Adding `data-dynamic` to your dropdown element will enable dynamic list rendering.
|
||||
|
|
|
@ -13,7 +13,6 @@ to update the `input` element with.
|
|||
|
||||
You can also set the `InputSetter` config to an array of objects, which will allow you to update multiple elements.
|
||||
|
||||
|
||||
```html
|
||||
<input id="input" value="">
|
||||
<div id="div" data-selected-id=""></div>
|
||||
|
|
|
@ -169,7 +169,6 @@ General tips:
|
|||
- [Profiling with Chrome DevTools][google-devtools-profiling]
|
||||
- [Browser Diet][browser-diet] is a community-built guide that catalogues practical tips for improving web page performance.
|
||||
|
||||
|
||||
[web-page-test]: http://www.webpagetest.org/
|
||||
[pagespeed-insights]: https://developers.google.com/speed/pagespeed/insights/
|
||||
[google-devtools-profiling]: https://developers.google.com/web/tools/chrome-devtools/profile/?hl=en
|
||||
|
|
|
@ -77,7 +77,6 @@ Inline styles should be avoided in almost all cases, they should only be used
|
|||
when no alternatives can be found. This allows reusability of styles as well as
|
||||
readability.
|
||||
|
||||
|
||||
[observatory-cli]: https://github.com/mozilla/http-observatory-cli
|
||||
[qualys-ssl]: https://www.ssllabs.com/ssltest/analyze.html
|
||||
[secure_headers]: https://github.com/twitter/secureheaders
|
||||
|
|
|
@ -229,7 +229,6 @@ One should apply to be a Vue.js expert by opening an MR when the Merge Request's
|
|||
- Vuex code follows the [documented pattern](./vuex.md#actions-pattern-request-and-receive-namespaces)
|
||||
- Knowledge about the existing Vue and Vuex applications and existing reusable components
|
||||
|
||||
|
||||
[vue-docs]: http://vuejs.org/guide/index.html
|
||||
[issue-boards]: https://gitlab.com/gitlab-org/gitlab-ce/tree/master/app/assets/javascripts/boards
|
||||
[environments-table]: https://gitlab.com/gitlab-org/gitlab-ce/tree/master/app/assets/javascripts/environments
|
||||
|
|
|
@ -124,4 +124,3 @@ Feature.enable(:feature_flag_name)
|
|||
## Enabling a feature flag (in production)
|
||||
|
||||
Check how to [roll out changes using feature flags](rolling_out_changes_using_feature_flags.md).
|
||||
|
||||
|
|
|
@ -20,7 +20,6 @@ There are many places where file uploading is used, according to contexts:
|
|||
- LFS Objects
|
||||
- Merge request diffs
|
||||
|
||||
|
||||
## Disk storage
|
||||
|
||||
GitLab started saving everything on local disk. While directory location changed from previous versions,
|
||||
|
|
|
@ -60,12 +60,12 @@ class StuckImportJobsWorker
|
|||
Marked stuck import jobs as failed. JIDs: xyz
|
||||
```
|
||||
|
||||
```
|
||||
```
|
||||
+-----------+ +-----------------------------------+
|
||||
|Export Job |--->| Calls ActiveRecord `as_json` and |
|
||||
+-----------+ | `to_json` on all project models |
|
||||
+-----------------------------------+
|
||||
|
||||
|
||||
+-----------+ +-----------------------------------+
|
||||
|Import Job |--->| Loads all JSON in memory, then |
|
||||
+-----------+ | inserts into the DB in batches |
|
||||
|
@ -109,13 +109,13 @@ The `AttributeCleaner` removes any prohibited keys:
|
|||
# Removes all `_ids` and other prohibited keys
|
||||
class AttributeCleaner
|
||||
ALLOWED_REFERENCES = RelationFactory::PROJECT_REFERENCES + RelationFactory::USER_REFERENCES + ['group_id']
|
||||
|
||||
|
||||
def clean
|
||||
@relation_hash.reject do |key, _value|
|
||||
prohibited_key?(key) || !@relation_class.attribute_method?(key) || excluded_key?(key)
|
||||
end.except('id')
|
||||
end
|
||||
|
||||
|
||||
...
|
||||
|
||||
```
|
||||
|
@ -133,7 +133,7 @@ The `AttributeConfigurationSpec` checks and confirms the addition of new columns
|
|||
|
||||
SAFE_MODEL_ATTRIBUTES: #{File.expand_path(safe_attributes_file)}
|
||||
IMPORT_EXPORT_CONFIG: #{Gitlab::ImportExport.config_file}
|
||||
MSG
|
||||
MSG
|
||||
```
|
||||
|
||||
The `ModelConfigurationSpec` checks and confirms the addition of new models:
|
||||
|
@ -157,7 +157,7 @@ The `ExportFileSpec` detects encrypted or sensitive columns:
|
|||
```ruby
|
||||
# ExportFileSpec
|
||||
<<-MSG
|
||||
Found a new sensitive word <#{key_found}>, which is part of the hash #{parent.inspect}
|
||||
Found a new sensitive word <#{key_found}>, which is part of the hash #{parent.inspect}
|
||||
If you think this information shouldn't get exported, please exclude the model or attribute in
|
||||
IMPORT_EXPORT_CONFIG.
|
||||
|
||||
|
@ -214,7 +214,6 @@ We do not need to bump the version up in any of the following cases:
|
|||
- Remove a column or model (unless there is a DB constraint)
|
||||
- Export new things (such as a new type of upload)
|
||||
|
||||
|
||||
Every time we bump the version, the integration specs will fail and can be fixed with:
|
||||
|
||||
```bash
|
||||
|
@ -231,7 +230,7 @@ meaning that we want to bump the version up in the next version (or patch releas
|
|||
For example:
|
||||
|
||||
1. Add rename to `RelationRenameService` in X.Y
|
||||
2. Remove it from `RelationRenameService` in X.Y + 1
|
||||
2. Remove it from `RelationRenameService` in X.Y + 1
|
||||
3. Bump Import/Export version in X.Y + 1
|
||||
|
||||
```ruby
|
||||
|
@ -270,8 +269,8 @@ included_attributes:
|
|||
user:
|
||||
- :id
|
||||
- :email
|
||||
...
|
||||
|
||||
...
|
||||
|
||||
```
|
||||
|
||||
Do not include the following attributes for the models specified:
|
||||
|
@ -319,7 +318,7 @@ module Gitlab
|
|||
ensure
|
||||
remove_import_file
|
||||
end
|
||||
|
||||
|
||||
def restorers
|
||||
[repo_restorer, wiki_restorer, project_tree, avatar_restorer,
|
||||
uploads_restorer, lfs_restorer, statistics_restorer]
|
||||
|
@ -346,7 +345,7 @@ module Projects
|
|||
end
|
||||
|
||||
def save_services
|
||||
[version_saver, avatar_saver, project_tree_saver, uploads_saver, repo_saver,
|
||||
[version_saver, avatar_saver, project_tree_saver, uploads_saver, repo_saver,
|
||||
wiki_repo_saver, lfs_saver].all?(&:save)
|
||||
end
|
||||
```
|
||||
|
|
|
@ -48,7 +48,6 @@ various database operations, such as
|
|||
|
||||
and whether they require downtime and how to work around that whenever possible.
|
||||
|
||||
|
||||
## Downtime Tagging
|
||||
|
||||
Every migration must specify if it requires downtime or not, and if it should
|
||||
|
|
|
@ -339,7 +339,6 @@ afterEach(() => {
|
|||
|
||||
Some regressions only affect a specific browser version. We can install and test in particular browsers with either Firefox or Browserstack using the following steps:
|
||||
|
||||
|
||||
### Browserstack
|
||||
|
||||
[Browserstack](https://www.browserstack.com/) allows you to test more than 1200 mobile devices and browsers.
|
||||
|
|
|
@ -336,7 +336,6 @@ the same method won't end up retrieving data from Redis upon every call. When
|
|||
memoizing cached data in an instance variable, make sure to also reset the
|
||||
instance variable when flushing the cache. An example:
|
||||
|
||||
|
||||
```ruby
|
||||
def first_branch
|
||||
@first_branch ||= cache.fetch(:first_branch) { branches.first }
|
||||
|
|
|
@ -8,7 +8,6 @@ The policy used is based on the subject's class name - so `Ability.allowed?(user
|
|||
|
||||
Permissions are broken into two parts: `conditions` and `rules`. Conditions are boolean expressions that can access the database and the environment, while rules are statically configured combinations of expressions and other rules that enable or prevent certain abilities. For an ability to be allowed, it must be enabled by at least one rule, and not prevented by any.
|
||||
|
||||
|
||||
### Conditions
|
||||
|
||||
Conditions are defined by the `condition` method, and are given a name and a block. The block will be executed in the context of the policy object - so it can access `@user` and `@subject`, as well as call any methods defined on the policy. Note that `@user` may be nil (in the anonymous case), but `@subject` is guaranteed to be a real instance of the subject class.
|
||||
|
|
|
@ -74,7 +74,6 @@ Gitlab::Profiler.print_by_total_time(result, max_percent: 60, min_percent: 2)
|
|||
|
||||
To print the profile in HTML format, use the following example:
|
||||
|
||||
|
||||
```ruby
|
||||
result = Gitlab::Profiler.profile('/my-user')
|
||||
|
||||
|
@ -92,7 +91,6 @@ Redash to Looker](https://gitlab.com/gitlab-com/Product/issues/5#note_121194467)
|
|||
We are [currently investigating how to make this data
|
||||
public](https://gitlab.com/meltano/looker/issues/294).
|
||||
|
||||
|
||||
## Sherlock
|
||||
|
||||
Sherlock is a custom profiling tool built into GitLab. Sherlock is _only_
|
||||
|
|
|
@ -151,7 +151,6 @@ following:
|
|||
bundle exec rake gemojione:digests
|
||||
```
|
||||
|
||||
|
||||
This will update the file `fixtures/emojis/digests.json` based on the currently
|
||||
available Emoji.
|
||||
|
||||
|
|
|
@ -190,7 +190,7 @@ A check like this could have avoided CVE-2013-4583.
|
|||
|
||||
## Properly anchor regular expressions to the start and end of strings
|
||||
|
||||
When using regular expressions to validate user input that is passed as an argument to a shell command, make sure to use the `\A` and `\z` anchors that designate the start and end of the string, rather than `^` and `$`, or no anchors at all.
|
||||
When using regular expressions to validate user input that is passed as an argument to a shell command, make sure to use the `\A` and `\z` anchors that designate the start and end of the string, rather than `^` and `$`, or no anchors at all.
|
||||
|
||||
If you don't, an attacker could use this to execute commands with potentially harmful effect.
|
||||
|
||||
|
@ -198,7 +198,7 @@ For example, when a project's `import_url` is validated like below, the user cou
|
|||
|
||||
```ruby
|
||||
validates :import_url, format: { with: URI.regexp(%w(ssh git http https)) }
|
||||
# URI.regexp(%w(ssh git http https)) roughly evaluates to /(ssh|git|http|https):(something_that_looks_like_a_url)/
|
||||
# URI.regexp(%w(ssh git http https)) roughly evaluates to /(ssh|git|http|https):(something_that_looks_like_a_url)/
|
||||
```
|
||||
|
||||
Suppose the user submits the following as their import URL:
|
||||
|
@ -211,7 +211,6 @@ Since there are no anchors in the used regular expression, the `git:/tmp/lol` in
|
|||
|
||||
When importing, GitLab would execute the following command, passing the `import_url` as an argument:
|
||||
|
||||
|
||||
```sh
|
||||
git clone file://git:/tmp/lol
|
||||
```
|
||||
|
|
|
@ -27,7 +27,6 @@
|
|||
|
||||
![SSH key single page](img/profile_settings_ssh_keys_single_key.png)
|
||||
|
||||
|
||||
>**Note:**
|
||||
Once you add a key, you cannot edit it, only remove it. In case the paste
|
||||
didn't work, you will have to remove the offending key and re-add it.
|
||||
|
|
|
@ -471,7 +471,6 @@ gitlab_rails['redis_port'] = 6379
|
|||
|
||||
Finally, reconfigure GitLab for the change to take effect:
|
||||
|
||||
|
||||
```sh
|
||||
sudo gitlab-ctl reconfigure
|
||||
```
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
---
|
||||
description: 'Learn how to spin up a
|
||||
description: 'Learn how to spin up a
|
||||
pre-configured GitLab VM on Microsoft Azure and have your very own private GitLab instance up and running in around 30 minutes.'
|
||||
---
|
||||
|
||||
|
@ -9,10 +9,10 @@ pre-configured GitLab VM on Microsoft Azure and have your very own private GitLa
|
|||
>
|
||||
> _Ported to the GitLab documentation and updated on 2017-08-24 by [Ian Scorer](https://gitlab.com/iscorer)._
|
||||
|
||||
Azure is Microsoft's business cloud and GitLab is a pre-configured offering on the Azure Marketplace.
|
||||
Hopefully, you aren't surprised to hear that Microsoft and Azure have embraced open source software
|
||||
like Ubuntu, Red Hat Enterprise Linux, and of course - GitLab! This means that you can spin up a
|
||||
pre-configured GitLab VM and have your very own private GitLab up and running in around 30 minutes.
|
||||
Azure is Microsoft's business cloud and GitLab is a pre-configured offering on the Azure Marketplace.
|
||||
Hopefully, you aren't surprised to hear that Microsoft and Azure have embraced open source software
|
||||
like Ubuntu, Red Hat Enterprise Linux, and of course - GitLab! This means that you can spin up a
|
||||
pre-configured GitLab VM and have your very own private GitLab up and running in around 30 minutes.
|
||||
Let's get started.
|
||||
|
||||
## Getting started
|
||||
|
@ -20,40 +20,40 @@ Let's get started.
|
|||
First, you'll need an account on Azure. There are three ways to do this:
|
||||
|
||||
- If your company (or you) already has an account, then you are ready to go!
|
||||
- You can also open your own Azure account for free. _At time of writing_, you get $200
|
||||
of credit to spend on Azure services for 30 days. You can use this credit to try out paid Azure
|
||||
- You can also open your own Azure account for free. _At time of writing_, you get $200
|
||||
of credit to spend on Azure services for 30 days. You can use this credit to try out paid Azure
|
||||
services, exploring Microsoft's cloud for free. Even after the first 30 days, you never have to pay
|
||||
anything unless you decide to transition to paid services with a Pay-As-You-Go Azure subscription.
|
||||
This is a great way to try out Azure and cloud computing, and you can
|
||||
anything unless you decide to transition to paid services with a Pay-As-You-Go Azure subscription.
|
||||
This is a great way to try out Azure and cloud computing, and you can
|
||||
[read more in their comprehensive FAQ][Azure-Free-Account-FAQ].
|
||||
- If you have an MSDN subscription, you can activate your Azure subscriber benefits. Your MSDN
|
||||
subscription gives you recurring Azure credits every month, so why not put those credits to use and
|
||||
- If you have an MSDN subscription, you can activate your Azure subscriber benefits. Your MSDN
|
||||
subscription gives you recurring Azure credits every month, so why not put those credits to use and
|
||||
try out GitLab right now?
|
||||
|
||||
## Working with Azure
|
||||
|
||||
Once you have an Azure account, you can get started. Login to Azure using
|
||||
Once you have an Azure account, you can get started. Login to Azure using
|
||||
[portal.azure.com](https://portal.azure.com) and the first thing you will see is the Dashboard:
|
||||
|
||||
![Azure Dashboard](img/azure-dashboard.png)
|
||||
|
||||
The Dashboard gives you a quick overview of Azure resources, and from here you can build VMs,
|
||||
The Dashboard gives you a quick overview of Azure resources, and from here you can build VMs,
|
||||
create SQL Databases, author websites, and perform lots of other cloud tasks.
|
||||
|
||||
## Create New VM
|
||||
|
||||
The [Azure Marketplace][Azure-Marketplace] is an online store for pre-configured applications and
|
||||
The [Azure Marketplace][Azure-Marketplace] is an online store for pre-configured applications and
|
||||
services which have been optimized for the cloud by software vendors like GitLab,
|
||||
available on the Azure Marketplace as pre-configured solutions. In this tutorial
|
||||
we will install GitLab Community Edition, but for GitLab Enterprise Edition you
|
||||
can follow the same process.
|
||||
|
||||
To begin creating a new GitLab VM, click on the **+ New** icon, type "GitLab" into the search
|
||||
To begin creating a new GitLab VM, click on the **+ New** icon, type "GitLab" into the search
|
||||
box, and then click the **"GitLab Community Edition"** search result:
|
||||
|
||||
![Azure - New - Search for 'GitLab'](img/azure-new-search-gitlab.png)
|
||||
|
||||
A new "blade" window will pop-out, where you can read more about the **"GitLab Community Edition"**
|
||||
A new "blade" window will pop-out, where you can read more about the **"GitLab Community Edition"**
|
||||
offering which is freely available under the MIT Expat License:
|
||||
|
||||
![Azure - New - Select 'GitLab Community Edition'](img/azure-new-gitlab-ce.png)
|
||||
|
@ -70,18 +70,18 @@ The first items we need to configure are the basic settings of the underlying vi
|
|||
1. Select a `VM disk type` - either **HDD** _(slower, lower cost)_ or **SSD** _(faster, higher cost)_
|
||||
1. Enter a `User name` - e.g. **"gitlab-admin"**
|
||||
1. Select an `Authentication type`, either **SSH public key** or **Password**:
|
||||
|
||||
|
||||
> **Note:** if you're unsure which authentication type to use, select **Password**
|
||||
|
||||
1. If you chose **SSH public key** - enter your `SSH public key` into the field provided
|
||||
_(read the [SSH documentation][GitLab-Docs-SSH] to learn more about how to set up SSH
|
||||
1. If you chose **SSH public key** - enter your `SSH public key` into the field provided
|
||||
_(read the [SSH documentation][GitLab-Docs-SSH] to learn more about how to set up SSH
|
||||
public keys)_
|
||||
1. If you chose **Password** - enter the password you wish to use _(this is the password that you
|
||||
1. If you chose **Password** - enter the password you wish to use _(this is the password that you
|
||||
will use later in this tutorial to [SSH] into the VM, so make sure it's a strong password/passphrase)_
|
||||
1. Choose the appropriate `Subscription` tier for your Azure account
|
||||
1. Choose an existing `Resource Group` or create a new one - e.g. **"GitLab-CE-Azure"**
|
||||
|
||||
> **Note:** a "Resource group" is a way to group related resources together for easier administration.
|
||||
> **Note:** a "Resource group" is a way to group related resources together for easier administration.
|
||||
> We chose "GitLab-CE-Azure", but your resource group can have the same name as your VM.
|
||||
|
||||
1. Choose a `Location` - if you're unsure, select the default location
|
||||
|
@ -94,23 +94,23 @@ Check the settings you have entered, and then click **"OK"** when you're ready t
|
|||
|
||||
## Size
|
||||
|
||||
Next, you need to choose the size of your VM - selecting features such as the number of CPU cores,
|
||||
Next, you need to choose the size of your VM - selecting features such as the number of CPU cores,
|
||||
the amount of RAM, the size of storage (and its speed), etc.
|
||||
|
||||
> **Note:** in common with other cloud vendors, Azure operates a resource/usage pricing model, i.e.
|
||||
the more resources your VM consumes the more it will cost you to run, so make your selection
|
||||
> **Note:** in common with other cloud vendors, Azure operates a resource/usage pricing model, i.e.
|
||||
the more resources your VM consumes the more it will cost you to run, so make your selection
|
||||
carefully. You'll see that Azure provides an _estimated_ monthly cost beneath each VM Size to help
|
||||
guide your selection.
|
||||
|
||||
The default size - the lowest cost **"DS1_V2 Standard"** VM - meets the minimum system requirements
|
||||
to run a small GitLab environment for testing and evaluation purposes, and so we're going to go
|
||||
The default size - the lowest cost **"DS1_V2 Standard"** VM - meets the minimum system requirements
|
||||
to run a small GitLab environment for testing and evaluation purposes, and so we're going to go
|
||||
ahead and select this one, but please choose the size which best meets your own requirements:
|
||||
|
||||
![Azure - Create Virtual Machine - Size](img/azure-create-virtual-machine-size.png)
|
||||
|
||||
> **Note:** be aware that whilst your VM is active (known as "allocated"), it will incur
|
||||
"compute charges" which, ultimately, you will be billed for. So, even if you're using the
|
||||
free trial credits, you'll likely want to learn
|
||||
> **Note:** be aware that whilst your VM is active (known as "allocated"), it will incur
|
||||
"compute charges" which, ultimately, you will be billed for. So, even if you're using the
|
||||
free trial credits, you'll likely want to learn
|
||||
[how to properly shutdown an Azure VM to save money][Azure-Properly-Shutdown-VM].
|
||||
|
||||
Go ahead and click your chosen size, then click **"Select"** when you're ready to proceed to the
|
||||
|
@ -118,8 +118,8 @@ next step.
|
|||
|
||||
## Settings
|
||||
|
||||
On the next blade, you're asked to configure the Storage, Network and Extension settings.
|
||||
We've gone with the default settings as they're sufficient for test-driving GitLab, but please
|
||||
On the next blade, you're asked to configure the Storage, Network and Extension settings.
|
||||
We've gone with the default settings as they're sufficient for test-driving GitLab, but please
|
||||
choose the settings which best meet your own requirements:
|
||||
|
||||
![Azure - Create Virtual Machine - Settings](img/azure-create-virtual-machine-settings.png)
|
||||
|
@ -128,80 +128,80 @@ Review the settings and then click **"OK"** when you're ready to proceed to the
|
|||
|
||||
## Purchase
|
||||
|
||||
The Purchase page is the last step and here you will be presented with the price per hour for your
|
||||
new VM. You'll be billed only for the VM itself (e.g. "Standard DS1 v2") because the
|
||||
The Purchase page is the last step and here you will be presented with the price per hour for your
|
||||
new VM. You'll be billed only for the VM itself (e.g. "Standard DS1 v2") because the
|
||||
**"GitLab Community Edition"** marketplace solution is free to use at 0 USD/hr:
|
||||
|
||||
![Azure - Create Virtual Machine - Purchase](img/azure-create-virtual-machine-purchase.png)
|
||||
|
||||
> **Note:** at this stage, you can review and modify the any of the settings you have made during all
|
||||
> **Note:** at this stage, you can review and modify the any of the settings you have made during all
|
||||
previous steps, just click on any of the four steps to re-open them.
|
||||
|
||||
When you have read and agreed to the terms of use and are ready to proceed, click **"Purchase"**.
|
||||
|
||||
## Deployment
|
||||
|
||||
At this point, Azure will begin deploying your new VM. The deployment process will take a few
|
||||
At this point, Azure will begin deploying your new VM. The deployment process will take a few
|
||||
minutes to complete, with progress displayed on the **"Deployment"** blade:
|
||||
|
||||
![Azure - Create Virtual Machine - Deployment](img/azure-create-virtual-machine-deployment.png)
|
||||
|
||||
Once the deployment process is complete, the new VM and its associated resources will be displayed
|
||||
Once the deployment process is complete, the new VM and its associated resources will be displayed
|
||||
on the Azure Dashboard (you may need to refresh the page):
|
||||
|
||||
![Azure - Dashboard - All resources](img/azure-dashboard-running-resources.png)
|
||||
|
||||
The new VM can also be accessed by clicking the `All resources` or `Virtual machines` icons in the
|
||||
The new VM can also be accessed by clicking the `All resources` or `Virtual machines` icons in the
|
||||
Azure Portal sidebar navigation menu.
|
||||
|
||||
## Set up a domain name
|
||||
|
||||
The VM will have a public IP address (static by default), but Azure allows us to assign a friendly
|
||||
The VM will have a public IP address (static by default), but Azure allows us to assign a friendly
|
||||
DNS name to the VM, so let's go ahead and do that.
|
||||
|
||||
From the Dashboard, click on the **"GitLab-CE"** tile to open the management blade for the new VM.
|
||||
From the Dashboard, click on the **"GitLab-CE"** tile to open the management blade for the new VM.
|
||||
The public IP address that the VM uses is shown in the 'Essentials' section:
|
||||
|
||||
![Azure - VM - Management - Public IP Address](img/azure-vm-management-public-ip.png)
|
||||
|
||||
Click on the public IP address - which should open the **"Public IP address - Configuration"** blade,
|
||||
then click on **"Configuration"** (under "Settings"). Now enter a friendly DNS name for your instance
|
||||
Click on the public IP address - which should open the **"Public IP address - Configuration"** blade,
|
||||
then click on **"Configuration"** (under "Settings"). Now enter a friendly DNS name for your instance
|
||||
in the `DNS name label` field:
|
||||
|
||||
![Azure - VM - Domain Name](img/azure-vm-domain-name.png)
|
||||
|
||||
In the screenshot above, you'll see that we've set the `DNS name label` to **"gitlab-ce-test"**.
|
||||
This will make our VM accessible at `gitlab-ce-test.centralus.cloudapp.azure.com`
|
||||
_(the full domain name of your own VM will be different, of course)_.
|
||||
In the screenshot above, you'll see that we've set the `DNS name label` to **"gitlab-ce-test"**.
|
||||
This will make our VM accessible at `gitlab-ce-test.centralus.cloudapp.azure.com`
|
||||
_(the full domain name of your own VM will be different, of course)_.
|
||||
|
||||
Click **"Save"** for the changes to take effect.
|
||||
|
||||
> **Note:** if you want to use your own domain name, you will need to add a DNS `A` record at your
|
||||
domain registrar which points to the public IP address of your Azure VM. If you do this, you'll need
|
||||
to make sure your VM is configured to use a _static_ public IP address (i.e. not a _dynamic_ one)
|
||||
or you will have to reconfigure the DNS `A` record each time Azure reassigns your VM a new public IP
|
||||
> **Note:** if you want to use your own domain name, you will need to add a DNS `A` record at your
|
||||
domain registrar which points to the public IP address of your Azure VM. If you do this, you'll need
|
||||
to make sure your VM is configured to use a _static_ public IP address (i.e. not a _dynamic_ one)
|
||||
or you will have to reconfigure the DNS `A` record each time Azure reassigns your VM a new public IP
|
||||
address. Read [IP address types and allocation methods in Azure][Azure-IP-Address-Types] to learn more.
|
||||
|
||||
## Let's open some ports!
|
||||
|
||||
At this stage you should have a running and fully operational VM. However, none of the services on
|
||||
your VM (e.g. GitLab) will be publicly accessible via the internet until you have opened up the
|
||||
At this stage you should have a running and fully operational VM. However, none of the services on
|
||||
your VM (e.g. GitLab) will be publicly accessible via the internet until you have opened up the
|
||||
necessary ports to enable access to those services.
|
||||
|
||||
Ports are opened by adding _security rules_ to the **"Network security group"** (NSG) which our VM
|
||||
has been assigned to. If you followed the process above, then Azure will have automatically created
|
||||
an NSG named `GitLab-CE-nsg` and assigned the `GitLab-CE` VM to it.
|
||||
Ports are opened by adding _security rules_ to the **"Network security group"** (NSG) which our VM
|
||||
has been assigned to. If you followed the process above, then Azure will have automatically created
|
||||
an NSG named `GitLab-CE-nsg` and assigned the `GitLab-CE` VM to it.
|
||||
|
||||
> **Note:** if you gave your VM a different name then the NSG automatically created by Azure will
|
||||
> **Note:** if you gave your VM a different name then the NSG automatically created by Azure will
|
||||
also have a different name - the name you have your VM, with `-nsg` appended to it.
|
||||
|
||||
You can navigate to the NSG settings via many different routes in the Azure Portal, but one of the
|
||||
simplest ways is to go to the Azure Dashboard, and then click on the Network Security Group listed
|
||||
You can navigate to the NSG settings via many different routes in the Azure Portal, but one of the
|
||||
simplest ways is to go to the Azure Dashboard, and then click on the Network Security Group listed
|
||||
in the **"All resources"** tile:
|
||||
|
||||
![Azure - Dashboard - All resources - Network security group](img/azure-dashboard-highlight-nsg.png)
|
||||
|
||||
With the **"Network security group"** blade open, click on **"Inbound security rules"** under
|
||||
With the **"Network security group"** blade open, click on **"Inbound security rules"** under
|
||||
**"Settings"**:
|
||||
|
||||
![Azure - Network security group - Inbound security rules](img/azure-nsg-inbound-sec-rules-highlight.png)
|
||||
|
@ -212,18 +212,18 @@ Next, click **"Add"**:
|
|||
|
||||
### Which ports to open?
|
||||
|
||||
Like all servers, our VM will be running many services. However, we want to open up the correct
|
||||
Like all servers, our VM will be running many services. However, we want to open up the correct
|
||||
ports to enable public internet access to two services in particular:
|
||||
|
||||
1. **HTTP** (port 80) - opening port 80 will enable our VM to respond to HTTP requests, allowing
|
||||
1. **HTTP** (port 80) - opening port 80 will enable our VM to respond to HTTP requests, allowing
|
||||
public access to the instance of GitLab running on our VM.
|
||||
1. **SSH** (port 22) - opening port 22 will enable our VM to respond to SSH connection requests,
|
||||
allowing public access (with authentication) to remote terminal sessions
|
||||
1. **SSH** (port 22) - opening port 22 will enable our VM to respond to SSH connection requests,
|
||||
allowing public access (with authentication) to remote terminal sessions
|
||||
_(you'll see why we need [SSH] access to our VM [later on in this tutorial](#maintaining-your-gitlab-instance))_
|
||||
|
||||
### Open HTTP on Port 80
|
||||
|
||||
In the **"Add inbound security rule"** blade, let's open port 80 so that our VM will accept HTTP
|
||||
In the **"Add inbound security rule"** blade, let's open port 80 so that our VM will accept HTTP
|
||||
connections:
|
||||
|
||||
![Azure - Add inbound security rules - HTTP](img/azure-add-inbound-sec-rule-http.png)
|
||||
|
@ -235,7 +235,7 @@ connections:
|
|||
|
||||
### Open SSH on Port 22
|
||||
|
||||
Repeat the above process, adding a second Inbound security rule to open port 22, enabling our VM to
|
||||
Repeat the above process, adding a second Inbound security rule to open port 22, enabling our VM to
|
||||
accept [SSH] connections:
|
||||
|
||||
![Azure - Add inbound security rules - SSH](img/azure-add-inbound-sec-rule-ssh.png)
|
||||
|
@ -245,16 +245,15 @@ accept [SSH] connections:
|
|||
1. Make sure the `Action` is set to **Allow**
|
||||
1. Click **"OK"**
|
||||
|
||||
|
||||
It will take a moment for Azure to add each new Inbound Security Rule (and you may need to click on
|
||||
**"Inbound security rules"** to refresh the list), but once completed, you should see the two new
|
||||
It will take a moment for Azure to add each new Inbound Security Rule (and you may need to click on
|
||||
**"Inbound security rules"** to refresh the list), but once completed, you should see the two new
|
||||
rules in the list:
|
||||
|
||||
![Azure - Inbound security rules - List](img/azure-inbound-sec-rules-list.png)
|
||||
|
||||
## Connecting to GitLab
|
||||
Use the domain name you set up earlier (or the public IP address) to visit your new GitLab instance
|
||||
in your browser. If everything has gone according to plan you should be presented with the
|
||||
Use the domain name you set up earlier (or the public IP address) to visit your new GitLab instance
|
||||
in your browser. If everything has gone according to plan you should be presented with the
|
||||
following page, asking you to set a _new_ password for the administrator account automatically
|
||||
created by GitLab:
|
||||
|
||||
|
@ -262,26 +261,26 @@ created by GitLab:
|
|||
|
||||
Enter your _new_ password into both form fields, and then click **"Change your password"**.
|
||||
|
||||
Once you have changed the password you will be redirected to the GitLab login page. Use `root` as
|
||||
Once you have changed the password you will be redirected to the GitLab login page. Use `root` as
|
||||
the username, enter the new password you set in the previous step, and then click **"Sign in"**:
|
||||
|
||||
![GitLab - Login](img/gitlab-login.png)
|
||||
|
||||
### Success?
|
||||
|
||||
After signing in successfully, you should see the GitLab Projects page displaying a
|
||||
After signing in successfully, you should see the GitLab Projects page displaying a
|
||||
**"Welcome to GitLab!"** message:
|
||||
|
||||
![GitLab - Projects Page](img/gitlab-home.png)
|
||||
|
||||
If so, you now have a working GitLab instance on your own private Azure VM. **Congratulations!**
|
||||
If so, you now have a working GitLab instance on your own private Azure VM. **Congratulations!**
|
||||
|
||||
## Creating your first GitLab project
|
||||
|
||||
You can skip this section if you are familiar with Git and GitLab. Otherwise, let's create our first
|
||||
You can skip this section if you are familiar with Git and GitLab. Otherwise, let's create our first
|
||||
project. From the Welcome page, click **"New Project"**.
|
||||
|
||||
Let's give our project a name and a description, and then accept the default values for everything
|
||||
Let's give our project a name and a description, and then accept the default values for everything
|
||||
else:
|
||||
|
||||
1. Enter **"demo"** into the `Project path` project name field
|
||||
|
@ -290,12 +289,12 @@ else:
|
|||
|
||||
![GitLab - New Project](img/gitlab-new-project.png)
|
||||
|
||||
Once the new project has been created (which should only take a moment), you'll be redirected to
|
||||
Once the new project has been created (which should only take a moment), you'll be redirected to
|
||||
homepage for the project:
|
||||
|
||||
![GitLab - Empty Project](img/gitlab-project-home-empty.png)
|
||||
|
||||
If you scroll further down the project's home page, you'll see some basic instructions on how to
|
||||
If you scroll further down the project's home page, you'll see some basic instructions on how to
|
||||
set up a local clone of your new repository and push and pull from it:
|
||||
|
||||
![GitLab - Empty Project - Basic Instructions](img/gitlab-project-home-instructions.png)
|
||||
|
@ -304,50 +303,50 @@ set up a local clone of your new repository and push and pull from it:
|
|||
|
||||
## Maintaining your GitLab instance
|
||||
|
||||
It's important to keep your GitLab environment up-to-date. The GitLab team is constantly making
|
||||
enhancements and occasionally you may need to update for security reasons. So let's review how to
|
||||
update GitLab.
|
||||
It's important to keep your GitLab environment up-to-date. The GitLab team is constantly making
|
||||
enhancements and occasionally you may need to update for security reasons. So let's review how to
|
||||
update GitLab.
|
||||
|
||||
### Checking our current version
|
||||
|
||||
To check which version of GitLab we're currently running, click on the "Admin Area" link - it's the
|
||||
the wrench icon displayed in the top-right, next to the search box.
|
||||
the wrench icon displayed in the top-right, next to the search box.
|
||||
|
||||
In the following screenshot you can see an **"update asap"** notification message in the top-right.
|
||||
This particular message indicates that there is a newer version of GitLab available which contains
|
||||
In the following screenshot you can see an **"update asap"** notification message in the top-right.
|
||||
This particular message indicates that there is a newer version of GitLab available which contains
|
||||
one or more security fixes:
|
||||
|
||||
![GitLab - update asap](img/gitlab-admin-area.png)
|
||||
|
||||
Under the **"Components"** section, we can see that our VM is currently running version `8.6.5` of
|
||||
GitLab. This is the version of GitLab which was contained in the Azure Marketplace
|
||||
**"GitLab Community Edition"** offering we used to build the VM when we wrote this tutorial.
|
||||
Under the **"Components"** section, we can see that our VM is currently running version `8.6.5` of
|
||||
GitLab. This is the version of GitLab which was contained in the Azure Marketplace
|
||||
**"GitLab Community Edition"** offering we used to build the VM when we wrote this tutorial.
|
||||
|
||||
> **Note:** The version of GitLab in your own VM instance may well be different, but the update
|
||||
> **Note:** The version of GitLab in your own VM instance may well be different, but the update
|
||||
process will still be the same.
|
||||
|
||||
### Connect via SSH
|
||||
|
||||
To perform an update, we need to connect directly to our Azure VM instance and run some commands
|
||||
from the terminal. Our Azure VM is actually a server running Linux (Ubuntu), so we'll need to
|
||||
connect to it using SSH ([Secure Shell][SSH]).
|
||||
To perform an update, we need to connect directly to our Azure VM instance and run some commands
|
||||
from the terminal. Our Azure VM is actually a server running Linux (Ubuntu), so we'll need to
|
||||
connect to it using SSH ([Secure Shell][SSH]).
|
||||
|
||||
If you're running Windows, you'll need to connect using [PuTTY] or an equivalent Windows SSH client.
|
||||
If you're running Linux or macOS, then you already have an SSH client installed.
|
||||
If you're running Windows, you'll need to connect using [PuTTY] or an equivalent Windows SSH client.
|
||||
If you're running Linux or macOS, then you already have an SSH client installed.
|
||||
|
||||
> **Note:**
|
||||
> - Remember that you will need to login with the username and password you specified
|
||||
> **Note:**
|
||||
> - Remember that you will need to login with the username and password you specified
|
||||
> [when you created](#basics) your Azure VM
|
||||
> - If you need to reset your VM password, read
|
||||
> - If you need to reset your VM password, read
|
||||
> [how to reset SSH credentials for a user on an Azure VM][Azure-Troubleshoot-SSH-Connection].
|
||||
|
||||
#### SSH from the command-line
|
||||
|
||||
If you're running [SSH] from the command-line (terminal), then type in the following command to
|
||||
connect to your VM, substituting `username` and `your-azure-domain-name.com` for the correct values.
|
||||
If you're running [SSH] from the command-line (terminal), then type in the following command to
|
||||
connect to your VM, substituting `username` and `your-azure-domain-name.com` for the correct values.
|
||||
|
||||
Again, remember that your Azure VM domain name will be the one you
|
||||
[set up previously in the tutorial](#set-up-a-domain-name). If you didn't set up a domain name for
|
||||
Again, remember that your Azure VM domain name will be the one you
|
||||
[set up previously in the tutorial](#set-up-a-domain-name). If you didn't set up a domain name for
|
||||
your VM, you can use the IP address in its place in the following command:
|
||||
|
||||
```bash
|
||||
|
@ -357,7 +356,7 @@ Provide your password at the prompt to authenticate.
|
|||
|
||||
#### SSH from Windows (PuTTY)
|
||||
|
||||
If you're using [PuTTY] in Windows as your [SSH] client, then you might want to take a quick
|
||||
If you're using [PuTTY] in Windows as your [SSH] client, then you might want to take a quick
|
||||
read on [using PuTTY in Windows][Using-SSH-In-Putty].
|
||||
|
||||
### Updating GitLab
|
||||
|
@ -369,8 +368,8 @@ version:
|
|||
sudo apt-get update && sudo apt-get install gitlab-ce
|
||||
```
|
||||
|
||||
This command will update GitLab and its associated components to the latest versions, so it will
|
||||
take a little time to complete. You'll see various update tasks being completed in your SSH
|
||||
This command will update GitLab and its associated components to the latest versions, so it will
|
||||
take a little time to complete. You'll see various update tasks being completed in your SSH
|
||||
terminal window:
|
||||
|
||||
![GitLab updating](img/gitlab-ssh-update-in-progress.png)
|
||||
|
@ -387,23 +386,23 @@ before anything else.
|
|||
|
||||
#### Check out your updated GitLab
|
||||
|
||||
Refresh your GitLab instance in the browser and navigate to the Admin Area. You should now have an
|
||||
up-to-date GitLab instance.
|
||||
Refresh your GitLab instance in the browser and navigate to the Admin Area. You should now have an
|
||||
up-to-date GitLab instance.
|
||||
|
||||
When we wrote this tutorial our Azure VM GitLab instance was updated to the latest version at time
|
||||
of writing (`9.4.0`). You can see that the message which was previously displaying **"update asap"**
|
||||
When we wrote this tutorial our Azure VM GitLab instance was updated to the latest version at time
|
||||
of writing (`9.4.0`). You can see that the message which was previously displaying **"update asap"**
|
||||
is now showing **"up-to-date"**:
|
||||
|
||||
![GitLab up to date](img/gitlab-admin-area-9.4.0.png)
|
||||
|
||||
## Conclusion
|
||||
|
||||
Naturally, we believe that GitLab is a great git repository tool. However, GitLab is a whole lot
|
||||
more than that too. GitLab unifies issues, code review, CI and CD into a single UI, helping you to
|
||||
move faster from idea to production, and in this tutorial we showed you how quick and easy it is to
|
||||
set up and run your own instance of GitLab on Azure, Microsoft's cloud service.
|
||||
Naturally, we believe that GitLab is a great git repository tool. However, GitLab is a whole lot
|
||||
more than that too. GitLab unifies issues, code review, CI and CD into a single UI, helping you to
|
||||
move faster from idea to production, and in this tutorial we showed you how quick and easy it is to
|
||||
set up and run your own instance of GitLab on Azure, Microsoft's cloud service.
|
||||
|
||||
Azure is a great way to experiment with GitLab, and if you decide (as we hope) that GitLab is for
|
||||
Azure is a great way to experiment with GitLab, and if you decide (as we hope) that GitLab is for
|
||||
you, you can continue to use Azure as your secure, scalable cloud provider or of course run GitLab
|
||||
on any cloud service you choose.
|
||||
|
||||
|
|
|
@ -34,7 +34,6 @@ To use Akismet:
|
|||
|
||||
![Screenshot of Akismet settings](img/akismet_settings.png)
|
||||
|
||||
|
||||
## Training
|
||||
|
||||
> *Note:* Training the Akismet filter is only available in 8.11 and above.
|
||||
|
|
|
@ -38,7 +38,6 @@ To enable the CAS OmniAuth provider you must register your application with your
|
|||
}
|
||||
]
|
||||
```
|
||||
|
||||
|
||||
For installations from source:
|
||||
|
||||
|
@ -65,4 +64,3 @@ On the sign in page there should now be a CAS tab in the sign in form.
|
|||
|
||||
[reconfigure]: ../administration/restart_gitlab.md#omnibus-gitlab-reconfigure
|
||||
[restart GitLab]: ../administration/restart_gitlab.md#installations-from-source
|
||||
|
||||
|
|
|
@ -93,7 +93,6 @@ To get the credentials (a pair of Client ID and Client Secret), you must registe
|
|||
args: { scope: 'user:email' } }
|
||||
```
|
||||
|
||||
|
||||
For GitHub Enterprise:
|
||||
|
||||
```
|
||||
|
|
|
@ -231,7 +231,6 @@ In order to enable/disable an OmniAuth provider, go to Admin Area -> Settings ->
|
|||
|
||||
![Enabled OAuth Sign-In sources](img/enabled-oauth-sign-in-sources.png)
|
||||
|
||||
|
||||
## Disabling Omniauth
|
||||
|
||||
Starting from version 11.4 of GitLab, Omniauth is enabled by default. This only
|
||||
|
|
|
@ -249,7 +249,6 @@ If you want some SAML authentication methods to count as 2FA on a per session ba
|
|||
|
||||
1. Save the file and [restart GitLab][] for the changes ot take effect
|
||||
|
||||
|
||||
In addition to the changes in GitLab, make sure that your Idp is returning the
|
||||
`AuthnContext`. For example:
|
||||
|
||||
|
|
|
@ -8,7 +8,6 @@ We suggest you use the project name as the trigger term for simplicity and clari
|
|||
|
||||
Taking the trigger term as `project-name`, the commands are:
|
||||
|
||||
|
||||
| Command | Effect |
|
||||
| ------- | ------ |
|
||||
| `/project-name help` | Shows all available slash commands |
|
||||
|
|
|
@ -442,7 +442,6 @@ backups will be copied to, and will be created if it does not exist. If the
|
|||
directory that you want to copy the tarballs to is the root of your mounted
|
||||
directory, just use `.` instead.
|
||||
|
||||
|
||||
For Omnibus GitLab packages:
|
||||
|
||||
1. Edit `/etc/gitlab/gitlab.rb`:
|
||||
|
@ -564,7 +563,6 @@ For installations from source:
|
|||
|
||||
1. [Restart GitLab] for the changes to take effect.
|
||||
|
||||
|
||||
```sh
|
||||
sudo -u git crontab -e # Edit the crontab for the git user
|
||||
```
|
||||
|
|
|
@ -52,7 +52,6 @@ bundle exec rake gitlab:import:all_users_to_all_groups RAILS_ENV=production
|
|||
|
||||
- Enable this setting to keep new users blocked until they have been cleared by the admin (default: false).
|
||||
|
||||
|
||||
```
|
||||
block_auto_created_users: false
|
||||
```
|
||||
|
@ -77,7 +76,6 @@ GitLab stores the secret data enabling 2FA to work in an encrypted database
|
|||
column. The encryption key for this data is known as `otp_key_base`, and is
|
||||
stored in `config/secrets.yml`.
|
||||
|
||||
|
||||
If that file is leaked, but the individual 2FA secrets have not, it's possible
|
||||
to re-encrypt those secrets with a new encryption key. This allows you to change
|
||||
the leaked key without forcing all users to change their 2FA details.
|
||||
|
|
|
@ -45,7 +45,6 @@ Here's what we'll cover in this tutorial:
|
|||
- [How to modify history](#how-modifying-history-is-done)
|
||||
- [How to remove sensitive information from repository](#deleting-sensitive-information-from-commits)
|
||||
|
||||
|
||||
### Branching strategy
|
||||
|
||||
[Git][git-official] is a de-centralized version control system, which means that beside regular
|
||||
|
@ -64,14 +63,12 @@ prevent that anything is lost or out of sync when feature is complete. You can a
|
|||
read through this blog post on [Git Tips & Tricks][gitlab-git-tips-n-tricks]
|
||||
to learn how to easily **do** things in Git.
|
||||
|
||||
|
||||
## Undo local changes
|
||||
|
||||
Until you push your changes to any remote repository, they will only affect you.
|
||||
That broadens your options on how to handle undoing them. Still, local changes
|
||||
can be on various stages and each stage has a different approach on how to tackle them.
|
||||
|
||||
|
||||
### Unstaged local changes (before you commit)
|
||||
|
||||
When a change is made, but it is not added to the staged tree, Git itself
|
||||
|
@ -315,7 +312,6 @@ In case you want to modify something introduced in commit `B`.
|
|||
You can find some more examples in [below section where we explain how to modify
|
||||
history](#how-modifying-history-is-done)
|
||||
|
||||
|
||||
### Redoing the Undo
|
||||
|
||||
Sometimes you realize that the changes you undid were useful and you want them
|
||||
|
@ -396,8 +392,8 @@ a nicer history of your contribution.
|
|||
Keep in mind that this also removes the comments attached to certain commits
|
||||
in merge requests, so if you need to retain traceability in GitLab, then
|
||||
modifying history is not acceptable.
|
||||
A feature-branch of a merge request is a public branch and might be used by
|
||||
other developers, but project process and rules might allow or require
|
||||
A feature-branch of a merge request is a public branch and might be used by
|
||||
other developers, but project process and rules might allow or require
|
||||
you to use `git rebase` (command that changes history) to reduce number of
|
||||
displayed commits on target branch after reviews are done (for example
|
||||
GitLab). There is a `git merge --squash` command which does exactly that
|
||||
|
|
|
@ -706,4 +706,3 @@ Files that have been modified but are not committed. Check them by using the com
|
|||
### YAML
|
||||
|
||||
A human-readable data serialization [language](http://www.yaml.org/about.html) that takes concepts from programming languages such as C, Perl, and Python, and ideas from XML and the data format of electronic mail.
|
||||
|
||||
|
|
|
@ -80,7 +80,6 @@ our newly created VPC.
|
|||
|
||||
![Route Table](img/route_table.png)
|
||||
|
||||
|
||||
### Internet Gateway
|
||||
|
||||
Now still on the same dashboard head over to Internet Gateways and
|
||||
|
@ -238,7 +237,6 @@ running reconfigure we need to make sure all our services are tied down
|
|||
so just leave the reconfigure command until after we edit our gitlab.rb
|
||||
file.
|
||||
|
||||
|
||||
### Extension for PostgreSQL
|
||||
|
||||
Connect to your new RDS instance to verify access and to install
|
||||
|
@ -277,8 +275,6 @@ username, and password.
|
|||
Next, we only need to configure the Redis section by adding the host and
|
||||
uncommenting the port.
|
||||
|
||||
|
||||
|
||||
The last configuration step is to [change the default file locations ](http://docs.gitlab.com/ee/administration/high_availability/nfs.html)
|
||||
to make the EFS integration easier to manage.
|
||||
|
||||
|
@ -344,7 +340,6 @@ text area that allows us to add a lot of custom configurations which
|
|||
allows you to add a custom script for when launching an instance. Let's
|
||||
add the following script to the User Data section:
|
||||
|
||||
|
||||
#cloud-config
|
||||
package_upgrade: true
|
||||
packages:
|
||||
|
|
|
@ -2,7 +2,6 @@
|
|||
comments: false
|
||||
---
|
||||
|
||||
|
||||
# Support Boot Camp
|
||||
|
||||
**Goal:** Prepare new Service Engineers at GitLab
|
||||
|
|
|
@ -2,7 +2,6 @@
|
|||
comments: false
|
||||
---
|
||||
|
||||
|
||||
# Training
|
||||
|
||||
This training material is the markdown used to generate training slides
|
||||
|
@ -205,7 +204,6 @@ git push origin squash_some_bugs
|
|||
- Anyone can comment, not just the assignee
|
||||
- Push corrections to the same branch
|
||||
|
||||
|
||||
---
|
||||
|
||||
### Merge request example
|
||||
|
@ -395,7 +393,6 @@ git revert vs git reset
|
|||
Reset removes the commit while revert removes the changes but leaves the commit
|
||||
Revert is safer considering we can revert a revert
|
||||
|
||||
|
||||
# Changed file
|
||||
git commit -am "bug introduced"
|
||||
git revert HEAD
|
||||
|
|
|
@ -40,7 +40,6 @@ Git log lists commit history. It allows searching and filtering.
|
|||
git log --since=1.month.ago --until=3.weeks.ago
|
||||
```
|
||||
|
||||
|
||||
----------
|
||||
|
||||
## Git Log Workflow
|
||||
|
|
|
@ -51,7 +51,6 @@ comments: false
|
|||
1. Pull for updates
|
||||
1. Push changes
|
||||
|
||||
|
||||
----------
|
||||
|
||||
## Commands
|
||||
|
|
|
@ -97,7 +97,6 @@ Now, you can use pgloader to migrate the data from MySQL to PostgreSQL:
|
|||
1. Once the migration finishes, you should see a summary table that looks like
|
||||
the following:
|
||||
|
||||
|
||||
```
|
||||
table name read imported errors total time
|
||||
----------------------------------------------- --------- --------- --------- --------------
|
||||
|
@ -245,7 +244,6 @@ Now, you can use pgloader to migrate the data from MySQL to PostgreSQL:
|
|||
1. Once the migration finishes, you should see a summary table that looks like
|
||||
the following:
|
||||
|
||||
|
||||
```
|
||||
table name read imported errors total time
|
||||
----------------------------------------------- --------- --------- --------- --------------
|
||||
|
@ -286,4 +284,3 @@ If you experience 500 errors after the migration, try to clear the cache:
|
|||
``` bash
|
||||
sudo -u git -H bundle exec rake cache:clear RAILS_ENV=production
|
||||
```
|
||||
|
||||
|
|
|
@ -80,4 +80,3 @@ exit
|
|||
Once the migration is successfully marked, run the rake `db:migrate` task again.
|
||||
You will likely have to repeat this process several times until all failed
|
||||
migrations are marked complete.
|
||||
|
||||
|
|
|
@ -270,7 +270,6 @@ sudo -u gitlab-psql /opt/gitlab/embedded/bin/slon_start 1 --conf /var/opt/gitlab
|
|||
|
||||
If all went well this will produce output such as:
|
||||
|
||||
|
||||
```
|
||||
Invoke slon for node 1 - /opt/gitlab/embedded/bin/slon -p /var/run/slony1/slony_replication_node1.pid -s 1000 -d2 slony_replication 'host=192.168.0.7 dbname=gitlabhq_production user=slony port=5432 password=hieng8ezohHuCeiqu0leeghai4aeyahp' > /var/log/gitlab/slony/node1/gitlabhq_production-2016-10-06.log 2>&1 &
|
||||
Slon successfully started for cluster slony_replication, node node1
|
||||
|
|
|
@ -25,7 +25,6 @@ To report abuse from a user's comment:
|
|||
1. Complete an abuse report.
|
||||
1. Click the **Send report** button.
|
||||
|
||||
|
||||
NOTE: **Note:**
|
||||
A URL to the reported user's comment will be
|
||||
pre-filled in the abuse report's **Message** field.
|
||||
|
|
|
@ -28,7 +28,6 @@ With default whitelist settings, the probes can be accessed from localhost:
|
|||
- `http://localhost/-/readiness`
|
||||
- `http://localhost/-/liveness`
|
||||
|
||||
|
||||
The first endpoint, `/-/health/`, only checks whether the application server is running. It does
|
||||
-not verify the database or other services are running. A successful response will return
|
||||
a 200 status code with the following message:
|
||||
|
|
|
@ -95,7 +95,6 @@ For example, let's say we have the following Kubernetes clusters:
|
|||
| Test | `test` | Group |
|
||||
| Development| `*` | Group |
|
||||
|
||||
|
||||
And the following environments are set in [`.gitlab-ci.yml`](../../../ci/yaml/README.md):
|
||||
|
||||
```yaml
|
||||
|
|
|
@ -288,7 +288,6 @@ On Linux, you can download [Noto Color Emoji](https://www.google.com/get/noto/he
|
|||
Ubuntu 18.04 (like many modern Linux distros) has this font installed by default.
|
||||
```
|
||||
|
||||
|
||||
Sometimes you want to <img src="https://gitlab.com/gitlab-org/gitlab-ce/raw/master/app/assets/images/emoji/monkey.png" width="20px" height="20px"> around a bit and add some <img src="https://gitlab.com/gitlab-org/gitlab-ce/raw/master/app/assets/images/emoji/star2.png" width="20px" height="20px"> to your <img src="https://gitlab.com/gitlab-org/gitlab-ce/raw/master/app/assets/images/emoji/speech_balloon.png" width="20px" height="20px">. Well we have a gift for you:
|
||||
|
||||
<img src="https://gitlab.com/gitlab-org/gitlab-ce/raw/master/app/assets/images/emoji/zap.png" width="20px" height="20px">You can use emoji anywhere GFM is supported. <img src="https://gitlab.com/gitlab-org/gitlab-ce/raw/master/app/assets/images/emoji/v.png" width="20px" height="20px">
|
||||
|
@ -453,14 +452,14 @@ Color written inside backticks will be followed by a color "chip".
|
|||
|
||||
Examples:
|
||||
|
||||
`#F00`
|
||||
`#F00A`
|
||||
`#FF0000`
|
||||
`#FF0000AA`
|
||||
`RGB(0,255,0)`
|
||||
`RGB(0%,100%,0%)`
|
||||
`RGBA(0,255,0,0.7)`
|
||||
`HSL(540,70%,50%)`
|
||||
`#F00`
|
||||
`#F00A`
|
||||
`#FF0000`
|
||||
`#FF0000AA`
|
||||
`RGB(0,255,0)`
|
||||
`RGB(0%,100%,0%)`
|
||||
`RGBA(0,255,0,0.7)`
|
||||
`HSL(540,70%,50%)`
|
||||
`HSLA(540,70%,50%,0.7)`
|
||||
|
||||
Becomes:
|
||||
|
@ -987,7 +986,6 @@ while the equation for the theory of relativity is E = mc<sup>2</sup>.
|
|||
|
||||
The formula for water is H<sub>2</sub>O while the equation for the theory of relativity is E = mc<sup>2</sup>.
|
||||
|
||||
|
||||
## Wiki-specific Markdown
|
||||
|
||||
The following examples show how links inside wikis behave.
|
||||
|
|
|
@ -89,7 +89,6 @@ To enable private profile:
|
|||
1. Check the "Private profile" option.
|
||||
1. Hit **Update profile settings**.
|
||||
|
||||
|
||||
NOTE: **Note:**
|
||||
You and GitLab admins can see your the abovementioned information on your profile even if it is private.
|
||||
|
||||
|
|
|
@ -138,7 +138,6 @@ Follow these steps to deploy a function using the Node.js runtime to your Knativ
|
|||
FUNCTION: echo
|
||||
```
|
||||
|
||||
|
||||
The `serverless.yml` file references both an `echo` directory (under `buildargs`) and an `echo` file (under `handler`),
|
||||
which is a reference to `echo.js` in the [repository](https://gitlab.com/knative-examples/functions). Additionally, it
|
||||
contains three sections with distinct parameters:
|
||||
|
@ -150,7 +149,6 @@ contains three sections with distinct parameters:
|
|||
| `service` | Name for the Knative service which will serve the function. |
|
||||
| `description` | A short description of the `service`. |
|
||||
|
||||
|
||||
### `provider`
|
||||
|
||||
| Parameter | Description |
|
||||
|
|
|
@ -47,7 +47,6 @@ to enable it.
|
|||
> - To move or rename a repository with a container registry you will have to
|
||||
> delete all existing images.
|
||||
|
||||
|
||||
If you visit the **Registry** link under your project's menu, you can see the
|
||||
explicit instructions to login to the Container Registry using your GitLab
|
||||
credentials.
|
||||
|
|
|
@ -46,7 +46,7 @@ You can see that there are seven stages in total:
|
|||
## How the data is measured
|
||||
|
||||
Cycle Analytics records cycle time and data based on the project issues with the
|
||||
exception of the staging and production stages, where only data deployed to
|
||||
exception of the staging and production stages, where only data deployed to
|
||||
production are measured.
|
||||
|
||||
Specifically, if your CI is not set up and you have not defined a `production`
|
||||
|
@ -86,7 +86,6 @@ So, the Cycle Analytics dashboard won't present any data:
|
|||
- For staging and production stages, if the project has no `production` or `production/*`
|
||||
environment.
|
||||
|
||||
|
||||
## Example workflow
|
||||
|
||||
Below is a simple fictional workflow of a single cycle that happens in a
|
||||
|
@ -159,7 +158,6 @@ Learn more about Cycle Analytics in the following resources:
|
|||
- [Cycle Analytics feature preview](https://about.gitlab.com/2016/09/16/feature-preview-introducing-cycle-analytics/)
|
||||
- [Cycle Analytics feature highlight](https://about.gitlab.com/2016/09/21/cycle-analytics-feature-highlight/)
|
||||
|
||||
|
||||
[board]: issue_board.md#creating-a-new-list
|
||||
[ce-5986]: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/5986
|
||||
[ce-20975]: https://gitlab.com/gitlab-org/gitlab-ce/issues/20975
|
||||
|
|
|
@ -93,4 +93,3 @@ Possible fixes
|
|||
|
||||
[ce-4981]: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/4981
|
||||
[gitlab-ce-templates]: https://gitlab.com/gitlab-org/gitlab-ce/tree/master/.gitlab
|
||||
|
||||
|
|
|
@ -59,4 +59,3 @@ Bamboo under 'Trigger IP addresses'.
|
|||
|
||||
> **Note:**
|
||||
> - Starting with GitLab 8.14.0, builds are triggered on push events.
|
||||
|
||||
|
|
|
@ -10,7 +10,6 @@ This feature evolved out of [Protected Branches](protected_branches.md)
|
|||
|
||||
Protected tags will prevent anyone from updating or deleting the tag, as and will prevent creation of matching tags based on the permissions you have selected. By default, anyone without Maintainer permission will be prevented from creating tags.
|
||||
|
||||
|
||||
## Configuring protected tags
|
||||
|
||||
To protect a tag, you need to have at least Maintainer permission level.
|
||||
|
@ -43,7 +42,6 @@ matching the wildcard. For example:
|
|||
| `*gitlab*` | `gitlab`, `gitlab/v1` |
|
||||
| `*` | `v1.0.1rc2`, `accidental-tag` |
|
||||
|
||||
|
||||
Two different wildcards can potentially match the same tag. For example,
|
||||
`*-stable` and `production-*` would both match a `production-stable` tag.
|
||||
In that case, if _any_ of these protected tags have a setting like
|
||||
|
@ -54,7 +52,6 @@ all matching tags:
|
|||
|
||||
![Protected tag matches](img/protected_tag_matches.png)
|
||||
|
||||
|
||||
---
|
||||
|
||||
[ce-10356]: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/10356 "Protected Tags"
|
||||
|
|
|
@ -55,7 +55,6 @@ discussions, and descriptions:
|
|||
| `/merge` | Merge (when pipeline succeeds) | | ✓ |
|
||||
| `/create_merge_request <branch name>` | Create a new merge request starting from the current issue | ✓ | |
|
||||
|
||||
|
||||
## Quick actions for commit messages
|
||||
|
||||
The following quick actions are applicable for commit messages:
|
||||
|
|
|
@ -190,7 +190,6 @@ key to use.
|
|||
|
||||
Replace `30F2B65B9246B6CA` with your GPG key ID.
|
||||
|
||||
|
||||
1. (Optional) If Git is using `gpg` and you get errors like `secret key not available`
|
||||
or `gpg: signing failed: secret key not available`, run the following command to
|
||||
change to `gpg2`:
|
||||
|
|
|
@ -112,7 +112,6 @@ screenshot above will yield a branch named
|
|||
Since GitLab 9.0, when you click the `New branch` in an empty repository project, GitLab automatically creates the master branch, commits a blank `README.md` file to it and creates and redirects you to a new branch based on the issue title.
|
||||
If your [project is already configured with a deployment service][project-services-doc] (e.g. Kubernetes), GitLab takes one step further and prompts you to set up [auto deploy][auto-deploy-doc] by helping you create a `.gitlab-ci.yml` file.
|
||||
|
||||
|
||||
After the branch is created, you can edit files in the repository to fix
|
||||
the issue. When a merge request is created based on the newly created branch,
|
||||
the description field will automatically display the [issue closing pattern]
|
||||
|
|
|
@ -10,7 +10,6 @@ document more information about using branches to work together.
|
|||
|
||||
Forking a project is in most cases a two-step process.
|
||||
|
||||
|
||||
1. Click on the fork button located in the middle of the page or a project's
|
||||
home page right next to the stars button.
|
||||
|
||||
|
|
Loading…
Reference in a new issue