Add git anti-abuse settings for self-managed instances

Merged Hinam Mehra requested to merge anti-abuse/12-add-git-anti-abuse-settings into master

What does this MR do and why?

  • Adds git anti-abuse rate limits which can be configured by admins.
  • These settings are only available for self-managed instances on the Ultimate plan.
  • Makes sure that these settings don't get returned as part of the GET application/settings API endpoint since we wouldn't want anti-abuse settings to be exposed.

Screenshots or screen recordings

Screen_Shot_2022-05-25_at_5.24.32_pm

How to set up and validate locally

  1. Enable the feature flag git_abuse_rate_limit_feature_flag: echo "Feature.enable(:git_abuse_rate_limit_feature_flag)" | rails c
  2. Sign in as admin
  3. Navigate to http://localhost:3000/admin/application_settings/reporting

MR acceptance checklist

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

Resolves modelops/anti-abuse/team-tasks/-/issues/12

Edited by Robert Hunt