From c40bccbc5150dbb264a4da7bc6aeb570127bf7d7 Mon Sep 17 00:00:00 2001 From: Keegan Campbell Date: Mon, 26 Jul 2021 04:45:27 -0700 Subject: [PATCH] Explore setting vulnerability alerts correctly (#768) * Initial commit of setting vulnerability_alerts * Remove vulnerability alerts handling from create and keep on update * Add note for unsuccessful enterprise vulnerability alert setting --- github/resource_github_repository.go | 26 ++++--------------------- website/docs/r/repository.html.markdown | 2 +- 2 files changed, 5 insertions(+), 23 deletions(-) diff --git a/github/resource_github_repository.go b/github/resource_github_repository.go index 4a6b0ab6a1..9eb1b502c3 100644 --- a/github/resource_github_repository.go +++ b/github/resource_github_repository.go @@ -364,24 +364,6 @@ func resourceGithubRepositoryCreate(d *schema.ResourceData, meta interface{}) er } } - var alerts bool - if a, ok := d.GetOk("vulnerability_alerts"); ok { - alerts = a.(bool) - } - - var createVulnerabilityAlerts func(context.Context, string, string) (*github.Response, error) - if isPrivate && alerts { - createVulnerabilityAlerts = client.Repositories.EnableVulnerabilityAlerts - } else if !isPrivate && !alerts { - createVulnerabilityAlerts = client.Repositories.DisableVulnerabilityAlerts - } - if createVulnerabilityAlerts != nil { - _, err := createVulnerabilityAlerts(ctx, owner, repoName) - if err != nil { - return err - } - } - pages := expandPages(d.Get("pages").([]interface{})) if pages != nil { _, _, err := client.Repositories.EnablePages(ctx, owner, repoName, pages) @@ -544,7 +526,7 @@ func resourceGithubRepositoryUpdate(d *schema.ResourceData, meta interface{}) er } } - if !d.IsNewResource() && d.HasChange("vulnerability_alerts") { + if d.HasChange("vulnerability_alerts") { updateVulnerabilityAlerts := client.Repositories.DisableVulnerabilityAlerts if vulnerabilityAlerts, ok := d.GetOk("vulnerability_alerts"); ok && vulnerabilityAlerts.(bool) { updateVulnerabilityAlerts = client.Repositories.EnableVulnerabilityAlerts @@ -559,7 +541,7 @@ func resourceGithubRepositoryUpdate(d *schema.ResourceData, meta interface{}) er if d.HasChange("visibility") { o, n := d.GetChange("visibility") repoReq.Visibility = github.String(n.(string)) - log.Printf("[DEBUG] <<<<<<<<<<<<< Updating repository visibility from %s to %s", o, n) + log.Printf("[DEBUG] Updating repository visibility from %s to %s", o, n) _, _, err = client.Repositories.Edit(ctx, owner, repoName, repoReq) if err != nil { if !strings.Contains(err.Error(), fmt.Sprintf("422 Visibility is already %s", n.(string))) { @@ -567,13 +549,13 @@ func resourceGithubRepositoryUpdate(d *schema.ResourceData, meta interface{}) er } } } else { - log.Printf("[DEBUG] <<<<<<<<<< no visibility update required. visibility: %s", d.Get("visibility")) + log.Printf("[DEBUG] No visibility update required. visibility: %s", d.Get("visibility")) } if d.HasChange("private") { o, n := d.GetChange("private") repoReq.Private = github.Bool(n.(bool)) - log.Printf("[DEBUG] <<<<<<<<<<<<< Updating repository privacy from %v to %v", o, n) + log.Printf("[DEBUG] Updating repository privacy from %v to %v", o, n) _, _, err = client.Repositories.Edit(ctx, owner, repoName, repoReq) if err != nil { if !strings.Contains(err.Error(), "422 Privacy is already set") { diff --git a/website/docs/r/repository.html.markdown b/website/docs/r/repository.html.markdown index 68c5f86255..60dccfb4f8 100644 --- a/website/docs/r/repository.html.markdown +++ b/website/docs/r/repository.html.markdown @@ -99,7 +99,7 @@ initial repository creation and create the target branch inside of the repositor * `template` - (Optional) Use a template repository to create this resource. See [Template Repositories](#template-repositories) below for details. -* `vulnerability_alerts` (Optional) - Set to `true` to enable security alerts for vulnerable dependencies. Enabling requires alerts to be enabled on the owner level. (Note for importing: GitHub enables the alerts on public repos but disables them on private repos by default.) See [GitHub Documentation](https://help.github.com/en/github/managing-security-vulnerabilities/about-security-alerts-for-vulnerable-dependencies) for details. +* `vulnerability_alerts` (Optional) - Set to `true` to enable security alerts for vulnerable dependencies. Enabling requires alerts to be enabled on the owner level. (Note for importing: GitHub enables the alerts on public repos but disables them on private repos by default.) See [GitHub Documentation](https://help.github.com/en/github/managing-security-vulnerabilities/about-security-alerts-for-vulnerable-dependencies) for details. Note that vulnerability alerts have not been successfully tested on any GitHub Enterprise instance and may be unavailable in those settings. ### GitHub Pages Configuration