Add latest changes from gitlab-org/gitlab@master
This commit is contained in:
		
							parent
							
								
									7619a0da6b
								
							
						
					
					
						commit
						cb9d96285c
					
				|  | @ -11,7 +11,7 @@ If there is no relevant deprecation issue, hit pause and: | ||||||
| 
 | 
 | ||||||
| Deprecation announcements can and should be created and merged into Docs at any time, to optimize user awareness and planning. We encourage confirmed deprecations to be merged as soon as the required reviews are complete, even if weeks ahead of the target milestone's release post. For the announcement to be included in a specific release post and that release's documentation packages, this MR must be reviewed/merged per the due dates below: | Deprecation announcements can and should be created and merged into Docs at any time, to optimize user awareness and planning. We encourage confirmed deprecations to be merged as soon as the required reviews are complete, even if weeks ahead of the target milestone's release post. For the announcement to be included in a specific release post and that release's documentation packages, this MR must be reviewed/merged per the due dates below: | ||||||
| 
 | 
 | ||||||
| **By the 10th**: Assign this MR to these team members as Reviewer and for Approval (optional unless noted as required): | **10 days (Monday) before the Release Date**: Assign this MR to these team members as Reviewer and for Approval (optional unless noted as required): | ||||||
| 
 | 
 | ||||||
| - Product Marketing: `@PMM` | - Product Marketing: `@PMM` | ||||||
| - Product Designer(s): `@ProductDesigners` | - Product Designer(s): `@ProductDesigners` | ||||||
|  | @ -19,9 +19,9 @@ Deprecation announcements can and should be created and merged into Docs at any | ||||||
| - Engineering Manager: `@EM` - Required | - Engineering Manager: `@EM` - Required | ||||||
| - Technical writer: `@TW` - Required | - Technical writer: `@TW` - Required | ||||||
| 
 | 
 | ||||||
| **By 11:59 AM PDT 15th**: EM/PM assigns this MR to the TW reviewer for final review and merge: `@EM/PM` | **By 11:59 AM PDT 8 days (Wednesday) before the Release Date**: EM/PM assigns this MR to the TW reviewer for final review and merge: `@EM/PM` | ||||||
| 
 | 
 | ||||||
| **By 11:59 PM PDT 17th**: TW Reviewer updates Docs by merging this MR to `master`: `@TW` | **By 11:59 PM PDT 6 days (Friday) before the Release Date**: TW Reviewer updates Docs by merging this MR to `master`: `@TW` | ||||||
| 
 | 
 | ||||||
| --- | --- | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
							
								
								
									
										2
									
								
								Gemfile
								
								
								
								
							
							
						
						
									
										2
									
								
								Gemfile
								
								
								
								
							|  | @ -638,3 +638,5 @@ gem 'net-protocol', '~> 0.1.3' # rubocop:todo Gemfile/MissingFeatureCategory | ||||||
| gem 'net-http', '= 0.1.1' # rubocop:todo Gemfile/MissingFeatureCategory | gem 'net-http', '= 0.1.1' # rubocop:todo Gemfile/MissingFeatureCategory | ||||||
| 
 | 
 | ||||||
| gem 'duo_api', '~> 1.3' # rubocop:todo Gemfile/MissingFeatureCategory | gem 'duo_api', '~> 1.3' # rubocop:todo Gemfile/MissingFeatureCategory | ||||||
|  | 
 | ||||||
|  | gem 'gitlab-sdk', feature_category: :application_instrumentation | ||||||
|  |  | ||||||
|  | @ -218,6 +218,7 @@ | ||||||
| {"name":"gitlab-mail_room","version":"0.0.23","platform":"ruby","checksum":"23564fa4dab24ec5011d4c64a801fc0228301d5b0f046a26a1d8e96e36c19997"}, | {"name":"gitlab-mail_room","version":"0.0.23","platform":"ruby","checksum":"23564fa4dab24ec5011d4c64a801fc0228301d5b0f046a26a1d8e96e36c19997"}, | ||||||
| {"name":"gitlab-markup","version":"1.9.0","platform":"ruby","checksum":"7eda045a08ec2d110084252fa13a8c9eac8bdac0e302035ca7db4b82bcbd7ed4"}, | {"name":"gitlab-markup","version":"1.9.0","platform":"ruby","checksum":"7eda045a08ec2d110084252fa13a8c9eac8bdac0e302035ca7db4b82bcbd7ed4"}, | ||||||
| {"name":"gitlab-net-dns","version":"0.9.2","platform":"ruby","checksum":"f726d978479d43810819f12a45c0906d775a07e34df111bbe693fffbbef3059d"}, | {"name":"gitlab-net-dns","version":"0.9.2","platform":"ruby","checksum":"f726d978479d43810819f12a45c0906d775a07e34df111bbe693fffbbef3059d"}, | ||||||
|  | {"name":"gitlab-sdk","version":"0.2.3","platform":"ruby","checksum":"e891278a20860ab1f861312813dce5f2e73081bcc10def2ae4ee138b10a2d0d6"}, | ||||||
| {"name":"gitlab-styles","version":"11.0.0","platform":"ruby","checksum":"0dd8ec066ce9955ac51d3616c6bfded30f75bb526f39ff392ece6f43d5b9406b"}, | {"name":"gitlab-styles","version":"11.0.0","platform":"ruby","checksum":"0dd8ec066ce9955ac51d3616c6bfded30f75bb526f39ff392ece6f43d5b9406b"}, | ||||||
| {"name":"gitlab_chronic_duration","version":"0.12.0","platform":"ruby","checksum":"0d766944d415b5c831f176871ee8625783fc0c5bfbef2d79a3a616f207ffc16d"}, | {"name":"gitlab_chronic_duration","version":"0.12.0","platform":"ruby","checksum":"0d766944d415b5c831f176871ee8625783fc0c5bfbef2d79a3a616f207ffc16d"}, | ||||||
| {"name":"gitlab_omniauth-ldap","version":"2.2.0","platform":"ruby","checksum":"bb4d20acb3b123ed654a8f6a47d3fac673ece7ed0b6992edb92dca14bad2838c"}, | {"name":"gitlab_omniauth-ldap","version":"2.2.0","platform":"ruby","checksum":"bb4d20acb3b123ed654a8f6a47d3fac673ece7ed0b6992edb92dca14bad2838c"}, | ||||||
|  |  | ||||||
|  | @ -703,6 +703,10 @@ GEM | ||||||
|       oauth2 (>= 1.4.4, < 3) |       oauth2 (>= 1.4.4, < 3) | ||||||
|     gitlab-markup (1.9.0) |     gitlab-markup (1.9.0) | ||||||
|     gitlab-net-dns (0.9.2) |     gitlab-net-dns (0.9.2) | ||||||
|  |     gitlab-sdk (0.2.3) | ||||||
|  |       activesupport (>= 5.2.0) | ||||||
|  |       rake (~> 13.0) | ||||||
|  |       snowplow-tracker (~> 0.8.0) | ||||||
|     gitlab-styles (11.0.0) |     gitlab-styles (11.0.0) | ||||||
|       rubocop (~> 1.57.1) |       rubocop (~> 1.57.1) | ||||||
|       rubocop-graphql (~> 0.18) |       rubocop-graphql (~> 0.18) | ||||||
|  | @ -1880,6 +1884,7 @@ DEPENDENCIES | ||||||
|   gitlab-rspec! |   gitlab-rspec! | ||||||
|   gitlab-safe_request_store! |   gitlab-safe_request_store! | ||||||
|   gitlab-schema-validation! |   gitlab-schema-validation! | ||||||
|  |   gitlab-sdk | ||||||
|   gitlab-secret_detection! |   gitlab-secret_detection! | ||||||
|   gitlab-sidekiq-fetcher! |   gitlab-sidekiq-fetcher! | ||||||
|   gitlab-styles (~> 11.0.0) |   gitlab-styles (~> 11.0.0) | ||||||
|  |  | ||||||
|  | @ -582,7 +582,7 @@ See https://gitlab.com/gitlab-org/gitlab/issues/36857 for more details. | ||||||
| 
 | 
 | ||||||
| // used in the Markdown rendering of labels | // used in the Markdown rendering of labels | ||||||
| .scoped-label-tooltip-title { | .scoped-label-tooltip-title { | ||||||
|   color: var(--indigo-300, $indigo-300); |   color: var(--theme-indigo-300, $theme-indigo-300); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| .gl-label-scoped { | .gl-label-scoped { | ||||||
|  |  | ||||||
|  | @ -24,7 +24,7 @@ | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| .feature-highlight-illustration { | .feature-highlight-illustration { | ||||||
|   background-color: $indigo-50; |   background-color: $theme-indigo-50; | ||||||
|   border-top-left-radius: 2px; |   border-top-left-radius: 2px; | ||||||
|   border-top-right-radius: 2px; |   border-top-right-radius: 2px; | ||||||
|   border-bottom: 1px solid darken($gray-normal, 8%); |   border-bottom: 1px solid darken($gray-normal, 8%); | ||||||
|  |  | ||||||
|  | @ -1,3 +1,5 @@ | ||||||
|  | @import '@gitlab/ui/dist/tokens/scss/tokens'; | ||||||
|  | 
 | ||||||
| /* | /* | ||||||
|  * Layout |  * Layout | ||||||
|  */ |  */ | ||||||
|  | @ -91,79 +93,6 @@ $darken-border-dashed-factor: 25% !default; | ||||||
| $purple: #6d49cb !default; | $purple: #6d49cb !default; | ||||||
| $purple-light: #ede8fb !default; | $purple-light: #ede8fb !default; | ||||||
| 
 | 
 | ||||||
| $green-50: #ecf4ee !default; |  | ||||||
| $green-100: #c3e6cd !default; |  | ||||||
| $green-200: #91d4a8 !default; |  | ||||||
| $green-300: #52b87a !default; |  | ||||||
| $green-400: #2da160 !default; |  | ||||||
| $green-500: #108548 !default; |  | ||||||
| $green-600: #217645 !default; |  | ||||||
| $green-700: #24663b !default; |  | ||||||
| $green-800: #0d532a !default; |  | ||||||
| $green-900: #0a4020 !default; |  | ||||||
| $green-950: #072b15 !default; |  | ||||||
| 
 |  | ||||||
| $blue-50: #e9f3fc !default; |  | ||||||
| $blue-100: #cbe2f9 !default; |  | ||||||
| $blue-200: #9dc7f1 !default; |  | ||||||
| $blue-300: #63a6e9 !default; |  | ||||||
| $blue-400: #428fdc !default; |  | ||||||
| $blue-500: #1f75cb !default; |  | ||||||
| $blue-600: #1068bf !default; |  | ||||||
| $blue-700: #0b5cad !default; |  | ||||||
| $blue-800: #064787 !default; |  | ||||||
| $blue-900: #033464 !default; |  | ||||||
| $blue-950: #002850 !default; |  | ||||||
| 
 |  | ||||||
| $orange-50: #fdf1dd !default; |  | ||||||
| $orange-100: #f5d9a8 !default; |  | ||||||
| $orange-200: #e9be74 !default; |  | ||||||
| $orange-300: #d99530 !default; |  | ||||||
| $orange-400: #c17d10 !default; |  | ||||||
| $orange-500: #ab6100 !default; |  | ||||||
| $orange-600: #9e5400 !default; |  | ||||||
| $orange-700: #8f4700 !default; |  | ||||||
| $orange-800: #703800 !default; |  | ||||||
| $orange-900: #5c2900 !default; |  | ||||||
| $orange-950: #421f00 !default; |  | ||||||
| 
 |  | ||||||
| $red-50: #fcf1ef !default; |  | ||||||
| $red-100: #fdd4cd !default; |  | ||||||
| $red-200: #fcb5aa !default; |  | ||||||
| $red-300: #f57f6c !default; |  | ||||||
| $red-400: #ec5941 !default; |  | ||||||
| $red-500: #dd2b0e !default; |  | ||||||
| $red-600: #c91c00 !default; |  | ||||||
| $red-700: #ae1800 !default; |  | ||||||
| $red-800: #8d1300 !default; |  | ||||||
| $red-900: #660e00 !default; |  | ||||||
| $red-950: #4d0a00 !default; |  | ||||||
| 
 |  | ||||||
| $purple-50: #f4f0ff !default; |  | ||||||
| $purple-100: #e1d8f9 !default; |  | ||||||
| $purple-200: #cbbbf2 !default; |  | ||||||
| $purple-300: #ac93e6 !default; |  | ||||||
| $purple-400: #9475db !default; |  | ||||||
| $purple-500: #7b58cf !default; |  | ||||||
| $purple-600: #694cc0 !default; |  | ||||||
| $purple-700: #5943b6 !default; |  | ||||||
| $purple-800: #453894 !default; |  | ||||||
| $purple-900: #2f2a6b !default; |  | ||||||
| $purple-950: #232150 !default; |  | ||||||
| 
 |  | ||||||
| $gray-10: #fbfafd !default; |  | ||||||
| $gray-50: #ececef !default; |  | ||||||
| $gray-100: #dcdcde !default; |  | ||||||
| $gray-200: #bfbfc3 !default; |  | ||||||
| $gray-300: #a4a3a8 !default; |  | ||||||
| $gray-400: #89888d !default; |  | ||||||
| $gray-500: #737278 !default; |  | ||||||
| $gray-600: #626168 !default; |  | ||||||
| $gray-700: #535158 !default; |  | ||||||
| $gray-800: #434248 !default; |  | ||||||
| $gray-900: #333238 !default; |  | ||||||
| $gray-950: #1f1e24 !default; |  | ||||||
| 
 |  | ||||||
| $gray-lightest: lighten($gray-10, 1) !default; | $gray-lightest: lighten($gray-10, 1) !default; | ||||||
| $gray-light: $gray-10 !default; | $gray-light: $gray-10 !default; | ||||||
| $gray-lighter: lighten($gray-50, 4) !default; | $gray-lighter: lighten($gray-50, 4) !default; | ||||||
|  | @ -179,196 +108,14 @@ $t-gray-a-08: rgba($gray-950, 0.08) !default; | ||||||
| $t-gray-a-16: rgba($gray-950, 0.16) !default; | $t-gray-a-16: rgba($gray-950, 0.16) !default; | ||||||
| $t-gray-a-24: rgba($gray-950, 0.24) !default; | $t-gray-a-24: rgba($gray-950, 0.24) !default; | ||||||
| 
 | 
 | ||||||
| $white: #fff !default; |  | ||||||
| $white-normal: $gray-50 !default; | $white-normal: $gray-50 !default; | ||||||
| $white-dark: darken($gray-50, 2) !default; | $white-dark: darken($gray-50, 2) !default; | ||||||
| 
 | 
 | ||||||
| $black: #000 !default; |  | ||||||
| $black-transparent: $t-gray-a-24 !default; | $black-transparent: $t-gray-a-24 !default; | ||||||
| $almost-black: $gray-950 !default; | $almost-black: $gray-950 !default; | ||||||
| 
 | 
 | ||||||
| $greens: ( |  | ||||||
|   '50': $green-50, |  | ||||||
|   '100': $green-100, |  | ||||||
|   '200': $green-200, |  | ||||||
|   '300': $green-300, |  | ||||||
|   '400': $green-400, |  | ||||||
|   '500': $green-500, |  | ||||||
|   '600': $green-600, |  | ||||||
|   '700': $green-700, |  | ||||||
|   '800': $green-800, |  | ||||||
|   '900': $green-900, |  | ||||||
|   '950': $green-950 |  | ||||||
| ); |  | ||||||
| 
 |  | ||||||
| $blues: ( |  | ||||||
|   '50': $blue-50, |  | ||||||
|   '100': $blue-100, |  | ||||||
|   '200': $blue-200, |  | ||||||
|   '300': $blue-300, |  | ||||||
|   '400': $blue-400, |  | ||||||
|   '500': $blue-500, |  | ||||||
|   '600': $blue-600, |  | ||||||
|   '700': $blue-700, |  | ||||||
|   '800': $blue-800, |  | ||||||
|   '900': $blue-900, |  | ||||||
|   '950': $blue-950 |  | ||||||
| ); |  | ||||||
| 
 |  | ||||||
| $oranges: ( |  | ||||||
|   '50': $orange-50, |  | ||||||
|   '100': $orange-100, |  | ||||||
|   '200': $orange-200, |  | ||||||
|   '300': $orange-300, |  | ||||||
|   '400': $orange-400, |  | ||||||
|   '500': $orange-500, |  | ||||||
|   '600': $orange-600, |  | ||||||
|   '700': $orange-700, |  | ||||||
|   '800': $orange-800, |  | ||||||
|   '900': $orange-900, |  | ||||||
|   '950': $orange-950 |  | ||||||
| ); |  | ||||||
| 
 |  | ||||||
| $reds: ( |  | ||||||
|   '50': $red-50, |  | ||||||
|   '100': $red-100, |  | ||||||
|   '200': $red-200, |  | ||||||
|   '300': $red-300, |  | ||||||
|   '400': $red-400, |  | ||||||
|   '500': $red-500, |  | ||||||
|   '600': $red-600, |  | ||||||
|   '700': $red-700, |  | ||||||
|   '800': $red-800, |  | ||||||
|   '900': $red-900, |  | ||||||
|   '950': $red-950 |  | ||||||
| ); |  | ||||||
| 
 |  | ||||||
| $purples: ( |  | ||||||
|   '50': $purple-50, |  | ||||||
|   '100': $purple-100, |  | ||||||
|   '200': $purple-200, |  | ||||||
|   '300': $purple-300, |  | ||||||
|   '400': $purple-400, |  | ||||||
|   '500': $purple-500, |  | ||||||
|   '600': $purple-600, |  | ||||||
|   '700': $purple-700, |  | ||||||
|   '800': $purple-800, |  | ||||||
|   '900': $purple-900, |  | ||||||
|   '950': $purple-950 |  | ||||||
| ); |  | ||||||
| 
 |  | ||||||
| $grays: ( |  | ||||||
|   '10': $gray-10, |  | ||||||
|   '50': $gray-50, |  | ||||||
|   '100': $gray-100, |  | ||||||
|   '200': $gray-200, |  | ||||||
|   '300': $gray-300, |  | ||||||
|   '400': $gray-400, |  | ||||||
|   '500': $gray-500, |  | ||||||
|   '600': $gray-600, |  | ||||||
|   '700': $gray-700, |  | ||||||
|   '800': $gray-800, |  | ||||||
|   '900': $gray-900, |  | ||||||
|   '950': $gray-950 |  | ||||||
| ); |  | ||||||
| 
 |  | ||||||
| $color-ranges: ( |  | ||||||
|   'primary': $blues, |  | ||||||
|   'secondary': $grays, |  | ||||||
|   'success': $greens, |  | ||||||
|   'warning': $oranges, |  | ||||||
|   'danger': $reds |  | ||||||
| ); |  | ||||||
| 
 |  | ||||||
| // GitLab themes |  | ||||||
| 
 |  | ||||||
| $indigo-50: #f1f1ff; |  | ||||||
| $indigo-100: #dbdbf8; |  | ||||||
| $indigo-200: #c7c7f2; |  | ||||||
| $indigo-300: #a2a2e6; |  | ||||||
| $indigo-400: #8181d7; |  | ||||||
| $indigo-500: #6666c4; |  | ||||||
| $indigo-600: #5252b5; |  | ||||||
| $indigo-700: #41419f; |  | ||||||
| $indigo-800: #303083; |  | ||||||
| $indigo-900: #222261; |  | ||||||
| $indigo-950: #14143d; |  | ||||||
| // To do this variant right for darkmode, we need to create a variable for it. | // To do this variant right for darkmode, we need to create a variable for it. | ||||||
| $indigo-900-alpha-008: rgba($indigo-900, 0.08); | $indigo-900-alpha-008: rgba($theme-indigo-900, 0.08); | ||||||
| 
 |  | ||||||
| $theme-blue-50: #cdd8e3; |  | ||||||
| $theme-blue-100: #b9cadc; |  | ||||||
| $theme-blue-200: #a6bdd5; |  | ||||||
| $theme-blue-300: #81a5c9; |  | ||||||
| $theme-blue-400: #628eb9; |  | ||||||
| $theme-blue-500: #4977a5; |  | ||||||
| $theme-blue-600: #346596; |  | ||||||
| $theme-blue-700: #235180; |  | ||||||
| $theme-blue-800: #153c63; |  | ||||||
| $theme-blue-900: #0b2640; |  | ||||||
| $theme-blue-950: #04101c; |  | ||||||
| 
 |  | ||||||
| $theme-light-blue-50: #dde6ee; |  | ||||||
| $theme-light-blue-100: #c1d4e6; |  | ||||||
| $theme-light-blue-200: #a0bedc; |  | ||||||
| $theme-light-blue-300: #74a3d3; |  | ||||||
| $theme-light-blue-400: #4f8bc7; |  | ||||||
| $theme-light-blue-500: #3476b9; |  | ||||||
| $theme-light-blue-600: #2268ae; |  | ||||||
| $theme-light-blue-700: #145aa1; |  | ||||||
| $theme-light-blue-800: #0e4d8d; |  | ||||||
| $theme-light-blue-900: #0c4277; |  | ||||||
| $theme-light-blue-950: #0a3764; |  | ||||||
| 
 |  | ||||||
| $theme-green-50: #dde9de; |  | ||||||
| $theme-green-100: #b1d6b5; |  | ||||||
| $theme-green-200: #8cc497; |  | ||||||
| $theme-green-300: #69af7d; |  | ||||||
| $theme-green-400: #499767; |  | ||||||
| $theme-green-500: #308258; |  | ||||||
| $theme-green-600: #25744c; |  | ||||||
| $theme-green-700: #1b653f; |  | ||||||
| $theme-green-800: #155635; |  | ||||||
| $theme-green-900: #0e4328; |  | ||||||
| $theme-green-950: #052e19; |  | ||||||
| 
 |  | ||||||
| $theme-red-50: #f4e9e7; |  | ||||||
| $theme-red-100: #ecd3d0; |  | ||||||
| $theme-red-200: #e3bab5; |  | ||||||
| $theme-red-300: #d59086; |  | ||||||
| $theme-red-400: #c66e60; |  | ||||||
| $theme-red-500: #ad4a3b; |  | ||||||
| $theme-red-600: #a13322; |  | ||||||
| $theme-red-700: #8f2110; |  | ||||||
| $theme-red-800: #761405; |  | ||||||
| $theme-red-900: #580d02; |  | ||||||
| $theme-red-950: #380700; |  | ||||||
| 
 |  | ||||||
| $theme-light-red-50: #faf2f1; |  | ||||||
| $theme-light-red-100: #f6d9d5; |  | ||||||
| $theme-light-red-200: #ebada2; |  | ||||||
| $theme-light-red-300: #e07f6f; |  | ||||||
| $theme-light-red-400: #d36250; |  | ||||||
| $theme-light-red-500: #c24b38; |  | ||||||
| $theme-light-red-600: #b53a26; |  | ||||||
| $theme-light-red-700: #a02e1c; |  | ||||||
| $theme-light-red-800: #8b2212; |  | ||||||
| $theme-light-red-900: #751709; |  | ||||||
| $theme-light-red-950: #5c1105; |  | ||||||
| 
 |  | ||||||
| // Data visualization color palette |  | ||||||
| 
 |  | ||||||
| $data-viz-blue-50: #e9ebff !default; |  | ||||||
| $data-viz-blue-100: #d2dcff !default; |  | ||||||
| $data-viz-blue-200: #b7c6ff !default; |  | ||||||
| $data-viz-blue-300: #97acff !default; |  | ||||||
| $data-viz-blue-400: #7992f5 !default; |  | ||||||
| $data-viz-blue-500: #617ae2 !default; |  | ||||||
| $data-viz-blue-600: #4e65cd !default; |  | ||||||
| $data-viz-blue-700: #3f51ae !default; |  | ||||||
| $data-viz-blue-800: #374291 !default; |  | ||||||
| $data-viz-blue-900: #303470 !default; |  | ||||||
| $data-viz-blue-950: #2a2b59 !default; |  | ||||||
| 
 | 
 | ||||||
| $border-white-light: darken($white, $darken-border-factor) !default; | $border-white-light: darken($white, $darken-border-factor) !default; | ||||||
| $border-white-normal: darken($white-normal, $darken-border-factor) !default; | $border-white-normal: darken($white-normal, $darken-border-factor) !default; | ||||||
|  | @ -834,7 +581,7 @@ $linked-project-column-margin: 60px; | ||||||
| Performance Bar | Performance Bar | ||||||
| */ | */ | ||||||
| $perf-bar-production: $gray-950; | $perf-bar-production: $gray-950; | ||||||
| $perf-bar-staging: $indigo-950; | $perf-bar-staging: $theme-indigo-950; | ||||||
| $perf-bar-development: $red-900; | $perf-bar-development: $red-900; | ||||||
| $perf-bar-bucket-bg: $black; | $perf-bar-bucket-bg: $black; | ||||||
| $perf-bar-bucket-box-shadow-from: rgba($white, 0.2); | $perf-bar-bucket-box-shadow-from: rgba($white, 0.2); | ||||||
|  |  | ||||||
|  | @ -13,11 +13,11 @@ | ||||||
|     margin-bottom: $gl-padding-8; |     margin-bottom: $gl-padding-8; | ||||||
| 
 | 
 | ||||||
|     &.ui-indigo { |     &.ui-indigo { | ||||||
|       background-color: $indigo-900; |       background-color: $theme-indigo-900; | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     &.ui-light-indigo { |     &.ui-light-indigo { | ||||||
|       background-color: $indigo-700; |       background-color: $theme-indigo-700; | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     &.ui-blue { |     &.ui-blue { | ||||||
|  |  | ||||||
|  | @ -1,15 +1,4 @@ | ||||||
| $gray-10: #1f1e24; | @import '@gitlab/ui/dist/tokens/scss/tokens.dark'; | ||||||
| $gray-50: #333238; |  | ||||||
| $gray-100: #434248; |  | ||||||
| $gray-200: #535158; |  | ||||||
| $gray-300: #626168; |  | ||||||
| $gray-400: #737278; |  | ||||||
| $gray-500: #89888d; |  | ||||||
| $gray-600: #a4a3a8; |  | ||||||
| $gray-700: #bfbfc3; |  | ||||||
| $gray-800: #dcdcde; |  | ||||||
| $gray-900: #ececef; |  | ||||||
| $gray-950: #fbfafd; |  | ||||||
| 
 | 
 | ||||||
| $gray-lightest: lighten($gray-10, 1); | $gray-lightest: lighten($gray-10, 1); | ||||||
| $gray-light: lighten($gray-10, 2); | $gray-light: lighten($gray-10, 2); | ||||||
|  | @ -25,100 +14,14 @@ $gray-darkest: $gray-700; | ||||||
| $t-gray-a-16: rgba($gray-10, 0.16); | $t-gray-a-16: rgba($gray-10, 0.16); | ||||||
| $t-gray-a-24: rgba($gray-10, 0.24); | $t-gray-a-24: rgba($gray-10, 0.24); | ||||||
| 
 | 
 | ||||||
| $black: #fff; |  | ||||||
| $black-normal: $gray-900; | $black-normal: $gray-900; | ||||||
| $white: $gray-50; |  | ||||||
| $white-normal: $gray-50; | $white-normal: $gray-50; | ||||||
| $white-dark: $gray-100; | $white-dark: $gray-100; | ||||||
| 
 | 
 | ||||||
| $green-50: #0a4020; |  | ||||||
| $green-100: #0d532a; |  | ||||||
| $green-200: #24663b; |  | ||||||
| $green-300: #217645; |  | ||||||
| $green-400: #108548; |  | ||||||
| $green-500: #2da160; |  | ||||||
| $green-600: #52b87a; |  | ||||||
| $green-700: #91d4a8; |  | ||||||
| $green-800: #c3e6cd; |  | ||||||
| $green-900: #ecf4ee; |  | ||||||
| $green-950: #f1fdf6; |  | ||||||
| 
 |  | ||||||
| $blue-50: #033464; |  | ||||||
| $blue-100: #064787; |  | ||||||
| $blue-200: #0b5cad; |  | ||||||
| $blue-300: #1068bf; |  | ||||||
| $blue-400: #1f75cb; |  | ||||||
| $blue-500: #428fdc; |  | ||||||
| $blue-600: #63a6e9; |  | ||||||
| $blue-700: #9dc7f1; |  | ||||||
| $blue-800: #cbe2f9; |  | ||||||
| $blue-900: #e9f3fc; |  | ||||||
| $blue-950: #f2f9ff; |  | ||||||
| 
 |  | ||||||
| $orange-50: #5c2900; |  | ||||||
| $orange-100: #703800; |  | ||||||
| $orange-200: #8f4700; |  | ||||||
| $orange-300: #9e5400; |  | ||||||
| $orange-400: #ab6100; |  | ||||||
| $orange-500: #c17d10; |  | ||||||
| $orange-600: #d99530; |  | ||||||
| $orange-700: #e9be74; |  | ||||||
| $orange-800: #f5d9a8; |  | ||||||
| $orange-900: #fdf1dd; |  | ||||||
| $orange-950: #fff4e1; |  | ||||||
| 
 |  | ||||||
| $red-50: #660e00; |  | ||||||
| $red-100: #8d1300; |  | ||||||
| $red-200: #ae1800; |  | ||||||
| $red-300: #c91c00; |  | ||||||
| $red-400: #dd2b0e; |  | ||||||
| $red-500: #ec5941; |  | ||||||
| $red-600: #f57f6c; |  | ||||||
| $red-700: #fcb5aa; |  | ||||||
| $red-800: #fdd4cd; |  | ||||||
| $red-900: #fcf1ef; |  | ||||||
| $red-950: #fff4f3; |  | ||||||
| 
 |  | ||||||
| $indigo-50: #1a1a40; |  | ||||||
| $indigo-100: #292961; |  | ||||||
| $indigo-200: #393982; |  | ||||||
| $indigo-300: #4b4ba3; |  | ||||||
| $indigo-400: #5b5bbd; |  | ||||||
| $indigo-500: #6666c4; |  | ||||||
| $indigo-600: #7c7ccc; |  | ||||||
| $indigo-700: #a6a6de; |  | ||||||
| $indigo-800: #d1d1f0; |  | ||||||
| $indigo-900: #ebebfa; |  | ||||||
| $indigo-950: #f7f7ff; |  | ||||||
| 
 |  | ||||||
| $purple-50: #232150; |  | ||||||
| $purple-100: #2f2a6b; |  | ||||||
| $purple-200: #453894; |  | ||||||
| $purple-300: #5943b6; |  | ||||||
| $purple-400: #694cc0; |  | ||||||
| $purple-500: #7b58cf; |  | ||||||
| $purple-600: #9475db; |  | ||||||
| $purple-700: #ac93e6; |  | ||||||
| $purple-800: #cbbbf2; |  | ||||||
| $purple-900: #e1d8f9; |  | ||||||
| $purple-950: #f4f0ff; |  | ||||||
| 
 |  | ||||||
| $theme-indigo-50: #1a1a40; | $theme-indigo-50: #1a1a40; | ||||||
| 
 | 
 | ||||||
| $border-color: #4f4f4f; | $border-color: #4f4f4f; | ||||||
| 
 | 
 | ||||||
| $data-viz-blue-50: #2a2b59; |  | ||||||
| $data-viz-blue-100: #303470; |  | ||||||
| $data-viz-blue-200: #374291; |  | ||||||
| $data-viz-blue-300: #3f51ae; |  | ||||||
| $data-viz-blue-400: #4e65cd; |  | ||||||
| $data-viz-blue-500: #617ae2; |  | ||||||
| $data-viz-blue-600: #7992f5; |  | ||||||
| $data-viz-blue-700: #97acff; |  | ||||||
| $data-viz-blue-800: #b7c6ff; |  | ||||||
| $data-viz-blue-900: #d2dcff; |  | ||||||
| $data-viz-blue-950: #e9ebff; |  | ||||||
| 
 |  | ||||||
| $border-white-normal: $border-color; | $border-white-normal: $border-color; | ||||||
| 
 | 
 | ||||||
| $gl-text-color-secondary: $gray-700; | $gl-text-color-secondary: $gray-700; | ||||||
|  |  | ||||||
|  | @ -1,93 +1,10 @@ | ||||||
| @import './themes/dark'; | @import './themes/dark'; | ||||||
|  | @import '@gitlab/ui/dist/tokens/css/tokens.dark'; | ||||||
| @import 'page_bundles/mixins_and_variables_and_functions'; | @import 'page_bundles/mixins_and_variables_and_functions'; | ||||||
| @import './themes/theme_helper'; | @import './themes/theme_helper'; | ||||||
| 
 | 
 | ||||||
| :root { | :root { | ||||||
|   color-scheme: dark; |   color-scheme: dark; | ||||||
|   --gray-10: #{$gray-10}; |  | ||||||
|   --gray-50: #{$gray-50}; |  | ||||||
|   --gray-100: #{$gray-100}; |  | ||||||
|   --gray-200: #{$gray-200}; |  | ||||||
|   --gray-300: #{$gray-300}; |  | ||||||
|   --gray-400: #{$gray-400}; |  | ||||||
|   --gray-500: #{$gray-500}; |  | ||||||
|   --gray-600: #{$gray-600}; |  | ||||||
|   --gray-700: #{$gray-700}; |  | ||||||
|   --gray-800: #{$gray-800}; |  | ||||||
|   --gray-900: #{$gray-900}; |  | ||||||
|   --gray-950: #{$gray-950}; |  | ||||||
| 
 |  | ||||||
|   --green-50: #{$green-50}; |  | ||||||
|   --green-100: #{$green-100}; |  | ||||||
|   --green-200: #{$green-200}; |  | ||||||
|   --green-300: #{$green-300}; |  | ||||||
|   --green-400: #{$green-400}; |  | ||||||
|   --green-500: #{$green-500}; |  | ||||||
|   --green-600: #{$green-600}; |  | ||||||
|   --green-700: #{$green-700}; |  | ||||||
|   --green-800: #{$green-800}; |  | ||||||
|   --green-900: #{$green-900}; |  | ||||||
|   --green-950: #{$green-950}; |  | ||||||
| 
 |  | ||||||
|   --blue-50: #{$blue-50}; |  | ||||||
|   --blue-100: #{$blue-100}; |  | ||||||
|   --blue-200: #{$blue-200}; |  | ||||||
|   --blue-300: #{$blue-300}; |  | ||||||
|   --blue-400: #{$blue-400}; |  | ||||||
|   --blue-500: #{$blue-500}; |  | ||||||
|   --blue-600: #{$blue-600}; |  | ||||||
|   --blue-700: #{$blue-700}; |  | ||||||
|   --blue-800: #{$blue-800}; |  | ||||||
|   --blue-900: #{$blue-900}; |  | ||||||
|   --blue-950: #{$blue-950}; |  | ||||||
| 
 |  | ||||||
|   --orange-50: #{$orange-50}; |  | ||||||
|   --orange-100: #{$orange-100}; |  | ||||||
|   --orange-200: #{$orange-200}; |  | ||||||
|   --orange-300: #{$orange-300}; |  | ||||||
|   --orange-400: #{$orange-400}; |  | ||||||
|   --orange-500: #{$orange-500}; |  | ||||||
|   --orange-600: #{$orange-600}; |  | ||||||
|   --orange-700: #{$orange-700}; |  | ||||||
|   --orange-800: #{$orange-800}; |  | ||||||
|   --orange-900: #{$orange-900}; |  | ||||||
|   --orange-950: #{$orange-950}; |  | ||||||
| 
 |  | ||||||
|   --red-50: #{$red-50}; |  | ||||||
|   --red-100: #{$red-100}; |  | ||||||
|   --red-200: #{$red-200}; |  | ||||||
|   --red-300: #{$red-300}; |  | ||||||
|   --red-400: #{$red-400}; |  | ||||||
|   --red-500: #{$red-500}; |  | ||||||
|   --red-600: #{$red-600}; |  | ||||||
|   --red-700: #{$red-700}; |  | ||||||
|   --red-800: #{$red-800}; |  | ||||||
|   --red-900: #{$red-900}; |  | ||||||
|   --red-950: #{$red-950}; |  | ||||||
| 
 |  | ||||||
|   --indigo-50: #{$indigo-50}; |  | ||||||
|   --indigo-100: #{$indigo-100}; |  | ||||||
|   --indigo-200: #{$indigo-200}; |  | ||||||
|   --indigo-300: #{$indigo-300}; |  | ||||||
|   --indigo-400: #{$indigo-400}; |  | ||||||
|   --indigo-500: #{$indigo-500}; |  | ||||||
|   --indigo-600: #{$indigo-600}; |  | ||||||
|   --indigo-700: #{$indigo-700}; |  | ||||||
|   --indigo-800: #{$indigo-800}; |  | ||||||
|   --indigo-900: #{$indigo-900}; |  | ||||||
|   --indigo-950: #{$indigo-950}; |  | ||||||
| 
 |  | ||||||
|   --purple-50: #{$purple-50}; |  | ||||||
|   --purple-100: #{$purple-100}; |  | ||||||
|   --purple-200: #{$purple-200}; |  | ||||||
|   --purple-300: #{$purple-300}; |  | ||||||
|   --purple-400: #{$purple-400}; |  | ||||||
|   --purple-500: #{$purple-500}; |  | ||||||
|   --purple-600: #{$purple-600}; |  | ||||||
|   --purple-700: #{$purple-700}; |  | ||||||
|   --purple-800: #{$purple-800}; |  | ||||||
|   --purple-900: #{$purple-900}; |  | ||||||
|   --purple-950: #{$purple-950}; |  | ||||||
| 
 | 
 | ||||||
|   --dark-icon-color-purple-1: #524a68; |   --dark-icon-color-purple-1: #524a68; | ||||||
|   --dark-icon-color-purple-2: #715bae; |   --dark-icon-color-purple-2: #715bae; | ||||||
|  | @ -98,8 +15,6 @@ | ||||||
|   --gl-text-color: #{$gray-900}; |   --gl-text-color: #{$gray-900}; | ||||||
|   --border-color: #{$border-color}; |   --border-color: #{$border-color}; | ||||||
| 
 | 
 | ||||||
|   --white: #{$white}; |  | ||||||
|   --black: #{$black}; |  | ||||||
|   --gray-light: #{$gray-50}; |   --gray-light: #{$gray-50}; | ||||||
| 
 | 
 | ||||||
|   --svg-status-bg: #{$white}; |   --svg-status-bg: #{$white}; | ||||||
|  |  | ||||||
|  | @ -3,10 +3,10 @@ | ||||||
| :root { | :root { | ||||||
|   &.ui-indigo { |   &.ui-indigo { | ||||||
|     @include gitlab-theme( |     @include gitlab-theme( | ||||||
|       $indigo-200, |       $theme-indigo-200, | ||||||
|       $indigo-500, |       $theme-indigo-500, | ||||||
|       $indigo-700, |       $theme-indigo-700, | ||||||
|       $indigo-900, |       $theme-indigo-900, | ||||||
|       $white |       $white | ||||||
|     ); |     ); | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -3,10 +3,10 @@ | ||||||
| :root { | :root { | ||||||
|   &.ui-light-indigo { |   &.ui-light-indigo { | ||||||
|     @include gitlab-theme( |     @include gitlab-theme( | ||||||
|       $indigo-200, |       $theme-indigo-200, | ||||||
|       $indigo-500, |       $theme-indigo-500, | ||||||
|       $indigo-500, |       $theme-indigo-500, | ||||||
|       $indigo-700, |       $theme-indigo-700, | ||||||
|       $white |       $white | ||||||
|     ); |     ); | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -0,0 +1,8 @@ | ||||||
|  | --- | ||||||
|  | name: internal_events_for_product_analytics | ||||||
|  | introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/136154 | ||||||
|  | rollout_issue_url:  | ||||||
|  | milestone: '16.7' | ||||||
|  | type: development | ||||||
|  | group: group::analytics instrumentation | ||||||
|  | default_enabled: false | ||||||
|  | @ -8,6 +8,7 @@ module Gitlab | ||||||
| 
 | 
 | ||||||
|     class << self |     class << self | ||||||
|       include Gitlab::Tracking::Helpers |       include Gitlab::Tracking::Helpers | ||||||
|  |       include Gitlab::Utils::StrongMemoize | ||||||
| 
 | 
 | ||||||
|       def track_event(event_name, send_snowplow_event: true, **kwargs) |       def track_event(event_name, send_snowplow_event: true, **kwargs) | ||||||
|         raise UnknownEventError, "Unknown event: #{event_name}" unless EventDefinitions.known_event?(event_name) |         raise UnknownEventError, "Unknown event: #{event_name}" unless EventDefinitions.known_event?(event_name) | ||||||
|  | @ -23,6 +24,10 @@ module Gitlab | ||||||
|         increase_weekly_total_counter(event_name) |         increase_weekly_total_counter(event_name) | ||||||
|         update_unique_counter(event_name, kwargs) |         update_unique_counter(event_name, kwargs) | ||||||
|         trigger_snowplow_event(event_name, kwargs) if send_snowplow_event |         trigger_snowplow_event(event_name, kwargs) if send_snowplow_event | ||||||
|  | 
 | ||||||
|  |         if Feature.enabled?(:internal_events_for_product_analytics) | ||||||
|  |           send_application_instrumentation_event(event_name, kwargs) | ||||||
|  |         end | ||||||
|       rescue StandardError => e |       rescue StandardError => e | ||||||
|         Gitlab::ErrorTracking.track_and_raise_for_dev_exception(e, event_name: event_name, kwargs: kwargs) |         Gitlab::ErrorTracking.track_and_raise_for_dev_exception(e, event_name: event_name, kwargs: kwargs) | ||||||
|         nil |         nil | ||||||
|  | @ -93,6 +98,25 @@ module Gitlab | ||||||
|         Gitlab::ErrorTracking |         Gitlab::ErrorTracking | ||||||
|           .track_and_raise_for_dev_exception(error, snowplow_category: category, snowplow_action: event_name) |           .track_and_raise_for_dev_exception(error, snowplow_category: category, snowplow_action: event_name) | ||||||
|       end |       end | ||||||
|  | 
 | ||||||
|  |       def send_application_instrumentation_event(event_name, kwargs) | ||||||
|  |         return if gitlab_sdk_client.nil? | ||||||
|  | 
 | ||||||
|  |         user = kwargs[:user] | ||||||
|  | 
 | ||||||
|  |         gitlab_sdk_client.identify(user&.id) | ||||||
|  |         gitlab_sdk_client.track(event_name) | ||||||
|  |       end | ||||||
|  | 
 | ||||||
|  |       def gitlab_sdk_client | ||||||
|  |         app_id = ENV['GITLAB_ANALYTICS_ID'] | ||||||
|  |         host = ENV['GITLAB_ANALYTICS_URL'] | ||||||
|  | 
 | ||||||
|  |         return unless app_id.present? && host.present? | ||||||
|  | 
 | ||||||
|  |         GitlabSDK::Client.new(app_id: app_id, host: host) | ||||||
|  |       end | ||||||
|  |       strong_memoize_attr :gitlab_sdk_client | ||||||
|     end |     end | ||||||
|   end |   end | ||||||
| end | end | ||||||
|  |  | ||||||
|  | @ -22,7 +22,7 @@ module QA | ||||||
|       end |       end | ||||||
| 
 | 
 | ||||||
|       context( |       context( | ||||||
|         'when using HTTP endpoint integration', |         'when using HTTP endpoint integration', :reliable, | ||||||
|         testcase: 'https://gitlab.com/gitlab-org/gitlab/-/quality/test_cases/388469' |         testcase: 'https://gitlab.com/gitlab-org/gitlab/-/quality/test_cases/388469' | ||||||
|       ) do |       ) do | ||||||
|         before do |         before do | ||||||
|  | @ -34,7 +34,7 @@ module QA | ||||||
|       end |       end | ||||||
| 
 | 
 | ||||||
|       context( |       context( | ||||||
|         'when using Prometheus integration', |         'when using Prometheus integration', :reliable, | ||||||
|         testcase: 'https://gitlab.com/gitlab-org/gitlab/-/quality/test_cases/390123' |         testcase: 'https://gitlab.com/gitlab-org/gitlab/-/quality/test_cases/390123' | ||||||
|       ) do |       ) do | ||||||
|         before do |         before do | ||||||
|  |  | ||||||
|  | @ -39,7 +39,7 @@ module QA | ||||||
|       end |       end | ||||||
| 
 | 
 | ||||||
|       context( |       context( | ||||||
|         'when using Prometheus integration', |         'when using Prometheus integration', :reliable, | ||||||
|         testcase: 'https://gitlab.com/gitlab-org/gitlab/-/quality/test_cases/393590' |         testcase: 'https://gitlab.com/gitlab-org/gitlab/-/quality/test_cases/393590' | ||||||
|       ) do |       ) do | ||||||
|         include_context 'sends and resolves test alerts' |         include_context 'sends and resolves test alerts' | ||||||
|  |  | ||||||
|  | @ -267,4 +267,64 @@ RSpec.describe Gitlab::InternalEvents, :snowplow, feature_category: :product_ana | ||||||
|       expect(Gitlab::UsageDataCounters::HLLRedisCounter).not_to have_received(:track_event) |       expect(Gitlab::UsageDataCounters::HLLRedisCounter).not_to have_received(:track_event) | ||||||
|     end |     end | ||||||
|   end |   end | ||||||
|  | 
 | ||||||
|  |   describe 'Product Analytics tracking' do | ||||||
|  |     let(:app_id) { 'foobar' } | ||||||
|  |     let(:url) { 'http://localhost:4000' } | ||||||
|  | 
 | ||||||
|  |     before do | ||||||
|  |       described_class.clear_memoization(:gitlab_sdk_client) | ||||||
|  | 
 | ||||||
|  |       stub_env('GITLAB_ANALYTICS_ID', app_id) | ||||||
|  |       stub_env('GITLAB_ANALYTICS_URL', url) | ||||||
|  |     end | ||||||
|  | 
 | ||||||
|  |     subject(:track_event) { described_class.track_event(event_name, user: user) } | ||||||
|  | 
 | ||||||
|  |     shared_examples 'does not send a Product Analytics event' do | ||||||
|  |       it 'does not call the Product Analytics Ruby SDK' do | ||||||
|  |         expect(GitlabSDK::Client).not_to receive(:new) | ||||||
|  | 
 | ||||||
|  |         track_event | ||||||
|  |       end | ||||||
|  |     end | ||||||
|  | 
 | ||||||
|  |     context 'when internal_events_for_product_analytics FF is enabled' do | ||||||
|  |       before do | ||||||
|  |         stub_feature_flags(internal_events_for_product_analytics: true) | ||||||
|  |       end | ||||||
|  | 
 | ||||||
|  |       it 'calls Product Analytics Ruby SDK', :aggregate_failures do | ||||||
|  |         expect_next_instance_of(GitlabSDK::Client) do |sdk_client| | ||||||
|  |           expect(sdk_client).to receive(:identify).with(user.id) | ||||||
|  |           expect(sdk_client).to receive(:track).with(event_name) | ||||||
|  |         end | ||||||
|  | 
 | ||||||
|  |         track_event | ||||||
|  |       end | ||||||
|  | 
 | ||||||
|  |       context 'when GITLAB_ANALYTICS_ID is nil' do | ||||||
|  |         let(:app_id) { nil } | ||||||
|  | 
 | ||||||
|  |         it_behaves_like 'does not send a Product Analytics event' | ||||||
|  |       end | ||||||
|  | 
 | ||||||
|  |       context 'when GITLAB_ANALYTICS_URL is nil' do | ||||||
|  |         let(:url) { nil } | ||||||
|  | 
 | ||||||
|  |         it_behaves_like 'does not send a Product Analytics event' | ||||||
|  |       end | ||||||
|  |     end | ||||||
|  | 
 | ||||||
|  |     context 'when internal_events_for_product_analytics FF is disabled' do | ||||||
|  |       let(:app_id) { 'foobar' } | ||||||
|  |       let(:url) { 'http://localhost:4000' } | ||||||
|  | 
 | ||||||
|  |       before do | ||||||
|  |         stub_feature_flags(internal_events_for_product_analytics: false) | ||||||
|  |       end | ||||||
|  | 
 | ||||||
|  |       it_behaves_like 'does not send a Product Analytics event' | ||||||
|  |     end | ||||||
|  |   end | ||||||
| end | end | ||||||
|  |  | ||||||
|  | @ -19,9 +19,9 @@ RSpec.describe Gitlab::UsageDataCounters::EditorUniqueCounter, :clean_gitlab_red | ||||||
| 
 | 
 | ||||||
|     specify do |     specify do | ||||||
|       aggregate_failures do |       aggregate_failures do | ||||||
|         expect(track_action(author: user, project: project)).to be_truthy |         track_action(author: user, project: project) | ||||||
|         expect(track_action(author: user2, project: project)).to be_truthy |         track_action(author: user2, project: project) | ||||||
|         expect(track_action(author: user3, project: project)).to be_truthy |         track_action(author: user3, project: project) | ||||||
| 
 | 
 | ||||||
|         expect(count_unique(date_from: time.beginning_of_week, date_to: 1.week.from_now)).to eq(3) |         expect(count_unique(date_from: time.beginning_of_week, date_to: 1.week.from_now)).to eq(3) | ||||||
|       end |       end | ||||||
|  | @ -30,7 +30,9 @@ RSpec.describe Gitlab::UsageDataCounters::EditorUniqueCounter, :clean_gitlab_red | ||||||
|     it_behaves_like 'internal event tracking' |     it_behaves_like 'internal event tracking' | ||||||
| 
 | 
 | ||||||
|     it 'does not track edit actions if author is not present' do |     it 'does not track edit actions if author is not present' do | ||||||
|       expect(track_action(author: nil, project: project)).to be_nil |       track_action(author: nil, project: project) | ||||||
|  | 
 | ||||||
|  |       expect(count_unique(date_from: time.beginning_of_week, date_to: 1.week.from_now)).to eq(0) | ||||||
|     end |     end | ||||||
|   end |   end | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue