Commit 9e421d6d authored by Grzegorz Bizon's avatar Grzegorz Bizon

Merge branch 'mc/feature/add-at-colon-variable-masking' into 'master'

Allow masking @ and : characters

Closes #63043

See merge request gitlab-org/gitlab-ce!31065
parents 2006724e 13686571
...@@ -7,9 +7,10 @@ module Maskable ...@@ -7,9 +7,10 @@ module Maskable
# * No escape characters # * No escape characters
# * No variables # * No variables
# * No spaces # * No spaces
# * Minimal length of 8 characters from the Base64 alphabets (RFC4648) # * Minimal length of 8 characters
# * Characters must be from the Base64 alphabet (RFC4648) with the addition of @ and :
# * Absolutely no fun is allowed # * Absolutely no fun is allowed
REGEX = /\A[a-zA-Z0-9_+=\/-]{8,}\z/.freeze REGEX = /\A[a-zA-Z0-9_+=\/@:-]{8,}\z/.freeze
included do included do
validates :masked, inclusion: { in: [true, false] } validates :masked, inclusion: { in: [true, false] }
......
---
title: 'Allows masking @ and : characters.'
merge_request: 31065
author:
type: changed
...@@ -94,7 +94,7 @@ This means that the value of the variable will be hidden in job logs, ...@@ -94,7 +94,7 @@ This means that the value of the variable will be hidden in job logs,
though it must match certain requirements to do so: though it must match certain requirements to do so:
- The value must be in a single line. - The value must be in a single line.
- The value must only consist of characters from the Base64 alphabet, defined in [RFC4648](https://tools.ietf.org/html/rfc4648). - The value must only consist of characters from the Base64 alphabet ([RFC4648](https://tools.ietf.org/html/rfc4648)) with the addition of `@` and `:`.
- The value must be at least 8 characters long. - The value must be at least 8 characters long.
- The value must not use variables. - The value must not use variables.
......
...@@ -224,7 +224,7 @@ describe('AjaxFormVariableList', () => { ...@@ -224,7 +224,7 @@ describe('AjaxFormVariableList', () => {
describe('maskableRegex', () => { describe('maskableRegex', () => {
it('takes in the regex provided by the data attribute', () => { it('takes in the regex provided by the data attribute', () => {
expect(container.dataset.maskableRegex).toBe('^[a-zA-Z0-9_+=/-]{8,}$'); expect(container.dataset.maskableRegex).toBe('^[a-zA-Z0-9_+=/@:-]{8,}$');
expect(ajaxVariableList.maskableRegex).toBe(container.dataset.maskableRegex); expect(ajaxVariableList.maskableRegex).toBe(container.dataset.maskableRegex);
}); });
}); });
......
...@@ -162,7 +162,7 @@ describe('VariableList', () => { ...@@ -162,7 +162,7 @@ describe('VariableList', () => {
}); });
it('has a regex provided via a data attribute', () => { it('has a regex provided via a data attribute', () => {
expect($wrapper.attr('data-maskable-regex')).toBe('^[a-zA-Z0-9_+=/-]{8,}$'); expect($wrapper.attr('data-maskable-regex')).toBe('^[a-zA-Z0-9_+=/@:-]{8,}$');
}); });
it('allows values that are 8 characters long', done => { it('allows values that are 8 characters long', done => {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment