Store Duo Context Exclusion on Project Settings

We need to store Duo Context Exclusion settings on the project_settings.

Requirements

  • Exclusion Rules
    • Context Exclusion can apply to a file, directory or pattern (i.e. glob or regex)
    • Each rule can exclude or include files
    • Files are included by default
  • Querying Files
    • Ability to check a path and see if the file is excluded
    • Results should be cached for quick access
    • Can check multiple paths at the same time
  • Existing project settings GraphQL interfaces would include the context exclusion rules
  • Projects can only have Duo Exclusion rules if they are in a licensed namespace. The data should still be stored if the project loses it's license (or is moved) but won't be applied when checking exclusion
Edited by 🤖 GitLab Bot 🤖