Add latest changes from gitlab-org/gitlab@master
This commit is contained in:
parent
bae24262df
commit
6e33325c14
2
Gemfile
2
Gemfile
|
@ -453,7 +453,7 @@ group :ed25519 do
|
|||
end
|
||||
|
||||
# Gitaly GRPC protocol definitions
|
||||
gem 'gitaly', '~> 13.0.0.pre.rc1'
|
||||
gem 'gitaly', '~> 13.1.0.pre.rc1'
|
||||
|
||||
gem 'grpc', '~> 1.24.0'
|
||||
|
||||
|
|
|
@ -377,7 +377,7 @@ GEM
|
|||
po_to_json (>= 1.0.0)
|
||||
rails (>= 3.2.0)
|
||||
git (1.5.0)
|
||||
gitaly (13.0.0.pre.rc1)
|
||||
gitaly (13.1.0.pre.rc1)
|
||||
grpc (~> 1.0)
|
||||
github-markup (1.7.0)
|
||||
gitlab-chronic (0.10.5)
|
||||
|
@ -1235,7 +1235,7 @@ DEPENDENCIES
|
|||
gettext (~> 3.2.2)
|
||||
gettext_i18n_rails (~> 1.8.0)
|
||||
gettext_i18n_rails_js (~> 1.3)
|
||||
gitaly (~> 13.0.0.pre.rc1)
|
||||
gitaly (~> 13.1.0.pre.rc1)
|
||||
github-markup (~> 1.7.0)
|
||||
gitlab-chronic (~> 0.10.5)
|
||||
gitlab-labkit (= 0.12.0)
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
/* eslint-disable func-names, consistent-return, one-var, no-return-assign */
|
||||
|
||||
import $ from 'jquery';
|
||||
import 'jquery.waitforimages';
|
||||
|
||||
// Width where images must fits in, for 2-up this gets divided by 2
|
||||
const availWidth = 900;
|
||||
|
|
|
@ -5,4 +5,3 @@ import 'jquery-ujs';
|
|||
import 'jquery.caret'; // must be imported before at.js
|
||||
import '@gitlab/at.js';
|
||||
import 'vendor/jquery.scrollTo';
|
||||
import 'jquery.waitforimages';
|
||||
|
|
|
@ -13,7 +13,7 @@ export default {
|
|||
tooltip,
|
||||
},
|
||||
computed: {
|
||||
...mapGetters(['hasChanges']),
|
||||
...mapGetters(['someUncommittedChanges']),
|
||||
...mapState(['currentActivityView']),
|
||||
},
|
||||
methods: {
|
||||
|
@ -69,7 +69,7 @@ export default {
|
|||
<icon name="file-modified" />
|
||||
</button>
|
||||
</li>
|
||||
<li v-show="hasChanges">
|
||||
<li v-show="someUncommittedChanges">
|
||||
<button
|
||||
v-tooltip
|
||||
:class="{
|
||||
|
|
|
@ -26,7 +26,7 @@ export default {
|
|||
computed: {
|
||||
...mapState(['changedFiles', 'stagedFiles', 'currentActivityView', 'lastCommitMsg']),
|
||||
...mapState('commit', ['commitMessage', 'submitCommitLoading']),
|
||||
...mapGetters(['hasChanges']),
|
||||
...mapGetters(['someUncommittedChanges']),
|
||||
...mapGetters('commit', ['discardDraftButtonDisabled', 'preBuiltCommitMessage']),
|
||||
overviewText() {
|
||||
return n__('%d changed file', '%d changed files', this.stagedFiles.length);
|
||||
|
@ -126,7 +126,7 @@ export default {
|
|||
>
|
||||
<div v-if="isCompact" ref="compactEl" class="commit-form-compact">
|
||||
<button
|
||||
:disabled="!hasChanges"
|
||||
:disabled="!someUncommittedChanges"
|
||||
type="button"
|
||||
class="btn btn-primary btn-sm btn-block qa-begin-commit-button"
|
||||
@click="toggleIsCompact"
|
||||
|
|
|
@ -40,7 +40,6 @@ export default {
|
|||
...mapState([
|
||||
'openFiles',
|
||||
'viewer',
|
||||
'currentMergeRequestId',
|
||||
'fileFindVisible',
|
||||
'emptyStateSvgPath',
|
||||
'currentProjectId',
|
||||
|
@ -49,7 +48,6 @@ export default {
|
|||
]),
|
||||
...mapGetters([
|
||||
'activeFile',
|
||||
'hasChanges',
|
||||
'someUncommittedChanges',
|
||||
'isCommitModeActive',
|
||||
'allBlobs',
|
||||
|
@ -108,14 +106,7 @@ export default {
|
|||
<div class="multi-file-edit-pane">
|
||||
<template v-if="activeFile">
|
||||
<commit-editor-header v-if="isCommitModeActive" :active-file="activeFile" />
|
||||
<repo-tabs
|
||||
v-else
|
||||
:active-file="activeFile"
|
||||
:files="openFiles"
|
||||
:viewer="viewer"
|
||||
:has-changes="hasChanges"
|
||||
:merge-request-id="currentMergeRequestId"
|
||||
/>
|
||||
<repo-tabs v-else :active-file="activeFile" :files="openFiles" :viewer="viewer" />
|
||||
<repo-editor :file="activeFile" class="multi-file-edit-pane-content" />
|
||||
</template>
|
||||
<template v-else>
|
||||
|
|
|
@ -16,7 +16,7 @@ export default {
|
|||
computed: {
|
||||
...mapState(['changedFiles', 'stagedFiles', 'lastCommitMsg']),
|
||||
...mapState('commit', ['commitMessage', 'submitCommitLoading']),
|
||||
...mapGetters(['lastOpenedFile', 'hasChanges', 'someUncommittedChanges', 'activeFile']),
|
||||
...mapGetters(['lastOpenedFile', 'someUncommittedChanges', 'activeFile']),
|
||||
...mapGetters('commit', ['discardDraftButtonDisabled']),
|
||||
showStageUnstageArea() {
|
||||
return Boolean(this.someUncommittedChanges || this.lastCommitMsg);
|
||||
|
@ -26,8 +26,8 @@ export default {
|
|||
},
|
||||
},
|
||||
watch: {
|
||||
hasChanges() {
|
||||
if (!this.hasChanges) {
|
||||
someUncommittedChanges() {
|
||||
if (!this.someUncommittedChanges) {
|
||||
this.updateActivityBarView(leftSidebarViews.edit.name);
|
||||
}
|
||||
},
|
||||
|
|
|
@ -20,15 +20,6 @@ export default {
|
|||
type: String,
|
||||
required: true,
|
||||
},
|
||||
hasChanges: {
|
||||
type: Boolean,
|
||||
required: true,
|
||||
},
|
||||
mergeRequestId: {
|
||||
type: String,
|
||||
required: false,
|
||||
default: '',
|
||||
},
|
||||
},
|
||||
methods: {
|
||||
...mapActions(['updateViewer', 'removePendingTab']),
|
||||
|
|
|
@ -50,9 +50,6 @@ export const emptyRepo = state =>
|
|||
export const currentTree = state =>
|
||||
state.trees[`${state.currentProjectId}/${state.currentBranchId}`];
|
||||
|
||||
export const hasChanges = state =>
|
||||
Boolean(state.changedFiles.length) || Boolean(state.stagedFiles.length);
|
||||
|
||||
export const hasMergeRequest = state => Boolean(state.currentMergeRequestId);
|
||||
|
||||
export const allBlobs = state =>
|
||||
|
|
|
@ -1,4 +1,6 @@
|
|||
import $ from 'jquery';
|
||||
import 'jquery.waitforimages';
|
||||
|
||||
import initBlob from '~/blob_edit/blob_bundle';
|
||||
import ShortcutsNavigation from '~/behaviors/shortcuts/shortcuts_navigation';
|
||||
import NotificationsForm from '~/notifications_form';
|
||||
|
|
|
@ -1,4 +1,6 @@
|
|||
import $ from 'jquery';
|
||||
import 'jquery.waitforimages';
|
||||
|
||||
import Vue from 'vue';
|
||||
import initBlob from '~/blob_edit/blob_bundle';
|
||||
import commitPipelineStatus from '~/projects/tree/components/commit_pipeline_status_component.vue';
|
||||
|
|
|
@ -56,6 +56,7 @@ CAS
|
|||
CentOS
|
||||
Chatops
|
||||
Citrix
|
||||
clonable
|
||||
Cloudwatch
|
||||
Cobertura
|
||||
Cognito
|
||||
|
|
|
@ -4,7 +4,7 @@ type: reference
|
|||
|
||||
# Google Secure LDAP **(CORE ONLY)**
|
||||
|
||||
> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/issues/46391) in GitLab 11.9.
|
||||
> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/-/issues/46391) in GitLab 11.9.
|
||||
|
||||
[Google Cloud Identity](https://cloud.google.com/identity/) provides a Secure
|
||||
LDAP service that can be configured with GitLab for authentication and group sync.
|
||||
|
|
|
@ -106,14 +106,14 @@ you list:
|
|||
|
||||
## Queue selector (experimental)
|
||||
|
||||
> [Introduced](https://gitlab.com/gitlab-com/gl-infra/scalability/issues/45) in [GitLab Starter](https://about.gitlab.com/pricing/) 12.8.
|
||||
> [Introduced](https://gitlab.com/gitlab-com/gl-infra/scalability/-/issues/45) in [GitLab Starter](https://about.gitlab.com/pricing/) 12.8.
|
||||
|
||||
CAUTION: **Caution:**
|
||||
As this is marked as **experimental**, it is subject to change at any
|
||||
time, including **breaking backwards compatibility**. This is so that we
|
||||
can react to changes we need for our GitLab.com deployment. We have a
|
||||
tracking issue open to [remove the experimental
|
||||
designation](https://gitlab.com/gitlab-com/gl-infra/scalability/issues/147)
|
||||
designation](https://gitlab.com/gitlab-com/gl-infra/scalability/-/issues/147)
|
||||
from this feature; please comment there if you are interested in using
|
||||
this in your own deployment.
|
||||
|
||||
|
|
|
@ -117,7 +117,7 @@ Quoting from issue [#1](https://gitlab.com/gitlab-org/gitlab/-/issues/30528):
|
|||
|
||||
TIP: **Tip:** In support, our general approach to reconfiguring timeouts (applies also to the HTTP stack as well) is that it's acceptable to do it temporarily as a workaround. If it makes GitLab usable for the customer, then it buys time to understand the problem more completely, implement a hot fix, or make some other change that addresses the root cause. Generally, the timeouts should be put back to reasonable defaults once the root cause is resolved.
|
||||
|
||||
In this case, the guidance we had from development was to drop deadlock_timeout and/or statement_timeout but to leave the third setting at 60s. Setting idle_in_transaction protects the database from sessions potentially hanging for days. There's more discussion in [the issue relating to introducing this timeout on GitLab.com](https://gitlab.com/gitlab-com/gl-infra/production/issues/1053).
|
||||
In this case, the guidance we had from development was to drop deadlock_timeout and/or statement_timeout but to leave the third setting at 60s. Setting idle_in_transaction protects the database from sessions potentially hanging for days. There's more discussion in [the issue relating to introducing this timeout on GitLab.com](https://gitlab.com/gitlab-com/gl-infra/production/-/issues/1053).
|
||||
|
||||
PostgresSQL defaults:
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
# Legacy Feature Flags API **(PREMIUM)**
|
||||
|
||||
> [Introduced](https://gitlab.com/gitlab-org/gitlab/issues/9566) in [GitLab Premium](https://about.gitlab.com/pricing/) 12.5.
|
||||
> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/9566) in [GitLab Premium](https://about.gitlab.com/pricing/) 12.5.
|
||||
|
||||
CAUTION: **Deprecation**
|
||||
This API is deprecated and [scheduled for removal in GitLab 14.0](https://gitlab.com/gitlab-org/gitlab/-/issues/213369). Use [this API](feature_flags.md) instead.
|
||||
|
|
|
@ -8,6 +8,9 @@ info: To determine the technical writer assigned to the Stage/Group associated w
|
|||
|
||||
> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/12819) in GitLab 9.5.
|
||||
|
||||
This page describes the group milestones API.
|
||||
There's a separate [project milestones API](./group_milestones.md) page.
|
||||
|
||||
## List group milestones
|
||||
|
||||
Returns a list of group milestones.
|
||||
|
|
|
@ -6,6 +6,9 @@ info: To determine the technical writer assigned to the Stage/Group associated w
|
|||
|
||||
# Project milestones API
|
||||
|
||||
This page describes the project milestones API.
|
||||
There's a separate [group milestones API](./group_milestones.md) page.
|
||||
|
||||
## List project milestones
|
||||
|
||||
Returns a list of project milestones.
|
||||
|
|
|
@ -186,15 +186,15 @@ been necessary. These are:
|
|||
#### 13.0
|
||||
|
||||
- [Remove Backported
|
||||
`os.Expand`](https://gitlab.com/gitlab-org/gitlab-runner/issues/4915)
|
||||
`os.Expand`](https://gitlab.com/gitlab-org/gitlab-runner/-/issues/4915)
|
||||
- [Remove Fedora 29 package
|
||||
support](https://gitlab.com/gitlab-org/gitlab-runner/issues/16158)
|
||||
support](https://gitlab.com/gitlab-org/gitlab-runner/-/issues/16158)
|
||||
- [Remove macOS 32-bit
|
||||
support](https://gitlab.com/gitlab-org/gitlab-runner/issues/25466)
|
||||
support](https://gitlab.com/gitlab-org/gitlab-runner/-/issues/25466)
|
||||
- [Removed `debug/jobs/list?v=1`
|
||||
endpoint](https://gitlab.com/gitlab-org/gitlab-runner/issues/6361)
|
||||
endpoint](https://gitlab.com/gitlab-org/gitlab-runner/-/issues/6361)
|
||||
- [Remove support for array of strings when defining services for Docker
|
||||
executor](https://gitlab.com/gitlab-org/gitlab-runner/issues/4922)
|
||||
executor](https://gitlab.com/gitlab-org/gitlab-runner/-/issues/4922)
|
||||
- [Remove `--docker-services` flag on register
|
||||
command](https://gitlab.com/gitlab-org/gitlab-runner/-/issues/6404)
|
||||
- [Remove legacy build directory
|
||||
|
|
|
@ -151,7 +151,7 @@ Requires GitLab Runner 11.11 or later, but is not supported if GitLab
|
|||
Runner is installed using the [Helm
|
||||
chart](https://docs.gitlab.com/runner/install/kubernetes.html). See the
|
||||
[related
|
||||
issue](https://gitlab.com/gitlab-org/charts/gitlab-runner/issues/83) for
|
||||
issue](https://gitlab.com/gitlab-org/charts/gitlab-runner/-/issues/83) for
|
||||
details.
|
||||
|
||||
The Docker daemon supports connection over TLS and it's done by default
|
||||
|
|
|
@ -31,7 +31,7 @@ Two things need to be configured for the interactive web terminal to work:
|
|||
NOTE: **Note:**
|
||||
Interactive web terminals are not yet supported by
|
||||
[`gitlab-runner` Helm chart](https://docs.gitlab.com/charts/charts/gitlab/gitlab-runner/index.html),
|
||||
but support [is planned](https://gitlab.com/gitlab-org/charts/gitlab-runner/issues/79).
|
||||
but support [is planned](https://gitlab.com/gitlab-org/charts/gitlab-runner/-/issues/79).
|
||||
|
||||
## Debugging a running job
|
||||
|
||||
|
|
|
@ -1110,7 +1110,7 @@ docker build:
|
|||
|
||||
Additional job configuration may be added to rules in the future. If something
|
||||
useful is not available, please
|
||||
[open an issue](https://gitlab.com/gitlab-org/gitlab/issues).
|
||||
[open an issue](https://gitlab.com/gitlab-org/gitlab/-/issues).
|
||||
|
||||
### `only`/`except` (basic)
|
||||
|
||||
|
@ -1611,7 +1611,7 @@ This example creates four paths of execution:
|
|||
pipeline will be created with YAML error.
|
||||
- The maximum number of jobs that a single job can need in the `needs:` array is limited:
|
||||
- For GitLab.com, the limit is ten. For more information, see our
|
||||
[infrastructure issue](https://gitlab.com/gitlab-com/gl-infra/infrastructure/issues/7541).
|
||||
[infrastructure issue](https://gitlab.com/gitlab-com/gl-infra/infrastructure/-/issues/7541).
|
||||
- For self-managed instances, the limit is:
|
||||
- 10, if the `ci_dag_limit_needs` feature flag is enabled (default).
|
||||
- 50, if the `ci_dag_limit_needs` feature flag is disabled.
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
## Issue tracker guidelines
|
||||
|
||||
**[Search the issue tracker](https://gitlab.com/gitlab-org/gitlab/issues)** for similar entries before
|
||||
**[Search the issue tracker](https://gitlab.com/gitlab-org/gitlab/-/issues)** for similar entries before
|
||||
submitting your own, there's a good chance somebody else had the same issue or
|
||||
feature proposal. Show your support with an award emoji and/or join the
|
||||
discussion.
|
||||
|
@ -356,10 +356,10 @@ A recent example of this was the issue for
|
|||
## Feature proposals
|
||||
|
||||
To create a feature proposal, open an issue on the
|
||||
[issue tracker](https://gitlab.com/gitlab-org/gitlab/issues).
|
||||
[issue tracker](https://gitlab.com/gitlab-org/gitlab/-/issues).
|
||||
|
||||
In order to help track the feature proposals, we have created a
|
||||
[`feature`](https://gitlab.com/gitlab-org/gitlab/issues?label_name=feature) label. For the time being, users that are not members
|
||||
[`feature`](https://gitlab.com/gitlab-org/gitlab/-/issues?label_name=feature) label. For the time being, users that are not members
|
||||
of the project cannot add labels. You can instead ask one of the [core team](https://about.gitlab.com/community/core-team/)
|
||||
members to add the label ~feature to the issue or add the following
|
||||
code snippet right after your description in a new line: `~feature`.
|
||||
|
@ -420,7 +420,7 @@ in the regression issue as fixes are addressed.
|
|||
## Technical and UX debt
|
||||
|
||||
In order to track things that can be improved in GitLab's codebase,
|
||||
we use the ~"technical debt" label in [GitLab's issue tracker](https://gitlab.com/gitlab-org/gitlab/issues).
|
||||
we use the ~"technical debt" label in [GitLab's issue tracker](https://gitlab.com/gitlab-org/gitlab/-/issues).
|
||||
For missed user experience requirements, we use the ~"UX debt" label.
|
||||
|
||||
These labels should be added to issues that describe things that can be improved,
|
||||
|
|
|
@ -221,7 +221,7 @@ requirements.
|
|||
1. [Changelog entry added](../changelog.md), if necessary.
|
||||
1. Reviewed by relevant (UX/FE/BE/tech writing) reviewers and all concerns are addressed.
|
||||
1. Merged by a project maintainer.
|
||||
1. Create an issue in the [infrastructure issue tracker](https://gitlab.com/gitlab-com/gl-infra/infrastructure/issues) to inform the Infrastructure department when your contribution is changing default settings or introduces a new setting, if relevant.
|
||||
1. Create an issue in the [infrastructure issue tracker](https://gitlab.com/gitlab-com/gl-infra/infrastructure/-/issues) to inform the Infrastructure department when your contribution is changing default settings or introduces a new setting, if relevant.
|
||||
1. Confirmed to be working in the [Canary stage](https://about.gitlab.com/handbook/engineering/#canary-testing) or on GitLab.com once the contribution is deployed.
|
||||
1. Added to the [release post](https://about.gitlab.com/handbook/marketing/blog/release-posts/),
|
||||
if relevant.
|
||||
|
|
|
@ -654,7 +654,7 @@ For other punctuation rules, please refer to the
|
|||
links shift too, which eventually leads to dead links. If you think it is
|
||||
compelling to add numbers in headings, make sure to at least discuss it with
|
||||
someone in the Merge Request.
|
||||
- [Avoid using symbols and special characters](https://gitlab.com/gitlab-org/gitlab-docs/issues/84)
|
||||
- [Avoid using symbols and special characters](https://gitlab.com/gitlab-org/gitlab-docs/-/issues/84)
|
||||
in headers. Whenever possible, they should be plain and short text.
|
||||
- Avoid adding things that show ephemeral statuses. For example, if a feature is
|
||||
considered beta or experimental, put this information in a note, not in the heading.
|
||||
|
@ -1050,7 +1050,7 @@ For a complete reference on code blocks, check the [Kramdown guide](https://abou
|
|||
|
||||
## GitLab SVG icons
|
||||
|
||||
> [Introduced](https://gitlab.com/gitlab-org/gitlab-docs/issues/384) in GitLab 12.7.
|
||||
> [Introduced](https://gitlab.com/gitlab-org/gitlab-docs/-/issues/384) in GitLab 12.7.
|
||||
|
||||
You can use icons from the [GitLab SVG library](https://gitlab-org.gitlab.io/gitlab-svgs/) directly
|
||||
in the documentation.
|
||||
|
|
|
@ -65,7 +65,7 @@ within the `pages` directory correspond to Rails controllers and actions. These
|
|||
auto-generated bundles will be automatically included on the corresponding
|
||||
pages.
|
||||
|
||||
For example, if you were to visit <https://gitlab.com/gitlab-org/gitlab/issues>,
|
||||
For example, if you were to visit <https://gitlab.com/gitlab-org/gitlab/-/issues>,
|
||||
you would be accessing the `app/controllers/projects/issues_controller.rb`
|
||||
controller with the `index` action. If a corresponding file exists at
|
||||
`pages/projects/issues/index/index.js`, it will be compiled into a webpack
|
||||
|
|
|
@ -96,7 +96,7 @@ As a guideline:
|
|||
Before toggling any feature flag, check that there are no ongoing
|
||||
significant incidents on GitLab.com. You can do this by checking the
|
||||
`#production` and `#incident-management` Slack channels, or looking for
|
||||
[open incident issues](https://gitlab.com/gitlab-com/gl-infra/production/issues/?scope=all&utf8=%E2%9C%93&state=opened&label_name[]=incident)
|
||||
[open incident issues](https://gitlab.com/gitlab-com/gl-infra/production/-/issues/?scope=all&utf8=%E2%9C%93&state=opened&label_name[]=incident)
|
||||
(although check the dates and times).
|
||||
|
||||
We do not want to introduce changes during an incident, as it can make
|
||||
|
@ -221,7 +221,7 @@ Any feature flag change that affects GitLab.com (production) will
|
|||
automatically be logged in an issue.
|
||||
|
||||
The issue is created in the
|
||||
[gl-infra/feature-flag-log](https://gitlab.com/gitlab-com/gl-infra/feature-flag-log/issues?scope=all&utf8=%E2%9C%93&state=closed)
|
||||
[gl-infra/feature-flag-log](https://gitlab.com/gitlab-com/gl-infra/feature-flag-log/-/issues?scope=all&utf8=%E2%9C%93&state=closed)
|
||||
project, and it will at minimum log the Slack handle of person enabling
|
||||
a feature flag, the time, and the name of the flag being changed.
|
||||
|
||||
|
|
|
@ -85,7 +85,7 @@ Therefore "create a new user" would translate into "Benutzer(in) anlegen".
|
|||
### Updating the glossary
|
||||
|
||||
To propose additions to the glossary please
|
||||
[open an issue](https://gitlab.com/gitlab-org/gitlab/issues?scope=all&utf8=✓&state=all&label_name[]=Category%3AInternationalization).
|
||||
[open an issue](https://gitlab.com/gitlab-org/gitlab/-/issues?scope=all&utf8=✓&state=all&label_name[]=Category%3AInternationalization).
|
||||
|
||||
## French Translation Guidelines
|
||||
|
||||
|
|
|
@ -92,7 +92,7 @@ Marked stuck import jobs as failed. JIDs: xyz
|
|||
While the performance problems are not tackled, there is a process to workaround
|
||||
importing big projects, using a foreground import:
|
||||
|
||||
[Foreground import](https://gitlab.com/gitlab-com/gl-infra/infrastructure/issues/5384) of big projects for customers.
|
||||
[Foreground import](https://gitlab.com/gitlab-com/gl-infra/infrastructure/-/issues/5384) of big projects for customers.
|
||||
(Using the import template in the [infrastructure tracker](https://gitlab.com/gitlab-com/gl-infra/infrastructure/))
|
||||
|
||||
## Security
|
||||
|
|
|
@ -57,7 +57,7 @@ This section describes the steps you need to complete to onboard as a partner
|
|||
and complete an intgration with the Secure stage.
|
||||
|
||||
1. Read about our [partnerships](https://about.gitlab.com/partners/integrate/).
|
||||
1. [Create an issue](https://gitlab.com/gitlab-com/alliances/alliances/issues/new?issuable_template=new_partner)
|
||||
1. [Create an issue](https://gitlab.com/gitlab-com/alliances/alliances/-/issues/new?issuable_template=new_partner)
|
||||
using our new partner issue template to begin the discussion.
|
||||
1. Get a test account to begin developing your integration. You can
|
||||
request a [GitLab.com Gold Subscription Sandbox](https://about.gitlab.com/partners/integrate/#gitlabcom-gold-subscription-sandbox-request)
|
||||
|
|
|
@ -284,7 +284,7 @@ creating visualizations in Kibana.
|
|||
**Note:**
|
||||
The fields of the context are currently only logged for Sidekiq jobs triggered
|
||||
through web requests. See the
|
||||
[follow-up work](https://gitlab.com/gitlab-com/gl-infra/scalability/issues/68)
|
||||
[follow-up work](https://gitlab.com/gitlab-com/gl-infra/scalability/-/issues/68)
|
||||
for more information.
|
||||
|
||||
## Exception Handling
|
||||
|
@ -358,7 +358,7 @@ end
|
|||
for most users, but you may need to tweak them in [Omnibus GitLab](https://gitlab.com/gitlab-org/omnibus-gitlab).
|
||||
|
||||
1. If you add a new file, submit an issue to the [production
|
||||
tracker](https://gitlab.com/gitlab-com/gl-infra/production/issues) or
|
||||
tracker](https://gitlab.com/gitlab-com/gl-infra/production/-/issues) or
|
||||
a merge request to the [gitlab_fluentd](https://gitlab.com/gitlab-cookbooks/gitlab_fluentd)
|
||||
project. See [this example](https://gitlab.com/gitlab-cookbooks/gitlab_fluentd/-/merge_requests/51/diffs).
|
||||
|
||||
|
|
|
@ -93,12 +93,12 @@ systems.
|
|||
#### Database size
|
||||
|
||||
A recent [database checkup shows a breakdown of the table sizes on
|
||||
GitLab.com](https://gitlab.com/gitlab-com/gl-infra/infrastructure/issues/8022#master-1022016101-8).
|
||||
GitLab.com](https://gitlab.com/gitlab-com/gl-infra/infrastructure/-/issues/8022#master-1022016101-8).
|
||||
Since `merge_request_diff_files` contains over 1 TB of data, we will want to
|
||||
reduce/eliminate this table first. GitLab has support for [storing diffs in
|
||||
object storage](../administration/merge_request_diffs.md), which we [will
|
||||
want to do on
|
||||
GitLab.com](https://gitlab.com/gitlab-com/gl-infra/infrastructure/issues/7356).
|
||||
GitLab.com](https://gitlab.com/gitlab-com/gl-infra/infrastructure/-/issues/7356).
|
||||
|
||||
#### High availability
|
||||
|
||||
|
@ -147,7 +147,7 @@ limitation:
|
|||
|
||||
- Run multiple PgBouncer instances.
|
||||
- Use a multi-threaded connection pooler (e.g.
|
||||
[Odyssey](https://gitlab.com/gitlab-com/gl-infra/infrastructure/issues/7776).
|
||||
[Odyssey](https://gitlab.com/gitlab-com/gl-infra/infrastructure/-/issues/7776).
|
||||
|
||||
On some Linux systems, it's possible to run [multiple PgBouncer instances on
|
||||
the same port](https://gitlab.com/gitlab-org/omnibus-gitlab/-/issues/4796).
|
||||
|
@ -275,7 +275,7 @@ in a timely manner:
|
|||
- Redistribute/gerrymander Sidekiq processes by queue
|
||||
types. Long-running jobs (e.g. relating to project import) can often
|
||||
squeeze out jobs that run fast (e.g. delivering e-mail). [This technique
|
||||
was used in to optimize our existing Sidekiq deployment](https://gitlab.com/gitlab-com/gl-infra/infrastructure/issues/7219#note_218019483).
|
||||
was used in to optimize our existing Sidekiq deployment](https://gitlab.com/gitlab-com/gl-infra/infrastructure/-/issues/7219#note_218019483).
|
||||
- Optimize jobs. Eliminating unnecessary work, reducing network calls
|
||||
(e.g. SQL, Gitaly, etc.), and optimizing processor time can yield significant
|
||||
benefits.
|
||||
|
|
|
@ -23,7 +23,7 @@ For more information about the permission model at GitLab, please see [the GitLa
|
|||
### Impact
|
||||
|
||||
Improper permission handling can have significant impacts on the security of an application.
|
||||
Some situations may reveal [sensitive data](https://gitlab.com/gitlab-com/gl-infra/production/issues/477) or allow a malicious actor to perform [harmful actions](https://gitlab.com/gitlab-org/gitlab/-/issues/8180).
|
||||
Some situations may reveal [sensitive data](https://gitlab.com/gitlab-com/gl-infra/production/-/issues/477) or allow a malicious actor to perform [harmful actions](https://gitlab.com/gitlab-org/gitlab/-/issues/8180).
|
||||
The overall impact depends heavily on what resources can be accessed or modified improperly.
|
||||
|
||||
A common vulnerability when permission checks are missing is called [IDOR](https://owasp.org/www-project-web-security-testing-guide/latest/4-Web_Application_Security_Testing/05-Authorization_Testing/04-Testing_for_Insecure_Direct_Object_References) for Insecure Direct Object References.
|
||||
|
|
|
@ -147,7 +147,7 @@ GitLab doesn't skip jobs scheduled in the future, as we assume that
|
|||
the state will have changed by the time the job is scheduled to
|
||||
execute.
|
||||
|
||||
More [deduplication strategies have been suggested](https://gitlab.com/gitlab-com/gl-infra/scalability/issues/195). If you are implementing a worker that
|
||||
More [deduplication strategies have been suggested](https://gitlab.com/gitlab-com/gl-infra/scalability/-/issues/195). If you are implementing a worker that
|
||||
could benefit from a different strategy, please comment in the issue.
|
||||
|
||||
If the automatic deduplication were to cause issues in certain
|
||||
|
|
|
@ -86,7 +86,7 @@ subgraph "gitlab-qa-mirror pipeline"
|
|||
1. The result of the GitLab QA pipeline is being
|
||||
propagated upstream, through Omnibus, back to the GitLab merge request.
|
||||
|
||||
Please note, we plan to [add more specific information](https://gitlab.com/gitlab-org/quality/team-tasks/issues/156)
|
||||
Please note, we plan to [add more specific information](https://gitlab.com/gitlab-org/quality/team-tasks/-/issues/156)
|
||||
about the tests included in each job/scenario that runs in `gitlab-qa-mirror`.
|
||||
|
||||
#### With Pipeline for Merged Results
|
||||
|
@ -191,5 +191,5 @@ Continued reading:
|
|||
|
||||
You can ask question in the `#quality` channel on Slack (GitLab internal) or
|
||||
you can find an issue you would like to work on in
|
||||
[the `gitlab` issue tracker](https://gitlab.com/gitlab-org/gitlab/issues?label_name%5B%5D=QA&label_name%5B%5D=test), or
|
||||
[the `gitlab-qa` issue tracker](https://gitlab.com/gitlab-org/gitlab-qa/issues?label_name%5B%5D=new+scenario).
|
||||
[the `gitlab` issue tracker](https://gitlab.com/gitlab-org/gitlab/-/issues?label_name%5B%5D=QA&label_name%5B%5D=test), or
|
||||
[the `gitlab-qa` issue tracker](https://gitlab.com/gitlab-org/gitlab-qa/-/issues?label_name%5B%5D=new+scenario).
|
||||
|
|
|
@ -152,7 +152,7 @@ used by the `review-deploy` and `review-stop` jobs.
|
|||
|
||||
### Get access to the GCP Review Apps cluster
|
||||
|
||||
You need to [open an access request (internal link)](https://gitlab.com/gitlab-com/access-requests/issues/new)
|
||||
You need to [open an access request (internal link)](https://gitlab.com/gitlab-com/access-requests/-/issues/new)
|
||||
for the `gcp-review-apps-sg` GCP group. In order to join a group, you must specify the desired GCP role in your access request.
|
||||
The role is what will grant you specific permissions in order to engage with Review App containers.
|
||||
|
||||
|
@ -406,7 +406,7 @@ find a way to limit it to only us.**
|
|||
## Other resources
|
||||
|
||||
- [Review Apps integration for CE/EE (presentation)](https://docs.google.com/presentation/d/1QPLr6FO4LduROU8pQIPkX1yfGvD13GEJIBOenqoKxR8/edit?usp=sharing)
|
||||
- [Stability issues](https://gitlab.com/gitlab-org/quality/team-tasks/issues/212)
|
||||
- [Stability issues](https://gitlab.com/gitlab-org/quality/team-tasks/-/issues/212)
|
||||
|
||||
### Helpful command line tools
|
||||
|
||||
|
|
|
@ -295,7 +295,7 @@ graph RL
|
|||
|
||||
- **DOM**:
|
||||
Testing on the real DOM ensures your components work in the intended environment.
|
||||
Part of DOM testing is delegated to [cross-browser testing](https://gitlab.com/gitlab-org/quality/team-tasks/issues/45).
|
||||
Part of DOM testing is delegated to [cross-browser testing](https://gitlab.com/gitlab-org/quality/team-tasks/-/issues/45).
|
||||
- **Properties or state of components**:
|
||||
On this level, all tests can only perform actions a user would do.
|
||||
For example: to change the state of a component, a click event would be fired.
|
||||
|
|
|
@ -114,7 +114,7 @@ We have three kinds of file encoding in our uploads:
|
|||
|
||||
1. <i class="fa fa-check-circle"></i> **multipart**: `multipart/form-data` is the most common, a file is encoded as a part of a multipart encoded request.
|
||||
1. <i class="fa fa-check-circle"></i> **body**: some APIs uploads files as the whole request body.
|
||||
1. <i class="fa fa-times-circle"></i> **JSON**: some JSON API uploads files as base64 encoded strings. This will require a change to GitLab Workhorse, which [is planned](https://gitlab.com/gitlab-org/gitlab-workhorse/issues/226).
|
||||
1. <i class="fa fa-times-circle"></i> **JSON**: some JSON API uploads files as base64 encoded strings. This will require a change to GitLab Workhorse, which [is planned](https://gitlab.com/gitlab-org/gitlab-workhorse/-/issues/226).
|
||||
|
||||
## Uploading technologies
|
||||
|
||||
|
|
|
@ -62,7 +62,7 @@ have to adhere to various internal requirements (for example, org. compliance, v
|
|||
In cases where a strategic user has a requirement to test a feature before it is
|
||||
officially released, we can offer to create a Release Candidate (RC) version that will
|
||||
include the specific feature. This should be needed only in extreme cases, and can be requested for
|
||||
consideration by raising an issue in the [release/tasks](https://gitlab.com/gitlab-org/release/tasks/issues/new?issuable_template=Backporting-request) issue tracker.
|
||||
consideration by raising an issue in the [release/tasks](https://gitlab.com/gitlab-org/release/tasks/-/issues/new?issuable_template=Backporting-request) issue tracker.
|
||||
It is important to note that the Release Candidate will also contain other features and changes as
|
||||
it is not possible to easily isolate a specific feature (similar reasons as noted above). The
|
||||
Release Candidate will be no different than any code that is deployed to GitLab.com or is publicly
|
||||
|
@ -95,7 +95,7 @@ For instance, if we release `11.2.1` with a fix for a severe bug introduced in
|
|||
`11.0.0`, we could backport the fix to a new `11.0.x`, and `11.1.x` patch release.
|
||||
|
||||
To request backporting to more than one stable release for consideration, raise an issue in the
|
||||
[release/tasks](https://gitlab.com/gitlab-org/release/tasks/issues/new?issuable_template=Backporting-request) issue tracker.
|
||||
[release/tasks](https://gitlab.com/gitlab-org/release/tasks/-/issues/new?issuable_template=Backporting-request) issue tracker.
|
||||
|
||||
### Security releases
|
||||
|
||||
|
|
|
@ -358,7 +358,7 @@ as it attempts to fetch the image using `CI_REGISTRY_PASSWORD`.
|
|||
|
||||
CAUTION: **Deprecation**
|
||||
The default value for the `deploymentApiVersion` setting was changed from
|
||||
`extensions/v1beta` to `apps/v1` in [GitLab 13.0](https://gitlab.com/gitlab-org/charts/auto-deploy-app/issues/47).
|
||||
`extensions/v1beta` to `apps/v1` in [GitLab 13.0](https://gitlab.com/gitlab-org/charts/auto-deploy-app/-/issues/47).
|
||||
|
||||
In Kubernetes 1.16 and later, a number of
|
||||
[APIs were removed](https://kubernetes.io/blog/2019/07/18/api-deprecations-in-1-16/),
|
||||
|
|
|
@ -141,7 +141,7 @@ enabled on the Git server:
|
|||
1. **Create a new Git repository and fetch.** Support for `--filter=sparse:oid`
|
||||
using the clone command is incomplete, so we will emulate the clone command
|
||||
by hand, using `git init` and `git fetch`. Follow
|
||||
[issue tracking support for `--filter=sparse:oid`](https://gitlab.com/gitlab-org/git/issues/4)
|
||||
[issue tracking support for `--filter=sparse:oid`](https://gitlab.com/gitlab-org/git/-/issues/4)
|
||||
for updates.
|
||||
|
||||
```shell
|
||||
|
@ -173,7 +173,7 @@ enabled on the Git server:
|
|||
|
||||
1. **Sparse checkout** must be enabled and configured to prevent objects from
|
||||
other paths being downloaded automatically when checking out branches. Follow
|
||||
[issue proposing automating sparse checkouts](https://gitlab.com/gitlab-org/git/issues/5) for updates.
|
||||
[issue proposing automating sparse checkouts](https://gitlab.com/gitlab-org/git/-/issues/5) for updates.
|
||||
|
||||
```shell
|
||||
# Enable sparse checkout
|
||||
|
|
|
@ -154,7 +154,7 @@ Some tickets need specific knowledge or a deep understanding of a particular com
|
|||
- Understand what's in the pipeline and proposed features at GitLab: [Direction Page](https://about.gitlab.com/direction/)
|
||||
- Practice searching issues and filtering using [labels](https://gitlab.com/gitlab-org/gitlab/-/labels) to find existing feature proposals and bugs
|
||||
- If raising a new issue always provide a relevant label and a link to the relevant ticket in Zendesk
|
||||
- Add [customer labels](https://gitlab.com/gitlab-org/gitlab/issues?label_name%5B%5D=customer) for those issues relevant to our subscribers
|
||||
- Add [customer labels](https://gitlab.com/gitlab-org/gitlab/-/issues?label_name%5B%5D=customer) for those issues relevant to our subscribers
|
||||
- Take a look at the [existing issue templates](https://gitlab.com/gitlab-org/gitlab/blob/master/CONTRIBUTING.md#issue-tracker) to see what is expected
|
||||
- Raise issues for bugs in a manner that would make the issue easily reproducible. A Developer or a contributor may work on your issue
|
||||
|
||||
|
|
|
@ -22,7 +22,7 @@ Based on your installation, choose a section below that fits your needs.
|
|||
source](upgrading_from_source.md) - The guidelines for upgrading Community
|
||||
Edition and Enterprise Edition from source.
|
||||
- [Patch versions](patch_versions.md) guide includes the steps needed for a
|
||||
patch version, eg. 6.2.0 to 6.2.1, and apply to both Community and Enterprise
|
||||
patch version, such as 6.2.0 to 6.2.1, and apply to both Community and Enterprise
|
||||
Editions.
|
||||
|
||||
In the past we used separate documents for the upgrading instructions, but we
|
||||
|
@ -178,7 +178,7 @@ If you wish to upgrade your GitLab installation from Community to Enterprise
|
|||
Edition, follow the guides below based on the installation method:
|
||||
|
||||
- [Source CE to EE update guides](upgrading_from_ce_to_ee.md) - The steps are very similar
|
||||
to a version upgrade: stop the server, get the code, update config files for
|
||||
to a version upgrade: stop the server, get the code, update configuration files for
|
||||
the new functionality, install libraries and do migrations, update the init
|
||||
script, start the application and check its status.
|
||||
- [Omnibus CE to EE](https://docs.gitlab.com/omnibus/update/README.html#updating-community-edition-to-enterprise-edition) - Follow this guide to update your Omnibus
|
||||
|
|
|
@ -371,7 +371,7 @@ test:
|
|||
release we will update the autoscaler to enable
|
||||
the pre-provisioning of virtual machines. This will significantly reduce
|
||||
the time it takes to provision a VM on the Windows fleet. You can
|
||||
follow along in the [related issue](https://gitlab.com/gitlab-org/ci-cd/custom-executor-drivers/autoscaler/issues/32).
|
||||
follow along in the [related issue](https://gitlab.com/gitlab-org/ci-cd/custom-executor-drivers/autoscaler/-/issues/32).
|
||||
- The Windows Shared Runner fleet may be unavailable occasionally
|
||||
for maintenance or updates.
|
||||
- The Windows Shared Runner virtual machine instances do not use the
|
||||
|
|
|
@ -258,7 +258,7 @@ build:
|
|||
- docker push $CI_REGISTRY/group/project/image:latest
|
||||
```
|
||||
|
||||
You can also make use of [other variables](../../../ci/variables/README.md) to avoid hardcoding:
|
||||
You can also make use of [other variables](../../../ci/variables/README.md) to avoid hard-coding:
|
||||
|
||||
```yaml
|
||||
build:
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
# GitLab Go Proxy **(PREMIUM)**
|
||||
|
||||
> - [Introduced](https://gitlab.com/gitlab-org/gitlab/issues/27376) in [GitLab Premium](https://about.gitlab.com/pricing/) 13.1.
|
||||
> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/27376) in [GitLab Premium](https://about.gitlab.com/pricing/) 13.1.
|
||||
> - It's deployed behind a feature flag, disabled by default.
|
||||
> - It's disabled on GitLab.com.
|
||||
> - It's not recommended for production use.
|
||||
|
|
|
@ -134,7 +134,7 @@ This example code does the following:
|
|||
#### Setting up your AWS credentials with your GitLab account
|
||||
|
||||
In order to interact with your AWS account, the GitLab CI/CD pipelines require both `AWS_ACCESS_KEY_ID` and `AWS_SECRET_ACCESS_KEY` to be defined in your GitLab settings under **Settings > CI/CD > Variables**.
|
||||
For more information please see: <https://docs.gitlab.com/ee/ci/variables/README.html#via-the-ui>
|
||||
For more information please see [Create a custom variable in the UI](../../../../ci/variables/README.md#create-a-custom-variable-in-the-ui).
|
||||
|
||||
NOTE: **Note:**
|
||||
The AWS credentials you provide must include IAM policies that provision correct access control to AWS Lambda, API Gateway, CloudFormation, and IAM resources.
|
||||
|
@ -288,7 +288,7 @@ automated testing of both local and deployed serverless function.
|
|||
|
||||
The example code is available:
|
||||
|
||||
- As a [cloneable repository](https://gitlab.com/gitlab-org/serverless/examples/serverless-framework-js).
|
||||
- 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)
|
||||
|
@ -416,7 +416,7 @@ production:
|
|||
environment: production
|
||||
```
|
||||
|
||||
Let’s examine the config file more closely:
|
||||
Let’s examine the configuration file more closely:
|
||||
|
||||
- `image` specifies the Docker image to use for this build. This is the latest Python
|
||||
image since the sample application is written in Python.
|
||||
|
|
|
@ -356,6 +356,24 @@ a [Push event webhook](../integrations/webhooks.md#push-events) to trigger an im
|
|||
pull to GitLab. Push mirroring from GitLab is rate limited to once per minute when only push mirroring
|
||||
protected branches.
|
||||
|
||||
### Configure a webhook to trigger an immediate pull to GitLab
|
||||
|
||||
Assuming you have already configured the [push](#setting-up-a-push-mirror-to-another-gitlab-instance-with-2fa-activated) and [pull](#pulling-from-a-remote-repository-starter) mirrors in the upstream GitLab instance, to trigger an immediate pull as suggested above, you will need to configure a [Push Event Web Hook](../integrations/webhooks.md#push-events) in the downstream instance.
|
||||
|
||||
To do this:
|
||||
|
||||
- Create a [personal access token](../../profile/personal_access_tokens.md) with `API` scope.
|
||||
- Navigate to **Settings > Webhooks**
|
||||
- Add the webhook URL which in this case will use the [Pull Mirror API](../../../api/projects.md#start-the-pull-mirroring-process-for-a-project-starter) request to trigger an immediate pull after updates to the repository.
|
||||
|
||||
```plaintext
|
||||
https://gitlab.example.com/api/v4/projects/:id/mirror/pull?private_token=<your_access_token>
|
||||
```
|
||||
|
||||
- Ensure that the **Push Events** checkbox is selected.
|
||||
- Click on **Add Webhook** button to save the webhook.
|
||||
- To test the integration click on the **Test** button and confirm GitLab does not return any error.
|
||||
|
||||
### Preventing conflicts using a `pre-receive` hook
|
||||
|
||||
CAUTION: **Warning:**
|
||||
|
|
|
@ -177,7 +177,7 @@ To turn on the feature, ask a GitLab administrator with Rails console access to
|
|||
command:
|
||||
|
||||
```ruby
|
||||
Feature.enable(service_desk_email)
|
||||
Feature.enable(:service_desk_email)
|
||||
```
|
||||
|
||||
The configuration options are the same as for configuring
|
||||
|
|
|
@ -284,7 +284,7 @@ terminal:
|
|||
|
||||
- The `webide-file-sync` executable must start **after** the project
|
||||
directory is available. This is why we need to add `sleep 5` to the `command`.
|
||||
See [this issue](https://gitlab.com/gitlab-org/webide-file-sync/issues/7) for
|
||||
See [this issue](https://gitlab.com/gitlab-org/webide-file-sync/-/issues/7) for
|
||||
more information.
|
||||
- `$CI_PROJECT_DIR` is a
|
||||
[predefined environment variable](../../../ci/variables/predefined_variables.md)
|
||||
|
|
|
@ -14,6 +14,21 @@ module Gitlab
|
|||
|
||||
payload.delete('extra.server')
|
||||
|
||||
# The raven extra context is populated by Raven::SidekiqCleanupMiddleware.
|
||||
#
|
||||
# It contains the full sidekiq job which consists of mixed types and nested
|
||||
# objects. That causes a bunch of issues when trying to ingest logs into
|
||||
# Elasticsearch.
|
||||
#
|
||||
# We apply a stricter schema here that forces the args to be an array of
|
||||
# strings. This same logic exists in Gitlab::SidekiqLogging::JSONFormatter.
|
||||
payload['extra.sidekiq'].tap do |value|
|
||||
if value.is_a?(Hash) && value.key?('args')
|
||||
value = value.dup
|
||||
payload['extra.sidekiq']['args'] = Gitlab::Utils::LogLimitedArray.log_limited_array(value['args'].try(:map, &:to_s))
|
||||
end
|
||||
end
|
||||
|
||||
if exception.backtrace
|
||||
payload['exception.backtrace'] = Gitlab::BacktraceCleaner.clean_backtrace(exception.backtrace)
|
||||
end
|
||||
|
|
|
@ -16,9 +16,7 @@ describe('RepoTabs', () => {
|
|||
vm = createComponent(RepoTabs, {
|
||||
files: openedFiles,
|
||||
viewer: 'editor',
|
||||
hasChanges: false,
|
||||
activeFile: file('activeFile'),
|
||||
hasMergeRequest: false,
|
||||
});
|
||||
openedFiles[0].active = true;
|
||||
|
||||
|
|
|
@ -179,5 +179,16 @@ describe Gitlab::ErrorTracking do
|
|||
described_class.track_exception(exception, extra_info)
|
||||
end
|
||||
end
|
||||
|
||||
context 'with sidekiq args' do
|
||||
let(:extra) { { sidekiq: { 'args' => [1, { 'id' => 2, 'name' => 'hello' }, 'some-value', 'another-value'] } } }
|
||||
|
||||
it 'ensures extra.sidekiq.args is a string' do
|
||||
expect(Gitlab::ErrorTracking::Logger).to receive(:error).with(
|
||||
hash_including({ 'extra.sidekiq' => { 'args' => ['1', '{"id"=>2, "name"=>"hello"}', 'some-value', 'another-value'] } }))
|
||||
|
||||
described_class.track_exception(exception, extra)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -6,28 +6,34 @@ describe SnippetInputAction do
|
|||
describe 'validations' do
|
||||
using RSpec::Parameterized::TableSyntax
|
||||
|
||||
where(:action, :file_path, :content, :previous_path, :is_valid) do
|
||||
'create' | 'foobar' | 'foobar' | 'foobar' | true
|
||||
'move' | 'foobar' | 'foobar' | 'foobar' | true
|
||||
'delete' | 'foobar' | 'foobar' | 'foobar' | true
|
||||
'update' | 'foobar' | 'foobar' | 'foobar' | true
|
||||
'foo' | 'foobar' | 'foobar' | 'foobar' | false
|
||||
nil | 'foobar' | 'foobar' | 'foobar' | false
|
||||
'' | 'foobar' | 'foobar' | 'foobar' | false
|
||||
'move' | 'foobar' | 'foobar' | nil | false
|
||||
'move' | 'foobar' | 'foobar' | '' | false
|
||||
'create' | 'foobar' | nil | 'foobar' | false
|
||||
'create' | 'foobar' | '' | 'foobar' | false
|
||||
'create' | nil | 'foobar' | 'foobar' | false
|
||||
'create' | '' | 'foobar' | 'foobar' | false
|
||||
'update' | 'foobar' | nil | 'foobar' | false
|
||||
'update' | 'other' | 'foobar' | 'foobar' | false
|
||||
where(:action, :file_path, :content, :previous_path, :is_valid, :invalid_field) do
|
||||
'create' | 'foobar' | 'foobar' | 'foobar' | true | nil
|
||||
'move' | 'foobar' | 'foobar' | 'foobar' | true | nil
|
||||
'delete' | 'foobar' | 'foobar' | 'foobar' | true | nil
|
||||
'update' | 'foobar' | 'foobar' | 'foobar' | true | nil
|
||||
'foo' | 'foobar' | 'foobar' | 'foobar' | false | :action
|
||||
nil | 'foobar' | 'foobar' | 'foobar' | false | :action
|
||||
'' | 'foobar' | 'foobar' | 'foobar' | false | :action
|
||||
'move' | 'foobar' | 'foobar' | nil | false | :previous_path
|
||||
'move' | 'foobar' | 'foobar' | '' | false | :previous_path
|
||||
'create' | 'foobar' | nil | 'foobar' | false | :content
|
||||
'create' | 'foobar' | '' | 'foobar' | false | :content
|
||||
'create' | nil | 'foobar' | 'foobar' | false | :file_path
|
||||
'create' | '' | 'foobar' | 'foobar' | false | :file_path
|
||||
'update' | 'foobar' | nil | 'foobar' | false | :content
|
||||
'update' | 'other' | 'foobar' | 'foobar' | false | :file_path
|
||||
end
|
||||
|
||||
with_them do
|
||||
subject { described_class.new(action: action, file_path: file_path, content: content, previous_path: previous_path).valid? }
|
||||
subject { described_class.new(action: action, file_path: file_path, content: content, previous_path: previous_path) }
|
||||
|
||||
specify { is_expected.to be is_valid}
|
||||
specify do
|
||||
expect(subject.valid?).to be is_valid
|
||||
|
||||
unless is_valid
|
||||
expect(subject.errors).to include(invalid_field)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
|
Loading…
Reference in New Issue