diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2023-12-12 12:12:56 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2023-12-12 12:12:56 +0300 |
commit | 2d560e614a2d5feea84288c2d1f50b40d796f97a (patch) | |
tree | 8a6a18e6f5befc04de3db43554899aced9af5fd3 /doc | |
parent | d89147da045b9d00c4e35de3c7b39ed2b02ef7a6 (diff) |
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'doc')
-rw-r--r-- | doc/api/graphql/reference/index.md | 2 | ||||
-rw-r--r-- | doc/api/member_roles.md | 4 | ||||
-rw-r--r-- | doc/development/bitbucket_server_importer.md | 84 | ||||
-rw-r--r-- | doc/development/documentation/styleguide/word_list.md | 8 | ||||
-rw-r--r-- | doc/user/custom_roles.md | 2 | ||||
-rw-r--r-- | doc/user/project/working_with_projects.md | 4 |
6 files changed, 94 insertions, 10 deletions
diff --git a/doc/api/graphql/reference/index.md b/doc/api/graphql/reference/index.md index 7c7a4402146..92972094891 100644 --- a/doc/api/graphql/reference/index.md +++ b/doc/api/graphql/reference/index.md @@ -8136,7 +8136,7 @@ Input type: `VulnerabilitiesRemoveAllFromProjectInput` | Name | Type | Description | | ---- | ---- | ----------- | | <a id="mutationvulnerabilitiesremoveallfromprojectclientmutationid"></a>`clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | -| <a id="mutationvulnerabilitiesremoveallfromprojectprojectids"></a>`projectIds` | [`[ProjectID!]!`](#projectid) | IDs of project for which all Vulnerabilities should be removed. The deletion will happen in the background so the changes will not be visible immediately. Does not work if `enable_remove_all_vulnerabilties_from_project_mutation` feature flag is disabled. | +| <a id="mutationvulnerabilitiesremoveallfromprojectprojectids"></a>`projectIds` | [`[ProjectID!]!`](#projectid) | IDs of project for which all Vulnerabilities should be removed. The deletion will happen in the background so the changes will not be visible immediately. | #### Fields diff --git a/doc/api/member_roles.md b/doc/api/member_roles.md index 83e130c1d51..24ac7099004 100644 --- a/doc/api/member_roles.md +++ b/doc/api/member_roles.md @@ -16,10 +16,10 @@ info: To determine the technical writer assigned to the Stage/Group associated w > - [Feature flag `admin_merge_request` removed](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/132578) in GitLab 16.5. > - [Admin group members introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/131914) in GitLab 16.5 [with a flag](../administration/feature_flags.md) named `admin_group_member`. Disabled by default. The feature flag has been removed in GitLab 16.6. > - [Manage project access tokens introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/132342) in GitLab 16.5 in [with a flag](../administration/feature_flags.md) named `manage_project_access_tokens`. Disabled by default. -> - [Archive project introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/134998) in GitLab 16.6 in [with a flag](../administration/feature_flags.md) named `archive_project`. Disabled by default. +> - [Archive project introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/134998) in GitLab 16.7. FLAG: -On self-managed GitLab, by default these features are not available. To make them available, an administrator can [enable the feature flags](../administration/feature_flags.md) named `admin_group_member`, `manage_project_access_tokens` and `archive_project`. +On self-managed GitLab, by default these features are not available. To make them available, an administrator can [enable the feature flags](../administration/feature_flags.md) named `admin_group_member` and `manage_project_access_tokens`. On GitLab.com, these features are not available. ## List all member roles of a group diff --git a/doc/development/bitbucket_server_importer.md b/doc/development/bitbucket_server_importer.md new file mode 100644 index 00000000000..3a1f5a4febd --- /dev/null +++ b/doc/development/bitbucket_server_importer.md @@ -0,0 +1,84 @@ +--- +stage: none +group: unassigned +info: Any user with at least the Maintainer role can merge updates to this content. For details, see https://docs.gitlab.com/ee/development/development_processes.html#development-guidelines-review. +--- + +# Bitbucket Server importer developer documentation + +## Prerequisites + +To test imports, you need a Bitbucket Server instance running locally. For information on running a local instance, see +[these instructions](https://gitlab.com/gitlab-org/manage/import-and-integrate/team/-/blob/main/integrations/bitbucket_server.md). + +## Code structure + +The importer's codebase is broken up into the following directories: + +- `lib/gitlab/bitbucket_server_import`: this directory contains most of the code such as + the classes used for importing resources. +- `app/workers/gitlab/bitbucket_server_import`: this directory contains the Sidekiq + workers. + +## How imports advance + +When a Bitbucket Server project is imported, work is divided into separate stages, with +each stage consisting of a set of Sidekiq jobs that are executed. + +Between every stage, a job called `Gitlab::BitbucketServerImport::AdvanceStageWorker` +is scheduled that periodically checks if all work of the current stage is completed. If +all the work is complete, the job advances the import process to the next stage. + +## Stages + +### 1. Stage::ImportRepositoryWorker + +This worker imports the repository and schedules the next stage when +done. + +### 2. Stage::ImportPullRequestsWorker + +This worker imports all pull requests. For every pull request, a job for the +`Gitlab::BitbucketImport::ImportPullRequestWorker` worker is scheduled. + +Bitbucket Server keeps tracks of references for open pull requests in +`refs/heads/pull-requests`, but closed and merged requests get moved +into hidden internal refs under `stash-refs/pull-requests`. + +As a result, they are not fetched by default. To prevent merge requests from not having +commits and therefore having empty diffs, we fetch affected source and target +commits from the server before importing the pull request. +We save the fetched commits as refs so that Git doesn't remove them, which can happen +if they are unused. +Source commits are saved as `#{commit}:refs/merge-requests/#{pull_request.iid}/head` +and target commits are saved as `#{commit}:refs/keep-around/#{commit}`. + +When creating a pull request, we need to match Bitbucket users with GitLab users for +the author and reviewers. Whenever a matching user is found, the GitLab user ID is cached +for 24 hours so that it doesn't have to be searched for again. + +### 3. Stage::ImportNotesWorker + +This worker imports notes (comments) for all merge requests. + +For every merge request, a job for the `Gitlab::BitbucketServerImport::ImportPullRequestNotesWorker` +worker is scheduled which imports all standalone comments, inline comments, merge events, and +approved events for the merge request. + +### 4. Stage::ImportLfsObjectsWorker + +Imports LFS objects from the source project by scheduling a +`Gitlab::BitbucketServerImport::ImportLfsObjectsWorker` job for every LFS object. + +### 5. Stage::FinishImportWorker + +This worker completes the import process by performing some housekeeping +such as marking the import as completed. + +## Pull request mentions + +Pull request descriptions and notes can contain @mentions to users. If a user with the +same email does not exist on GitLab, this can lead to incorrect users being tagged. + +To get around this, we build a cache containing all users who have access to the Bitbucket +project and then convert mentions in pull request descriptions and notes. diff --git a/doc/development/documentation/styleguide/word_list.md b/doc/development/documentation/styleguide/word_list.md index 913683c936d..c09f85134cf 100644 --- a/doc/development/documentation/styleguide/word_list.md +++ b/doc/development/documentation/styleguide/word_list.md @@ -222,8 +222,8 @@ Try to avoid **below** when referring to an example or table in a documentation Use uppercase for **Beta**. For example: **The XYZ feature is in Beta.** or **This Beta release is ready to test.** -You might also want to link to [this section](../../../policy/experiment-beta-support.md#beta) -in the handbook when writing about Beta features. +You might also want to link to [this topic](../../../policy/experiment-beta-support.md#beta) +when writing about Beta features. ## blacklist @@ -626,8 +626,8 @@ Use **expand** instead of **open** when you are talking about expanding or colla Use uppercase for **Experiment**. For example: **The XYZ feature is an Experiment.** or **This Experiment is ready to test.** -You might also want to link to [this section](../../../policy/experiment-beta-support.md#experiment) -in the handbook when writing about Experiment features. +You might also want to link to [this topic](../../../policy/experiment-beta-support.md#experiment) +when writing about Experiment features. ## export diff --git a/doc/user/custom_roles.md b/doc/user/custom_roles.md index 3741424bdf1..1f3628efa39 100644 --- a/doc/user/custom_roles.md +++ b/doc/user/custom_roles.md @@ -15,7 +15,7 @@ info: To determine the technical writer assigned to the Stage/Group associated w > - Ability to create and remove a custom role with the UI [introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/393235) in GitLab 16.4. > - Ability to manage group members [introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/17364) in GitLab 16.5. > - Ability to manage project access tokens [introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/421778) in GitLab 16.5 [with a flag](../administration/feature_flags.md) named `manage_project_access_tokens`. -> - Ability to archive projects [introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/425957) in GitLab 16.6 in [with a flag](../administration/feature_flags.md) named `archive_project`. Disabled by default. +> - Ability to archive projects [introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/425957) in GitLab 16.7. > - Ability to use the UI to add a user to your group with a custom role, change a user's custom role, or remove a custom role from a group member [introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/393239) in GitLab 16.7. Custom roles allow group Owners or instance administrators to create roles diff --git a/doc/user/project/working_with_projects.md b/doc/user/project/working_with_projects.md index 744b5406707..1eadf0a7d92 100644 --- a/doc/user/project/working_with_projects.md +++ b/doc/user/project/working_with_projects.md @@ -246,7 +246,7 @@ go to `https://gitlab.example.com/projects/<id>`. To copy the project ID: 1. On the left sidebar, select **Search or go to** and find your project. -1. On the project overview page, in the upper-right corner, select **Actions** (**{ellipsis_v})**. +1. On the project overview page, in the upper-right corner, select **Actions** (**{ellipsis_v}**). 1. Select **Copy project ID**. For example, if in your personal namespace `alex` you have a project `my-project` with the ID `123456`, you can access the project @@ -288,7 +288,7 @@ Prerequisites: To leave a project: 1. On the left sidebar, select **Search or go to** and find your project. -1. On the project overview page, in the upper-right corner, select **Actions** (**{ellipsis_v})**. +1. On the project overview page, in the upper-right corner, select **Actions** (**{ellipsis_v}**). 1. Select **Leave project**, then **Leave project** again.. ## Add a compliance framework to a project **(PREMIUM)** |