From 3c31d793c8321e7b02c36ea81c82ff63fed55d12 Mon Sep 17 00:00:00 2001 From: Marcel Amirault <ravlen@gmail.com> Date: Wed, 5 Jun 2019 03:29:33 +0000 Subject: [PATCH] Docs: Update all links to relative in /workflow and /administration --- doc/administration/auth/google_secure_ldap.md | 2 +- doc/administration/compliance.md | 4 +- doc/administration/custom_hooks.md | 5 +- .../geo/disaster_recovery/planned_failover.md | 2 +- .../geo/replication/database.md | 2 +- .../geo/replication/external_database.md | 2 +- .../geo/replication/high_availability.md | 4 +- doc/administration/geo/replication/index.md | 4 +- doc/administration/geo/replication/tuning.md | 2 +- .../high_availability/img/geo-ha-diagram.png | Bin 0 -> 43826 bytes doc/administration/high_availability/nfs.md | 2 +- doc/administration/incoming_email.md | 2 +- doc/administration/index.md | 35 ++++------ .../operations/fast_ssh_key_lookup.md | 4 +- doc/administration/packages.md | 6 +- .../raketasks/project_import_export.md | 1 - doc/workflow/README.md | 10 +-- doc/workflow/gitlab_flow.md | 2 +- .../lfs/migrate_from_git_annex_to_git_lfs.md | 64 ++++++++---------- doc/workflow/merge_request_approvals.md | 4 +- doc/workflow/repository_mirroring.md | 4 +- 21 files changed, 74 insertions(+), 87 deletions(-) create mode 100644 doc/administration/high_availability/img/geo-ha-diagram.png diff --git a/doc/administration/auth/google_secure_ldap.md b/doc/administration/auth/google_secure_ldap.md index 65a51fc4aa0c6..760af0cfd1a8b 100644 --- a/doc/administration/auth/google_secure_ldap.md +++ b/doc/administration/auth/google_secure_ldap.md @@ -27,7 +27,7 @@ The steps below cover: 'Entire domain (GitLab)' or 'Selected organizational units' for both 'Verify user credentials' and 'Read user information'. Select 'Add LDAP Client' - TIP: **Tip:** If you plan to use GitLab [LDAP Group Sync](https://docs.gitlab.com/ee/administration/auth/ldap-ee.html#group-sync) + TIP: **Tip:** If you plan to use GitLab [LDAP Group Sync](ldap-ee.md#group-sync) , turn on 'Read group information'.  diff --git a/doc/administration/compliance.md b/doc/administration/compliance.md index 9c13ff772b3da..246addb6dc9a1 100644 --- a/doc/administration/compliance.md +++ b/doc/administration/compliance.md @@ -12,7 +12,7 @@ GitLab’s [security features](../security/README.md) may also help you meet rel |**[Email all users of a project, group, or entire server](../user/admin_area/settings/terms.md)**<br>An admin can email groups of users based on project or group membership, or email everyone using the GitLab instance. This is great for scheduled maintenance or upgrades.|Starter+|| |**[Omnibus package supports log forwarding](https://docs.gitlab.com/omnibus/settings/logs.html#udp-log-forwarding)**<br>Forward your logs to a central system.|Starter+|| |**[Lock project membership to group](../user/group/index.md#member-lock-starter)**<br>Group owners can prevent new members from being added to projects within a group.|Starter+|✓| -|**[LDAP group sync](https://docs.gitlab.com/ee/administration/auth/ldap-ee.html#group-sync)**<br>GitLab Enterprise Edition gives admins the ability to automatically sync groups and manage SSH keys, permissions, and authentication, so you can focus on building your product, not configuring your tools.|Starter+|| -|**[LDAP group sync filters](https://docs.gitlab.com/ee/administration/auth/ldap-ee.html#group-sync)**<br>GitLab Enterprise Edition Premium gives more flexibility to synchronize with LDAP based on filters, meaning you can leverage LDAP attributes to map GitLab permissions.|Premium+|| +|**[LDAP group sync](auth/ldap-ee.md#group-sync)**<br>GitLab Enterprise Edition gives admins the ability to automatically sync groups and manage SSH keys, permissions, and authentication, so you can focus on building your product, not configuring your tools.|Starter+|| +|**[LDAP group sync filters](auth/ldap-ee.md#group-sync)**<br>GitLab Enterprise Edition Premium gives more flexibility to synchronize with LDAP based on filters, meaning you can leverage LDAP attributes to map GitLab permissions.|Premium+|| |**[Audit logs](audit_events.md)**<br>To maintain the integrity of your code, GitLab Enterprise Edition Premium gives admins the ability to view any modifications made within the GitLab server in an advanced audit log system, so you can control, analyze and track every change.|Premium+|| |**[Auditor users](auditor_users.md)**<br>Auditor users are users who are given read-only access to all projects, groups, and other resources on the GitLab instance.|Premium+|| diff --git a/doc/administration/custom_hooks.md b/doc/administration/custom_hooks.md index 288cb1bf0bb1d..113514e1ee876 100644 --- a/doc/administration/custom_hooks.md +++ b/doc/administration/custom_hooks.md @@ -5,11 +5,11 @@ Custom Git hooks must be configured on the filesystem of the GitLab server. Only GitLab server administrators will be able to complete these tasks. Please explore [webhooks] and [CI] as an option if you do not have filesystem access. For a user configurable Git hook interface, see -[Push Rules](https://docs.gitlab.com/ee/push_rules/push_rules.html), +[Push Rules](../push_rules/push_rules.md), available in GitLab Enterprise Edition. NOTE: **Note:** -Custom Git hooks won't be replicated to secondary nodes if you use [GitLab Geo][gitlab-geo] +Custom Git hooks won't be replicated to secondary nodes if you use [GitLab Geo](geo/replication/index.md) Git natively supports hooks that are executed on different actions. Examples of server-side git hooks include pre-receive, post-receive, and update. @@ -123,6 +123,5 @@ exit 1 [CI]: ../ci/README.md [hooks]: https://git-scm.com/book/en/v2/Customizing-Git-Git-Hooks#Server-Side-Hooks [webhooks]: ../user/project/integrations/webhooks.md -[gitlab-geo]: https://docs.gitlab.com/ee/administration/geo/replication/index.html [5073]: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/5073 [93]: https://gitlab.com/gitlab-org/gitlab-shell/merge_requests/93 diff --git a/doc/administration/geo/disaster_recovery/planned_failover.md b/doc/administration/geo/disaster_recovery/planned_failover.md index 88ab12d910a45..b8071b5993fd3 100644 --- a/doc/administration/geo/disaster_recovery/planned_failover.md +++ b/doc/administration/geo/disaster_recovery/planned_failover.md @@ -113,7 +113,7 @@ If any objects are failing to replicate, this should be investigated before scheduling the maintenance window. Following a planned failover, anything that failed to replicate will be **lost**. -You can use the [Geo status API](https://docs.gitlab.com/ee/api/geo_nodes.html#retrieve-project-sync-or-verification-failures-that-occurred-on-the-current-node) to review failed objects and +You can use the [Geo status API](../../../api/geo_nodes.md#retrieve-project-sync-or-verification-failures-that-occurred-on-the-current-node) to review failed objects and the reasons for failure. A common cause of replication failures is the data being missing on the diff --git a/doc/administration/geo/replication/database.md b/doc/administration/geo/replication/database.md index a0c2cf0eced65..c0cdea216cbef 100644 --- a/doc/administration/geo/replication/database.md +++ b/doc/administration/geo/replication/database.md @@ -445,7 +445,7 @@ The replication process is now complete. PostgreSQL connections. We recommend using PGBouncer if you use GitLab in a high-availability configuration with a cluster of nodes supporting a Geo **primary** node and another cluster of nodes supporting a Geo **secondary** node. For more -information, see the [Omnibus HA](https://docs.gitlab.com/ee/administration/high_availability/database.html#configure-using-omnibus-for-high-availability) +information, see the [Omnibus HA](../../high_availability/database.md#configure-using-omnibus) documentation. For a Geo **secondary** node to work properly with PGBouncer in front of the database, diff --git a/doc/administration/geo/replication/external_database.md b/doc/administration/geo/replication/external_database.md index dae5ed911b0d3..177ca68613e0e 100644 --- a/doc/administration/geo/replication/external_database.md +++ b/doc/administration/geo/replication/external_database.md @@ -129,7 +129,7 @@ To configure the connection to the external read-replica database and enable Log database to keep track of replication status and automatically recover from potential replication issues. Omnibus automatically configures a tracking database when `roles ['geo_secondary_role']` is set. For high availability, -refer to [Geo High Availability](https://docs.gitlab.com/ee/administration/high_availability). +refer to [Geo High Availability](../../high_availability/README.md). If you want to run this database external to Omnibus, please follow the instructions below. The tracking database requires an [FDW](https://www.postgresql.org/docs/9.6/static/postgres-fdw.html) diff --git a/doc/administration/geo/replication/high_availability.md b/doc/administration/geo/replication/high_availability.md index 715a83a9ff313..921a3ef1c7a20 100644 --- a/doc/administration/geo/replication/high_availability.md +++ b/doc/administration/geo/replication/high_availability.md @@ -6,7 +6,7 @@ described, it is possible to adapt these instructions to your needs. ## Architecture overview - + _[diagram source - gitlab employees only][diagram-source]_ @@ -68,7 +68,7 @@ NOTE: **Note:** PostgreSQL and Redis should have already been disabled on the application servers, and connections from the application servers to those services on the backend servers configured, during normal GitLab HA set up. See high availability configuration documentation for -[PostgreSQL](https://docs.gitlab.com/ee/administration/high_availability/database.html#configuring-the-application-nodes) +[PostgreSQL](../../high_availability/database.md#configuring-the-application-nodes) and [Redis](../../high_availability/redis.md#example-configuration-for-the-gitlab-application). The **primary** database will require modification later, as part of diff --git a/doc/administration/geo/replication/index.md b/doc/administration/geo/replication/index.md index b2f71d82cfc1c..54377f7ae4e57 100644 --- a/doc/administration/geo/replication/index.md +++ b/doc/administration/geo/replication/index.md @@ -179,7 +179,7 @@ The steps below should be followed in the order they appear. **Make sure the Git If you installed GitLab using the Omnibus packages (highly recommended): 1. [Install GitLab Enterprise Edition](https://about.gitlab.com/installation/) on the server that will serve as the **secondary** node. Do not create an account or log in to the new **secondary** node. -1. [Upload the GitLab License](https://docs.gitlab.com/ee/user/admin_area/license.html) on the **primary** node to unlock Geo. The license must be for [GitLab Premium](https://about.gitlab.com/pricing/) or higher. +1. [Upload the GitLab License](../../../user/admin_area/license.md) on the **primary** node to unlock Geo. The license must be for [GitLab Premium](https://about.gitlab.com/pricing/) or higher. 1. [Set up the database replication](database.md) (`primary (read-write) <-> secondary (read-only)` topology). 1. [Configure fast lookup of authorized SSH keys in the database](../../operations/fast_ssh_key_lookup.md). This step is required and needs to be done on **both** the **primary** and **secondary** nodes. 1. [Configure GitLab](configuration.md) to set the **primary** and **secondary** nodes. @@ -261,7 +261,7 @@ Take special note that these examples of GitLab features are both: Examples include: -- [Elasticsearch integration](https://docs.gitlab.com/ee/integration/elasticsearch.html). +- [Elasticsearch integration](../../../integration/elasticsearch.md). - [Container Registry](../../container_registry.md). [Object Storage](object_storage.md) can mitigate this. - [GitLab Pages](../../pages/index.md). - [Mattermost integration](https://docs.gitlab.com/omnibus/gitlab-mattermost/). diff --git a/doc/administration/geo/replication/tuning.md b/doc/administration/geo/replication/tuning.md index b9921b2e69fef..1943f2230dfd6 100644 --- a/doc/administration/geo/replication/tuning.md +++ b/doc/administration/geo/replication/tuning.md @@ -13,5 +13,5 @@ However, this may not lead to more downloads in parallel unless the number of available Sidekiq threads is also increased. For example, if repository sync capacity is increased from 25 to 50, you may also want to increase the number of Sidekiq threads from 25 to 50. See the -[Sidekiq concurrency documentation](https://docs.gitlab.com/ee/administration/operations/extra_sidekiq_processes.html#number-of-threads) +[Sidekiq concurrency documentation](../../operations/extra_sidekiq_processes.md#number-of-threads) for more details. diff --git a/doc/administration/high_availability/img/geo-ha-diagram.png b/doc/administration/high_availability/img/geo-ha-diagram.png new file mode 100644 index 0000000000000000000000000000000000000000..da5d612827ca7aea8ef083b85f1f726b92975374 GIT binary patch literal 43826 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 TVN9d|(2KgV&XXENSor?{Eqg?} literal 0 HcmV?d00001 diff --git a/doc/administration/high_availability/nfs.md b/doc/administration/high_availability/nfs.md index d1233d815eda1..f6bbc8935b46b 100644 --- a/doc/administration/high_availability/nfs.md +++ b/doc/administration/high_availability/nfs.md @@ -122,7 +122,7 @@ Additionally, this configuration is specifically warned against in the >to the NFS server can cause data corruption problems. For supported database architecture, please see our documentation on -[Configuring a Database for GitLab HA](https://docs.gitlab.com/ee/administration/high_availability/database.html). +[Configuring a Database for GitLab HA](database.md). ## NFS Client mount options diff --git a/doc/administration/incoming_email.md b/doc/administration/incoming_email.md index 9ac310af24816..8271c579f5b81 100644 --- a/doc/administration/incoming_email.md +++ b/doc/administration/incoming_email.md @@ -10,7 +10,7 @@ GitLab has several features based on receiving incoming emails: - [New merge request by email](../user/project/merge_requests/index.md#create-new-merge-requests-by-email): allow GitLab users to create a new merge request by sending an email to a user-specific email address. -- [Service Desk](https://docs.gitlab.com/ee/user/project/service_desk.html): provide e-mail support to +- [Service Desk](../user/project/service_desk.md): provide e-mail support to your customers through GitLab. **[PREMIUM]** ## Requirements diff --git a/doc/administration/index.md b/doc/administration/index.md index 797a7242bd099..95a0e84deb693 100644 --- a/doc/administration/index.md +++ b/doc/administration/index.md @@ -20,7 +20,7 @@ GitLab Community Edition installations only have access to Core features. GitLab.com is administered by GitLab, Inc., therefore, only GitLab team members have access to its admin configurations. If you're a GitLab.com user, please check the -[user documentation](../user/index.html). +[user documentation](../user/index.md). NOTE: **Note:** Non-administrator users don’t have access to GitLab administration tools and settings. @@ -37,9 +37,9 @@ Learn how to install, configure, update, and maintain your GitLab instance. - [Omnibus support for log forwarding](https://docs.gitlab.com/omnibus/settings/logs.html#udp-log-shipping-gitlab-enterprise-edition-only) **[STARTER ONLY]** - [High Availability](high_availability/README.md): Configure multiple servers for scaling or high availability. - [High Availability on AWS](../university/high-availability/aws/README.md): Set up GitLab HA on Amazon AWS. -- [Geo](https://docs.gitlab.com/ee/administration/geo/replication/index.html): Replicate your GitLab instance to other geographic locations as a read-only fully operational version. **[PREMIUM ONLY]** -- [Disaster Recovery](https://docs.gitlab.com/ee/administration/geo/disaster_recovery/index.html): Quickly fail-over to a different site with minimal effort in a disaster situation. **[PREMIUM ONLY]** -- [Pivotal Tile](https://docs.gitlab.com/ee/install/pivotal/index.html): Deploy GitLab as a pre-configured appliance using Ops Manager (BOSH) for Pivotal Cloud Foundry. **[PREMIUM ONLY]** +- [Geo](geo/replication/index.md): Replicate your GitLab instance to other geographic locations as a read-only fully operational version. **[PREMIUM ONLY]** +- [Disaster Recovery](geo/disaster_recovery/index.md): Quickly fail-over to a different site with minimal effort in a disaster situation. **[PREMIUM ONLY]** +- [Pivotal Tile](../install/pivotal/index.md): Deploy GitLab as a pre-configured appliance using Ops Manager (BOSH) for Pivotal Cloud Foundry. **[PREMIUM ONLY]** - [Add License](../user/admin_area/license.md): Upload a license at install time to unlock features that are in paid tiers of GitLab. **[STARTER ONLY]** ### Configuring GitLab @@ -61,9 +61,9 @@ Learn how to install, configure, update, and maintain your GitLab instance. - [Diff limits](../user/admin_area/diff_limits.md): Configure the diff rendering size limits of branch comparison pages. - [Merge request diffs storage](merge_request_diffs.md): Configure merge requests diffs external storage. - [Broadcast Messages](../user/admin_area/broadcast_messages.md): Send messages to GitLab users through the UI. -- [Elasticsearch](https://docs.gitlab.com/ee/integration/elasticsearch.html): Enable Elasticsearch to empower GitLab's Advanced Global Search. Useful when you deal with a huge amount of data. **[STARTER ONLY]** +- [Elasticsearch](../integration/elasticsearch.md): Enable Elasticsearch to empower GitLab's Advanced Global Search. Useful when you deal with a huge amount of data. **[STARTER ONLY]** - [External Classification Policy Authorization](../user/admin_area/settings/external_authorization.md) **[PREMIUM ONLY]** -- [Upload a license](https://docs.gitlab.com/ee/user/admin_area/license.html): Upload a license to unlock features that are in paid tiers of GitLab. **[STARTER ONLY]** +- [Upload a license](../user/admin_area/license.md): Upload a license to unlock features that are in paid tiers of GitLab. **[STARTER ONLY]** - [Admin Area](../user/admin_area/index.md): for self-managed instance-wide configuration and maintenance. #### Customizing GitLab's appearance @@ -73,7 +73,7 @@ Learn how to install, configure, update, and maintain your GitLab instance. - [Branded login page](../customization/branded_login_page.md): Customize the login page with your own logo, title, and description. - [Welcome message](../customization/welcome_message.md): Add a custom welcome message to the sign-in page. - ["New Project" page](../customization/new_project_page.md): Customize the text to be displayed on the page that opens whenever your users create a new project. -- [Additional custom email text](https://docs.gitlab.com/ee/user/admin_area/settings/email.html#custom-additional-text-premium-only): Add additional custom text to emails sent from GitLab. **[PREMIUM ONLY]** +- [Additional custom email text](../user/admin_area/settings/email.md#custom-additional-text-premium-only): Add additional custom text to emails sent from GitLab. **[PREMIUM ONLY]** ### Maintaining GitLab @@ -108,34 +108,29 @@ Learn how to install, configure, update, and maintain your GitLab instance. - [Sign-up restrictions](../user/admin_area/settings/sign_up_restrictions.md): block email addresses of specific domains, or whitelist only specific domains. - [Access restrictions](../user/admin_area/settings/visibility_and_access_controls.md#enabled-git-access-protocols): Define which Git access protocols can be used to talk to GitLab (SSH, HTTP, HTTPS). - [Authentication and Authorization](auth/README.md): Configure external authentication with LDAP, SAML, CAS and additional providers. - - [Sync LDAP](https://docs.gitlab.com/ee/administration/auth/ldap-ee.html) **[STARTER ONLY]** - - [Kerberos authentication](https://docs.gitlab.com/ee/integration/kerberos.html) **[STARTER ONLY]** + - [Sync LDAP](auth/ldap-ee.md) **[STARTER ONLY]** + - [Kerberos authentication](../integration/kerberos.md) **[STARTER ONLY]** - See also other [authentication](../topics/authentication/index.md#gitlab-administrators) topics (for example, enforcing 2FA). -- [Email users](https://docs.gitlab.com/ee/tools/email.html): Email GitLab users from within GitLab. **[STARTER ONLY]** +- [Email users](../tools/email.md): Email GitLab users from within GitLab. **[STARTER ONLY]** - [User Cohorts](../user/admin_area/user_cohorts.md): Display the monthly cohorts of new users and their activities over time. - [Audit logs and events](audit_events.md): View the changes made within the GitLab server for: - Groups and projects. **[STARTER]** - Instances. **[PREMIUM ONLY]** - [Auditor users](auditor_users.md): Users with read-only access to all projects, groups, and other resources on the GitLab instance. **[PREMIUM ONLY]** - [Incoming email](incoming_email.md): Configure incoming emails to allow - users to [reply by email], create [issues by email] and - [merge requests by email], and to enable [Service Desk]. + users to [reply by email](reply_by_email.md), create [issues by email](../user/project/issues/create_new_issue.md#new-issue-via-email) and + [merge requests by email](../user/project/merge_requests/index.md#create-new-merge-requests-by-email), and to enable [Service Desk](../user/project/service_desk.md). - [Postfix for incoming email](reply_by_email_postfix_setup.md): Set up a basic Postfix mail server with IMAP authentication on Ubuntu for incoming emails. - [Abuse reports](../user/admin_area/abuse_reports.md): View and resolve abuse reports from your users. -[reply by email]: reply_by_email.md -[issues by email]: ../user/project/issues/create_new_issue.md#new-issue-via-email -[merge requests by email]: ../user/project/merge_requests/index.md#create-new-merge-requests-by-email -[Service Desk]: https://docs.gitlab.com/ee/user/project/service_desk.html - ## Project settings - [Container Registry](container_registry.md): Configure Container Registry with GitLab. - [Issue closing pattern](issue_closing_pattern.md): Customize how to close an issue from commit messages. - [Gitaly](gitaly/index.md): Configuring Gitaly, GitLab's Git repository storage service. -- [Default labels](../user/admin_area/labels.html): Create labels that will be automatically added to every new project. +- [Default labels](../user/admin_area/labels.md): Create labels that will be automatically added to every new project. - [Restrict the use of public or internal projects](../public_access/public_access.md#restricting-the-use-of-public-or-internal-projects): Restrict the use of visibility levels for users when they create a project or a snippet. - [Custom project templates](../user/admin_area/custom_project_templates.md): Configure a set of projects to be used as custom templates when creating a new project. **[PREMIUM ONLY]** - [Packages](packages.md): Enable GitLab to act as a Maven repository or NPM registry. **[PREMIUM ONLY]** @@ -145,7 +140,7 @@ Learn how to install, configure, update, and maintain your GitLab instance. - [Repository checks](repository_checks.md): Periodic Git repository checks. - [Repository storage paths](repository_storage_paths.md): Manage the paths used to store repositories. - [Repository storage rake tasks](raketasks/storage.md): A collection of rake tasks to list and migrate existing projects and attachments associated with it from Legacy storage to Hashed storage. -- [Limit repository size](https://docs.gitlab.com/ee/user/admin_area/settings/account_and_limit_settings.html): Set a hard limit for your repositories' size. **[STARTER ONLY]** +- [Limit repository size](../user/admin_area/settings/account_and_limit_settings.md): Set a hard limit for your repositories' size. **[STARTER ONLY]** ## Continuous Integration settings @@ -154,7 +149,7 @@ Learn how to install, configure, update, and maintain your GitLab instance. - [Job artifacts](job_artifacts.md): Enable, disable, and configure job artifacts (a set of files and directories which are outputted by a job when it completes successfully). - [Job traces](job_traces.md): Information about the job traces (logs). - [Register Shared and specific Runners](../ci/runners/README.md#registering-a-shared-runner): Learn how to register and configure Shared and specific Runners to your own instance. -- [Shared Runners pipelines quota](https://docs.gitlab.com/ee/user/admin_area/settings/continuous_integration.html#shared-runners-pipeline-minutes-quota-starter-only): Limit the usage of pipeline minutes for Shared Runners. **[STARTER ONLY]** +- [Shared Runners pipelines quota](../user/admin_area/settings/continuous_integration.md#shared-runners-pipeline-minutes-quota-starter-only): Limit the usage of pipeline minutes for Shared Runners. **[STARTER ONLY]** - [Enable/disable Auto DevOps](../topics/autodevops/index.md#enablingdisabling-auto-devops): Enable or disable Auto DevOps for your instance. ## Git configuration options diff --git a/doc/administration/operations/fast_ssh_key_lookup.md b/doc/administration/operations/fast_ssh_key_lookup.md index 69f110805b772..3631ea0822ff2 100644 --- a/doc/administration/operations/fast_ssh_key_lookup.md +++ b/doc/administration/operations/fast_ssh_key_lookup.md @@ -34,10 +34,10 @@ feature for CentOS 6, follow [the instructions on how to build and install a cus By default, GitLab manages an `authorized_keys` file, which contains all the public SSH keys for users allowed to access GitLab. However, to maintain a -single source of truth, [Geo](https://docs.gitlab.com/ee/administration/geo/replication/index.html) needs to be configured to perform SSH fingerprint +single source of truth, [Geo](../geo/replication/index.md) needs to be configured to perform SSH fingerprint lookups via database lookup. -As part of [setting up Geo](https://docs.gitlab.com/ee/administration/geo/replication/index.html#setup-instructions), +As part of [setting up Geo](../geo/replication/index.md#setup-instructions), you will be required to follow the steps outlined below for both the primary and secondary nodes, but note that the `Write to "authorized keys" file` checkbox only needs to be unchecked on the primary node since it will be reflected diff --git a/doc/administration/packages.md b/doc/administration/packages.md index 5b9a13e3859e8..0d5f784b71ea6 100644 --- a/doc/administration/packages.md +++ b/doc/administration/packages.md @@ -8,12 +8,12 @@ The Packages feature allows GitLab to act as a repository for the following: | Software repository | Description | Available in GitLab version | | ------------------- | ----------- | --------------------------- | -| [Maven Repository](https://docs.gitlab.com/ee/user/project/packages/maven_repository.html) | The GitLab Maven Repository enables every project in GitLab to have its own space to store [Maven](https://maven.apache.org/) packages. | 11.3+ | -| [NPM Registry](https://docs.gitlab.com/ee/user/project/packages/npm_registry.html) | The GitLab NPM Registry enables every project in GitLab to have its own space to store [NPM](https://www.npmjs.com/) packages. | 11.7+ | +| [Maven Repository](../user/project/packages/maven_repository.md) | The GitLab Maven Repository enables every project in GitLab to have its own space to store [Maven](https://maven.apache.org/) packages. | 11.3+ | +| [NPM Registry](../user/project/packages/npm_registry.md) | The GitLab NPM Registry enables every project in GitLab to have its own space to store [NPM](https://www.npmjs.com/) packages. | 11.7+ | Don't you see your package management system supported yet? Please consider contributing -to GitLab. This [development documentation](https://docs.gitlab.com/ee/development/packages.html) will guide you through the process. +to GitLab. This [development documentation](../development/packages.md) will guide you through the process. ## Enabling the Packages feature diff --git a/doc/administration/raketasks/project_import_export.md b/doc/administration/raketasks/project_import_export.md index f43bba0a7a7df..6ca23aabdecdb 100644 --- a/doc/administration/raketasks/project_import_export.md +++ b/doc/administration/raketasks/project_import_export.md @@ -32,5 +32,4 @@ bundle exec rake gitlab:import_export:data RAILS_ENV=production ``` [ce-3050]: https://gitlab.com/gitlab-org/gitlab-ce/issues/3050 -[feature-flags]: https://docs.gitlab.com/ee/api/features.html [tmp]: ../../development/shared_files.md diff --git a/doc/workflow/README.md b/doc/workflow/README.md index 84ab784014063..40e2486ace568 100644 --- a/doc/workflow/README.md +++ b/doc/workflow/README.md @@ -13,15 +13,15 @@ comments: false - [Groups](../user/group/index.md) - Issues - The GitLab Issue Tracker is an advanced and complete tool for tracking the evolution of a new idea or the process of solving a problem. - - [Exporting Issues](https://docs.gitlab.com/ee/user/project/issues/csv_export.html) **[STARTER]** Export issues as a CSV, emailed as an attachment. + - [Exporting Issues](../user/project/issues/csv_export.md) **[STARTER]** Export issues as a CSV, emailed as an attachment. - [Confidential issues](../user/project/issues/confidential_issues.md) - [Due date for issues](../user/project/issues/due_dates.md) - [Issue Board](../user/project/issue_board.md) - [Keyboard shortcuts](shortcuts.md) - [File finder](file_finder.md) -- [File lock](https://docs.gitlab.com/ee/user/project/file_lock.html) **[PREMIUM]** +- [File lock](../user/project/file_lock.md) **[PREMIUM]** - [Labels](../user/project/labels.md) -- [Issue weight](https://docs.gitlab.com/ee/workflow/issue_weight.html) **[STARTER]** +- [Issue weight](issue_weight.md) **[STARTER]** - [Notification emails](notifications.md) - [Projects](../user/project/index.md) - [Project forking workflow](forking_workflow.md) @@ -44,9 +44,9 @@ comments: false - [Merge requests versions](../user/project/merge_requests/versions.md) - ["Work In Progress" merge requests](../user/project/merge_requests/work_in_progress_merge_requests.md) - [Fast-forward merge requests](../user/project/merge_requests/fast_forward_merge.md) - - [Merge request approvals](https://docs.gitlab.com/ee/user/project/merge_requests/merge_request_approvals.html) **[STARTER]** + - [Merge request approvals](../user/project/merge_requests/merge_request_approvals.md) **[STARTER]** - [Repository mirroring](repository_mirroring.md) **[STARTER]** -- [Service Desk](https://docs.gitlab.com/ee/user/project/service_desk.html) **[PREMIUM]** +- [Service Desk](../user/project/service_desk.md) **[PREMIUM]** - [Manage large binaries with Git LFS](lfs/manage_large_binaries_with_git_lfs.md) - [Importing from SVN, GitHub, Bitbucket, etc](importing/README.md) - [Todos](todos.md) diff --git a/doc/workflow/gitlab_flow.md b/doc/workflow/gitlab_flow.md index 1b9fb504b15d9..7d0abb9326263 100644 --- a/doc/workflow/gitlab_flow.md +++ b/doc/workflow/gitlab_flow.md @@ -166,7 +166,7 @@ This branch is the place for any work related to this change. NOTE: **Note:** The name of a branch might be dictated by organizational standards. -For example, in GitLab, any branches in GitLab EE that are equivalent to branches in GitLab CE [must end in `-ee`](https://docs.gitlab.com/ee/development/automatic_ce_ee_merge.html#cherry-picking-from-ce-to-ee). +For example, in GitLab, any branches in GitLab EE that are equivalent to branches in GitLab CE [must end in `-ee`](../development/automatic_ce_ee_merge.md#cherry-picking-from-ce-to-ee). When you are done or want to discuss the code, open a merge request. A merge request is an online place to discuss the change and review the code. diff --git a/doc/workflow/lfs/migrate_from_git_annex_to_git_lfs.md b/doc/workflow/lfs/migrate_from_git_annex_to_git_lfs.md index 1aeab5980a33b..71c73e3dffee2 100644 --- a/doc/workflow/lfs/migrate_from_git_annex_to_git_lfs.md +++ b/doc/workflow/lfs/migrate_from_git_annex_to_git_lfs.md @@ -42,7 +42,7 @@ Annex to Git LFS. ### TL; DR If you know what you are doing and want to skip the reading, this is what you -need to do (we assume you have [git-annex enabled][annex-gitlab-use] in your +need to do (we assume you have [git-annex enabled](../git_annex.md#using-gitlab-git-annex) in your repository and that you have made backups in case something goes wrong). Fire up a terminal, navigate to your Git repository and: @@ -82,7 +82,7 @@ Make sure the you read about the [`direct` mode][annex-direct] as it contains useful information that may fit in your use case. Note that `annex direct` is deprecated in Git Annex version 6, so you may need to upgrade your repository if the server also has Git Annex 6 installed. Read more in the -[Git Annex troubleshooting tips][annex-tips] section. +[Git Annex troubleshooting tips](../git_annex.md#troubleshooting-tips) section. 1. Backup your repository @@ -166,44 +166,45 @@ GitLab.com), therefore, you don't need to do anything server-side. 1. First, make sure you have `git-lfs` installed locally: - ```bash - git lfs help - ``` + ```bash + git lfs help + ``` - If the terminal doesn't prompt you with a full response on `git-lfs` commands, - [install the Git LFS client][install-lfs] first. + If the terminal doesn't prompt you with a full response on `git-lfs` commands, + [install the Git LFS client][install-lfs] first. 1. Inside the repo, run the following command to initiate LFS: - ```bash - git lfs install - ``` + ```bash + git lfs install + ``` 1. Enable `git-lfs` for the group of files you want to track. You can track specific files, all files containing the same extension, or an entire directory: - ```bash - git lfs track images/01.png # per file - git lfs track **/*.png # per extension - git lfs track images/ # per directory - ``` + ```bash + git lfs track images/01.png # per file + git lfs track **/*.png # per extension + git lfs track images/ # per directory + ``` - Once you do that, run `git status` and you'll see `.gitattributes` added - to your repo. It collects all file patterns that you chose to track via - `git-lfs`. + Once you do that, run `git status` and you'll see `.gitattributes` added + to your repo. It collects all file patterns that you chose to track via + `git-lfs`. 1. Add the files, commit and push them to GitLab: - ```bash - git add . - git commit -m "commit message" - git push - ``` + ```bash + git add . + git commit -m "commit message" + git push + ``` - If your remote is set up with HTTP, you will be asked to enter your login - credentials. If you have [2FA enabled][2fa], make sure to use a - [personal access token][token] instead of your password. + If your remote is set up with HTTP, you will be asked to enter your login + credentials. If you have [2FA enabled](../../user/profile/account/two_factor_authentication.md), make sure to use a + [personal access token](../../user/profile/account/two_factor_authentication.md#personal-access-tokens) + instead of your password. ## Removing the Git Annex branches @@ -238,18 +239,11 @@ git annex uninit - (Blog Post) [Getting Started with Git FLS][post-1] - (Blog Post) [Announcing LFS Support in GitLab][post-2] - (Blog Post) [GitLab Annex Solves the Problem of Versioning Large Binaries with Git][post-3] -- (GitLab Docs) [Git Annex][doc-1] -- (GitLab Docs) [Git LFS][doc-2] +- (GitLab Docs) [Git Annex](../git_annex.md) +- (GitLab Docs) [Git LFS](manage_large_binaries_with_git_lfs.md) -[2fa]: ../../user/profile/account/two_factor_authentication.md -[token]: ../../user/profile/account/two_factor_authentication.html#personal-access-tokens -[annex-tips]: ../git_annex.html#troubleshooting-tips [annex-direct]: https://git-annex.branchable.com/direct_mode/ -[annex-gitlab-use]: ../git_annex.md#using-gitlab-git-annex -[annex-ee]: https://docs.gitlab.com/ee/workflow/git_annex.html [bkp-ext-drive]: https://www.thomas-krenn.com/en/wiki/Git-annex_Repository_on_an_External_Hard_Drive -[doc-1]: https://docs.gitlab.com/ee/workflow/git_annex.html -[doc-2]: https://docs.gitlab.com/ee/workflow/lfs/manage_large_binaries_with_git_lfs.html [Git Annex]: http://git-annex.branchable.com/ [Git LFS]: https://git-lfs.github.com/ [install-lfs]: https://git-lfs.github.com/ diff --git a/doc/workflow/merge_request_approvals.md b/doc/workflow/merge_request_approvals.md index f8a99ec3d57ae..bfcd8faf2367f 100644 --- a/doc/workflow/merge_request_approvals.md +++ b/doc/workflow/merge_request_approvals.md @@ -1,5 +1,5 @@ --- -redirect_to: 'https://docs.gitlab.com/ee/user/project/merge_requests/merge_request_approvals.html' +redirect_to: '../user/project/merge_requests/merge_request_approvals.md' --- -This document was moved to [user/project/merge_requests/merge_request_approvals](https://docs.gitlab.com/ee/user/project/merge_requests/merge_request_approvals.html). +This document was moved to [another location](../user/project/merge_requests/merge_request_approvals.md). diff --git a/doc/workflow/repository_mirroring.md b/doc/workflow/repository_mirroring.md index 5bc5cf427ce0b..9772bd385ba3c 100644 --- a/doc/workflow/repository_mirroring.md +++ b/doc/workflow/repository_mirroring.md @@ -283,10 +283,10 @@ project mirroring again by [Forcing an update](#forcing-an-update-core). [GitLab Starter](https://about.gitlab.com/pricing/) 10.3. Pull mirroring uses polling to detect new branches and commits added upstream, often minutes -afterwards. If you notify GitLab by [API](https://docs.gitlab.com/ee/api/projects.html#start-the-pull-mirroring-process-for-a-project), +afterwards. If you notify GitLab by [API](https://docs.gitlab.com/ee/api/projects.html#start-the-pull-mirroring-process-for-a-project-starter), updates will be pulled immediately. -For more information, see [Start the pull mirroring process for a Project](https://docs.gitlab.com/ee/api/projects.html#start-the-pull-mirroring-process-for-a-project). +For more information, see [Start the pull mirroring process for a Project](https://docs.gitlab.com/ee/api/projects.html#start-the-pull-mirroring-process-for-a-project-starter). ## Forcing an update **[CORE]** -- GitLab