From cd0bd2d9ec1af8c59b52cbaf1517fb19dfab34b4 Mon Sep 17 00:00:00 2001 From: Jordan Wels Date: Sun, 1 Mar 2026 17:40:08 -0600 Subject: [PATCH 1/3] push validation of prefex --- github/resource_github_repository_autolink_reference.go | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/github/resource_github_repository_autolink_reference.go b/github/resource_github_repository_autolink_reference.go index 110a1fc119..2715358c19 100644 --- a/github/resource_github_repository_autolink_reference.go +++ b/github/resource_github_repository_autolink_reference.go @@ -65,10 +65,11 @@ func resourceGithubRepositoryAutolinkReference() *schema.Resource { Description: "The repository name", }, "key_prefix": { - Type: schema.TypeString, - Required: true, - ForceNew: true, - Description: "This prefix appended by a number will generate a link any time it is found in an issue, pull request, or commit", + Type: schema.TypeString, + Required: true, + ForceNew: true, + Description: "This prefix appended by a number will generate a link any time it is found in an issue, pull request, or commit", + ValidateDiagFunc: validation.ToDiagFunc(validation.StringMatch(regexp.MustCompile(`^.*?[^\d]$`), "must not end with a number")), }, "target_url_template": { Type: schema.TypeString, From 7915746a8ea16a512953d1ea149f913c6eaf3313 Mon Sep 17 00:00:00 2001 From: Jordan Wels Date: Sun, 1 Mar 2026 17:48:41 -0600 Subject: [PATCH 2/3] add acceptance tests for erroring on key prefix ending with number --- ...thub_repository_autolink_reference_test.go | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/github/resource_github_repository_autolink_reference_test.go b/github/resource_github_repository_autolink_reference_test.go index e97b14abf6..de3b23e7cf 100644 --- a/github/resource_github_repository_autolink_reference_test.go +++ b/github/resource_github_repository_autolink_reference_test.go @@ -268,6 +268,35 @@ func TestAccGithubRepositoryAutolinkReference(t *testing.T) { }) }) + t.Run("errors when key_prefix ends with a number", func(t *testing.T) { + randomID := acctest.RandStringFromCharSet(5, acctest.CharSetAlphaNum) + repoName := fmt.Sprintf("%srepo-autolink-%s", testResourcePrefix, randomID) + config := fmt.Sprintf(` + resource "github_repository" "test" { + name = "%s" + description = "Test autolink creation" + } + + resource "github_repository_autolink_reference" "autolink_invalid" { + repository = github_repository.test.name + + key_prefix = "TEST-1" + target_url_template = "https://example.com/TEST-" + } + `, repoName) + + resource.Test(t, resource.TestCase{ + PreCheck: func() { skipUnauthenticated(t) }, + ProviderFactories: providerFactories, + Steps: []resource.TestStep{ + { + Config: config, + ExpectError: regexp.MustCompile(`must not end with a number`), + }, + }, + }) + }) + t.Run("deletes repository autolink reference without error", func(t *testing.T) { randomID := acctest.RandStringFromCharSet(5, acctest.CharSetAlphaNum) repoName := fmt.Sprintf("%srepo-autolink-%s", testResourcePrefix, randomID) From 2c7ec3e0f8cf5e5c093e0b4ee0377ab076aba41e Mon Sep 17 00:00:00 2001 From: Jordan Wels <91997533+Jwels1@users.noreply.github.com> Date: Tue, 3 Mar 2026 16:50:09 -0600 Subject: [PATCH 3/3] update regex to not start with .* Co-authored-by: Timo Sand --- github/resource_github_repository_autolink_reference.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/github/resource_github_repository_autolink_reference.go b/github/resource_github_repository_autolink_reference.go index 2715358c19..21cac4e21c 100644 --- a/github/resource_github_repository_autolink_reference.go +++ b/github/resource_github_repository_autolink_reference.go @@ -69,7 +69,7 @@ func resourceGithubRepositoryAutolinkReference() *schema.Resource { Required: true, ForceNew: true, Description: "This prefix appended by a number will generate a link any time it is found in an issue, pull request, or commit", - ValidateDiagFunc: validation.ToDiagFunc(validation.StringMatch(regexp.MustCompile(`^.*?[^\d]$`), "must not end with a number")), + ValidateDiagFunc: validation.ToDiagFunc(validation.StringMatch(regexp.MustCompile(`[^\d]$`), "must not end with a number")), }, "target_url_template": { Type: schema.TypeString,