Skip to content

Add X-GitLab-ConfidentialIssue: header boolean

Micah requested to merge micah/gitlab:222908-add-confidential-header into master

What does this MR do and why?

This MR will add a new email header to issue notifications, 'X-GitLab-ConfidentialIssue' which will contain a boolean (true/false) value depending on the issue's confidentiality. It will default to false if the issue's confidentiality is nil.

This can be used for filtering out emails when this header is set to true and a site's policy is to restrict emailing of confidential emails.

Screenshots or screen recordings

As a demonstration, from the rails console:

Make issue id 4 confidential (via the web interface) and then test it:

irb(main):043:0> foo = Issue.find(4)
=> #<Issue id:4 tasks#11466>
irb(main):038:1* unless foo.confidential?
irb(main):039:1*   puts "not confidential"
irb(main):040:1* else
irb(main):041:1*   puts "confidential"
irb(main):042:0> end
confidential
=> nil

Make issue id 4 not confidential (via the web interface) and then test it:

irb(main):043:0> foo = Issue.find(4)
=> #<Issue id:4 tasks#11466>
irb(main):044:1* unless foo.confidential?
irb(main):045:1*   puts "not confidential"
irb(main):046:1* else
irb(main):047:1*   puts "confidential"
irb(main):048:0> end
not confidential
=> nil
irb(main):049:0>

How to set up and validate locally

  1. Create or modify a confidential issue, the issue notification email should have X-GitLab-ConfidentialIssue: true
  2. Create or modify a non-confidential issue, the issue notification email should have X-GitLab-ConfidentialIssue: false

MR acceptance checklist

This checklist encourages us to confirm any changes have been analyzed to reduce risks in quality, performance, reliability, security, and maintainability.

TODO

Add tests Related to #222908

Merge request reports