From 47fb1c5235236c8e28bfdc87b013419ae1d85dc8 Mon Sep 17 00:00:00 2001 From: Evan Read Date: Mon, 18 Feb 2019 09:36:13 +0000 Subject: [PATCH] Remove consecutive blank lines from markdown files For the sake of consistency, removes any extraneous consecutive blank lines from the doc suite. --- doc/administration/auth/authentiq.md | 1 - doc/administration/auth/ldap.md | 1 - doc/administration/auth/okta.md | 1 - doc/administration/container_registry.md | 1 - doc/administration/high_availability/redis.md | 1 - doc/administration/integration/plantuml.md | 1 - .../operations/cleaning_up_redis_sessions.md | 1 - .../repository_storage_types.md | 1 - doc/administration/restart_gitlab.md | 1 - doc/api/commits.md | 3 - doc/api/container_registry.md | 1 - doc/api/discussions.md | 1 - doc/api/group_milestones.md | 1 - doc/api/import.md | 2 - doc/api/issues.md | 6 - doc/api/labels.md | 1 - doc/api/merge_requests.md | 3 - doc/api/oauth2.md | 1 - doc/api/project_snippets.md | 1 - doc/api/project_templates.md | 1 - doc/api/search.md | 2 - doc/api/sidekiq_metrics.md | 1 - doc/api/tags.md | 1 - doc/api/users.md | 1 - doc/api/wikis.md | 1 - doc/articles/openshift_and_gitlab/index.md | 1 - doc/ci/caching/index.md | 1 - .../deployment/composer-npm-deploy.md | 1 - .../laravel_with_gitlab_and_envoy/index.md | 7 +- doc/customization/libravatar.md | 4 - doc/development/architecture.md | 19 +- doc/development/database_debugging.md | 3 - doc/development/diffs.md | 5 - .../site_architecture/global_nav.md | 3 +- doc/development/fe_guide/accessibility.md | 1 - doc/development/fe_guide/design_patterns.md | 1 - doc/development/fe_guide/droplab/droplab.md | 1 - .../fe_guide/droplab/plugins/input_setter.md | 1 - doc/development/fe_guide/performance.md | 1 - doc/development/fe_guide/security.md | 1 - doc/development/fe_guide/vue.md | 1 - doc/development/feature_flags.md | 1 - doc/development/file_storage.md | 1 - doc/development/import_export.md | 23 +- doc/development/migration_style_guide.md | 1 - .../new_fe_guide/development/testing.md | 1 - doc/development/performance.md | 1 - doc/development/policies.md | 1 - doc/development/profiling.md | 2 - doc/development/rake_tasks.md | 1 - doc/development/shell_commands.md | 5 +- doc/gitlab-basics/create-your-ssh-keys.md | 1 - doc/install/aws/index.md | 1 - doc/install/azure/index.md | 217 +++++++++--------- doc/integration/akismet.md | 1 - doc/integration/cas.md | 2 - doc/integration/github.md | 1 - doc/integration/omniauth.md | 1 - doc/integration/saml.md | 1 - doc/integration/slash_commands.md | 1 - doc/raketasks/backup_restore.md | 2 - doc/raketasks/user_management.md | 2 - .../index.md | 8 +- doc/university/glossary/README.md | 1 - .../high-availability/aws/README.md | 5 - doc/university/support/README.md | 1 - doc/university/training/end-user/README.md | 3 - doc/university/training/topics/git_log.md | 1 - .../training/topics/rollback_commits.md | 1 - doc/update/mysql_to_postgresql.md | 3 - doc/update/restore_after_failure.md | 1 - .../upgrading_postgresql_using_slony.md | 1 - doc/user/abuse_reports.md | 1 - .../admin_area/monitoring/health_check.md | 1 - doc/user/group/clusters/index.md | 1 - doc/user/markdown.md | 18 +- doc/user/profile/index.md | 1 - doc/user/project/clusters/serverless/index.md | 2 - doc/user/project/container_registry.md | 1 - doc/user/project/cycle_analytics.md | 4 +- doc/user/project/description_templates.md | 1 - doc/user/project/integrations/bamboo.md | 1 - doc/user/project/protected_tags.md | 3 - doc/user/project/quick_actions.md | 1 - .../repository/gpg_signed_commits/index.md | 1 - doc/user/project/repository/web_editor.md | 1 - doc/workflow/forking_workflow.md | 1 - 87 files changed, 143 insertions(+), 274 deletions(-) diff --git a/doc/administration/auth/authentiq.md b/doc/administration/auth/authentiq.md index 772e55cef07..94a8803fff1 100644 --- a/doc/administration/auth/authentiq.md +++ b/doc/administration/auth/authentiq.md @@ -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. diff --git a/doc/administration/auth/ldap.md b/doc/administration/auth/ldap.md index 0ac73c55580..37e596f198f 100644 --- a/doc/administration/auth/ldap.md +++ b/doc/administration/auth/ldap.md @@ -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 diff --git a/doc/administration/auth/okta.md b/doc/administration/auth/okta.md index ae38094391b..3136923fa96 100644 --- a/doc/administration/auth/okta.md +++ b/doc/administration/auth/okta.md @@ -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. diff --git a/doc/administration/container_registry.md b/doc/administration/container_registry.md index 60f1911fa2a..a1ac4a2a57c 100644 --- a/doc/administration/container_registry.md +++ b/doc/administration/container_registry.md @@ -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: diff --git a/doc/administration/high_availability/redis.md b/doc/administration/high_availability/redis.md index 987a0b9f350..bf5d064d79d 100644 --- a/doc/administration/high_availability/redis.md +++ b/doc/administration/high_availability/redis.md @@ -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. diff --git a/doc/administration/integration/plantuml.md b/doc/administration/integration/plantuml.md index b61c5409a56..d383d1efe70 100644 --- a/doc/administration/integration/plantuml.md +++ b/doc/administration/integration/plantuml.md @@ -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 diff --git a/doc/administration/operations/cleaning_up_redis_sessions.md b/doc/administration/operations/cleaning_up_redis_sessions.md index 3a35aff8366..b45ca99fd80 100644 --- a/doc/administration/operations/cleaning_up_redis_sessions.md +++ b/doc/administration/operations/cleaning_up_redis_sessions.md @@ -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. ``` diff --git a/doc/administration/repository_storage_types.md b/doc/administration/repository_storage_types.md index 51e1518d73f..4934aaf39f7 100644 --- a/doc/administration/repository_storage_types.md +++ b/doc/administration/repository_storage_types.md @@ -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 diff --git a/doc/administration/restart_gitlab.md b/doc/administration/restart_gitlab.md index 7d245b3effd..cbc3fbd9473 100644 --- a/doc/administration/restart_gitlab.md +++ b/doc/administration/restart_gitlab.md @@ -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" diff --git a/doc/api/commits.md b/doc/api/commits.md index 7bfea0498e4..8d36ae7d559 100644 --- a/doc/api/commits.md +++ b/doc/api/commits.md @@ -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: " "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: " "https://gitlab.example.com/api/v4/projects/5/repository/commits/af5b13261899fb2c0db30abdd0af8b07cb44fdc5/merge_requests" ``` diff --git a/doc/api/container_registry.md b/doc/api/container_registry.md index c77ed39e4dc..1f17af1f1e9 100644 --- a/doc/api/container_registry.md +++ b/doc/api/container_registry.md @@ -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: " "https://gitlab.example.com/api/v4/projects/5/registry/repositories" ``` diff --git a/doc/api/discussions.md b/doc/api/discussions.md index 79090ea5254..7d68d0ae744 100644 --- a/doc/api/discussions.md +++ b/doc/api/discussions.md @@ -641,7 +641,6 @@ Parameters: curl --request PUT --header "PRIVATE-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. diff --git a/doc/api/group_milestones.md b/doc/api/group_milestones.md index 7be01ce9c6d..eb974267084 100644 --- a/doc/api/group_milestones.md +++ b/doc/api/group_milestones.md @@ -48,7 +48,6 @@ Example Response: ] ``` - ## Get single milestone Gets a single group milestone. diff --git a/doc/api/import.md b/doc/api/import.md index 9f8e0d232c6..1deb26e8388 100644 --- a/doc/api/import.md +++ b/doc/api/import.md @@ -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" } ``` - diff --git a/doc/api/issues.md b/doc/api/issues.md index ed3165d95df..dd328fb8079 100644 --- a/doc/api/issues.md +++ b/doc/api/issues.md @@ -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: " 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: " 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. diff --git a/doc/api/labels.md b/doc/api/labels.md index eec55bff294..9d10d383bf9 100644 --- a/doc/api/labels.md +++ b/doc/api/labels.md @@ -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: " "https://gitlab.example.com/api/v4/projects/1/labels" ``` diff --git a/doc/api/merge_requests.md b/doc/api/merge_requests.md index ffeceabc680..e176cdffc5f 100644 --- a/doc/api/merge_requests.md +++ b/doc/api/merge_requests.md @@ -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 [ { diff --git a/doc/api/oauth2.md b/doc/api/oauth2.md index 6e156a14b25..dfe62554852 100644 --- a/doc/api/oauth2.md +++ b/doc/api/oauth2.md @@ -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 ``` - diff --git a/doc/api/project_snippets.md b/doc/api/project_snippets.md index 8f4640fcbd6..f02674adfe2 100644 --- a/doc/api/project_snippets.md +++ b/doc/api/project_snippets.md @@ -124,7 +124,6 @@ Parameters: > **Notes:** > [Introduced][ce-29508] in GitLab 9.4. - Available only for admins. ``` diff --git a/doc/api/project_templates.md b/doc/api/project_templates.md index ef98205cd68..3b5b12c8da3 100644 --- a/doc/api/project_templates.md +++ b/doc/api/project_templates.md @@ -101,7 +101,6 @@ GET /projects/:id/templates/:type/:key Example response (Dockerfile): - ```json { "name": "Binary", diff --git a/doc/api/search.md b/doc/api/search.md index aaaed7d9956..aa601648b2c 100644 --- a/doc/api/search.md +++ b/doc/api/search.md @@ -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 diff --git a/doc/api/sidekiq_metrics.md b/doc/api/sidekiq_metrics.md index 95dcf2d5277..5f2202fa51d 100644 --- a/doc/api/sidekiq_metrics.md +++ b/doc/api/sidekiq_metrics.md @@ -149,4 +149,3 @@ Example response: } } ``` - diff --git a/doc/api/tags.md b/doc/api/tags.md index 23dbf2d9ff7..3177fec618f 100644 --- a/doc/api/tags.md +++ b/doc/api/tags.md @@ -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 diff --git a/doc/api/users.md b/doc/api/users.md index fd8778abb17..b0977810120 100644 --- a/doc/api/users.md +++ b/doc/api/users.md @@ -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. diff --git a/doc/api/wikis.md b/doc/api/wikis.md index 436d06cfd3a..12f048ac09b 100644 --- a/doc/api/wikis.md +++ b/doc/api/wikis.md @@ -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: " "https://gitlab.example.com/api/v4/projects/1/wikis/foo" ``` diff --git a/doc/articles/openshift_and_gitlab/index.md b/doc/articles/openshift_and_gitlab/index.md index 76fdb2eb00a..822d012aa3d 100644 --- a/doc/articles/openshift_and_gitlab/index.md +++ b/doc/articles/openshift_and_gitlab/index.md @@ -1,4 +1,3 @@ --- redirect_to: '../../install/openshift_and_gitlab/index.html' --- - diff --git a/doc/ci/caching/index.md b/doc/ci/caching/index.md index 8b2ce425cf5..dbe3d9b62c9 100644 --- a/doc/ci/caching/index.md +++ b/doc/ci/caching/index.md @@ -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 diff --git a/doc/ci/examples/deployment/composer-npm-deploy.md b/doc/ci/examples/deployment/composer-npm-deploy.md index 36358515b84..4758ccad5aa 100644 --- a/doc/ci/examples/deployment/composer-npm-deploy.md +++ b/doc/ci/examples/deployment/composer-npm-deploy.md @@ -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 ``` diff --git a/doc/ci/examples/laravel_with_gitlab_and_envoy/index.md b/doc/ci/examples/laravel_with_gitlab_and_envoy/index.md index b1ccce744d8..d3b6650b0f4 100644 --- a/doc/ci/examples/laravel_with_gitlab_and_envoy/index.md +++ b/doc/ci/examples/laravel_with_gitlab_and_envoy/index.md @@ -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") diff --git a/doc/customization/libravatar.md b/doc/customization/libravatar.md index 9bd22d3966d..18aaeb5a712 100644 --- a/doc/customization/libravatar.md +++ b/doc/customization/libravatar.md @@ -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 diff --git a/doc/development/architecture.md b/doc/development/architecture.md index e65c5f05505..63574b28edc 100644 --- a/doc/development/architecture.md +++ b/doc/development/architecture.md @@ -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. diff --git a/doc/development/database_debugging.md b/doc/development/database_debugging.md index b2c804b2ff0..f00c5ccb9e9 100644 --- a/doc/development/database_debugging.md +++ b/doc/development/database_debugging.md @@ -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 diff --git a/doc/development/diffs.md b/doc/development/diffs.md index 43fc125c21d..56e869c21f8 100644 --- a/doc/development/diffs.md +++ b/doc/development/diffs.md @@ -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. - diff --git a/doc/development/documentation/site_architecture/global_nav.md b/doc/development/documentation/site_architecture/global_nav.md index 62ca7d6c805..0aa3c41a225 100644 --- a/doc/development/documentation/site_architecture/global_nav.md +++ b/doc/development/documentation/site_architecture/global_nav.md @@ -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' %> ... diff --git a/doc/development/fe_guide/accessibility.md b/doc/development/fe_guide/accessibility.md index 366b220cbb2..df32242a522 100644 --- a/doc/development/fe_guide/accessibility.md +++ b/doc/development/fe_guide/accessibility.md @@ -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 diff --git a/doc/development/fe_guide/design_patterns.md b/doc/development/fe_guide/design_patterns.md index e05887a19af..0342d16a87c 100644 --- a/doc/development/fe_guide/design_patterns.md +++ b/doc/development/fe_guide/design_patterns.md @@ -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 diff --git a/doc/development/fe_guide/droplab/droplab.md b/doc/development/fe_guide/droplab/droplab.md index e6aa0be671f..2f8c79abde1 100644 --- a/doc/development/fe_guide/droplab/droplab.md +++ b/doc/development/fe_guide/droplab/droplab.md @@ -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. diff --git a/doc/development/fe_guide/droplab/plugins/input_setter.md b/doc/development/fe_guide/droplab/plugins/input_setter.md index 8e28a41f32e..e229103e462 100644 --- a/doc/development/fe_guide/droplab/plugins/input_setter.md +++ b/doc/development/fe_guide/droplab/plugins/input_setter.md @@ -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
diff --git a/doc/development/fe_guide/performance.md b/doc/development/fe_guide/performance.md index e5a383c25f5..0aba38aca8c 100644 --- a/doc/development/fe_guide/performance.md +++ b/doc/development/fe_guide/performance.md @@ -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 diff --git a/doc/development/fe_guide/security.md b/doc/development/fe_guide/security.md index 19e72c1d368..83bb449e54d 100644 --- a/doc/development/fe_guide/security.md +++ b/doc/development/fe_guide/security.md @@ -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 diff --git a/doc/development/fe_guide/vue.md b/doc/development/fe_guide/vue.md index 9c614e3468a..60f322c6e75 100644 --- a/doc/development/fe_guide/vue.md +++ b/doc/development/fe_guide/vue.md @@ -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 diff --git a/doc/development/feature_flags.md b/doc/development/feature_flags.md index b6161cd6163..67356a12eba 100644 --- a/doc/development/feature_flags.md +++ b/doc/development/feature_flags.md @@ -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). - diff --git a/doc/development/file_storage.md b/doc/development/file_storage.md index 597812c8c49..18e4dc2ca0c 100644 --- a/doc/development/file_storage.md +++ b/doc/development/file_storage.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, diff --git a/doc/development/import_export.md b/doc/development/import_export.md index 71db1abb201..e2108605d54 100644 --- a/doc/development/import_export.md +++ b/doc/development/import_export.md @@ -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 ``` diff --git a/doc/development/migration_style_guide.md b/doc/development/migration_style_guide.md index 98b54684d39..bb40c0d32b4 100644 --- a/doc/development/migration_style_guide.md +++ b/doc/development/migration_style_guide.md @@ -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 diff --git a/doc/development/new_fe_guide/development/testing.md b/doc/development/new_fe_guide/development/testing.md index d74f141f08f..8441089418e 100644 --- a/doc/development/new_fe_guide/development/testing.md +++ b/doc/development/new_fe_guide/development/testing.md @@ -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. diff --git a/doc/development/performance.md b/doc/development/performance.md index 972c93be817..32970152911 100644 --- a/doc/development/performance.md +++ b/doc/development/performance.md @@ -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 } diff --git a/doc/development/policies.md b/doc/development/policies.md index e286c605438..6a3b90f3604 100644 --- a/doc/development/policies.md +++ b/doc/development/policies.md @@ -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. diff --git a/doc/development/profiling.md b/doc/development/profiling.md index b7d9f640a3f..f41d635de43 100644 --- a/doc/development/profiling.md +++ b/doc/development/profiling.md @@ -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_ diff --git a/doc/development/rake_tasks.md b/doc/development/rake_tasks.md index ae9bf863419..4cc500ed1b6 100644 --- a/doc/development/rake_tasks.md +++ b/doc/development/rake_tasks.md @@ -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. diff --git a/doc/development/shell_commands.md b/doc/development/shell_commands.md index 73893f9dd46..7bdf676be58 100644 --- a/doc/development/shell_commands.md +++ b/doc/development/shell_commands.md @@ -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 ``` diff --git a/doc/gitlab-basics/create-your-ssh-keys.md b/doc/gitlab-basics/create-your-ssh-keys.md index 881629c3bfd..8c2f48fb1e2 100644 --- a/doc/gitlab-basics/create-your-ssh-keys.md +++ b/doc/gitlab-basics/create-your-ssh-keys.md @@ -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. diff --git a/doc/install/aws/index.md b/doc/install/aws/index.md index e209a00b38c..51d2a232dc0 100644 --- a/doc/install/aws/index.md +++ b/doc/install/aws/index.md @@ -471,7 +471,6 @@ gitlab_rails['redis_port'] = 6379 Finally, reconfigure GitLab for the change to take effect: - ```sh sudo gitlab-ctl reconfigure ``` diff --git a/doc/install/azure/index.md b/doc/install/azure/index.md index 19a6e46f969..be14858f4c8 100644 --- a/doc/install/azure/index.md +++ b/doc/install/azure/index.md @@ -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. diff --git a/doc/integration/akismet.md b/doc/integration/akismet.md index 35024a78fca..4f7be70baf2 100644 --- a/doc/integration/akismet.md +++ b/doc/integration/akismet.md @@ -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. diff --git a/doc/integration/cas.md b/doc/integration/cas.md index f757edf0bc2..c6178fa44f0 100644 --- a/doc/integration/cas.md +++ b/doc/integration/cas.md @@ -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 - diff --git a/doc/integration/github.md b/doc/integration/github.md index 9bb3579dd84..bee68688ace 100644 --- a/doc/integration/github.md +++ b/doc/integration/github.md @@ -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: ``` diff --git a/doc/integration/omniauth.md b/doc/integration/omniauth.md index f5f1f9486c2..4db986197f3 100644 --- a/doc/integration/omniauth.md +++ b/doc/integration/omniauth.md @@ -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 diff --git a/doc/integration/saml.md b/doc/integration/saml.md index bb3cd9a005f..8ee07a7fcdc 100644 --- a/doc/integration/saml.md +++ b/doc/integration/saml.md @@ -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: diff --git a/doc/integration/slash_commands.md b/doc/integration/slash_commands.md index 7d73026a6c6..82ba1d7d984 100644 --- a/doc/integration/slash_commands.md +++ b/doc/integration/slash_commands.md @@ -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 | diff --git a/doc/raketasks/backup_restore.md b/doc/raketasks/backup_restore.md index b207002b668..2514ca94775 100644 --- a/doc/raketasks/backup_restore.md +++ b/doc/raketasks/backup_restore.md @@ -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 ``` diff --git a/doc/raketasks/user_management.md b/doc/raketasks/user_management.md index e1b1912ed47..571e784e530 100644 --- a/doc/raketasks/user_management.md +++ b/doc/raketasks/user_management.md @@ -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. diff --git a/doc/topics/git/numerous_undo_possibilities_in_git/index.md b/doc/topics/git/numerous_undo_possibilities_in_git/index.md index 7195b0f0f04..8a8021dc36d 100644 --- a/doc/topics/git/numerous_undo_possibilities_in_git/index.md +++ b/doc/topics/git/numerous_undo_possibilities_in_git/index.md @@ -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 diff --git a/doc/university/glossary/README.md b/doc/university/glossary/README.md index cf148a424db..254e234a22c 100644 --- a/doc/university/glossary/README.md +++ b/doc/university/glossary/README.md @@ -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. - diff --git a/doc/university/high-availability/aws/README.md b/doc/university/high-availability/aws/README.md index 77a1892b656..b4ba5b7a24e 100644 --- a/doc/university/high-availability/aws/README.md +++ b/doc/university/high-availability/aws/README.md @@ -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: diff --git a/doc/university/support/README.md b/doc/university/support/README.md index 805af253367..feb90ae9bad 100644 --- a/doc/university/support/README.md +++ b/doc/university/support/README.md @@ -2,7 +2,6 @@ comments: false --- - # Support Boot Camp **Goal:** Prepare new Service Engineers at GitLab diff --git a/doc/university/training/end-user/README.md b/doc/university/training/end-user/README.md index 53578a34d1c..60c0eadc572 100644 --- a/doc/university/training/end-user/README.md +++ b/doc/university/training/end-user/README.md @@ -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 diff --git a/doc/university/training/topics/git_log.md b/doc/university/training/topics/git_log.md index 127fdf4d44a..763ef802a04 100644 --- a/doc/university/training/topics/git_log.md +++ b/doc/university/training/topics/git_log.md @@ -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 diff --git a/doc/university/training/topics/rollback_commits.md b/doc/university/training/topics/rollback_commits.md index ca3a64e4347..96b89e3319a 100644 --- a/doc/university/training/topics/rollback_commits.md +++ b/doc/university/training/topics/rollback_commits.md @@ -51,7 +51,6 @@ comments: false 1. Pull for updates 1. Push changes - ---------- ## Commands diff --git a/doc/update/mysql_to_postgresql.md b/doc/update/mysql_to_postgresql.md index 7c6a14cb104..1f4b5fbffa7 100644 --- a/doc/update/mysql_to_postgresql.md +++ b/doc/update/mysql_to_postgresql.md @@ -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 ``` - diff --git a/doc/update/restore_after_failure.md b/doc/update/restore_after_failure.md index 01c52aae7f5..faa3a6e65cb 100644 --- a/doc/update/restore_after_failure.md +++ b/doc/update/restore_after_failure.md @@ -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. - diff --git a/doc/update/upgrading_postgresql_using_slony.md b/doc/update/upgrading_postgresql_using_slony.md index d2e2cf439b5..835166837a8 100644 --- a/doc/update/upgrading_postgresql_using_slony.md +++ b/doc/update/upgrading_postgresql_using_slony.md @@ -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 diff --git a/doc/user/abuse_reports.md b/doc/user/abuse_reports.md index 1f4f598b121..41ee7e62b2c 100644 --- a/doc/user/abuse_reports.md +++ b/doc/user/abuse_reports.md @@ -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. diff --git a/doc/user/admin_area/monitoring/health_check.md b/doc/user/admin_area/monitoring/health_check.md index 43b1190fb48..c22982ac190 100644 --- a/doc/user/admin_area/monitoring/health_check.md +++ b/doc/user/admin_area/monitoring/health_check.md @@ -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: diff --git a/doc/user/group/clusters/index.md b/doc/user/group/clusters/index.md index 9fc50741407..8d223d1c5f0 100644 --- a/doc/user/group/clusters/index.md +++ b/doc/user/group/clusters/index.md @@ -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 diff --git a/doc/user/markdown.md b/doc/user/markdown.md index 9a01625f3ff..a7a87773eec 100644 --- a/doc/user/markdown.md +++ b/doc/user/markdown.md @@ -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 around a bit and add some to your . Well we have a gift for you: You can use emoji anywhere GFM is supported. @@ -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 = mc2. The formula for water is H2O while the equation for the theory of relativity is E = mc2. - ## Wiki-specific Markdown The following examples show how links inside wikis behave. diff --git a/doc/user/profile/index.md b/doc/user/profile/index.md index efb031b8239..ba756c4b793 100644 --- a/doc/user/profile/index.md +++ b/doc/user/profile/index.md @@ -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. diff --git a/doc/user/project/clusters/serverless/index.md b/doc/user/project/clusters/serverless/index.md index aa1e165e3a2..fc3a4a757d0 100644 --- a/doc/user/project/clusters/serverless/index.md +++ b/doc/user/project/clusters/serverless/index.md @@ -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 | diff --git a/doc/user/project/container_registry.md b/doc/user/project/container_registry.md index 638b73bfcb6..dec6eac2508 100644 --- a/doc/user/project/container_registry.md +++ b/doc/user/project/container_registry.md @@ -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. diff --git a/doc/user/project/cycle_analytics.md b/doc/user/project/cycle_analytics.md index b98221bea61..529a82ded9e 100644 --- a/doc/user/project/cycle_analytics.md +++ b/doc/user/project/cycle_analytics.md @@ -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 diff --git a/doc/user/project/description_templates.md b/doc/user/project/description_templates.md index 7c94f4ef4d8..08647caaf07 100644 --- a/doc/user/project/description_templates.md +++ b/doc/user/project/description_templates.md @@ -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 - diff --git a/doc/user/project/integrations/bamboo.md b/doc/user/project/integrations/bamboo.md index 48aabd02438..3206a39dc08 100644 --- a/doc/user/project/integrations/bamboo.md +++ b/doc/user/project/integrations/bamboo.md @@ -59,4 +59,3 @@ Bamboo under 'Trigger IP addresses'. > **Note:** > - Starting with GitLab 8.14.0, builds are triggered on push events. - diff --git a/doc/user/project/protected_tags.md b/doc/user/project/protected_tags.md index 3d8fff9f733..26bec323f02 100644 --- a/doc/user/project/protected_tags.md +++ b/doc/user/project/protected_tags.md @@ -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" diff --git a/doc/user/project/quick_actions.md b/doc/user/project/quick_actions.md index 85a03d125dd..392e72dcc5c 100644 --- a/doc/user/project/quick_actions.md +++ b/doc/user/project/quick_actions.md @@ -55,7 +55,6 @@ discussions, and descriptions: | `/merge` | Merge (when pipeline succeeds) | | ✓ | | `/create_merge_request ` | Create a new merge request starting from the current issue | ✓ | | - ## Quick actions for commit messages The following quick actions are applicable for commit messages: diff --git a/doc/user/project/repository/gpg_signed_commits/index.md b/doc/user/project/repository/gpg_signed_commits/index.md index db19370b97c..6495ede42e0 100644 --- a/doc/user/project/repository/gpg_signed_commits/index.md +++ b/doc/user/project/repository/gpg_signed_commits/index.md @@ -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`: diff --git a/doc/user/project/repository/web_editor.md b/doc/user/project/repository/web_editor.md index 57e8437697b..ce9d23bf911 100644 --- a/doc/user/project/repository/web_editor.md +++ b/doc/user/project/repository/web_editor.md @@ -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] diff --git a/doc/workflow/forking_workflow.md b/doc/workflow/forking_workflow.md index 733d079bd4a..02be0ad191d 100644 --- a/doc/workflow/forking_workflow.md +++ b/doc/workflow/forking_workflow.md @@ -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.