Commit Graph

21 Commits

Author SHA1 Message Date
GitLab Bot 5f0e3773e9 Add latest changes from gitlab-org/gitlab@master 2020-05-06 21:10:00 +00:00
dineshpanda e908e11776 Avoid calling freeze on already frozen strings in lib/gitlab 2019-09-04 09:52:02 +05:30
Sean McGivern f9c456bd0c Make performance bar enabled checks consistent
Previously, we called the `peek_enabled?` method like so:

    prepend_before_action :set_peek_request_id, if: :peek_enabled?

Now we don't have a `set_peek_request_id` method, so we don't need that
line. However, the `peek_enabled?` part had a side-effect: it would also
populate the request store cache for whether the performance bar was
enabled for the current request or not.

This commit makes that side-effect explicit, and replaces all uses of
`peek_enabled?` with the more explicit
`Gitlab::PerformanceBar.enabled_for_request?`. There is one spec that
still sets `SafeRequestStore[:peek_enabled]` directly, because it is
contrasting behaviour with and without a request store enabled.

The upshot is:

1. We still set the value in one place. We make it more explicit that
   that's what we're doing.
2. Reading that value uses a consistent method so it's easier to find in
   future.
2019-08-28 17:25:02 +01:00
Rémy Coutable d0b76d0652
Cache PerformanceBar.allowed_user_ids list locally and in Redis
Signed-off-by: Rémy Coutable <remy@rymai.me>
2019-07-03 18:47:30 +02:00
gfyoung c858f70d07 Enable frozen string for lib/gitlab/*.rb 2018-10-22 07:00:50 +00:00
Yorick Peterse 2039c8280d
Disable existing offenses for the CodeReuse cops
This whitelists all existing offenses for the various CodeReuse cops, of
which most are triggered by the CodeReuse/ActiveRecord cop.
2018-09-11 17:32:00 +02:00
Robert Speicher eb9e09bb1a Always allow the performance bar to be enabled for admins 2018-04-02 14:19:19 -05:00
Mario de la Ossa eaada9d706 use Gitlab::UserSettings directly as a singleton instead of including/extending it 2018-02-02 18:39:55 +00:00
Rémy Coutable 28d39447c3 In development, allow the toggling of the performance bar
The performance bar is still displayed by default in development.

Signed-off-by: Rémy Coutable <remy@rymai.me>
2018-01-17 13:56:05 +01:00
Sean McGivern 5883ce95ef `current_application_settings` belongs on `Gitlab::CurrentSettings`
The initializers including this were doing so at the top level, so every object
loaded after them had a `current_application_settings` method. However, if
someone had rack-attack enabled (which was loaded before these initializers), it
would try to load the API, and fail, because `Gitlab::CurrentSettings` didn't
have that method.

To fix this:

1. Don't include `Gitlab::CurrentSettings` at the top level. We do not need
   `Object.new.current_application_settings` to work.
2. Make `Gitlab::CurrentSettings` explicitly `extend self`, as we already use it
   like that in several places.
3. Change the initializers to use that new form.
2017-08-31 13:38:33 +01:00
Rémy Coutable 7cbdaef452
Expire cached user IDs that can see the performance after 5 minutes
If we don't expire the cached user IDs, the list of IDs would become
outdated when a new member is added, or when a member ios removed from
the allowed group.

Signed-off-by: Rémy Coutable <remy@rymai.me>
2017-07-17 13:29:33 +02:00
Rémy Coutable 97611c88fc
Don't use Flipper for the Performance Bar
The implementation now simply rely on the
`performance_bar_allowed_group_id` Application Setting.

Signed-off-by: Rémy Coutable <remy@rymai.me>
2017-07-07 02:34:51 +02:00
Rémy Coutable 040eeb1039
Allow to enable the Performance Bar for a group from the admin area
Signed-off-by: Rémy Coutable <remy@rymai.me>
2017-07-06 18:57:02 +02:00
Rémy Coutable de9eca0af6
Use Rails.cache instead of Redis directly
Signed-off-by: Rémy Coutable <remy@rymai.me>
2017-07-06 17:11:20 +02:00
Rémy Coutable 00ac76cc4c Cache the allowed user IDs for the performance bar, in Redis for 10 minutes
Signed-off-by: Rémy Coutable <remy@rymai.me>
2017-07-06 11:18:26 +02:00
Rémy Coutable cdc1179fac Improve feature flag check for the performance bar
Signed-off-by: Rémy Coutable <remy@rymai.me>
2017-07-06 11:18:26 +02:00
Rémy Coutable 19b8d8af2c Hide 'peek' by using 'performance bar' instead
Signed-off-by: Rémy Coutable <remy@rymai.me>
2017-07-06 11:18:25 +02:00
Rémy Coutable b531616eba Cache PerformanceBar data using RequestStore
Signed-off-by: Rémy Coutable <remy@rymai.me>
2017-07-06 11:18:25 +02:00
Rémy Coutable 186048a404 Allow to enable the performance bar per user or Flipper group
A `performance_team` Flipper group has been created. By default this
group is nil but this can be customized in `gitlab.yml` via the
performance_bar.allowed_group setting.

Signed-off-by: Rémy Coutable <remy@rymai.me>
2017-07-06 11:18:25 +02:00
Rémy Coutable 54c04f53fd Fix spec failures and add a feature flag for the performance bar
Signed-off-by: Rémy Coutable <remy@rymai.me>
2017-06-09 17:21:39 +02:00
Rémy Coutable d39ecf1ca7 New performance bar that can be enabled with the `p b` shortcut
Signed-off-by: Rémy Coutable <remy@rymai.me>
2017-06-09 17:21:39 +02:00