Add latest changes from gitlab-org/gitlab@master
This commit is contained in:
parent
427451410d
commit
17b492274d
|
|
@ -1,9 +1,9 @@
|
||||||
# `build_from_dir` can't find Dockerfile when `.dockerignore` is "*"
|
# `build_from_dir` can't find Dockerfile when `.dockerignore` is "*"
|
||||||
# See https://github.com/swipely/docker-api/issues/484
|
# See https://github.com/swipely/docker-api/issues/484
|
||||||
# Ignore all folders except qa/, config/initializers and the root of lib/ since
|
# Ignore all folders except the following files we need to build the QA image:
|
||||||
# the files we need to build the QA image are in these folders.
|
|
||||||
# Following are the files we need:
|
|
||||||
# - ./config/initializers/0_inject_enterprise_edition_module.rb
|
# - ./config/initializers/0_inject_enterprise_edition_module.rb
|
||||||
|
# - ./config/feature_flags
|
||||||
|
# - ./ee/config/feature_flags
|
||||||
# - ./ee/app/models/license.rb
|
# - ./ee/app/models/license.rb
|
||||||
# - ./lib/gitlab_edition.rb
|
# - ./lib/gitlab_edition.rb
|
||||||
# - ./lib/gitlab/utils.rb
|
# - ./lib/gitlab/utils.rb
|
||||||
|
|
@ -28,7 +28,9 @@
|
||||||
/docker/
|
/docker/
|
||||||
/ee/bin/
|
/ee/bin/
|
||||||
/ee/changelogs/
|
/ee/changelogs/
|
||||||
/ee/config/
|
/ee/config/events/
|
||||||
|
/ee/config/metrics/
|
||||||
|
/ee/config/routes/
|
||||||
/ee/db/
|
/ee/db/
|
||||||
/ee/fixtures/
|
/ee/fixtures/
|
||||||
/ee/lib/
|
/ee/lib/
|
||||||
|
|
|
||||||
|
|
@ -87,6 +87,7 @@ class Projects::MergeRequestsController < Projects::MergeRequests::ApplicationCo
|
||||||
:rebase,
|
:rebase,
|
||||||
:discussions,
|
:discussions,
|
||||||
:pipelines,
|
:pipelines,
|
||||||
|
:coverage_reports,
|
||||||
:test_reports,
|
:test_reports,
|
||||||
:codequality_mr_diff_reports,
|
:codequality_mr_diff_reports,
|
||||||
:codequality_reports,
|
:codequality_reports,
|
||||||
|
|
|
||||||
|
|
@ -14,7 +14,7 @@ class MergeRequestPolicy < IssuablePolicy
|
||||||
prevent :accept_merge_request
|
prevent :accept_merge_request
|
||||||
end
|
end
|
||||||
|
|
||||||
rule { can?(:update_merge_request) }.policy do
|
rule { can?(:update_merge_request) & is_project_member }.policy do
|
||||||
enable :approve_merge_request
|
enable :approve_merge_request
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -17,9 +17,9 @@
|
||||||
.row.gl-mt-3.js-search-settings-section
|
.row.gl-mt-3.js-search-settings-section
|
||||||
.col-lg-4.profile-settings-sidebar
|
.col-lg-4.profile-settings-sidebar
|
||||||
%h4.gl-mt-0
|
%h4.gl-mt-0
|
||||||
= s_('Profiles|Two-Factor Authentication')
|
= s_('Profiles|Two-factor authentication')
|
||||||
%p
|
%p
|
||||||
= s_("Profiles|Increase your account's security by enabling Two-Factor Authentication (2FA)")
|
= s_("Profiles|Increase your account's security by enabling two-factor authentication (2FA).")
|
||||||
.col-lg-8
|
.col-lg-8
|
||||||
%p
|
%p
|
||||||
#{_('Status')}: #{current_user.two_factor_enabled? ? _('Enabled') : _('Disabled')}
|
#{_('Status')}: #{current_user.two_factor_enabled? ? _('Enabled') : _('Disabled')}
|
||||||
|
|
@ -35,9 +35,9 @@
|
||||||
.row.gl-mt-3.js-search-settings-section
|
.row.gl-mt-3.js-search-settings-section
|
||||||
.col-lg-4.profile-settings-sidebar
|
.col-lg-4.profile-settings-sidebar
|
||||||
%h4.gl-mt-0
|
%h4.gl-mt-0
|
||||||
= s_('Profiles|Social sign-in')
|
= s_('Profiles|Service sign-in')
|
||||||
%p
|
%p
|
||||||
= s_('Profiles|Activate signin with one of the following services')
|
= s_('Profiles|Connect a service for sign-in.')
|
||||||
.col-lg-8
|
.col-lg-8
|
||||||
= render 'providers', providers: button_based_providers, group_saml_identities: local_assigns[:group_saml_identities]
|
= render 'providers', providers: button_based_providers, group_saml_identities: local_assigns[:group_saml_identities]
|
||||||
.col-lg-12
|
.col-lg-12
|
||||||
|
|
|
||||||
|
|
@ -1,8 +0,0 @@
|
||||||
---
|
|
||||||
name: delayed_project_import_schedule_worker
|
|
||||||
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/87438
|
|
||||||
rollout_issue_url: https://gitlab.com/gitlab-com/gl-infra/scalability/-/issues/1681
|
|
||||||
milestone: '15.0'
|
|
||||||
type: development
|
|
||||||
group: group::scalability
|
|
||||||
default_enabled: false
|
|
||||||
|
|
@ -279,6 +279,96 @@ To switch from Unicorn to Puma:
|
||||||
1. Optional. For multi-node deployments, configure the load balancer to use the
|
1. Optional. For multi-node deployments, configure the load balancer to use the
|
||||||
[readiness check](../load_balancer.md#readiness-check).
|
[readiness check](../load_balancer.md#readiness-check).
|
||||||
|
|
||||||
|
## Troubleshooting Puma
|
||||||
|
|
||||||
|
### 502 Gateway Timeout after Puma spins at 100% CPU
|
||||||
|
|
||||||
|
This error occurs when the Web server times out (default: 60 s) after not
|
||||||
|
hearing back from the Puma worker. If the CPU spins to 100% while this is in
|
||||||
|
progress, there may be something taking longer than it should.
|
||||||
|
|
||||||
|
To fix this issue, we first need to figure out what is happening. The
|
||||||
|
following tips are only recommended if you do not mind users being affected by
|
||||||
|
downtime. Otherwise, skip to the next section.
|
||||||
|
|
||||||
|
1. Load the problematic URL
|
||||||
|
1. Run `sudo gdb -p <PID>` to attach to the Puma process.
|
||||||
|
1. In the GDB window, type:
|
||||||
|
|
||||||
|
```plaintext
|
||||||
|
call (void) rb_backtrace()
|
||||||
|
```
|
||||||
|
|
||||||
|
1. This forces the process to generate a Ruby backtrace. Check
|
||||||
|
`/var/log/gitlab/puma/puma_stderr.log` for the backtrace. For example, you may see:
|
||||||
|
|
||||||
|
```plaintext
|
||||||
|
from /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/metrics/sampler.rb:33:in `block in start'
|
||||||
|
from /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/metrics/sampler.rb:33:in `loop'
|
||||||
|
from /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/metrics/sampler.rb:36:in `block (2 levels) in start'
|
||||||
|
from /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/metrics/sampler.rb:44:in `sample'
|
||||||
|
from /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/metrics/sampler.rb:68:in `sample_objects'
|
||||||
|
from /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/metrics/sampler.rb:68:in `each_with_object'
|
||||||
|
from /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/metrics/sampler.rb:68:in `each'
|
||||||
|
from /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/metrics/sampler.rb:69:in `block in sample_objects'
|
||||||
|
from /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/metrics/sampler.rb:69:in `name'
|
||||||
|
```
|
||||||
|
|
||||||
|
1. To see the current threads, run:
|
||||||
|
|
||||||
|
```plaintext
|
||||||
|
thread apply all bt
|
||||||
|
```
|
||||||
|
|
||||||
|
1. Once you're done debugging with `gdb`, be sure to detach from the process and exit:
|
||||||
|
|
||||||
|
```plaintext
|
||||||
|
detach
|
||||||
|
exit
|
||||||
|
```
|
||||||
|
|
||||||
|
GDB reports an error if the Puma process terminates before you can run these commands.
|
||||||
|
To buy more time, you can always raise the
|
||||||
|
Puma worker timeout. For omnibus users, you can edit `/etc/gitlab/gitlab.rb` and
|
||||||
|
increase it from 60 seconds to 600:
|
||||||
|
|
||||||
|
```ruby
|
||||||
|
gitlab_rails['env'] = {
|
||||||
|
'GITLAB_RAILS_RACK_TIMEOUT' => 600
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
For source installations, set the environment variable.
|
||||||
|
Refer to [Puma Worker timeout](../operations/puma.md#change-the-worker-timeout).
|
||||||
|
|
||||||
|
[Reconfigure](../restart_gitlab.md#omnibus-gitlab-reconfigure) GitLab for the changes to take effect.
|
||||||
|
|
||||||
|
#### Troubleshooting without affecting other users
|
||||||
|
|
||||||
|
The previous section attached to a running Puma process, which may have
|
||||||
|
undesirable effects on users trying to access GitLab during this time. If you
|
||||||
|
are concerned about affecting others during a production system, you can run a
|
||||||
|
separate Rails process to debug the issue:
|
||||||
|
|
||||||
|
1. Log in to your GitLab account.
|
||||||
|
1. Copy the URL that is causing problems (for example, `https://gitlab.com/ABC`).
|
||||||
|
1. Create a Personal Access Token for your user (User Settings -> Access Tokens).
|
||||||
|
1. Bring up the [GitLab Rails console.](../operations/rails_console.md#starting-a-rails-console-session)
|
||||||
|
1. At the Rails console, run:
|
||||||
|
|
||||||
|
```ruby
|
||||||
|
app.get '<URL FROM STEP 2>/?private_token=<TOKEN FROM STEP 3>'
|
||||||
|
```
|
||||||
|
|
||||||
|
For example:
|
||||||
|
|
||||||
|
```ruby
|
||||||
|
app.get 'https://gitlab.com/gitlab-org/gitlab-foss/-/issues/1?private_token=123456'
|
||||||
|
```
|
||||||
|
|
||||||
|
1. In a new window, run `top`. It should show this Ruby process using 100% CPU. Write down the PID.
|
||||||
|
1. Follow step 2 from the previous section on using GDB.
|
||||||
|
|
||||||
## Related topics
|
## Related topics
|
||||||
|
|
||||||
- [Use a dedicated metrics server to export web metrics](../monitoring/prometheus/puma_exporter.md)
|
- [Use a dedicated metrics server to export web metrics](../monitoring/prometheus/puma_exporter.md)
|
||||||
|
|
|
||||||
|
|
@ -166,94 +166,6 @@ in Omnibus, run as root:
|
||||||
Many of the tips to diagnose issues below apply to many different situations. We use one
|
Many of the tips to diagnose issues below apply to many different situations. We use one
|
||||||
concrete example to illustrate what you can do to learn what is going wrong.
|
concrete example to illustrate what you can do to learn what is going wrong.
|
||||||
|
|
||||||
### 502 Gateway Timeout after Unicorn spins at 100% CPU
|
|
||||||
|
|
||||||
This error occurs when the Web server times out (default: 60 s) after not
|
|
||||||
hearing back from the Unicorn worker. If the CPU spins to 100% while this in
|
|
||||||
progress, there may be something taking longer than it should.
|
|
||||||
|
|
||||||
To fix this issue, we first need to figure out what is happening. The
|
|
||||||
following tips are only recommended if you do not mind users being affected by
|
|
||||||
downtime. Otherwise skip to the next section.
|
|
||||||
|
|
||||||
1. Load the problematic URL
|
|
||||||
1. Run `sudo gdb -p <PID>` to attach to the Puma process.
|
|
||||||
1. In the GDB window, type:
|
|
||||||
|
|
||||||
```plaintext
|
|
||||||
call (void) rb_backtrace()
|
|
||||||
```
|
|
||||||
|
|
||||||
1. This forces the process to generate a Ruby backtrace. Check
|
|
||||||
`/var/log/gitlab/puma/puma_stderr.log` for the backtrace. For example, you may see:
|
|
||||||
|
|
||||||
```plaintext
|
|
||||||
from /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/metrics/sampler.rb:33:in `block in start'
|
|
||||||
from /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/metrics/sampler.rb:33:in `loop'
|
|
||||||
from /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/metrics/sampler.rb:36:in `block (2 levels) in start'
|
|
||||||
from /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/metrics/sampler.rb:44:in `sample'
|
|
||||||
from /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/metrics/sampler.rb:68:in `sample_objects'
|
|
||||||
from /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/metrics/sampler.rb:68:in `each_with_object'
|
|
||||||
from /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/metrics/sampler.rb:68:in `each'
|
|
||||||
from /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/metrics/sampler.rb:69:in `block in sample_objects'
|
|
||||||
from /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/metrics/sampler.rb:69:in `name'
|
|
||||||
```
|
|
||||||
|
|
||||||
1. To see the current threads, run:
|
|
||||||
|
|
||||||
```plaintext
|
|
||||||
thread apply all bt
|
|
||||||
```
|
|
||||||
|
|
||||||
1. Once you're done debugging with `gdb`, be sure to detach from the process and exit:
|
|
||||||
|
|
||||||
```plaintext
|
|
||||||
detach
|
|
||||||
exit
|
|
||||||
```
|
|
||||||
|
|
||||||
If the Puma process terminates before you are able to run these
|
|
||||||
commands, GDB reports an error. To buy more time, you can always raise the
|
|
||||||
Puma worker timeout. For omnibus users, you can edit `/etc/gitlab/gitlab.rb` and
|
|
||||||
increase it from 60 seconds to 600:
|
|
||||||
|
|
||||||
```ruby
|
|
||||||
gitlab_rails['env'] = {
|
|
||||||
'GITLAB_RAILS_RACK_TIMEOUT' => 600
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
For source installations, set the environment variable.
|
|
||||||
Refer to [Puma Worker timeout](../operations/puma.md#change-the-worker-timeout).
|
|
||||||
|
|
||||||
[Reconfigure](../restart_gitlab.md#omnibus-gitlab-reconfigure) GitLab for the changes to take effect.
|
|
||||||
|
|
||||||
#### Troubleshooting without affecting other users
|
|
||||||
|
|
||||||
The previous section attached to a running Unicorn process, and this may have
|
|
||||||
undesirable effects for users trying to access GitLab during this time. If you
|
|
||||||
are concerned about affecting others during a production system, you can run a
|
|
||||||
separate Rails process to debug the issue:
|
|
||||||
|
|
||||||
1. Log in to your GitLab account.
|
|
||||||
1. Copy the URL that is causing problems (for example, `https://gitlab.com/ABC`).
|
|
||||||
1. Create a Personal Access Token for your user (User Settings -> Access Tokens).
|
|
||||||
1. Bring up the [GitLab Rails console.](../operations/rails_console.md#starting-a-rails-console-session)
|
|
||||||
1. At the Rails console, run:
|
|
||||||
|
|
||||||
```ruby
|
|
||||||
app.get '<URL FROM STEP 2>/?private_token=<TOKEN FROM STEP 3>'
|
|
||||||
```
|
|
||||||
|
|
||||||
For example:
|
|
||||||
|
|
||||||
```ruby
|
|
||||||
app.get 'https://gitlab.com/gitlab-org/gitlab-foss/-/issues/1?private_token=123456'
|
|
||||||
```
|
|
||||||
|
|
||||||
1. In a new window, run `top`. It should show this Ruby process using 100% CPU. Write down the PID.
|
|
||||||
1. Follow step 2 from the previous section on using GDB.
|
|
||||||
|
|
||||||
### GitLab: API is not accessible
|
### GitLab: API is not accessible
|
||||||
|
|
||||||
This often occurs when GitLab Shell attempts to request authorization via the
|
This often occurs when GitLab Shell attempts to request authorization via the
|
||||||
|
|
|
||||||
|
|
@ -5481,7 +5481,8 @@ Input type: `VulnerabilityFindingDismissInput`
|
||||||
| <a id="mutationvulnerabilityfindingdismissclientmutationid"></a>`clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. |
|
| <a id="mutationvulnerabilityfindingdismissclientmutationid"></a>`clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. |
|
||||||
| <a id="mutationvulnerabilityfindingdismisscomment"></a>`comment` | [`String`](#string) | Comment why finding should be dismissed. |
|
| <a id="mutationvulnerabilityfindingdismisscomment"></a>`comment` | [`String`](#string) | Comment why finding should be dismissed. |
|
||||||
| <a id="mutationvulnerabilityfindingdismissdismissalreason"></a>`dismissalReason` | [`VulnerabilityDismissalReason`](#vulnerabilitydismissalreason) | Reason why finding should be dismissed. |
|
| <a id="mutationvulnerabilityfindingdismissdismissalreason"></a>`dismissalReason` | [`VulnerabilityDismissalReason`](#vulnerabilitydismissalreason) | Reason why finding should be dismissed. |
|
||||||
| <a id="mutationvulnerabilityfindingdismissid"></a>`id` | [`VulnerabilitiesFindingID!`](#vulnerabilitiesfindingid) | ID of the finding to be dismissed. |
|
| <a id="mutationvulnerabilityfindingdismissid"></a>`id` **{warning-solid}** | [`VulnerabilitiesFindingID`](#vulnerabilitiesfindingid) | **Deprecated:** Use `uuid`. Deprecated in 15.2. |
|
||||||
|
| <a id="mutationvulnerabilityfindingdismissuuid"></a>`uuid` | [`String`](#string) | UUID of the finding to be dismissed. |
|
||||||
|
|
||||||
#### Fields
|
#### Fields
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -18,6 +18,8 @@ CI/CD minutes used on GitLab SaaS macOS runners are included in your CI/CD minut
|
||||||
|
|
||||||
Refer to the CI/CD minutes [cost factor](../../../ci/pipelines/cicd_minutes.md#cost-factor) for the cost factor applied to the GitLab SaaS macOS runners.
|
Refer to the CI/CD minutes [cost factor](../../../ci/pipelines/cicd_minutes.md#cost-factor) for the cost factor applied to the GitLab SaaS macOS runners.
|
||||||
|
|
||||||
|
Jobs handled by macOS shared runners on GitLab.com **time out after 2 hours**, regardless of the timeout configured in a project.
|
||||||
|
|
||||||
## Access request process
|
## Access request process
|
||||||
|
|
||||||
While in limited availability, to run CI jobs on the macOS runners, GitLab SaaS customer namespaces must be explicitly added to the macOS `allow-list`. Customers who participated in the beta have already been added.
|
While in limited availability, to run CI jobs on the macOS runners, GitLab SaaS customer namespaces must be explicitly added to the macOS `allow-list`. Customers who participated in the beta have already been added.
|
||||||
|
|
|
||||||
|
|
@ -218,4 +218,4 @@ To fix this issue, you must activate GitHub sign-in in GitLab:
|
||||||
1. On the top bar, in the top right corner, select your avatar.
|
1. On the top bar, in the top right corner, select your avatar.
|
||||||
1. Select **Edit profile**.
|
1. Select **Edit profile**.
|
||||||
1. On the left sidebar, select **Account**.
|
1. On the left sidebar, select **Account**.
|
||||||
1. In the **Social sign-in** section, select **Connect to GitHub**.
|
1. In the **Service sign-in** section, select **Connect to GitHub**.
|
||||||
|
|
|
||||||
|
|
@ -125,8 +125,8 @@ If you're not an administrator:
|
||||||
1. In the top-right corner, select your avatar.
|
1. In the top-right corner, select your avatar.
|
||||||
1. Select **Edit profile**.
|
1. Select **Edit profile**.
|
||||||
1. On the left sidebar, select **Account**.
|
1. On the left sidebar, select **Account**.
|
||||||
1. In the **Social sign-in** section, select **Connect Kerberos SPNEGO**.
|
1. In the **Service sign-in** section, select **Connect Kerberos SPNEGO**.
|
||||||
If you don't see a **Social sign-in** Kerberos option, follow the
|
If you don't see a **Service sign-in** Kerberos option, follow the
|
||||||
requirements in [Enable single sign-on](#enable-single-sign-on).
|
requirements in [Enable single sign-on](#enable-single-sign-on).
|
||||||
|
|
||||||
In either case, you should now be able to sign in to your GitLab account
|
In either case, you should now be able to sign in to your GitLab account
|
||||||
|
|
|
||||||
Binary file not shown.
|
Before Width: | Height: | Size: 9.2 KiB |
|
|
@ -398,9 +398,7 @@ For example, to unlink the `MyOrg` account:
|
||||||
1. On the top bar, in the top right corner, select your avatar.
|
1. On the top bar, in the top right corner, select your avatar.
|
||||||
1. Select **Edit profile**.
|
1. Select **Edit profile**.
|
||||||
1. On the left sidebar, select **Account**.
|
1. On the left sidebar, select **Account**.
|
||||||
1. In the **Social sign-in** section, select **Disconnect** next to the connected account.
|
1. In the **Service sign-in** section, select **Disconnect** next to the connected account.
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
## Group Sync
|
## Group Sync
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -58,7 +58,7 @@ For user contributions to be mapped, each user must complete the following befor
|
||||||
If they don't match, modify the public name in the Atlassian account settings to match the
|
If they don't match, modify the public name in the Atlassian account settings to match the
|
||||||
username in the Bitbucket account settings.
|
username in the Bitbucket account settings.
|
||||||
|
|
||||||
1. Connect your Bitbucket account in [GitLab profile social sign-in](https://gitlab.com/-/profile/account).
|
1. Connect your Bitbucket account in [GitLab profile service sign-in](https://gitlab.com/-/profile/account).
|
||||||
|
|
||||||
1. [Set your public email](../../profile/index.md#set-your-public-email).
|
1. [Set your public email](../../profile/index.md#set-your-public-email).
|
||||||
|
|
||||||
|
|
@ -97,7 +97,7 @@ If you've accidentally started the import process with the wrong account, follow
|
||||||
the username in the Bitbucket account settings must match the public name in the Atlassian account
|
the username in the Bitbucket account settings must match the public name in the Atlassian account
|
||||||
settings. If these names match but user mapping still fails, the user may have modified their
|
settings. If these names match but user mapping still fails, the user may have modified their
|
||||||
Bitbucket username after connecting their Bitbucket account in the
|
Bitbucket username after connecting their Bitbucket account in the
|
||||||
[GitLab profile social sign-in](https://gitlab.com/-/profile/account).
|
[GitLab profile service sign-in](https://gitlab.com/-/profile/account).
|
||||||
|
|
||||||
To fix this, the user must verify that their Bitbucket external UID in the GitLab database matches their
|
To fix this, the user must verify that their Bitbucket external UID in the GitLab database matches their
|
||||||
current Bitbucket public name, and reconnect if there's a mismatch:
|
current Bitbucket public name, and reconnect if there's a mismatch:
|
||||||
|
|
@ -106,7 +106,7 @@ current Bitbucket public name, and reconnect if there's a mismatch:
|
||||||
|
|
||||||
1. In the API's response, the `identities` attribute contains the Bitbucket account that exists in
|
1. In the API's response, the `identities` attribute contains the Bitbucket account that exists in
|
||||||
the GitLab database. If the `extern_uid` doesn't match the current Bitbucket public name, the
|
the GitLab database. If the `extern_uid` doesn't match the current Bitbucket public name, the
|
||||||
user should reconnect their Bitbucket account in the [GitLab profile social sign-in](https://gitlab.com/-/profile/account).
|
user should reconnect their Bitbucket account in the [GitLab profile service sign-in](https://gitlab.com/-/profile/account).
|
||||||
|
|
||||||
1. Following reconnection, the user should use the API again to verify that their `extern_uid` in
|
1. Following reconnection, the user should use the API again to verify that their `extern_uid` in
|
||||||
the GitLab database now matches their current Bitbucket public name.
|
the GitLab database now matches their current Bitbucket public name.
|
||||||
|
|
|
||||||
|
|
@ -29456,9 +29456,6 @@ msgstr ""
|
||||||
msgid "Profiles|Account scheduled for removal."
|
msgid "Profiles|Account scheduled for removal."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Profiles|Activate signin with one of the following services"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Profiles|Active"
|
msgid "Profiles|Active"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
|
@ -29513,6 +29510,9 @@ msgstr ""
|
||||||
msgid "Profiles|Connect %{provider}"
|
msgid "Profiles|Connect %{provider}"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Profiles|Connect a service for sign-in."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Profiles|Connected Accounts"
|
msgid "Profiles|Connected Accounts"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
|
@ -29591,7 +29591,7 @@ msgstr ""
|
||||||
msgid "Profiles|Incoming email token was successfully reset"
|
msgid "Profiles|Incoming email token was successfully reset"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Profiles|Increase your account's security by enabling Two-Factor Authentication (2FA)"
|
msgid "Profiles|Increase your account's security by enabling two-factor authentication (2FA)."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Profiles|Invalid password"
|
msgid "Profiles|Invalid password"
|
||||||
|
|
@ -29678,15 +29678,15 @@ msgstr ""
|
||||||
msgid "Profiles|Select a service to sign in with."
|
msgid "Profiles|Select a service to sign in with."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Profiles|Service sign-in"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Profiles|Set new profile picture"
|
msgid "Profiles|Set new profile picture"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Profiles|Set your local time zone."
|
msgid "Profiles|Set your local time zone."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Profiles|Social sign-in"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Profiles|Some options are unavailable for LDAP accounts"
|
msgid "Profiles|Some options are unavailable for LDAP accounts"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
|
@ -29720,7 +29720,7 @@ msgstr ""
|
||||||
msgid "Profiles|Title"
|
msgid "Profiles|Title"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Profiles|Two-Factor Authentication"
|
msgid "Profiles|Two-factor authentication"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Profiles|Type your %{confirmationValue} to confirm:"
|
msgid "Profiles|Type your %{confirmationValue} to confirm:"
|
||||||
|
|
|
||||||
|
|
@ -40,8 +40,9 @@ COPY ./config/initializers/0_inject_enterprise_edition_module.rb /home/gitlab/co
|
||||||
# Copy VERSION to ensure the COPY succeeds to copy at least one file since ee/app/models/license.rb isn't present in FOSS
|
# Copy VERSION to ensure the COPY succeeds to copy at least one file since ee/app/models/license.rb isn't present in FOSS
|
||||||
# The [b] part makes ./ee/app/models/license.r[b] a pattern that is allowed to return no files (which is the case in FOSS)
|
# The [b] part makes ./ee/app/models/license.r[b] a pattern that is allowed to return no files (which is the case in FOSS)
|
||||||
COPY VERSION ./ee/app/models/license.r[b] /home/gitlab/ee/app/models/
|
COPY VERSION ./ee/app/models/license.r[b] /home/gitlab/ee/app/models/
|
||||||
COPY ./config/bundler_setup.rb /home/gitlab/config/
|
COPY VERSION ./ee/config/feature_flag[s] /home/gitlab/ee/config/feature_flags/
|
||||||
COPY ./config/feature_flags /home/gitlab/config/feature_flags
|
COPY ./config/feature_flags /home/gitlab/config/feature_flags
|
||||||
|
COPY ./config/bundler_setup.rb /home/gitlab/config/
|
||||||
COPY ./lib/gitlab_edition.rb /home/gitlab/lib/
|
COPY ./lib/gitlab_edition.rb /home/gitlab/lib/
|
||||||
COPY ./lib/gitlab/utils.rb /home/gitlab/lib/gitlab/
|
COPY ./lib/gitlab/utils.rb /home/gitlab/lib/gitlab/
|
||||||
COPY ./INSTALLATION_TYPE ./VERSION /home/gitlab/
|
COPY ./INSTALLATION_TYPE ./VERSION /home/gitlab/
|
||||||
|
|
|
||||||
|
|
@ -72,7 +72,7 @@ RSpec.describe 'Group or Project invitations', :aggregate_failures do
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'when invite is sent before account is created - ldap or social sign in for manual acceptance edge case' do
|
context 'when invite is sent before account is created - ldap or service sign in for manual acceptance edge case' do
|
||||||
let(:user) { create(:user, email: 'user@example.com') }
|
let(:user) { create(:user, email: 'user@example.com') }
|
||||||
|
|
||||||
context 'when invite clicked and not signed in' do
|
context 'when invite clicked and not signed in' do
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,7 @@ RSpec.describe 'Profile > Account', :js do
|
||||||
sign_in(user)
|
sign_in(user)
|
||||||
end
|
end
|
||||||
|
|
||||||
describe 'Social sign-in' do
|
describe 'Service sign-in' do
|
||||||
context 'when an identity does not exist' do
|
context 'when an identity does not exist' do
|
||||||
before do
|
before do
|
||||||
allow(Devise).to receive_messages(omniauth_configs: { google_oauth2: {} })
|
allow(Devise).to receive_messages(omniauth_configs: { google_oauth2: {} })
|
||||||
|
|
|
||||||
|
|
@ -51,7 +51,8 @@ RSpec.describe MergeRequestPolicy do
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'when merge request is public' do
|
context 'when merge request is public' do
|
||||||
let(:merge_request) { create(:merge_request, source_project: project, target_project: project, author: author) }
|
let(:merge_request) { create(:merge_request, source_project: project, target_project: project, author: user) }
|
||||||
|
let(:user) { author }
|
||||||
|
|
||||||
context 'and user is anonymous' do
|
context 'and user is anonymous' do
|
||||||
subject { permissions(nil, merge_request) }
|
subject { permissions(nil, merge_request) }
|
||||||
|
|
@ -61,19 +62,62 @@ RSpec.describe MergeRequestPolicy do
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
describe 'the author, who became a guest' do
|
context 'and user is author' do
|
||||||
subject { permissions(author, merge_request) }
|
subject { permissions(user, merge_request) }
|
||||||
|
|
||||||
it do
|
context 'and the user is a guest' do
|
||||||
is_expected.to be_allowed(:update_merge_request)
|
let(:user) { guest }
|
||||||
|
|
||||||
|
it do
|
||||||
|
is_expected.to be_allowed(:update_merge_request)
|
||||||
|
end
|
||||||
|
|
||||||
|
it do
|
||||||
|
is_expected.to be_allowed(:reopen_merge_request)
|
||||||
|
end
|
||||||
|
|
||||||
|
it do
|
||||||
|
is_expected.to be_allowed(:approve_merge_request)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
it do
|
context 'and the user is a group member' do
|
||||||
is_expected.to be_allowed(:reopen_merge_request)
|
let(:project) { create(:project, :public, group: group) }
|
||||||
|
let(:group) { create(:group) }
|
||||||
|
let(:user) { non_team_member }
|
||||||
|
|
||||||
|
before do
|
||||||
|
group.add_guest(non_team_member)
|
||||||
|
end
|
||||||
|
|
||||||
|
it do
|
||||||
|
is_expected.to be_allowed(:approve_merge_request)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
it do
|
context 'and the user is a member of a shared group' do
|
||||||
is_expected.to be_allowed(:approve_merge_request)
|
let(:user) { non_team_member }
|
||||||
|
|
||||||
|
before do
|
||||||
|
group = create(:group)
|
||||||
|
project.project_group_links.create!(
|
||||||
|
group: group,
|
||||||
|
group_access: Gitlab::Access::DEVELOPER)
|
||||||
|
|
||||||
|
group.add_guest(non_team_member)
|
||||||
|
end
|
||||||
|
|
||||||
|
it do
|
||||||
|
is_expected.to be_allowed(:approve_merge_request)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'and the user is not a project member' do
|
||||||
|
let(:user) { non_team_member }
|
||||||
|
|
||||||
|
it do
|
||||||
|
is_expected.not_to be_allowed(:approve_merge_request)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue