Add latest changes from gitlab-org/gitlab@master
This commit is contained in:
parent
dbc4b385d2
commit
24fca38040
|
@ -48,6 +48,8 @@ tasks:
|
||||||
make gitlab-db-migrate
|
make gitlab-db-migrate
|
||||||
fi
|
fi
|
||||||
cd /workspace/gitlab-development-kit/gitlab
|
cd /workspace/gitlab-development-kit/gitlab
|
||||||
|
# Display which branch we're on
|
||||||
|
git branch --show-current
|
||||||
# Install Lefthook
|
# Install Lefthook
|
||||||
bundle exec lefthook install
|
bundle exec lefthook install
|
||||||
git checkout db/structure.sql
|
git checkout db/structure.sql
|
||||||
|
|
|
@ -7,20 +7,22 @@
|
||||||
.form-group
|
.form-group
|
||||||
= f.label :help_page_text, _('Additional text to show on the Help page'), class: 'label-bold'
|
= f.label :help_page_text, _('Additional text to show on the Help page'), class: 'label-bold'
|
||||||
= f.text_area :help_page_text, class: 'form-control gl-form-input', rows: 4
|
= f.text_area :help_page_text, class: 'form-control gl-form-input', rows: 4
|
||||||
.form-text.text-muted= _('Markdown enabled')
|
.form-text.text-muted= _('Markdown enabled.')
|
||||||
.form-group
|
.form-group
|
||||||
.form-check
|
.form-check
|
||||||
= f.check_box :help_page_hide_commercial_content, class: 'form-check-input'
|
= f.check_box :help_page_hide_commercial_content, class: 'form-check-input'
|
||||||
= f.label :help_page_hide_commercial_content, class: 'form-check-label' do
|
= f.label :help_page_hide_commercial_content, class: 'form-check-label' do
|
||||||
= _('Hide marketing-related entries from the Help page.')
|
= _('Hide marketing-related entries from the Help page')
|
||||||
.form-group
|
.form-group
|
||||||
= f.label :help_page_support_url, _('Support page URL'), class: 'label-bold'
|
= f.label :help_page_support_url, _('Support page URL'), class: 'label-bold'
|
||||||
= f.text_field :help_page_support_url, class: 'form-control gl-form-input', placeholder: 'http://company.example.com/getting-help', :'aria-describedby' => 'support_help_block'
|
= f.text_field :help_page_support_url, class: 'form-control gl-form-input', placeholder: 'https://company.example.com/getting-help', :'aria-describedby' => 'support_help_block'
|
||||||
%span.form-text.text-muted#support_help_block= _('Alternate support URL for Help page and Help dropdown')
|
%span.form-text.text-muted#support_help_block= _('Alternate support URL for Help page and Help dropdown.')
|
||||||
|
|
||||||
- if show_documentation_base_url_field?
|
- if show_documentation_base_url_field?
|
||||||
.form-group
|
.form-group
|
||||||
= f.label :help_page_documentation_base_url, _('Documentation pages URL'), class: 'label-bold'
|
= f.label :help_page_documentation_base_url, _('Documentation pages URL'), class: 'label-bold'
|
||||||
= f.text_field :help_page_documentation_base_url, class: 'form-control gl-form-input', placeholder: 'https://docs.gitlab.com'
|
= f.text_field :help_page_documentation_base_url, class: 'form-control gl-form-input', placeholder: 'https://docs.gitlab.com'
|
||||||
|
- docs_link_url = help_page_path('user/admin_area/settings/help_page', anchor: 'destination-requirements')
|
||||||
|
- docs_link_start = '<a href="%{url}" target="_blank" rel="noopener noreferrer">'.html_safe % { url: docs_link_url }
|
||||||
|
%span.form-text.text-muted#support_help_block= html_escape(_('Requests for pages at %{code_start}%{help_text_url}%{code_end} redirect to the URL. The destination must meet certain requirements. %{docs_link_start}Learn more.%{docs_link_end}')) % { code_start: '<code>'.html_safe, help_text_url: help_url, code_end: '</code>'.html_safe, docs_link_start: docs_link_start, docs_link_end: '</a>'.html_safe }
|
||||||
= f.submit _('Save changes'), class: "gl-button btn btn-confirm"
|
= f.submit _('Save changes'), class: "gl-button btn btn-confirm"
|
||||||
|
|
|
@ -166,6 +166,11 @@ curl --header "Authorization: Bearer OAUTH-TOKEN" "https://gitlab.example.com/ap
|
||||||
|
|
||||||
Read more about [GitLab as an OAuth2 provider](oauth2.md).
|
Read more about [GitLab as an OAuth2 provider](oauth2.md).
|
||||||
|
|
||||||
|
NOTE:
|
||||||
|
We recommend that OAuth access tokens have an expiration. You can use a `refresh_token` to refresh tokens. Integrations may need to be updated to refresh tokens prior to expiration, which is based on the [expires_in](https://datatracker.ietf.org/doc/html/rfc6749#appendix-A.14) property in the token endpoint response.
|
||||||
|
|
||||||
|
A default refresh setting of two hours is tracked in [this issue](https://gitlab.com/gitlab-org/gitlab/-/issues/336598).
|
||||||
|
|
||||||
### Personal/project access tokens
|
### Personal/project access tokens
|
||||||
|
|
||||||
You can use access tokens to authenticate with the API by passing it in either
|
You can use access tokens to authenticate with the API by passing it in either
|
||||||
|
|
|
@ -214,9 +214,12 @@ To use SSH with GitLab, copy your public key to your GitLab account.
|
||||||
1. In the **Title** text box, type a description, like _Work Laptop_ or
|
1. In the **Title** text box, type a description, like _Work Laptop_ or
|
||||||
_Home Workstation_.
|
_Home Workstation_.
|
||||||
1. Optional. In the **Expires at** box, select an expiration date. (Introduced in [GitLab 12.9](https://gitlab.com/gitlab-org/gitlab/-/issues/36243).)
|
1. Optional. In the **Expires at** box, select an expiration date. (Introduced in [GitLab 12.9](https://gitlab.com/gitlab-org/gitlab/-/issues/36243).)
|
||||||
The expiration date is informational only, and does not prevent you from using
|
In:
|
||||||
the key. However, administrators can view expiration dates and
|
- GitLab 13.12 and earlier, the expiration date is informational only. It doesn't prevent
|
||||||
use them for guidance when [deleting keys](../user/admin_area/credentials_inventory.md#delete-a-users-ssh-key).
|
you from using the key. Administrators can view expiration dates and use them for
|
||||||
|
guidance when [deleting keys](../user/admin_area/credentials_inventory.md#delete-a-users-ssh-key).
|
||||||
|
- GitLab 14.0 and later, the expiration date is enforced. Administrators can
|
||||||
|
[allow expired keys to be used](../user/admin_area/settings/account_and_limit_settings.md#allow-expired-ssh-keys-to-be-used).
|
||||||
- GitLab checks all SSH keys at 02:00 AM UTC every day. It emails an expiration notice for all SSH keys that expire on the current date. ([Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/322637) in GitLab 13.11.)
|
- GitLab checks all SSH keys at 02:00 AM UTC every day. It emails an expiration notice for all SSH keys that expire on the current date. ([Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/322637) in GitLab 13.11.)
|
||||||
- GitLab checks all SSH keys at 01:00 AM UTC every day. It emails an expiration notice for all SSH keys that are scheduled to expire seven days from now. ([Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/322637) in GitLab 13.11.)
|
- GitLab checks all SSH keys at 01:00 AM UTC every day. It emails an expiration notice for all SSH keys that are scheduled to expire seven days from now. ([Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/322637) in GitLab 13.11.)
|
||||||
1. Select **Add key**.
|
1. Select **Add key**.
|
||||||
|
|
|
@ -66,18 +66,24 @@ You can specify a custom URL to which users are directed when they:
|
||||||
1. In the **Support page URL** field, enter the URL.
|
1. In the **Support page URL** field, enter the URL.
|
||||||
1. Select **Save changes**.
|
1. Select **Save changes**.
|
||||||
|
|
||||||
## Redirect GitLab documentation links
|
## Redirect `/help` pages
|
||||||
|
|
||||||
> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/43157) in GitLab 13.5.
|
> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/43157) in GitLab 13.5.
|
||||||
> - Enabled on GitLab.com and is ready for production use. Available to GitLab.com administrators only.
|
> - Enabled on GitLab.com and is ready for production use.
|
||||||
|
|
||||||
NOTE:
|
NOTE:
|
||||||
On self-managed GitLab, by default this feature is not available. To make it available, ask an administrator to
|
On self-managed GitLab, by default this feature is not available. To make it available, ask an administrator to
|
||||||
[enable the `:help_page_documentation_redirect` flag](../../../administration/feature_flags.md).
|
[enable the `:help_page_documentation_redirect` flag](../../../administration/feature_flags.md).
|
||||||
On GitLab.com, this feature is available but can be configured by GitLab.com administrators only.
|
On GitLab.com, this feature is available but can be configured by GitLab.com administrators only.
|
||||||
|
|
||||||
Documentation links go to the `/help` section on the instance by default, but you can
|
The `/help` URL of a GitLab instance displays a basic version of the documentation sourced from the
|
||||||
redirect these links to an external documentation site like `https://docs.gitlab.com`:
|
[`doc` directory](https://gitlab.com/gitlab-org/gitlab/-/tree/master/doc) of GitLab. `/help` links
|
||||||
|
are often used for contextual help.
|
||||||
|
|
||||||
|
You can redirect these `/help` links to either:
|
||||||
|
|
||||||
|
- The more navigable and searchable version published at [`docs.gitlab.com`](https://docs.gitlab.com).
|
||||||
|
- A destination that meets [necessary requirements](#destination-requirements).
|
||||||
|
|
||||||
1. On the top bar, select **Menu >** **{admin}** **Admin**.
|
1. On the top bar, select **Menu >** **{admin}** **Admin**.
|
||||||
1. In the left sidebar, select **Settings > Preferences**.
|
1. In the left sidebar, select **Settings > Preferences**.
|
||||||
|
@ -85,6 +91,18 @@ redirect these links to an external documentation site like `https://docs.gitlab
|
||||||
1. In the **Documentation pages URL** field, enter the URL.
|
1. In the **Documentation pages URL** field, enter the URL.
|
||||||
1. Select **Save changes**.
|
1. Select **Save changes**.
|
||||||
|
|
||||||
|
### Destination requirements
|
||||||
|
|
||||||
|
When redirecting `/help`, GitLab:
|
||||||
|
|
||||||
|
- Redirects requests to the specified URL.
|
||||||
|
- Appends `ee` and the documentation path to the URL.
|
||||||
|
- Appends `.html` to the URL, and removes `.md` if necessary.
|
||||||
|
|
||||||
|
For example, if the URL is set to `https://docs.gitlab.com`, requests for
|
||||||
|
`/help/user/admin_area/settings/help_page.md` redirect to:
|
||||||
|
`https://docs.gitlab.com/ee/user/admin_area/settings/help_page.html`.
|
||||||
|
|
||||||
<!-- ## Troubleshooting
|
<!-- ## Troubleshooting
|
||||||
|
|
||||||
Include any troubleshooting steps that you can foresee. If you know beforehand what issues
|
Include any troubleshooting steps that you can foresee. If you know beforehand what issues
|
||||||
|
|
|
@ -38,7 +38,7 @@ or other scanners) during a scan could cause inaccurate results.
|
||||||
|
|
||||||
You can run a Web API fuzzing scan using the following methods:
|
You can run a Web API fuzzing scan using the following methods:
|
||||||
|
|
||||||
- [OpenAPI Specification](#openapi-specification) - version 2.0 or 3.0
|
- [OpenAPI Specification](#openapi-specification) - version 2, and 3.
|
||||||
- [HTTP Archive](#http-archive-har) (HAR)
|
- [HTTP Archive](#http-archive-har) (HAR)
|
||||||
- [Postman Collection](#postman-collection) - version 2.0 or 2.1
|
- [Postman Collection](#postman-collection) - version 2.0 or 2.1
|
||||||
|
|
||||||
|
@ -112,6 +112,8 @@ To generate an API Fuzzing configuration snippet:
|
||||||
|
|
||||||
### OpenAPI Specification
|
### OpenAPI Specification
|
||||||
|
|
||||||
|
> Support for OpenAPI Specification v3.1 was
|
||||||
|
> [introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/327268) in GitLab 14.2.
|
||||||
> Support for OpenAPI Specification using YAML format was
|
> Support for OpenAPI Specification using YAML format was
|
||||||
> [introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/330583) in GitLab 14.0.
|
> [introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/330583) in GitLab 14.0.
|
||||||
> Support for OpenAPI Specification v3.0 was
|
> Support for OpenAPI Specification v3.0 was
|
||||||
|
|
|
@ -95,7 +95,7 @@ You may enable or disable project access token creation for all projects in a gr
|
||||||
Even when creation is disabled, you can still use and revoke existing project access tokens.
|
Even when creation is disabled, you can still use and revoke existing project access tokens.
|
||||||
This setting is available only on top-level groups.
|
This setting is available only on top-level groups.
|
||||||
|
|
||||||
## Group access token workaround **(FREE SELF)**
|
## Group access token workaround **(FREE SELF)**
|
||||||
|
|
||||||
NOTE:
|
NOTE:
|
||||||
This section describes a workaround and is subject to change.
|
This section describes a workaround and is subject to change.
|
||||||
|
|
|
@ -40,7 +40,7 @@ module Gitlab
|
||||||
|
|
||||||
return [] if newrevs.empty?
|
return [] if newrevs.empty?
|
||||||
|
|
||||||
@commits ||= project.repository.new_commits(newrevs)
|
@commits ||= project.repository.new_commits(newrevs, allow_quarantine: true)
|
||||||
end
|
end
|
||||||
|
|
||||||
# All commits which have been newly introduced via the given revision.
|
# All commits which have been newly introduced via the given revision.
|
||||||
|
|
|
@ -354,9 +354,9 @@ module Gitlab
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def new_commits(newrevs)
|
def new_commits(newrevs, allow_quarantine: false)
|
||||||
wrapped_gitaly_errors do
|
wrapped_gitaly_errors do
|
||||||
gitaly_commit_client.list_commits(Array.wrap(newrevs) + %w[--not --all])
|
gitaly_commit_client.list_new_commits(Array.wrap(newrevs), allow_quarantine: allow_quarantine)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -265,6 +265,31 @@ module Gitlab
|
||||||
consume_commits_response(response)
|
consume_commits_response(response)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
# List all commits which are new in the repository. If commits have been pushed into the repo
|
||||||
|
def list_new_commits(revisions, allow_quarantine: false)
|
||||||
|
git_env = Gitlab::Git::HookEnv.all(@gitaly_repo.gl_repository)
|
||||||
|
if allow_quarantine && git_env['GIT_OBJECT_DIRECTORY_RELATIVE'].present?
|
||||||
|
# If we have a quarantine environment, then we can optimize the check
|
||||||
|
# by doing a ListAllCommitsRequest. Instead of walking through
|
||||||
|
# references, we just walk through all quarantined objects, which is
|
||||||
|
# a lot more efficient. To do so, we throw away any alternate object
|
||||||
|
# directories, which point to the main object directory of the
|
||||||
|
# repository, and only keep the object directory which points into
|
||||||
|
# the quarantine object directory.
|
||||||
|
quarantined_repo = @gitaly_repo.dup
|
||||||
|
quarantined_repo.git_alternate_object_directories = Google::Protobuf::RepeatedField.new(:string)
|
||||||
|
|
||||||
|
request = Gitaly::ListAllCommitsRequest.new(
|
||||||
|
repository: quarantined_repo
|
||||||
|
)
|
||||||
|
|
||||||
|
response = GitalyClient.call(@repository.storage, :commit_service, :list_all_commits, request, timeout: GitalyClient.medium_timeout)
|
||||||
|
consume_commits_response(response)
|
||||||
|
else
|
||||||
|
list_commits(Array.wrap(revisions) + %w[--not --all])
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
def list_commits_by_oid(oids)
|
def list_commits_by_oid(oids)
|
||||||
return [] if oids.empty?
|
return [] if oids.empty?
|
||||||
|
|
||||||
|
|
|
@ -3420,7 +3420,7 @@ msgstr ""
|
||||||
msgid "Also unassign this user from related issues and merge requests"
|
msgid "Also unassign this user from related issues and merge requests"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Alternate support URL for Help page and Help dropdown"
|
msgid "Alternate support URL for Help page and Help dropdown."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Alternatively, you can convert your account to a managed account by the %{group_name} group."
|
msgid "Alternatively, you can convert your account to a managed account by the %{group_name} group."
|
||||||
|
@ -16363,7 +16363,7 @@ msgstr ""
|
||||||
msgid "Hide list"
|
msgid "Hide list"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Hide marketing-related entries from the Help page."
|
msgid "Hide marketing-related entries from the Help page"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Hide payload"
|
msgid "Hide payload"
|
||||||
|
@ -20211,7 +20211,7 @@ msgstr ""
|
||||||
msgid "Markdown Help"
|
msgid "Markdown Help"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Markdown enabled"
|
msgid "Markdown enabled."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Markdown is supported"
|
msgid "Markdown is supported"
|
||||||
|
@ -28080,6 +28080,9 @@ msgstr ""
|
||||||
msgid "Requests Profiles"
|
msgid "Requests Profiles"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Requests for pages at %{code_start}%{help_text_url}%{code_end} redirect to the URL. The destination must meet certain requirements. %{docs_link_start}Learn more.%{docs_link_end}"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Requests per period"
|
msgid "Requests per period"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
|
|
@ -585,7 +585,7 @@ RSpec.describe 'Admin updates settings' do
|
||||||
|
|
||||||
page.within('.as-help-page') do
|
page.within('.as-help-page') do
|
||||||
fill_in 'Additional text to show on the Help page', with: 'Example text'
|
fill_in 'Additional text to show on the Help page', with: 'Example text'
|
||||||
check 'Hide marketing-related entries from the Help page.'
|
check 'Hide marketing-related entries from the Help page'
|
||||||
fill_in 'Support page URL', with: new_support_url
|
fill_in 'Support page URL', with: new_support_url
|
||||||
fill_in 'Documentation pages URL', with: new_documentation_url
|
fill_in 'Documentation pages URL', with: new_documentation_url
|
||||||
click_button 'Save changes'
|
click_button 'Save changes'
|
||||||
|
|
|
@ -70,7 +70,7 @@ RSpec.describe Gitlab::Checks::ChangesAccess do
|
||||||
let(:expected_commit) { instance_double(Commit) }
|
let(:expected_commit) { instance_double(Commit) }
|
||||||
|
|
||||||
it 'returns only commits with non empty revisions' do
|
it 'returns only commits with non empty revisions' do
|
||||||
expect(project.repository).to receive(:new_commits).with([newrev]) { [expected_commit] }
|
expect(project.repository).to receive(:new_commits).with([newrev], { allow_quarantine: true }) { [expected_commit] }
|
||||||
expect(subject.commits).to eq([expected_commit])
|
expect(subject.commits).to eq([expected_commit])
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -343,6 +343,92 @@ RSpec.describe Gitlab::GitalyClient::CommitService do
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
describe '#list_new_commits' do
|
||||||
|
let(:revisions) { [revision] }
|
||||||
|
let(:gitaly_commits) { create_list(:gitaly_commit, 3) }
|
||||||
|
let(:commits) { gitaly_commits.map { |c| Gitlab::Git::Commit.new(repository, c) }}
|
||||||
|
|
||||||
|
subject { client.list_new_commits(revisions, allow_quarantine: allow_quarantine) }
|
||||||
|
|
||||||
|
shared_examples 'a #list_all_commits message' do
|
||||||
|
it 'sends a list_all_commits message' do
|
||||||
|
expected_repository = repository.gitaly_repository.dup
|
||||||
|
expected_repository.git_alternate_object_directories = Google::Protobuf::RepeatedField.new(:string)
|
||||||
|
|
||||||
|
expect_next_instance_of(Gitaly::CommitService::Stub) do |service|
|
||||||
|
expect(service).to receive(:list_all_commits)
|
||||||
|
.with(gitaly_request_with_params(repository: expected_repository), kind_of(Hash))
|
||||||
|
.and_return([Gitaly::ListAllCommitsResponse.new(commits: gitaly_commits)])
|
||||||
|
end
|
||||||
|
|
||||||
|
expect(subject).to eq(commits)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
shared_examples 'a #list_commits message' do
|
||||||
|
it 'sends a list_commits message' do
|
||||||
|
expect_next_instance_of(Gitaly::CommitService::Stub) do |service|
|
||||||
|
expect(service).to receive(:list_commits)
|
||||||
|
.with(gitaly_request_with_params(revisions: revisions + %w[--not --all]), kind_of(Hash))
|
||||||
|
.and_return([Gitaly::ListCommitsResponse.new(commits: gitaly_commits)])
|
||||||
|
end
|
||||||
|
|
||||||
|
expect(subject).to eq(commits)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
before do
|
||||||
|
::Gitlab::GitalyClient.clear_stubs!
|
||||||
|
|
||||||
|
allow(Gitlab::Git::HookEnv)
|
||||||
|
.to receive(:all)
|
||||||
|
.with(repository.gl_repository)
|
||||||
|
.and_return(git_env)
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'with hook environment' do
|
||||||
|
let(:git_env) do
|
||||||
|
{
|
||||||
|
'GIT_OBJECT_DIRECTORY_RELATIVE' => '.git/objects',
|
||||||
|
'GIT_ALTERNATE_OBJECT_DIRECTORIES_RELATIVE' => ['/dir/one', '/dir/two']
|
||||||
|
}
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'with allowed quarantine' do
|
||||||
|
let(:allow_quarantine) { true }
|
||||||
|
|
||||||
|
it_behaves_like 'a #list_all_commits message'
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'with disallowed quarantine' do
|
||||||
|
let(:allow_quarantine) { false }
|
||||||
|
|
||||||
|
it_behaves_like 'a #list_commits message'
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'without hook environment' do
|
||||||
|
let(:git_env) do
|
||||||
|
{
|
||||||
|
'GIT_OBJECT_DIRECTORY_RELATIVE' => '',
|
||||||
|
'GIT_ALTERNATE_OBJECT_DIRECTORIES_RELATIVE' => []
|
||||||
|
}
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'with allowed quarantine' do
|
||||||
|
let(:allow_quarantine) { true }
|
||||||
|
|
||||||
|
it_behaves_like 'a #list_commits message'
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'with disallowed quarantine' do
|
||||||
|
let(:allow_quarantine) { false }
|
||||||
|
|
||||||
|
it_behaves_like 'a #list_commits message'
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
describe '#commit_stats' do
|
describe '#commit_stats' do
|
||||||
let(:request) do
|
let(:request) do
|
||||||
Gitaly::CommitStatsRequest.new(
|
Gitaly::CommitStatsRequest.new(
|
||||||
|
|
Loading…
Reference in New Issue