plans_data

in ee/app/components/billing/plan_component.rb [128:250]


    def plans_data
      premium_features = [
        {
          title: s_("BillingPlans|Code Ownership and Protected Branches")
        },
        {
          title: s_("BillingPlans|Merge Request Approval Rules")
        },
        {
          title: s_("BillingPlans|Enterprise Agile Planning")
        },
        {
          title: s_("BillingPlans|Advanced CI/CD")
        },
        {
          title: s_("BillingPlans|Support")
        },
        {
          title: s_("BillingPlans|Enterprise User and Incident Management")
        },
        {
          title: s_("BillingPlans|10,000 CI/CD minutes per month")
        }
      ]

      ultimate_features = [
        {
          title: s_("BillingPlans|Suggested Reviewers")
        },
        {
          title: s_("BillingPlans|Dynamic Application Security Testing")
        },
        {
          title: s_("BillingPlans|Security Dashboards")
        },
        {
          title: s_("BillingPlans|Vulnerability Management")
        },
        {
          title: s_("BillingPlans|Dependency Scanning")
        },
        {
          title: s_("BillingPlans|Container Scanning")
        },
        {
          title: s_("BillingPlans|Static Application Security Testing")
        },
        {
          title: s_("BillingPlans|Multi-Level Epics")
        },
        {
          title: s_("BillingPlans|Portfolio Management")
        },
        {
          title: s_("BillingPlans|Custom Roles")
        },
        {
          title: s_("BillingPlans|Value Stream Management")
        },
        {
          title: s_("BillingPlans|50,000 CI/CD minutes per month")
        },
        {
          title: s_("BillingPlans|Free guest users")
        }
      ]

      if ::Feature.enabled?(:reveal_duo_core_feature, namespace)
        duo_core_features = [
          {
            title: s_("BillingPlans|AI Chat in the IDE")
          },
          {
            title: s_("BillingPlans|AI Code Suggestions in the IDE")
          }
        ]

        premium_features.unshift(*duo_core_features)
        ultimate_features.unshift(*duo_core_features)
      end

      {
        'free' => {
          header_text: s_("BillingPlans|Your current plan"),
          header_classes: "gl-bg-gray-100",
          elevator_pitch: s_("BillingPlans|Use GitLab for personal projects"),
          features_elevator_pitch: s_("BillingPlans|Free forever features:"),
          features: [
            {
              title: s_("BillingPlans|400 CI/CD minutes per month")
            },
            {
              title: s_("BillingPlans|5 users per top-level group")
            }
          ]
        },
        'premium' => {
          card_body_border_classes: "gl-border-purple-500\!",
          header_text: s_("BillingPlans|Recommended"),
          header_classes: "gl-text-white gl-bg-purple-500",
          elevator_pitch: s_("BillingPlans|For scaling organizations and multi-team usage"),
          features_elevator_pitch: s_("BillingPlans|Everything from Free, plus:"),
          features: premium_features,
          cta_text: s_("BillingPlans|Upgrade to Premium"),
          cta_category: 'primary',
          cta_data: {
            testid: "upgrade-to-premium"
          }
        },
        'ultimate' => {
          card_body_border_classes: "gl-rounded-tr-base gl-rounded-tl-base",
          elevator_pitch: s_("BillingPlans|For enterprises looking to deliver software faster"),
          features_elevator_pitch: s_("BillingPlans|Everything from Premium, plus:"),
          features: ultimate_features,
          cta_text: s_("BillingPlans|Upgrade to Ultimate"),
          cta_category: 'secondary',
          cta_data: {
            testid: "upgrade-to-ultimate"
          }
        }
      }
    end