Skip to content

Change group usage quota UX to follow user namespace

Payton Burdette requested to merge 360805-improve-group-ux-usage-quota into master

What does this MR do and why?

  • Aligns group namespace UX with personal namespace UX for usage quotas
  • Removes shared runner usage tab for main tabs on usage quotas view
  • Adds shared runner usage by project to the graph

Related to: #360805 (closed) and #355666 (closed)

Screenshots or screen recordings

before after
Screen_Shot_2022-05-16_at_11.34.22_AM Screen_Shot_2022-05-16_at_11.52.29_AM

Screen Recording

demo

How to set up and validate locally

Visit Group > Settings > Usage Quotas

Ensure the group namespace and projects have used CI/CD minutes / Shared Runners to expose data in the graphs.

Edit CI minutes

ApplicationSetting.current.update(shared_runners_minutes: 400)
project = Project.find(20)
root_namespace = project.root_namespace

namespace_usage = Ci::Minutes::NamespaceMonthlyUsage.find_or_create_current(namespace_id: root_namespace)
Ci::Minutes::NamespaceMonthlyUsage.update_counters(namespace_usage, amount_used: 100, shared_runners_duration: 100)

project_usage = Ci::Minutes::ProjectMonthlyUsage.find_or_create_current(project_id: project)
Ci::Minutes::ProjectMonthlyUsage.update_counters(project_usage, amount_used: 100, shared_runners_duration: 100)

Helper method (add to rails console)

def increase_ci_usage(project:, date:, amount_used:, shared_runners_duration:)
  date = date.utc.beginning_of_month

  project_usage = Ci::Minutes::ProjectMonthlyUsage.where(date: date).safe_find_or_create_by(project_id: project.id)
  Ci::Minutes::ProjectMonthlyUsage.update_counters(project_usage, amount_used: amount_used, shared_runners_duration: shared_runners_duration)

  root_namespace = project.root_namespace
  namespace_usage = Ci::Minutes::NamespaceMonthlyUsage.where(date: date).safe_find_or_create_by(namespace_id: root_namespace.id)
  Ci::Minutes::NamespaceMonthlyUsage.update_counters(namespace_usage, amount_used: amount_used, shared_runners_duration: shared_runners_duration)
end

Use helper method

increase_ci_usage(project: project, date: 1.month.ago, amount_used: 10, shared_runners_duration: 20)

MR acceptance checklist

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

Edited by Payton Burdette

Merge request reports