Skip to content

Add class for generating security blog post

Reuben Pereira requested to merge rp/notify-blog-post-creation-failure into master

What does this MR do and why?

Describe in detail what your merge request does and why.

Content

  • Add class for generating security blog post

Send a notification to Slack if creation of the blog post succeeds or fails.

gitlab-com/gl-infra/delivery#19729 (closed)

Testing

Diff for testing
diff --git a/lib/release_tools/patch_release/blog_merge_request.rb b/lib/release_tools/patch_release/blog_merge_request.rb
index 117c76cc..8a34d36d 100644
--- a/lib/release_tools/patch_release/blog_merge_request.rb
+++ b/lib/release_tools/patch_release/blog_merge_request.rb
@@ -22,11 +22,12 @@ module ReleaseTools
       end
 
       def assignee_ids
-        if security_content?
-          release_managers.concat(appsec_release_managers).collect(&:id)
-        else
-          release_managers.collect(&:id)
-        end
+        return []
+        # if security_content?
+        #   release_managers.concat(appsec_release_managers).collect(&:id)
+        # else
+        #   release_managers.collect(&:id)
+        # end
       end
 
       def source_branch
@@ -239,7 +240,8 @@ module ReleaseTools
       end
 
       def combined_blog_post?
-        Feature.enabled?(:combined_blog_post)
+        true
+        # Feature.enabled?(:combined_blog_post)
       end
 
       def includes_security_content?
diff --git a/lib/release_tools/release_managers/schedule.rb b/lib/release_tools/release_managers/schedule.rb
index cadb9260..57c931d4 100644
--- a/lib/release_tools/release_managers/schedule.rb
+++ b/lib/release_tools/release_managers/schedule.rb
@@ -197,7 +197,8 @@ module ReleaseTools
       end
 
       def dynamic_release_date?
-        Feature.enabled?(:dynamic_release_date)
+        true
+        # Feature.enabled?(:dynamic_release_date)
       end
     end
   end
diff --git a/lib/release_tools/security/issue_crawler.rb b/lib/release_tools/security/issue_crawler.rb
index 6c189910..8f4fd3a5 100644
--- a/lib/release_tools/security/issue_crawler.rb
+++ b/lib/release_tools/security/issue_crawler.rb
@@ -5,6 +5,8 @@ module ReleaseTools
     # Crawling of security release issues to determine their associated security
     # issues and merge requests.
     class IssueCrawler
+      include ::SemanticLogger::Loggable
+
       # The public project that is used for creating the security root issues.
       PUBLIC_PROJECT = 'gitlab-org/gitlab'
 
@@ -77,6 +79,8 @@ module ReleaseTools
       def security_issues_for(release_issue_iid)
         related_issues = []
 
+        logger.info('Fetching issue links')
+
         GitlabClient
           .client
           .issue_links(PUBLIC_PROJECT, release_issue_iid)
@@ -92,6 +96,8 @@ module ReleaseTools
             related_issues << issue
           end
 
+        logger.info('Completed fetching issue links')
+
         related_issues
       end
 
diff --git a/lib/release_tools/slack/release_job_end_notifier.rb b/lib/release_tools/slack/release_job_end_notifier.rb
index bc67cd1a..c8871627 100644
--- a/lib/release_tools/slack/release_job_end_notifier.rb
+++ b/lib/release_tools/slack/release_job_end_notifier.rb
@@ -21,7 +21,7 @@ module ReleaseTools
         logger.info('Posting slack message', job_type: job_type, status: status)
 
         ReleaseTools::Slack::Message.post(
-          channel: ReleaseTools::Slack::F_UPCOMING_RELEASE,
+          channel: ReleaseTools::Slack::NOTIFICATION_TESTS,
           message: fallback_message,
           blocks: slack_blocks
         )
diff --git a/lib/release_tools/slack/release_pipeline_start_notifier.rb b/lib/release_tools/slack/release_pipeline_start_notifier.rb
index ace34e1a..d62634d1 100644
--- a/lib/release_tools/slack/release_pipeline_start_notifier.rb
+++ b/lib/release_tools/slack/release_pipeline_start_notifier.rb
@@ -18,7 +18,7 @@ module ReleaseTools
         logger.info("Notifying the stage of a #{release_type} pipeline", stage: stage, release_manager: user_name, pipeline_url: pipeline_url)
 
         ReleaseTools::Slack::Message.post(
-          channel: ReleaseTools::Slack::F_UPCOMING_RELEASE,
+          channel: ReleaseTools::Slack::NOTIFICATION_TESTS,
           message: slack_message,
           blocks: slack_blocks
         )

Then I ran SLACK_APP_BOT_TOKEN='token' CI_JOB_URL='gitlab.com' SECURITY=true RELEASE_BOT_PRODUCTION_TOKEN='token' RELEASE_BOT_VERSION_TOKEN='token' bundle exec rake 'release:patch_blog_post[]'

Which created https://gitlab.com/gitlab-org/security/www-gitlab-com/-/merge_requests/162, and posted the following to Slack:

image

Author Check-list

  • Has documentation been updated?
Edited by Reuben Pereira

Merge request reports