Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2021-02-09 12:09:19 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2021-02-09 12:09:19 +0300
commite7462f7b49a60b2ee7be14682c23190f7f7c5ba7 (patch)
tree3437f7c7c7931ff2e017de00e69dea10f3d00b57 /doc
parent43d38aaae05e2ac7e84c035c50844e084c3e54d3 (diff)
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'doc')
-rw-r--r--doc/administration/gitaly/index.md2
-rw-r--r--doc/administration/reference_architectures/troubleshooting.md2
-rw-r--r--doc/api/graphql/reference/gitlab_schema.graphql67
-rw-r--r--doc/api/graphql/reference/gitlab_schema.json190
-rw-r--r--doc/api/graphql/reference/index.md35
-rw-r--r--doc/api/projects.md4
-rw-r--r--doc/api/settings.md6
-rw-r--r--doc/ci/ci_cd_for_external_repos/github_integration.md2
-rw-r--r--doc/ci/cloud_deployment/index.md2
-rw-r--r--doc/ci/environments/index.md2
-rw-r--r--doc/ci/examples/laravel_with_gitlab_and_envoy/index.md2
-rw-r--r--doc/ci/pipelines/job_artifacts.md3
-rw-r--r--doc/ci/yaml/README.md4
-rw-r--r--doc/development/code_review.md9
-rw-r--r--doc/development/interacting_components.md2
-rw-r--r--doc/development/usage_ping/metrics_dictionary.md2
-rw-r--r--doc/gitlab-basics/README.md4
-rw-r--r--doc/gitlab-basics/create-project.md175
-rw-r--r--doc/gitlab-basics/fork-project.md14
-rw-r--r--doc/gitlab-basics/start-using-git.md2
-rw-r--r--doc/intro/README.md2
-rw-r--r--doc/user/admin_area/settings/continuous_integration.md36
-rw-r--r--doc/user/group/index.md6
-rw-r--r--doc/user/permissions.md2
-rw-r--r--doc/user/profile/index.md2
-rw-r--r--doc/user/project/clusters/serverless/aws.md4
-rw-r--r--doc/user/project/import/index.md22
-rw-r--r--doc/user/project/index.md256
-rw-r--r--doc/user/project/issues/design_management.md2
-rw-r--r--doc/user/project/pages/getting_started/pages_forked_sample_project.md2
-rw-r--r--doc/user/project/repository/index.md24
-rw-r--r--doc/user/project/settings/index.md6
-rw-r--r--doc/user/project/static_site_editor/index.md2
-rw-r--r--doc/user/project/wiki/index.md2
-rw-r--r--doc/user/project/working_with_projects.md341
-rw-r--r--doc/user/search/index.md2
36 files changed, 771 insertions, 469 deletions
diff --git a/doc/administration/gitaly/index.md b/doc/administration/gitaly/index.md
index 6738b912dab..28283beb642 100644
--- a/doc/administration/gitaly/index.md
+++ b/doc/administration/gitaly/index.md
@@ -1161,7 +1161,7 @@ Confirm the following are all true:
- When any user adds or modifies a file from the repository using the GitLab
UI, it immediately fails with a red `401 Unauthorized` banner.
-- Creating a new project and [initializing it with a README](../../gitlab-basics/create-project.md#blank-projects)
+- Creating a new project and [initializing it with a README](../../user/project/working_with_projects.md#blank-projects)
successfully creates the project, but doesn't create the README.
- When [tailing the logs](https://docs.gitlab.com/omnibus/settings/logs.html#tail-logs-in-a-console-on-the-server)
on a Gitaly client and reproducing the error, you get `401` errors
diff --git a/doc/administration/reference_architectures/troubleshooting.md b/doc/administration/reference_architectures/troubleshooting.md
index 835231ac584..cab45a99ee4 100644
--- a/doc/administration/reference_architectures/troubleshooting.md
+++ b/doc/administration/reference_architectures/troubleshooting.md
@@ -298,7 +298,7 @@ Confirm the following are all true:
- When any user adds or modifies a file from the repository using the GitLab
UI, it immediately fails with a red `401 Unauthorized` banner.
-- Creating a new project and [initializing it with a README](../../gitlab-basics/create-project.md#blank-projects)
+- Creating a new project and [initializing it with a README](../../user/project/working_with_projects.md#blank-projects)
successfully creates the project but doesn't create the README.
- When [tailing the logs](https://docs.gitlab.com/omnibus/settings/logs.html#tail-logs-in-a-console-on-the-server) on an app node and reproducing the error, you get `401` errors
when reaching the `/api/v4/internal/allowed` endpoint:
diff --git a/doc/api/graphql/reference/gitlab_schema.graphql b/doc/api/graphql/reference/gitlab_schema.graphql
index 53e5925affa..f507d0fe0dd 100644
--- a/doc/api/graphql/reference/gitlab_schema.graphql
+++ b/doc/api/graphql/reference/gitlab_schema.graphql
@@ -1078,6 +1078,56 @@ Identifier of Analytics::DevopsAdoption::Segment.
scalar AnalyticsDevopsAdoptionSegmentID
"""
+Data associated with configuring API fuzzing scans in GitLab CI
+"""
+type ApiFuzzingCiConfiguration {
+ """
+ All available scan modes.
+ """
+ scanModes: [ApiFuzzingScanMode!]
+
+ """
+ All default scan profiles.
+ """
+ scanProfiles: [ApiFuzzingScanProfile!]
+}
+
+"""
+All possible ways to specify the API surface for an API fuzzing scan
+"""
+enum ApiFuzzingScanMode {
+ """
+ The API surface is specified by a HAR file.
+ """
+ HAR
+
+ """
+ The API surface is specified by a OPENAPI file.
+ """
+ OPENAPI
+}
+
+"""
+An API Fuzzing scan profile.
+"""
+type ApiFuzzingScanProfile {
+ """
+ A short description of the profile.
+ """
+ description: String
+
+ """
+ The unique name of the profile.
+ """
+ name: String
+
+ """
+ A syntax highlit HTML representation of the YAML.
+ """
+ yaml: String
+}
+
+"""
User availability status
"""
enum AvailabilityEnum {
@@ -2483,6 +2533,13 @@ type BurnupChartDailyTotals {
scopeWeight: Int!
}
+type CiApplicationSettings {
+ """
+ Whether to keep the latest jobs artifacts.
+ """
+ keepLatestArtifact: Boolean
+}
+
type CiBuildNeed {
"""
Name of the job we need to complete.
@@ -18466,6 +18523,11 @@ type Project {
allowMergeOnSkippedPipeline: Boolean
"""
+ API fuzzing configuration for the project. Available only when feature flag `api_fuzzing_configuration_ui` is enabled.
+ """
+ apiFuzzingCiConfiguration: ApiFuzzingCiConfiguration
+
+ """
Indicates the archived status of the project.
"""
archived: Boolean
@@ -20844,6 +20906,11 @@ type PromoteToEpicPayload {
type Query {
"""
+ CI related settings that apply to the entire instance.
+ """
+ ciApplicationSettings: CiApplicationSettings
+
+ """
Get linted and processed contents of a CI config. Should not be requested more than once per request.
"""
ciConfig(
diff --git a/doc/api/graphql/reference/gitlab_schema.json b/doc/api/graphql/reference/gitlab_schema.json
index ca1046e1b40..cbbfb3f3e8a 100644
--- a/doc/api/graphql/reference/gitlab_schema.json
+++ b/doc/api/graphql/reference/gitlab_schema.json
@@ -2679,6 +2679,141 @@
"possibleTypes": null
},
{
+ "kind": "OBJECT",
+ "name": "ApiFuzzingCiConfiguration",
+ "description": "Data associated with configuring API fuzzing scans in GitLab CI",
+ "fields": [
+ {
+ "name": "scanModes",
+ "description": "All available scan modes.",
+ "args": [
+
+ ],
+ "type": {
+ "kind": "LIST",
+ "name": null,
+ "ofType": {
+ "kind": "NON_NULL",
+ "name": null,
+ "ofType": {
+ "kind": "ENUM",
+ "name": "ApiFuzzingScanMode",
+ "ofType": null
+ }
+ }
+ },
+ "isDeprecated": false,
+ "deprecationReason": null
+ },
+ {
+ "name": "scanProfiles",
+ "description": "All default scan profiles.",
+ "args": [
+
+ ],
+ "type": {
+ "kind": "LIST",
+ "name": null,
+ "ofType": {
+ "kind": "NON_NULL",
+ "name": null,
+ "ofType": {
+ "kind": "OBJECT",
+ "name": "ApiFuzzingScanProfile",
+ "ofType": null
+ }
+ }
+ },
+ "isDeprecated": false,
+ "deprecationReason": null
+ }
+ ],
+ "inputFields": null,
+ "interfaces": [
+
+ ],
+ "enumValues": null,
+ "possibleTypes": null
+ },
+ {
+ "kind": "ENUM",
+ "name": "ApiFuzzingScanMode",
+ "description": "All possible ways to specify the API surface for an API fuzzing scan",
+ "fields": null,
+ "inputFields": null,
+ "interfaces": null,
+ "enumValues": [
+ {
+ "name": "HAR",
+ "description": "The API surface is specified by a HAR file.",
+ "isDeprecated": false,
+ "deprecationReason": null
+ },
+ {
+ "name": "OPENAPI",
+ "description": "The API surface is specified by a OPENAPI file.",
+ "isDeprecated": false,
+ "deprecationReason": null
+ }
+ ],
+ "possibleTypes": null
+ },
+ {
+ "kind": "OBJECT",
+ "name": "ApiFuzzingScanProfile",
+ "description": "An API Fuzzing scan profile.",
+ "fields": [
+ {
+ "name": "description",
+ "description": "A short description of the profile.",
+ "args": [
+
+ ],
+ "type": {
+ "kind": "SCALAR",
+ "name": "String",
+ "ofType": null
+ },
+ "isDeprecated": false,
+ "deprecationReason": null
+ },
+ {
+ "name": "name",
+ "description": "The unique name of the profile.",
+ "args": [
+
+ ],
+ "type": {
+ "kind": "SCALAR",
+ "name": "String",
+ "ofType": null
+ },
+ "isDeprecated": false,
+ "deprecationReason": null
+ },
+ {
+ "name": "yaml",
+ "description": "A syntax highlit HTML representation of the YAML.",
+ "args": [
+
+ ],
+ "type": {
+ "kind": "SCALAR",
+ "name": "String",
+ "ofType": null
+ },
+ "isDeprecated": false,
+ "deprecationReason": null
+ }
+ ],
+ "inputFields": null,
+ "interfaces": [
+
+ ],
+ "enumValues": null,
+ "possibleTypes": null
+ },
+ {
"kind": "ENUM",
"name": "AvailabilityEnum",
"description": "User availability status",
@@ -6548,6 +6683,33 @@
},
{
"kind": "OBJECT",
+ "name": "CiApplicationSettings",
+ "description": null,
+ "fields": [
+ {
+ "name": "keepLatestArtifact",
+ "description": "Whether to keep the latest jobs artifacts.",
+ "args": [
+
+ ],
+ "type": {
+ "kind": "SCALAR",
+ "name": "Boolean",
+ "ofType": null
+ },
+ "isDeprecated": false,
+ "deprecationReason": null
+ }
+ ],
+ "inputFields": null,
+ "interfaces": [
+
+ ],
+ "enumValues": null,
+ "possibleTypes": null
+ },
+ {
+ "kind": "OBJECT",
"name": "CiBuildNeed",
"description": null,
"fields": [
@@ -54453,6 +54615,20 @@
"deprecationReason": null
},
{
+ "name": "apiFuzzingCiConfiguration",
+ "description": "API fuzzing configuration for the project. Available only when feature flag `api_fuzzing_configuration_ui` is enabled.",
+ "args": [
+
+ ],
+ "type": {
+ "kind": "OBJECT",
+ "name": "ApiFuzzingCiConfiguration",
+ "ofType": null
+ },
+ "isDeprecated": false,
+ "deprecationReason": null
+ },
+ {
"name": "archived",
"description": "Indicates the archived status of the project.",
"args": [
@@ -60659,6 +60835,20 @@
"description": null,
"fields": [
{
+ "name": "ciApplicationSettings",
+ "description": "CI related settings that apply to the entire instance.",
+ "args": [
+
+ ],
+ "type": {
+ "kind": "OBJECT",
+ "name": "CiApplicationSettings",
+ "ofType": null
+ },
+ "isDeprecated": false,
+ "deprecationReason": null
+ },
+ {
"name": "ciConfig",
"description": "Get linted and processed contents of a CI config. Should not be requested more than once per request.",
"args": [
diff --git a/doc/api/graphql/reference/index.md b/doc/api/graphql/reference/index.md
index e39bf8c1cf9..648f08ff8a1 100644
--- a/doc/api/graphql/reference/index.md
+++ b/doc/api/graphql/reference/index.md
@@ -180,6 +180,25 @@ Autogenerated return type of AlertTodoCreate.
| `issue` | Issue | The issue created after mutation. |
| `todo` | Todo | The to-do item after mutation. |
+### ApiFuzzingCiConfiguration
+
+Data associated with configuring API fuzzing scans in GitLab CI.
+
+| Field | Type | Description |
+| ----- | ---- | ----------- |
+| `scanModes` | ApiFuzzingScanMode! => Array | All available scan modes. |
+| `scanProfiles` | ApiFuzzingScanProfile! => Array | All default scan profiles. |
+
+### ApiFuzzingScanProfile
+
+An API Fuzzing scan profile..
+
+| Field | Type | Description |
+| ----- | ---- | ----------- |
+| `description` | String | A short description of the profile. |
+| `name` | String | The unique name of the profile. |
+| `yaml` | String | A syntax highlit HTML representation of the YAML. |
+
### AwardEmoji
An emoji awarded by a user.
@@ -388,6 +407,12 @@ Represents the total number of issues and their weights for a particular day.
| `scopeCount` | Int! | Number of issues as of this day |
| `scopeWeight` | Int! | Total weight of issues as of this day |
+### CiApplicationSettings
+
+| Field | Type | Description |
+| ----- | ---- | ----------- |
+| `keepLatestArtifact` | Boolean | Whether to keep the latest jobs artifacts. |
+
### CiBuildNeed
| Field | Type | Description |
@@ -2800,6 +2825,7 @@ Autogenerated return type of PipelineRetry.
| `alertManagementIntegrations` | AlertManagementIntegrationConnection | Integrations which can receive alerts for the project. |
| `alertManagementPayloadFields` | AlertManagementPayloadAlertField! => Array | Extract alert fields from payload for custom mapping |
| `allowMergeOnSkippedPipeline` | Boolean | If `only_allow_merge_if_pipeline_succeeds` is true, indicates if merge requests of the project can also be merged with skipped jobs. |
+| `apiFuzzingCiConfiguration` | ApiFuzzingCiConfiguration | API fuzzing configuration for the project. Available only when feature flag `api_fuzzing_configuration_ui` is enabled. |
| `archived` | Boolean | Indicates the archived status of the project. |
| `autocloseReferencedIssues` | Boolean | Indicates if issues referenced by merge requests and commits within the default branch are closed automatically. |
| `avatarUrl` | String | URL to avatar image file of the project. |
@@ -4575,6 +4601,15 @@ Alert status values.
| `RESOLVED` | Resolved status |
| `TRIGGERED` | Triggered status |
+### ApiFuzzingScanMode
+
+All possible ways to specify the API surface for an API fuzzing scan.
+
+| Value | Description |
+| ----- | ----------- |
+| `HAR` | The API surface is specified by a HAR file. |
+| `OPENAPI` | The API surface is specified by a OPENAPI file. |
+
### AvailabilityEnum
User availability status.
diff --git a/doc/api/projects.md b/doc/api/projects.md
index c22b00ab8a2..321a95af8b5 100644
--- a/doc/api/projects.md
+++ b/doc/api/projects.md
@@ -1104,7 +1104,7 @@ POST /projects
| `snippets_access_level` | string | **{dotted-circle}** No | One of `disabled`, `private`, or `enabled`. |
| `snippets_enabled` | boolean | **{dotted-circle}** No | _(Deprecated)_ Enable snippets for this project. Use `snippets_access_level` instead. |
| `tag_list` | array | **{dotted-circle}** No | The list of tags for a project; put array of tags, that should be finally assigned to a project. |
-| `template_name` | string | **{dotted-circle}** No | When used without `use_custom_template`, name of a [built-in project template](../gitlab-basics/create-project.md#built-in-templates). When used with `use_custom_template`, name of a custom project template. |
+| `template_name` | string | **{dotted-circle}** No | When used without `use_custom_template`, name of a [built-in project template](../user/project/working_with_projects.md#built-in-templates). When used with `use_custom_template`, name of a custom project template. |
| `template_project_id` **(PREMIUM)** | integer | **{dotted-circle}** No | When used with `use_custom_template`, project ID of a custom project template. This is preferable to using `template_name` since `template_name` may be ambiguous. |
| `use_custom_template` **(PREMIUM)** | boolean | **{dotted-circle}** No | Use either custom [instance](../user/admin_area/custom_project_templates.md) or [group](../user/group/custom_project_templates.md) (with `group_with_project_templates_id`) project template. |
| `visibility` | string | **{dotted-circle}** No | See [project visibility level](#project-visibility-level). |
@@ -1177,7 +1177,7 @@ POST /projects/user/:user_id
| `snippets_enabled` | boolean | **{dotted-circle}** No | _(Deprecated)_ Enable snippets for this project. Use `snippets_access_level` instead. |
| `suggestion_commit_message` | string | **{dotted-circle}** No | The commit message used to apply merge request suggestions. |
| `tag_list` | array | **{dotted-circle}** No | The list of tags for a project; put array of tags, that should be finally assigned to a project. |
-| `template_name` | string | **{dotted-circle}** No | When used without `use_custom_template`, name of a [built-in project template](../gitlab-basics/create-project.md#built-in-templates). When used with `use_custom_template`, name of a custom project template. |
+| `template_name` | string | **{dotted-circle}** No | When used without `use_custom_template`, name of a [built-in project template](../user/project/working_with_projects.md#built-in-templates). When used with `use_custom_template`, name of a custom project template. |
| `use_custom_template` **(PREMIUM)** | boolean | **{dotted-circle}** No | Use either custom [instance](../user/admin_area/custom_project_templates.md) or [group](../user/group/custom_project_templates.md) (with `group_with_project_templates_id`) project template. |
| `user_id` | integer | **{check-circle}** Yes | The user ID of the project owner. |
| `visibility` | string | **{dotted-circle}** No | See [project visibility level](#project-visibility-level). |
diff --git a/doc/api/settings.md b/doc/api/settings.md
index 05ea25a1955..42b09060ca7 100644
--- a/doc/api/settings.md
+++ b/doc/api/settings.md
@@ -85,7 +85,8 @@ Example response:
"wiki_page_max_content_bytes": 52428800,
"require_admin_approval_after_user_signup": false,
"personal_access_token_prefix": "GL-",
- "rate_limiting_response_text": null
+ "rate_limiting_response_text": null,
+ "keep_latest_artifact": true
}
```
@@ -179,7 +180,8 @@ Example response:
"wiki_page_max_content_bytes": 52428800,
"require_admin_approval_after_user_signup": false,
"personal_access_token_prefix": "GL-",
- "rate_limiting_response_text": null
+ "rate_limiting_response_text": null,
+ "keep_latest_artifact": true
}
```
diff --git a/doc/ci/ci_cd_for_external_repos/github_integration.md b/doc/ci/ci_cd_for_external_repos/github_integration.md
index bef3b54bf4e..2a8b050b224 100644
--- a/doc/ci/ci_cd_for_external_repos/github_integration.md
+++ b/doc/ci/ci_cd_for_external_repos/github_integration.md
@@ -35,7 +35,7 @@ repositories:
your project, update commit statuses, and create a web hook to notify
GitLab of new commits.
-1. In GitLab, go to the [new project page](../../gitlab-basics/create-project.md#create-a-project-in-gitlab), select the **CI/CD for external repository** tab, and then click
+1. In GitLab, go to the [new project page](../../user/project/working_with_projects.md#create-a-project), select the **CI/CD for external repository** tab, and then click
**GitHub**.
1. Paste the token into the **Personal access token** field and click **List
diff --git a/doc/ci/cloud_deployment/index.md b/doc/ci/cloud_deployment/index.md
index 2ad12992aaf..3fbbb436c63 100644
--- a/doc/ci/cloud_deployment/index.md
+++ b/doc/ci/cloud_deployment/index.md
@@ -299,7 +299,7 @@ include:
- template: Auto-DevOps.gitlab-ci.yml
variables:
- - AUTO_DEVOPS_PLATFORM_TARGET: EC2
+ AUTO_DEVOPS_PLATFORM_TARGET: EC2
build_artifact:
stage: build
diff --git a/doc/ci/environments/index.md b/doc/ci/environments/index.md
index 58e12fdd733..b5792c2bbc4 100644
--- a/doc/ci/environments/index.md
+++ b/doc/ci/environments/index.md
@@ -57,7 +57,7 @@ Configuring environments involves:
The rest of this section illustrates how to configure environments and deployments using
an example scenario. It assumes you have already:
-- Created a [project](../../gitlab-basics/create-project.md) in GitLab.
+- Created a [project](../../user/project/working_with_projects.md#create-a-project) in GitLab.
- Set up [a runner](../runners/README.md).
In the scenario:
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 dbbc751acf9..855f3e599f1 100644
--- a/doc/ci/examples/laravel_with_gitlab_and_envoy/index.md
+++ b/doc/ci/examples/laravel_with_gitlab_and_envoy/index.md
@@ -69,7 +69,7 @@ This test will be used later for continuously testing our app with GitLab CI/CD.
### Push to GitLab
Since we have our app up and running locally, it's time to push the codebase to our remote repository.
-Let's create [a new project](../../../gitlab-basics/create-project.md) in GitLab named `laravel-sample`.
+Let's create [a new project](../../../user/project/working_with_projects.md#create-a-project) 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.
```shell
diff --git a/doc/ci/pipelines/job_artifacts.md b/doc/ci/pipelines/job_artifacts.md
index 769f4ff9245..7daaa7821c7 100644
--- a/doc/ci/pipelines/job_artifacts.md
+++ b/doc/ci/pipelines/job_artifacts.md
@@ -484,6 +484,9 @@ a project, you can disable this behavior to save space:
1. Navigate to **Settings > CI/CD > Artifacts**.
1. Uncheck **Keep artifacts from most recent successful jobs**.
+You can disable this behavior for all projects on a self-managed instance in the
+[instance's CI/CD settings](../../user/admin_area/settings/continuous_integration.md#keep-the-latest-artifacts-for-all-jobs-in-the-latest-successful-pipelines). **(CORE ONLY)**
+
When you disable the feature, the latest artifacts do not immediately expire.
A new pipeline must run before the latest artifacts can expire and be deleted.
diff --git a/doc/ci/yaml/README.md b/doc/ci/yaml/README.md
index 7bd691aabba..06443d377b9 100644
--- a/doc/ci/yaml/README.md
+++ b/doc/ci/yaml/README.md
@@ -3331,7 +3331,9 @@ job:
The latest artifacts for refs are locked against deletion, and kept regardless of
the expiry time. [Introduced in](https://gitlab.com/gitlab-org/gitlab/-/issues/16267)
GitLab 13.0 behind a disabled feature flag, and [made the default behavior](https://gitlab.com/gitlab-org/gitlab/-/issues/229936)
-in GitLab 13.4. In [GitLab 13.8 and later](https://gitlab.com/gitlab-org/gitlab/-/issues/241026), you can [disable this behavior in the CI/CD settings](../pipelines/job_artifacts.md#keep-artifacts-from-most-recent-successful-jobs).
+in GitLab 13.4.
+
+In [GitLab 13.8 and later](https://gitlab.com/gitlab-org/gitlab/-/issues/241026), you can [disable this behavior at the project level in the CI/CD settings](../pipelines/job_artifacts.md#keep-artifacts-from-most-recent-successful-jobs). In [GitLab 13.9 and later](https://gitlab.com/gitlab-org/gitlab/-/issues/276583), you can [disable this behavior instance-wide](../../user/admin_area/settings/continuous_integration.md#keep-the-latest-artifacts-for-all-jobs-in-the-latest-successful-pipelines).
#### `artifacts:reports`
diff --git a/doc/development/code_review.md b/doc/development/code_review.md
index e1a758f481f..0090372bb9f 100644
--- a/doc/development/code_review.md
+++ b/doc/development/code_review.md
@@ -385,9 +385,12 @@ When ready to merge:
- Consider using the [Squash and
merge](../user/project/merge_requests/squash_and_merge.md#squash-and-merge)
feature when the merge request has a lot of commits.
- When merging code a maintainer should only use the squash feature if the
- author has already set this option or if the merge request clearly contains a
- messy commit history that is intended to be squashed.
+ When merging code, a maintainer should only use the squash feature if the
+ author has already set this option, or if the merge request clearly contains a
+ messy commit history, it will be more efficient to squash commits instead of
+ circling back with the author about that. Otherwise, if the MR only has a few commits, we'll
+ be respecting the author's setting by not squashing them.
+
- **Start a new merge request pipeline with the `Run Pipeline` button in the merge
request's "Pipelines" tab, and enable "Merge When Pipeline Succeeds" (MWPS).** Note that:
- If the **latest [Pipeline for Merged Results](../ci/merge_request_pipelines/pipelines_for_merged_results/#pipelines-for-merged-results)** finished less than 2 hours ago, you
diff --git a/doc/development/interacting_components.md b/doc/development/interacting_components.md
index 50751dcc539..4c2d0580428 100644
--- a/doc/development/interacting_components.md
+++ b/doc/development/interacting_components.md
@@ -29,5 +29,5 @@ See also [File Storage in GitLab](file_storage.md).
### Forks
GitLab supports a great amount of features for [merge requests](../user/project/merge_requests/index.md). One
-of them is the ability to create merge requests from and to [forks](../gitlab-basics/fork-project.md),
+of them is the ability to create merge requests from and to [forks](../user/project/working_with_projects.md#fork-a-project),
which should also be highly considered and tested upon development phase.
diff --git a/doc/development/usage_ping/metrics_dictionary.md b/doc/development/usage_ping/metrics_dictionary.md
index 7c41c331e88..f4f1993664c 100644
--- a/doc/development/usage_ping/metrics_dictionary.md
+++ b/doc/development/usage_ping/metrics_dictionary.md
@@ -67,6 +67,8 @@ tier: ['free', 'starter', 'premium', 'ultimate', 'bronze', 'silver', 'gold']
The GitLab codebase provides a dedicated [generator](https://gitlab.com/gitlab-org/gitlab/-/blob/master/lib/generators/gitlab/usage_metric_definition_generator.rb) to create new metric definitions.
+For uniqueness, the generated file includes a timestamp prefix, in ISO 8601 format.
+
The generator takes the key path argument and 2 options and creates the metric YAML definition in corresponding location:
- `--ee`, `--no-ee` Indicates if metric is for EE.
diff --git a/doc/gitlab-basics/README.md b/doc/gitlab-basics/README.md
index 0fb231be859..e0d0917db7c 100644
--- a/doc/gitlab-basics/README.md
+++ b/doc/gitlab-basics/README.md
@@ -22,12 +22,12 @@ This documentation is split into the following groups:
The following are guides to basic GitLab functionality:
- [Create and add your SSH public key](../ssh/README.md), for enabling Git over SSH.
-- [Create a project](create-project.md), to start using GitLab.
+- [Create a project](../user/project/working_with_projects.md#create-a-project), to start using GitLab.
- [Create a group](../user/group/index.md#create-a-new-group), to combine and administer
projects together.
- [Create a branch](create-branch.md), to make changes to files stored in a project's repository.
- [Feature branch workflow](feature_branch_workflow.md).
-- [Fork a project](fork-project.md), to duplicate projects so they can be worked on in parallel.
+- [Fork a project](../user/project/working_with_projects.md#fork-a-project), to duplicate projects so they can be worked on in parallel.
- [Add a file](add-file.md), to add new files to a project's repository.
- [Create an issue](../user/project/issues/managing_issues.md#create-a-new-issue),
to start collaborating within a project.
diff --git a/doc/gitlab-basics/create-project.md b/doc/gitlab-basics/create-project.md
index c4fe522e6a2..18886120c63 100644
--- a/doc/gitlab-basics/create-project.md
+++ b/doc/gitlab-basics/create-project.md
@@ -1,175 +1,8 @@
---
-stage: Create
-group: Source Code
-info: "To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/engineering/ux/technical-writing/#assignments"
-type: howto
+redirect_to: '../user/project/working_with_projects.md'
---
-# Create a project
+This document was moved to [another location](../user/project/working_with_projects.md).
-Most work in GitLab is done within a [Project](../user/project/index.md). Files and
-code are saved in projects, and most features are used within the scope of projects.
-
-## Create a project in GitLab
-
-To create a project in GitLab:
-
-1. In your dashboard, click the green **New project** button or use the plus
- icon in the navigation bar. This opens the **New project** page.
-1. On the **New project** page, choose if you want to:
- - Create a [blank project](#blank-projects).
- - Create a project using one of the available [project templates](#project-templates).
- - [Import a project](../user/project/import/index.md) from a different repository,
- if enabled on your GitLab instance. Contact your GitLab administrator if this is unavailable.
- - Run [CI/CD pipelines for external repositories](../ci/ci_cd_for_external_repos/index.md). **(PREMIUM)**
-
-NOTE:
-For a list of words that can't be used as project names see
-[Reserved project and group names](../user/reserved_names.md).
-
-### Blank projects
-
-To create a new blank project on the **New project** page:
-
-1. On the **Blank project** tab, provide the following information:
- - The name of your project in the **Project name** field. You can't use
- special characters, but you can use spaces, hyphens, underscores, or even
- emoji. When adding the name, the **Project slug** auto populates.
- The slug is what the GitLab instance uses as the URL path to the project.
- If you want a different slug, input the project name first,
- then change the slug after.
- - The path to your project in the **Project slug** field. This is the URL
- path for your project that the GitLab instance uses. If the
- **Project name** is blank, it auto populates when you fill in
- the **Project slug**.
- - The **Project description (optional)** field enables you to enter a
- description for your project's dashboard, which helps others
- understand what your project is about. Though it's not required, it's a good
- idea to fill this in.
- - Changing the **Visibility Level** modifies the project's
- [viewing and access rights](../public_access/public_access.md) for users.
- - Selecting the **Initialize repository with a README** option creates a
- README file so that the Git repository is initialized, has a default branch, and
- can be cloned.
-1. Click **Create project**.
-
-### Project templates
-
-Project templates can pre-populate a new project with the necessary files to get you
-started quickly.
-
-There are two main types of project templates:
-
-- [Built-in templates](#built-in-templates), sourced from the following groups:
- - [`project-templates`](https://gitlab.com/gitlab-org/project-templates)
- - [`pages`](https://gitlab.com/pages)
-- [Custom project templates](#custom-project-templates), for custom templates
- configured by GitLab administrators and users.
-
-#### Built-in templates
-
-Built-in templates are project templates that are:
-
-- Developed and maintained in the [`project-templates`](https://gitlab.com/gitlab-org/project-templates)
- and [`pages`](https://gitlab.com/pages) groups.
-- Released with GitLab.
-
-To use a built-in template on the **New project** page:
-
-1. On the **Create from template** tab, select the **Built-in** tab.
-1. From the list of available built-in templates, click the:
- - **Preview** button to look at the template source itself.
- - **Use template** button to start creating the project.
-1. Finish creating the project by filling out the project's details. The process is
- the same as creating a [blank project](#blank-projects).
-
-##### Enterprise templates **(ULTIMATE)**
-
-GitLab is developing Enterprise templates to help you streamline audit management with selected regulatory standards. These templates automatically import issues that correspond to each regulatory requirement.
-
-To create a new project with an Enterprise template, on the **New project** page:
-
-1. On the **Create from template** tab, select the **Built-in** tab.
-1. From the list of available built-in Enterprise templates, click the:
- - **Preview** button to look at the template source itself.
- - **Use template** button to start creating the project.
-1. Finish creating the project by filling out the project's details. The process is the same as creating a [blank project](#blank-projects).
-
-Available Enterprise templates include:
-
-- HIPAA Audit Protocol template ([introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/13756) in GitLab 12.10)
-
-NOTE:
-You can improve the existing built-in templates or contribute new ones in the
-[`project-templates`](https://gitlab.com/gitlab-org/project-templates) and
-[`pages`](https://gitlab.com/pages) groups by following [these steps](https://gitlab.com/gitlab-org/project-templates/contributing).
-
-#### Custom project templates **(PREMIUM)**
-
-> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/6860) in [GitLab Premium](https://about.gitlab.com/pricing/) 11.2.
-
-Creating new projects based on custom project templates is a convenient option for
-quickly starting projects.
-
-Custom projects are available at the [instance-level](../user/admin_area/custom_project_templates.md)
-from the **Instance** tab, or at the [group-level](../user/group/custom_project_templates.md)
-from the **Group** tab, under the **Create from template** tab.
-
-To use a custom project template on the **New project** page:
-
-1. On the **Create from template** tab, select the **Instance** tab or the **Group** tab.
-1. From the list of available custom templates, click the:
- - **Preview** button to look at the template source itself.
- - **Use template** button to start creating the project.
-1. Finish creating the project by filling out the project's details. The process is
- the same as creating a [blank project](#blank-projects).
-
-## Push to create a new project
-
-> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/-/issues/26388) in GitLab 10.5.
-
-When you create a new repository locally, instead of manually creating a new project in GitLab
-and then [cloning the repository](start-using-git.md#clone-a-repository)
-locally, you can directly push it to GitLab to create the new project, all without leaving
-your terminal. If you have access rights to the associated namespace, GitLab
-automatically creates a new project under that GitLab namespace with its visibility
-set to Private by default (you can later change it in the [project's settings](../public_access/public_access.md#how-to-change-project-visibility)).
-
-This can be done by using either SSH or HTTPS:
-
-```shell
-## Git push using SSH
-git push --set-upstream git@gitlab.example.com:namespace/nonexistent-project.git master
-
-## Git push using HTTPS
-git push --set-upstream https://gitlab.example.com/namespace/nonexistent-project.git master
-```
-
-You can pass the flag `--tags` to the `git push` command to export existing repository tags.
-
-Once the push finishes successfully, a remote message indicates
-the command to set the remote and the URL to the new project:
-
-```plaintext
-remote:
-remote: The private project namespace/nonexistent-project was created.
-remote:
-remote: To configure the remote, run:
-remote: git remote add origin https://gitlab.example.com/namespace/nonexistent-project.git
-remote:
-remote: To view the project, visit:
-remote: https://gitlab.example.com/namespace/nonexistent-project
-remote:
-```
-
-<!-- ## Troubleshooting
-
-Include any troubleshooting steps that you can foresee. If you know beforehand what issues
-one might have when setting this up, or when something is changed, or on upgrading, it's
-important to describe those, too. Think of things that may go wrong and include them here.
-This is important to minimize requests for support, and to avoid doc comments with
-questions that you know someone might ask.
-
-Each scenario can be a third-level heading, e.g. `### Getting error message X`.
-If you have none to add when creating a doc, leave this section in place
-but commented out to help encourage others to add to it in the future. -->
+<!-- This redirect file can be deleted after <2021-05-05>. -->
+<!-- Before deletion, see: https://docs.gitlab.com/ee/development/documentation/#move-or-rename-a-page --> \ No newline at end of file
diff --git a/doc/gitlab-basics/fork-project.md b/doc/gitlab-basics/fork-project.md
index 2f8cde2e1b7..adb49c6970f 100644
--- a/doc/gitlab-basics/fork-project.md
+++ b/doc/gitlab-basics/fork-project.md
@@ -1,14 +1,8 @@
---
-stage: Create
-group: Source Code
-info: "To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/engineering/ux/technical-writing/#assignments"
-type: howto
+redirect_to: '../user/project/working_with_projects.md'
---
-# How to fork a project
+This document was moved to [another location](../user/project/working_with_projects.md).
-A fork is a copy of an original repository that you put in another namespace
-where you can experiment and apply changes that you can later decide whether or
-not to share, without affecting the original project.
-
-It takes just a few steps to [fork a project in GitLab](../user/project/repository/forking_workflow.md#creating-a-fork).
+<!-- This redirect file can be deleted after <2021-05-04>. -->
+<!-- Before deletion, see: https://docs.gitlab.com/ee/development/documentation/#move-or-rename-a-page --> \ No newline at end of file
diff --git a/doc/gitlab-basics/start-using-git.md b/doc/gitlab-basics/start-using-git.md
index 778bbc63099..e88df5bb83f 100644
--- a/doc/gitlab-basics/start-using-git.md
+++ b/doc/gitlab-basics/start-using-git.md
@@ -278,7 +278,7 @@ identified by Git as the local content for that specific remote project.
To add a remote repository to your local copy:
-1. In GitLab, [create a new project](../gitlab-basics/create-project.md#push-to-create-a-new-project) to hold your files.
+1. In GitLab, [create a new project](../user/project/working_with_projects.md#create-a-project) to hold your files.
1. Visit this project's homepage, scroll down to **Push an existing folder**, and copy the command that starts with `git remote add`.
1. On your computer, open the terminal in the directory you've initialized, paste the command you copied, and press <kbd>enter</kbd>:
diff --git a/doc/intro/README.md b/doc/intro/README.md
index 96d7806aa66..64453750504 100644
--- a/doc/intro/README.md
+++ b/doc/intro/README.md
@@ -11,7 +11,7 @@ comments: false
Create projects and groups.
-- [Create a new project](../gitlab-basics/create-project.md)
+- [Create a new project](../user/project/working_with_projects.md#create-a-project)
- [Create a new group](../user/group/index.md#create-a-new-group)
## Prioritize
diff --git a/doc/user/admin_area/settings/continuous_integration.md b/doc/user/admin_area/settings/continuous_integration.md
index 789f48bef4b..f2138637289 100644
--- a/doc/user/admin_area/settings/continuous_integration.md
+++ b/doc/user/admin_area/settings/continuous_integration.md
@@ -86,6 +86,25 @@ be updated for artifacts created before this setting was changed.
The administrator may need to manually search for and expire previously-created
artifacts, as described in the [troubleshooting documentation](../../../administration/troubleshooting/gitlab_rails_cheat_sheet.md#remove-artifacts-more-than-a-week-old).
+## Keep the latest artifacts for all jobs in the latest successful pipelines **(CORE ONLY)**
+
+> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/50889) in GitLab Core 13.9.
+
+When enabled (default), the artifacts for the most recent pipeline for a ref are
+locked against deletion and kept regardless of the expiry time.
+
+When disabled, the latest artifacts for any **new** successful or fixed pipelines
+are allowed to expire.
+
+This setting takes precedence over the [project level setting](../../../ci/pipelines/job_artifacts.md#keep-artifacts-from-most-recent-successful-jobs).
+If disabled at the instance level, you cannot enable this per-project.
+
+When you disable the feature, the latest artifacts do not immediately expire.
+A new pipeline must run before the latest artifacts can expire and be deleted.
+
+NOTE:
+All application settings have a [customizable cache expiry interval](../../../administration/application_settings_cache.md) which can delay the settings affect.
+
## Shared runners pipeline minutes quota **(PREMIUM SELF)**
> [Moved](https://about.gitlab.com/blog/2021/01/26/new-gitlab-product-subscription-model/) to GitLab Premium in 13.9.
@@ -217,14 +236,13 @@ To set the maximum file size:
1. Enter the maximum file size, in bytes.
1. Click **Save size limits**.
-<!-- ## Troubleshooting
+## Troubleshooting
+
+### 413 Request Entity Too Large
-Include any troubleshooting steps that you can foresee. If you know beforehand what issues
-one might have when setting this up, or when something is changed, or on upgrading, it's
-important to describe those, too. Think of things that may go wrong and include them here.
-This is important to minimize requests for support, and to avoid doc comments with
-questions that you know someone might ask.
+When build jobs fail with the following error,
+increase the [maximum artifacts size](#maximum-artifacts-size).
-Each scenario can be a third-level heading, e.g. `### Getting error message X`.
-If you have none to add when creating a doc, leave this section in place
-but commented out to help encourage others to add to it in the future. -->
+```plaintext
+Uploading artifacts as "archive" to coordinator... too large archive <job-id> responseStatus=413 Request Entity Too Large status=413" at end of a build job on pipeline when trying to store artifacts to <object-storage>.
+```
diff --git a/doc/user/group/index.md b/doc/user/group/index.md
index 208c64d0406..0c03d9c4682 100644
--- a/doc/user/group/index.md
+++ b/doc/user/group/index.md
@@ -288,7 +288,7 @@ In [GitLab Premium or higher](https://about.gitlab.com/pricing/), GitLab adminis
There are two different ways to add a new project to a group:
-- Select a group, and then click **New project**. You can then continue [creating your project](../../gitlab-basics/create-project.md).
+- Select a group, and then click **New project**. You can then continue [creating your project](../../user/project/working_with_projects.md#create-a-project).
![New project](img/create_new_project_from_group_v13_6.png)
@@ -504,7 +504,7 @@ From GitLab 10.5, you can transfer groups in the following ways:
When transferring groups, note:
-- Changing a group's parent can have unintended side effects. See [Redirects when changing repository paths](../project/index.md#redirects-when-changing-repository-paths).
+- Changing a group's parent can have unintended side effects. See [Redirects when changing repository paths](../project/repository/index.md#redirects-when-changing-repository-paths).
- You can only transfer groups to groups you manage.
- You must update your local repositories to point to the new location.
- If the immediate parent group's visibility is lower than the group's current visibility, visibility levels for subgroups and projects will change to match the new parent group's visibility.
@@ -527,7 +527,7 @@ access further configurations for your group.
#### Changing a group's path
Changing a group's path (group URL) can have unintended side effects. Read
-[how redirects will behave](../project/index.md#redirects-when-changing-repository-paths)
+[how redirects will behave](../project/repository/index.md#redirects-when-changing-repository-paths)
before proceeding.
If you are vacating the path so it can be claimed by another group or user,
diff --git a/doc/user/permissions.md b/doc/user/permissions.md
index af8ae4e5a76..1109171f9e9 100644
--- a/doc/user/permissions.md
+++ b/doc/user/permissions.md
@@ -522,4 +522,4 @@ Read through the documentation on [LDAP users permissions](group/index.md#manage
## Project aliases
Project aliases can only be read, created and deleted by a GitLab administrator.
-Read through the documentation on [Project aliases](../user/project/index.md#project-aliases) to learn more.
+Read through the documentation on [Project aliases](../user/project/import/index.md#project-aliases) to learn more.
diff --git a/doc/user/profile/index.md b/doc/user/profile/index.md
index a96975fea92..52319b51073 100644
--- a/doc/user/profile/index.md
+++ b/doc/user/profile/index.md
@@ -92,7 +92,7 @@ If you don't know your current password, select the 'I forgot my password' link.
Your `username` is a unique [`namespace`](../group/index.md#namespaces)
related to your user ID. Changing it can have unintended side effects, read
-[how redirects behave](../project/index.md#redirects-when-changing-repository-paths)
+[how redirects behave](../project/repository/index.md#redirects-when-changing-repository-paths)
before proceeding.
To change your `username`:
diff --git a/doc/user/project/clusters/serverless/aws.md b/doc/user/project/clusters/serverless/aws.md
index 1da5a01f32c..192a7c7cd39 100644
--- a/doc/user/project/clusters/serverless/aws.md
+++ b/doc/user/project/clusters/serverless/aws.md
@@ -25,7 +25,7 @@ Additionally, in the [How To section](#how-to), you can read about different use
- Working with secrets.
- Setting up CORS.
-Alternatively, you can quickly [create a new project with a template](../../../../gitlab-basics/create-project.md#project-templates). The [`Serverless Framework/JS` template](https://gitlab.com/gitlab-org/project-templates/serverless-framework/) already includes all parts described below.
+Alternatively, you can quickly [create a new project with a template](../../working_with_projects.md#create-a-project). The [`Serverless Framework/JS` template](https://gitlab.com/gitlab-org/project-templates/serverless-framework/) already includes all parts described below.
### Example
@@ -290,7 +290,7 @@ The example code is available:
- As a [clonable repository](https://gitlab.com/gitlab-org/serverless/examples/serverless-framework-js).
- In a version with [tests and secret variables](https://gitlab.com/gitlab-org/project-templates/serverless-framework/).
-You can also use a [template](../../../../gitlab-basics/create-project.md#project-templates)
+You can also use a [template](../../working_with_projects.md#project-templates)
(based on the version with tests and secret variables) from within the GitLab UI (see
the `Serverless Framework/JS` template).
diff --git a/doc/user/project/import/index.md b/doc/user/project/import/index.md
index 754c3e31799..f6ed53763dd 100644
--- a/doc/user/project/import/index.md
+++ b/doc/user/project/import/index.md
@@ -74,3 +74,25 @@ In the event of merging two GitLab instances together (for example, both instanc
refer to the instructions in [Migrating from self-managed GitLab to GitLab.com](#migrating-from-self-managed-gitlab-to-gitlabcom).
Additionally, you can migrate users using the [Users API](../../../api/users.md) with an administrator user.
+
+## Project aliases **(PREMIUM SELF)**
+
+> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/3264) in GitLab Premium 12.1.
+
+When migrating repositories to GitLab and they are being accessed by other systems,
+it's very useful to be able to access them using the same name especially when
+they are a lot. It reduces the risk of changing significant number of Git URLs in
+a large number of systems.
+
+GitLab provides a functionality to help with this. In GitLab, repositories are
+usually accessed with a namespace and project name. It is also possible to access
+them via a project alias. This feature is only available on Git over SSH.
+
+A project alias can be only created via API and only by GitLab administrators.
+Follow the [Project Aliases API documentation](../../../api/project_aliases.md) for
+more details.
+
+After an alias has been created for a project (such as an alias `gitlab` for the
+project `https://gitlab.com/gitlab-org/gitlab`), you can clone the repository
+with the alias (e.g `git clone git@gitlab.com:gitlab.git` instead of
+`git clone git@gitlab.com:gitlab-org/gitlab.git`).
diff --git a/doc/user/project/index.md b/doc/user/project/index.md
index 607049b512e..640d0ac1f69 100644
--- a/doc/user/project/index.md
+++ b/doc/user/project/index.md
@@ -17,8 +17,7 @@ the number of private projects you create.
## Project features
-When you create a project in GitLab, you receive access to a large number of
-[features](https://about.gitlab.com/features/):
+Projects include the following [features](https://about.gitlab.com/features/):
**Repositories:**
@@ -115,63 +114,11 @@ When you create a project in GitLab, you receive access to a large number of
- [Static Site Editor](static_site_editor/index.md): quickly edit content on static websites without prior knowledge of the codebase or Git commands.
- [Code Intelligence](code_intelligence.md): code navigation features.
-### Project integrations
+## Project integrations
[Integrate your project](integrations/index.md) with Jira, Mattermost,
Kubernetes, Slack, and a lot more.
-## New project
-
-Learn how to [create a new project](../../gitlab-basics/create-project.md) in GitLab.
-
-### Fork a project
-
-You can [fork a project](repository/forking_workflow.md) in order to:
-
-- Collaborate on code by forking a project and creating a merge request
- from your fork to the upstream project
-- Fork a sample project to work on the top of that
-
-### Star a project
-
-You can star a project to make it easier to find projects you frequently use.
-The number of stars a project has can indicate its popularity.
-
-To star a project:
-
-1. Go to the home page of the project you want to star.
-1. In the upper right corner of the page, click **Star**.
-
-To view your starred projects:
-
-1. Click **Projects** in the navigation bar.
-1. Click **Starred Projects**.
-1. GitLab displays information about your starred projects, including:
-
- - Project description, including name, description, and icon
- - Number of times this project has been starred
- - Number of times this project has been forked
- - Number of open merge requests
- - Number of open issues
-
-### Explore projects
-
-You can explore other popular projects available on GitLab. To explore projects:
-
-1. Click **Projects** in the navigation bar.
-1. Click **Explore Projects**.
-
-GitLab displays a list of projects, sorted by last updated date. To view
-projects with the most [stars](#star-a-project), click **Most stars**. To view
-projects with the largest number of comments in the past month, click **Trending**.
-
-## Project settings
-
-Set the project's visibility level and the access levels to its various pages
-and perform actions like archiving, renaming or transferring a project.
-
-Read through the documentation on [project settings](settings/index.md).
-
## Import or export a project
- [Import a project](import/index.md) from:
@@ -182,18 +129,6 @@ Read through the documentation on [project settings](settings/index.md).
- [Export a project from GitLab](settings/import_export.md#exporting-a-project-and-its-data)
- [Importing and exporting projects between GitLab instances](settings/import_export.md)
-## Delete a project
-
-To delete a project, first navigate to the home page for that project.
-
-1. Navigate to **Settings > General**.
-1. Expand the **Advanced** section.
-1. Scroll down to the **Delete project** section.
-1. Click **Delete project**
-1. Confirm this action by typing in the expected text.
-
-Projects in personal namespaces are deleted immediately on request. For information on delayed deletion of projects in a group, please see [Enabling delayed project removal](../group/index.md#enabling-delayed-project-removal).
-
## CI/CD for external repositories **(PREMIUM)**
Instead of importing a repository directly to GitLab, you can connect your repository
@@ -201,45 +136,6 @@ as a CI/CD project.
Read through the documentation on [CI/CD for external repositories](../../ci/ci_cd_for_external_repos/index.md).
-## Project members
-
-Learn how to [add members to your projects](members/index.md).
-
-## Project activity
-
-To view the activity of a project, navigate to **Project overview > Activity**.
-From there, you can click on the tabs to see **All** the activity, or see it
-filtered by **Push events**, **Merge events**, **Issue events**, **Comments**,
-**Team**, and **Wiki**.
-
-### Leave a project
-
-**Leave project** only displays on the project's dashboard
-when a project is part of a group (under a
-[group namespace](../group/index.md#namespaces)).
-If you choose to leave a project you are no longer a project
-member, and cannot contribute.
-
-## Project's landing page
-
-The project's landing page shows different information depending on
-the project's visibility settings and user permissions.
-
-For public projects, and to members of internal and private projects
-with [permissions to view the project's code](../permissions.md#project-members-permissions):
-
-- The content of a
- [`README` or an index file](repository/#repository-readme-and-index-files)
- is displayed (if any), followed by the list of directories in the
- project's repository.
-- If the project doesn't contain either of these files, the
- visitor sees the list of files and directories of the repository.
-
-For users without permissions to view the project's code, GitLab displays:
-
-- The wiki homepage, if any.
-- The list of issues in the project.
-
## GitLab Workflow - VS Code extension
To avoid switching from the GitLab UI and VS Code while working in GitLab repositories, you can integrate
@@ -248,144 +144,6 @@ the [VS Code](https://code.visualstudio.com/) editor with GitLab through the
To review or contribute to the extension's code, visit [its codebase in GitLab](https://gitlab.com/gitlab-org/gitlab-vscode-extension/).
-## Redirects when changing repository paths
-
-When a repository path changes, it is essential to smoothly transition from the
-old location to the new one. GitLab provides two kinds of redirects: the web UI
-and Git push/pull redirects.
-
-Depending on the situation, different things apply.
-
-When [renaming a user](../profile/index.md#changing-your-username),
-[changing a group path](../group/index.md#changing-a-groups-path) or [renaming a repository](settings/index.md#renaming-a-repository):
-
-- Existing web URLs for the namespace and anything under it (such as projects) will
- redirect to the new URLs.
-- Starting with GitLab 10.3, existing Git remote URLs for projects under the
- namespace redirect to the new remote URL. Every time you push/pull to a
- repository that has changed its location, a warning message to update
- your remote is displayed instead of rejecting your action.
- This means that any automation scripts, or Git clients continue to
- work after a rename, making any transition a lot smoother.
-- The redirects are available as long as the original path is not claimed by
- another group, user or project.
-
-## Use your project as a Go package
-
-Any project can be used as a Go package. GitLab responds correctly to `go get`
-and `godoc.org` discovery requests, including the
-[`go-import`](https://golang.org/cmd/go/#hdr-Remote_import_paths) and
-[`go-source`](https://github.com/golang/gddo/wiki/Source-Code-Links) meta tags.
-
-Private projects, including projects in subgroups, can be used as a Go package,
-but may require configuration to work correctly. GitLab responds correctly
-to `go get` discovery requests for projects that *are not* in subgroups,
-regardless of authentication or authorization.
-[Authentication](#authenticate-go-requests) is required to use a private project
-in a subgroup as a Go package. Otherwise, GitLab truncates the path for
-private projects in subgroups to the first two segments, causing `go get` to
-fail.
-
-GitLab implements its own Go proxy. This feature must be enabled by an
-administrator and requires additional configuration. See [GitLab Go
-Proxy](../packages/go_proxy/index.md).
-
-### Disable Go module features for private projects
-
-In Go 1.12 and later, Go queries module proxies and checksum databases in the
-process of [fetching a
-module](../../development/go_guide/dependencies.md#fetching). This can be
-selectively disabled with `GOPRIVATE` (disable both),
-[`GONOPROXY`](../../development/go_guide/dependencies.md#proxies) (disable proxy
-queries), and [`GONOSUMDB`](../../development/go_guide/dependencies.md#fetching)
-(disable checksum queries).
-
-`GOPRIVATE`, `GONOPROXY`, and `GONOSUMDB` are comma-separated lists of Go
-modules and Go module prefixes. For example,
-`GOPRIVATE=gitlab.example.com/my/private/project` disables queries for that
-one project, but `GOPRIVATE=gitlab.example.com` disables queries for *all*
-projects on GitLab.com. Go does not query module proxies if the module name or a
-prefix of it appears in `GOPRIVATE` or `GONOPROXY`. Go does not query checksum
-databases if the module name or a prefix of it appears in `GONOPRIVATE` or
-`GONOSUMDB`.
-
-### Authenticate Go requests
-
-To authenticate requests to private projects made by Go, use a [`.netrc`
-file](https://ec.haxx.se/usingcurl-netrc.html) and a [personal access
-token](../profile/personal_access_tokens.md) in the password field. **This only
-works if your GitLab instance can be accessed with HTTPS.** The `go` command
-does not transmit credentials over insecure connections. This authenticates
-all HTTPS requests made directly by Go, but does not authenticate requests made
-through Git.
-
-For example:
-
-```plaintext
-machine gitlab.example.com
-login <gitlab_user_name>
-password <personal_access_token>
-```
-
-NOTE:
-On Windows, Go reads `~/_netrc` instead of `~/.netrc`.
-
-### Authenticate Git fetches
-
-If a module cannot be fetched from a proxy, Go falls back to using Git (for
-GitLab projects). Git uses `.netrc` to authenticate requests. You can also
-configure Git to either:
-
-- Embed specific credentials in the request URL.
-- Use SSH instead of HTTPS, as Go always uses HTTPS to fetch Git repositories.
-
-```shell
-# Embed credentials in any request to GitLab.com:
-git config --global url."https://${user}:${personal_access_token}@gitlab.example.com".insteadOf "https://gitlab.example.com"
-
-# Use SSH instead of HTTPS:
-git config --global url."git@gitlab.example.com".insteadOf "https://gitlab.example.com"
-```
-
-## Access project page with project ID
-
-> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/-/issues/53671) in GitLab 11.8.
-
-To quickly access a project from the GitLab UI using the project ID,
-visit the `/projects/:id` URL in your browser or other tool accessing the project.
-
-## Project aliases **(PREMIUM SELF)**
-
-> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/3264) in GitLab Premium 12.1.
-
-When migrating repositories to GitLab and they are being accessed by other systems,
-it's very useful to be able to access them using the same name especially when
-they are a lot. It reduces the risk of changing significant number of Git URLs in
-a large number of systems.
-
-GitLab provides a functionality to help with this. In GitLab, repositories are
-usually accessed with a namespace and project name. It is also possible to access
-them via a project alias. This feature is only available on Git over SSH.
-
-A project alias can be only created via API and only by GitLab administrators.
-Follow the [Project Aliases API documentation](../../api/project_aliases.md) for
-more details.
-
-After an alias has been created for a project (such as an alias `gitlab` for the
-project `https://gitlab.com/gitlab-org/gitlab`), you can clone the repository
-with the alias (e.g `git clone git@gitlab.com:gitlab.git` instead of
-`git clone git@gitlab.com:gitlab-org/gitlab.git`).
-
-## Project activity analytics overview **(ULTIMATE SELF)**
-
-> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/279039) in GitLab [Ultimate](https://about.gitlab.com/pricing/) 13.7 as a [Beta feature](https://about.gitlab.com/handbook/product/gitlab-the-product/#beta).
-
-Project details include the following analytics:
-
-- Deployment Frequency
-
-For more information, see [Project Analytics API](../../api/project_analytics.md).
-
## Project APIs
There are numerous [APIs](../../api/README.md) to use with your projects:
@@ -407,3 +165,13 @@ There are numerous [APIs](../../api/README.md) to use with your projects:
- [Variables](../../api/project_level_variables.md)
- [Aliases](../../api/project_aliases.md)
- [Analytics](../../api/project_analytics.md)
+
+## Project activity analytics overview **(ULTIMATE SELF)**
+
+> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/279039) in GitLab [Ultimate](https://about.gitlab.com/pricing/) 13.7 as a [Beta feature](https://about.gitlab.com/handbook/product/gitlab-the-product/#beta).
+
+Project details include the following analytics:
+
+- Deployment Frequency
+
+For more information, see [Project Analytics API](../../api/project_analytics.md).
diff --git a/doc/user/project/issues/design_management.md b/doc/user/project/issues/design_management.md
index 8dc5c3396ae..b6dff0842d8 100644
--- a/doc/user/project/issues/design_management.md
+++ b/doc/user/project/issues/design_management.md
@@ -259,4 +259,4 @@ This will be rendered as:
User activity events on designs (creation, deletion, and updates) are tracked by GitLab and
displayed on the [user profile](../../profile/index.md#user-profile),
[group](../../group/index.md#view-group-activity),
-and [project](../index.md#project-activity) activity pages.
+and [project](../working_with_projects.md#project-activity) activity pages.
diff --git a/doc/user/project/pages/getting_started/pages_forked_sample_project.md b/doc/user/project/pages/getting_started/pages_forked_sample_project.md
index 60f8533afc8..d9ec2aae2b7 100644
--- a/doc/user/project/pages/getting_started/pages_forked_sample_project.md
+++ b/doc/user/project/pages/getting_started/pages_forked_sample_project.md
@@ -18,7 +18,7 @@ configured to generate a Pages site.
To fork a sample project and create a Pages website:
1. View the sample projects by navigating to the [GitLab Pages examples](https://gitlab.com/pages) group.
-1. Click the name of the project you want to [fork](../../../../gitlab-basics/fork-project.md).
+1. Click the name of the project you want to [fork](../../../../user/project/working_with_projects.md#fork-a-project).
1. In the top right, click the **Fork** button, and then choose a namespace to fork to.
1. Go to your project's **CI/CD > Pipelines** and click **Run pipeline**.
GitLab CI/CD builds and deploys your site.
diff --git a/doc/user/project/repository/index.md b/doc/user/project/repository/index.md
index 42fa5895a60..c0b3ee24fa9 100644
--- a/doc/user/project/repository/index.md
+++ b/doc/user/project/repository/index.md
@@ -14,7 +14,7 @@ A repository is part of a [project](../index.md), which has a lot of other featu
## Create a repository
To create a new repository, all you need to do is
-[create a new project](../../../gitlab-basics/create-project.md) or
+[create a new project](../../../user/project/working_with_projects.md#create-a-project) or
[fork an existing project](forking_workflow.md).
Once you create a new project, you can add new files via UI
@@ -270,6 +270,28 @@ By clicking the download icon, a dropdown will open with links to download the f
- **Artifacts:**
allows users to download the artifacts of the latest CI build.
+## Redirects when changing repository paths
+
+When a repository path changes, it is essential to smoothly transition from the
+old location to the new one. GitLab provides two kinds of redirects: the web UI
+and Git push/pull redirects.
+
+Depending on the situation, different things apply.
+
+When [renaming a user](../../profile/index.md#changing-your-username),
+[changing a group path](../../group/index.md#changing-a-groups-path) or [renaming a repository](../settings/index.md#renaming-a-repository):
+
+- Existing web URLs for the namespace and anything under it (such as projects) will
+ redirect to the new URLs.
+- Starting with GitLab 10.3, existing Git remote URLs for projects under the
+ namespace redirect to the new remote URL. Every time you push/pull to a
+ repository that has changed its location, a warning message to update
+ your remote is displayed instead of rejecting your action.
+ This means that any automation scripts, or Git clients continue to
+ work after a rename, making any transition a lot smoother.
+- The redirects are available as long as the original path is not claimed by
+ another group, user or project.
+
<!-- ## Troubleshooting
Include any troubleshooting steps that you can foresee. If you know beforehand what issues
diff --git a/doc/user/project/settings/index.md b/doc/user/project/settings/index.md
index aa41f1c0233..fb492575c14 100644
--- a/doc/user/project/settings/index.md
+++ b/doc/user/project/settings/index.md
@@ -79,7 +79,7 @@ Use the switches to enable or disable the following features:
| **Issues** | ✓ | Activates the GitLab issues tracker |
| **Repository** | ✓ | Enables [repository](../repository/) functionality |
| **Merge Requests** | ✓ | Enables [merge request](../merge_requests/) functionality; also see [Merge request settings](#merge-request-settings) |
-| **Forks** | ✓ | Enables [forking](../index.md#fork-a-project) functionality |
+| **Forks** | ✓ | Enables [forking](../working_with_projects.md#fork-a-project) functionality |
| **Pipelines** | ✓ | Enables [CI/CD](../../../ci/README.md) functionality |
| **Container Registry** | | Activates a [registry](../../packages/container_registry/) for your Docker images |
| **Git Large File Storage** | | Enables the use of [large files](../../../topics/git/lfs/index.md#git-large-file-storage-lfs) |
@@ -221,7 +221,7 @@ To rename a repository:
Remember that this can have unintended side effects since everyone with the
old URL won't be able to push or pull. Read more about what happens with the
-[redirects when renaming repositories](../index.md#redirects-when-changing-repository-paths).
+[redirects when renaming repositories](../repository/index.md#redirects-when-changing-repository-paths).
#### Transferring an existing project into another namespace
@@ -245,7 +245,7 @@ To transfer a project:
Once done, you will be taken to the new project's namespace. At this point,
read what happens with the
-[redirects from the old project to the new one](../index.md#redirects-when-changing-repository-paths).
+[redirects from the old project to the new one](../repository/index.md#redirects-when-changing-repository-paths).
NOTE:
GitLab administrators can use the administration interface to move any project to any
diff --git a/doc/user/project/static_site_editor/index.md b/doc/user/project/static_site_editor/index.md
index e4916d524e6..002eb398406 100644
--- a/doc/user/project/static_site_editor/index.md
+++ b/doc/user/project/static_site_editor/index.md
@@ -72,7 +72,7 @@ First, set up the project. Once done, you can use the Static Site Editor to
1. To get started, create a new project from the [Static Site Editor - Middleman](https://gitlab.com/gitlab-org/project-templates/static-site-editor-middleman)
template. You can either [fork it](../repository/forking_workflow.md#creating-a-fork)
- or [create a new project from a template](../../../gitlab-basics/create-project.md#built-in-templates).
+ or [create a new project from a template](../working_with_projects.md#built-in-templates).
1. Edit the [`data/config.yml`](#static-site-generator-configuration) configuration file
to replace `<username>` and `<project-name>` with the proper values for
your project's path.
diff --git a/doc/user/project/wiki/index.md b/doc/user/project/wiki/index.md
index 087a9069c7c..187fcb5b3f9 100644
--- a/doc/user/project/wiki/index.md
+++ b/doc/user/project/wiki/index.md
@@ -184,7 +184,7 @@ Similar to versioned diff file views, you can see the changes made in a given Wi
Wiki events (creation, deletion, and updates) are tracked by GitLab and
displayed on the [user profile](../../profile/index.md#user-profile),
[group](../../group/index.md#view-group-activity),
-and [project](../index.md#project-activity) activity pages.
+and [project](../working_with_projects.md#project-activity) activity pages.
## Adding and editing wiki pages locally
diff --git a/doc/user/project/working_with_projects.md b/doc/user/project/working_with_projects.md
new file mode 100644
index 00000000000..39a6d70fb9e
--- /dev/null
+++ b/doc/user/project/working_with_projects.md
@@ -0,0 +1,341 @@
+---
+stage: Create
+group: Source Code
+info: "To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/engineering/ux/technical-writing/#assignments"
+---
+
+# Working with projects
+
+Most work in GitLab is done in a [project](../../user/project/index.md). Files and
+code are saved in projects, and most features are in the scope of projects.
+
+## Explore projects
+
+You can explore other popular projects available on GitLab. To explore projects:
+
+1. Click **Projects** in the navigation bar.
+1. Click **Explore Projects**.
+
+GitLab displays a list of projects, sorted by last updated date. To view
+projects with the most [stars](#star-a-project), click **Most stars**. To view
+projects with the largest number of comments in the past month, click **Trending**.
+
+## Create a project
+
+To create a project in GitLab:
+
+1. In your dashboard, click the green **New project** button or use the plus
+ icon in the navigation bar. This opens the **New project** page.
+1. On the **New project** page, choose if you want to:
+ - Create a [blank project](#blank-projects).
+ - Create a project using one of the available [project templates](#project-templates).
+ - [Import a project](../../user/project/import/index.md) from a different repository,
+ if enabled on your GitLab instance. Contact your GitLab administrator if this is unavailable.
+ - Run [CI/CD pipelines for external repositories](../../ci/ci_cd_for_external_repos/index.md). **(PREMIUM)**
+
+NOTE:
+For a list of words that can't be used as project names see
+[Reserved project and group names](../../user/reserved_names.md).
+
+### Blank projects
+
+To create a new blank project on the **New project** page:
+
+1. On the **Blank project** tab, provide the following information:
+ - The name of your project in the **Project name** field. You can't use
+ special characters, but you can use spaces, hyphens, underscores, or even
+ emoji. When adding the name, the **Project slug** auto populates.
+ The slug is what the GitLab instance uses as the URL path to the project.
+ If you want a different slug, input the project name first,
+ then change the slug after.
+ - The path to your project in the **Project slug** field. This is the URL
+ path for your project that the GitLab instance uses. If the
+ **Project name** is blank, it auto populates when you fill in
+ the **Project slug**.
+ - The **Project description (optional)** field enables you to enter a
+ description for your project's dashboard, which helps others
+ understand what your project is about. Though it's not required, it's a good
+ idea to fill this in.
+ - Changing the **Visibility Level** modifies the project's
+ [viewing and access rights](../../public_access/public_access.md) for users.
+ - Selecting the **Initialize repository with a README** option creates a
+ README file so that the Git repository is initialized, has a default branch, and
+ can be cloned.
+1. Click **Create project**.
+
+### Project templates
+
+Project templates can pre-populate a new project with the necessary files to get you
+started quickly.
+
+There are two main types of project templates:
+
+- [Built-in templates](#built-in-templates), sourced from the following groups:
+ - [`project-templates`](https://gitlab.com/gitlab-org/project-templates)
+ - [`pages`](https://gitlab.com/pages)
+- [Custom project templates](#custom-project-templates), for custom templates
+ configured by GitLab administrators and users.
+
+#### Built-in templates
+
+Built-in templates are project templates that are:
+
+- Developed and maintained in the [`project-templates`](https://gitlab.com/gitlab-org/project-templates)
+ and [`pages`](https://gitlab.com/pages) groups.
+- Released with GitLab.
+
+To use a built-in template on the **New project** page:
+
+1. On the **Create from template** tab, select the **Built-in** tab.
+1. From the list of available built-in templates, click the:
+ - **Preview** button to look at the template source itself.
+ - **Use template** button to start creating the project.
+1. Finish creating the project by filling out the project's details. The process is
+ the same as creating a [blank project](#blank-projects).
+
+##### Enterprise templates **(ULTIMATE)**
+
+GitLab is developing Enterprise templates to help you streamline audit management with selected regulatory standards. These templates automatically import issues that correspond to each regulatory requirement.
+
+To create a new project with an Enterprise template, on the **New project** page:
+
+1. On the **Create from template** tab, select the **Built-in** tab.
+1. From the list of available built-in Enterprise templates, click the:
+ - **Preview** button to look at the template source itself.
+ - **Use template** button to start creating the project.
+1. Finish creating the project by filling out the project's details. The process is the same as creating a [blank project](#blank-projects).
+
+Available Enterprise templates include:
+
+- HIPAA Audit Protocol template ([introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/13756) in GitLab 12.10)
+
+NOTE:
+You can improve the existing built-in templates or contribute new ones in the
+[`project-templates`](https://gitlab.com/gitlab-org/project-templates) and
+[`pages`](https://gitlab.com/pages) groups by following [these steps](https://gitlab.com/gitlab-org/project-templates/contributing).
+
+##### Custom project templates **(PREMIUM)**
+
+> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/6860) in [GitLab Premium](https://about.gitlab.com/pricing/) 11.2.
+
+Creating new projects based on custom project templates is a convenient option for
+quickly starting projects.
+
+Custom projects are available at the [instance-level](../../user/admin_area/custom_project_templates.md)
+from the **Instance** tab, or at the [group-level](../../user/group/custom_project_templates.md)
+from the **Group** tab, under the **Create from template** tab.
+
+To use a custom project template on the **New project** page:
+
+1. On the **Create from template** tab, select the **Instance** tab or the **Group** tab.
+1. From the list of available custom templates, click the:
+ - **Preview** button to look at the template source itself.
+ - **Use template** button to start creating the project.
+1. Finish creating the project by filling out the project's details. The process is
+ the same as creating a [blank project](#blank-projects).
+
+## Push to create a new project
+
+> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/-/issues/26388) in GitLab 10.5.
+
+When you create a new repository locally, instead of manually creating a new project in GitLab
+and then [cloning the repository](../../gitlab-basics/start-using-git.md#clone-a-repository)
+locally, you can directly push it to GitLab to create the new project, all without leaving
+your terminal. If you have access rights to the associated namespace, GitLab
+automatically creates a new project under that GitLab namespace with its visibility
+set to Private by default (you can later change it in the [project's settings](../../public_access/public_access.md#how-to-change-project-visibility)).
+
+This can be done by using either SSH or HTTPS:
+
+```shell
+## Git push using SSH
+git push --set-upstream git@gitlab.example.com:namespace/nonexistent-project.git master
+
+## Git push using HTTPS
+git push --set-upstream https://gitlab.example.com/namespace/nonexistent-project.git master
+```
+
+You can pass the flag `--tags` to the `git push` command to export existing repository tags.
+
+Once the push finishes successfully, a remote message indicates
+the command to set the remote and the URL to the new project:
+
+```plaintext
+remote:
+remote: The private project namespace/nonexistent-project was created.
+remote:
+remote: To configure the remote, run:
+remote: git remote add origin https://gitlab.example.com/namespace/nonexistent-project.git
+remote:
+remote: To view the project, visit:
+remote: https://gitlab.example.com/namespace/nonexistent-project
+remote:
+```
+
+## Fork a project
+
+A fork is a copy of an original repository that you put in another namespace
+where you can experiment and apply changes that you can later decide whether or
+not to share, without affecting the original project.
+
+It takes just a few steps to [fork a project in GitLab](repository/forking_workflow.md#creating-a-fork).
+
+## Star a project
+
+You can star a project to make it easier to find projects you frequently use.
+The number of stars a project has can indicate its popularity.
+
+To star a project:
+
+1. Go to the home page of the project you want to star.
+1. In the upper right corner of the page, click **Star**.
+
+To view your starred projects:
+
+1. Click **Projects** in the navigation bar.
+1. Click **Starred Projects**.
+1. GitLab displays information about your starred projects, including:
+
+ - Project description, including name, description, and icon
+ - Number of times this project has been starred
+ - Number of times this project has been forked
+ - Number of open merge requests
+ - Number of open issues
+
+## Delete a project
+
+To delete a project, first navigate to the home page for that project.
+
+1. Navigate to **Settings > General**.
+1. Expand the **Advanced** section.
+1. Scroll down to the **Delete project** section.
+1. Click **Delete project**
+1. Confirm this action by typing in the expected text.
+
+Projects in personal namespaces are deleted immediately on request. For information on delayed deletion of projects in a group, please see [Enabling delayed project removal](../group/index.md#enabling-delayed-project-removal).
+
+## Project settings
+
+Set the project's visibility level and the access levels to its various pages
+and perform actions like archiving, renaming or transferring a project.
+
+Read through the documentation on [project settings](settings/index.md).
+
+## Project activity
+
+To view the activity of a project, navigate to **Project overview > Activity**.
+From there, you can click on the tabs to see **All** the activity, or see it
+filtered by **Push events**, **Merge events**, **Issue events**, **Comments**,
+**Team**, and **Wiki**.
+
+### Leave a project
+
+**Leave project** only displays on the project's dashboard
+when a project is part of a group (under a
+[group namespace](../group/index.md#namespaces)).
+If you choose to leave a project you are no longer a project
+member, and cannot contribute.
+
+## Use your project as a Go package
+
+Any project can be used as a Go package. GitLab responds correctly to `go get`
+and `godoc.org` discovery requests, including the
+[`go-import`](https://golang.org/cmd/go/#hdr-Remote_import_paths) and
+[`go-source`](https://github.com/golang/gddo/wiki/Source-Code-Links) meta tags.
+
+Private projects, including projects in subgroups, can be used as a Go package,
+but may require configuration to work correctly. GitLab responds correctly
+to `go get` discovery requests for projects that *are not* in subgroups,
+regardless of authentication or authorization.
+[Authentication](#authenticate-go-requests) is required to use a private project
+in a subgroup as a Go package. Otherwise, GitLab truncates the path for
+private projects in subgroups to the first two segments, causing `go get` to
+fail.
+
+GitLab implements its own Go proxy. This feature must be enabled by an
+administrator and requires additional configuration. See [GitLab Go
+Proxy](../packages/go_proxy/index.md).
+
+### Disable Go module features for private projects
+
+In Go 1.12 and later, Go queries module proxies and checksum databases in the
+process of [fetching a
+module](../../development/go_guide/dependencies.md#fetching). This can be
+selectively disabled with `GOPRIVATE` (disable both),
+[`GONOPROXY`](../../development/go_guide/dependencies.md#proxies) (disable proxy
+queries), and [`GONOSUMDB`](../../development/go_guide/dependencies.md#fetching)
+(disable checksum queries).
+
+`GOPRIVATE`, `GONOPROXY`, and `GONOSUMDB` are comma-separated lists of Go
+modules and Go module prefixes. For example,
+`GOPRIVATE=gitlab.example.com/my/private/project` disables queries for that
+one project, but `GOPRIVATE=gitlab.example.com` disables queries for *all*
+projects on GitLab.com. Go does not query module proxies if the module name or a
+prefix of it appears in `GOPRIVATE` or `GONOPROXY`. Go does not query checksum
+databases if the module name or a prefix of it appears in `GONOPRIVATE` or
+`GONOSUMDB`.
+
+### Authenticate Go requests
+
+To authenticate requests to private projects made by Go, use a [`.netrc`
+file](https://ec.haxx.se/usingcurl-netrc.html) and a [personal access
+token](../profile/personal_access_tokens.md) in the password field. **This only
+works if your GitLab instance can be accessed with HTTPS.** The `go` command
+does not transmit credentials over insecure connections. This authenticates
+all HTTPS requests made directly by Go, but does not authenticate requests made
+through Git.
+
+For example:
+
+```plaintext
+machine gitlab.example.com
+login <gitlab_user_name>
+password <personal_access_token>
+```
+
+NOTE:
+On Windows, Go reads `~/_netrc` instead of `~/.netrc`.
+
+### Authenticate Git fetches
+
+If a module cannot be fetched from a proxy, Go falls back to using Git (for
+GitLab projects). Git uses `.netrc` to authenticate requests. You can also
+configure Git to either:
+
+- Embed specific credentials in the request URL.
+- Use SSH instead of HTTPS, as Go always uses HTTPS to fetch Git repositories.
+
+```shell
+# Embed credentials in any request to GitLab.com:
+git config --global url."https://${user}:${personal_access_token}@gitlab.example.com".insteadOf "https://gitlab.example.com"
+
+# Use SSH instead of HTTPS:
+git config --global url."git@gitlab.example.com".insteadOf "https://gitlab.example.com"
+```
+
+## Access project page with project ID
+
+> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/-/issues/53671) in GitLab 11.8.
+
+To quickly access a project from the GitLab UI using the project ID,
+visit the `/projects/:id` URL in your browser or other tool accessing the project.
+
+## Project's landing page
+
+The project's landing page shows different information depending on
+the project's visibility settings and user permissions.
+
+For public projects, and to members of internal and private projects
+with [permissions to view the project's code](../permissions.md#project-members-permissions):
+
+- The content of a
+ [`README` or an index file](repository/#repository-readme-and-index-files)
+ is displayed (if any), followed by the list of directories in the
+ project's repository.
+- If the project doesn't contain either of these files, the
+ visitor sees the list of files and directories of the repository.
+
+For users without permissions to view the project's code, GitLab displays:
+
+- The wiki homepage, if any.
+- The list of issues in the project.
diff --git a/doc/user/search/index.md b/doc/user/search/index.md
index 7ea1c4cb307..ffd331248be 100644
--- a/doc/user/search/index.md
+++ b/doc/user/search/index.md
@@ -193,7 +193,7 @@ You can search through your projects from the left menu, by clicking the menu ba
On the field **Filter by name**, type the project or group name you want to find, and GitLab
filters them for you as you type.
-You can also look for the projects you [starred](../project/index.md#star-a-project) (**Starred projects**).
+You can also look for the projects you [starred](../project/working_with_projects.md#star-a-project) (**Starred projects**).
You can **Explore** all public and internal projects available in GitLab.com, from which you can filter by visibility,
through **Trending**, best rated with **Most stars**, or **All** of them.