From 63c60d80ab7b0add6b0baa305b2d4b948f479689 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andres=20Pe=C3=B1aloza?= Date: Tue, 3 Dec 2024 12:45:13 -0300 Subject: [PATCH 1/2] allow github legacy names --- codersdk/name.go | 2 +- codersdk/name_test.go | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/codersdk/name.go b/codersdk/name.go index 8942e08cafe86..a4b211c6d67b0 100644 --- a/codersdk/name.go +++ b/codersdk/name.go @@ -10,7 +10,7 @@ import ( ) var ( - UsernameValidRegex = regexp.MustCompile("^[a-zA-Z0-9]+(?:-[a-zA-Z0-9]+)*$") + UsernameValidRegex = regexp.MustCompile("^[a-zA-Z0-9]+(?:-[a-zA-Z0-9]+)*-?$") usernameReplace = regexp.MustCompile("[^a-zA-Z0-9-]*") templateVersionName = regexp.MustCompile(`^[a-zA-Z0-9]+(?:[_.-]{1}[a-zA-Z0-9]+)*$`) diff --git a/codersdk/name_test.go b/codersdk/name_test.go index 487f3778ac70e..a202b5c35e27e 100644 --- a/codersdk/name_test.go +++ b/codersdk/name_test.go @@ -34,6 +34,7 @@ func TestUsernameValid(t *testing.T) { {"abcdefghijklmnopqrst", true}, {"abcdefghijklmnopqrstu", true}, {"wow-test", true}, + {"github-legacy-name-", true}, {"", false}, {" ", false}, From a6101450f9ff48685f24fb681e8c6a82bd119df3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andres=20Pe=C3=B1aloza?= Date: Tue, 10 Dec 2024 11:28:12 -0300 Subject: [PATCH 2/2] fix regex inside frontend --- site/src/utils/formUtils.test.ts | 5 +++++ site/src/utils/formUtils.ts | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/site/src/utils/formUtils.test.ts b/site/src/utils/formUtils.test.ts index c009b38dd929e..5b3738e0468a2 100644 --- a/site/src/utils/formUtils.test.ts +++ b/site/src/utils/formUtils.test.ts @@ -193,5 +193,10 @@ describe("form util functions", () => { const validate = () => nameSchema.validateSync("test 3"); expect(validate).toThrow(); }); + + it("allows '3-test-' to be used as a name", () => { + const validate = () => nameSchema.validateSync("3-test-"); + expect(validate).not.toThrow(); + }); }); }); diff --git a/site/src/utils/formUtils.ts b/site/src/utils/formUtils.ts index 7ec2f04b23454..0eb46dd495c3b 100644 --- a/site/src/utils/formUtils.ts +++ b/site/src/utils/formUtils.ts @@ -112,7 +112,7 @@ export const onChangeTrimmed = // REMARK: Keep these consts in sync with coderd/httpapi/httpapi.go const maxLenName = 32; const displayNameMaxLength = 64; -const usernameRE = /^[a-zA-Z0-9]+(?:-[a-zA-Z0-9]+)*$/; +const usernameRE = /^[a-zA-Z0-9]+(?:-[a-zA-Z0-9]+)*-?$/; const displayNameRE = /^[^\s](.*[^\s])?$/; // REMARK: see #1756 for name/username semantics