Age | Commit message (Collapse) | Author |
|
Create EKS cluster Vue app skeleton
See merge request gitlab-org/gitlab-ce!32479
|
|
Enable serving static objects from an external storage
See merge request gitlab-org/gitlab-ce!31025
|
|
- Load EKS create cluster form as dynamic import dependency.
- Include aws-sdk dependency in package.json
|
|
Optimize /admin/applications so that it does not timeout
Closes #67228
See merge request gitlab-org/gitlab-ce!32852
|
|
Optimize queries for snippet listings
See merge request gitlab-org/gitlab-ce!32576
|
|
|
|
We had similar code in a few places to redirect to the last page if
the given page number is out of range. This unifies the handling in a
new controller concern and adds usage of it in all snippet listings.
|
|
- Avoid N+1 queries for authors and comment counts
- Avoid an additional snippet existence query
|
|
It consists of two parts:
1. Redirecting users to the configured external storage
1. Allowing the external storage to request the static object(s)
on behalf of the user by means of specific tokens
Part of https://gitlab.com/gitlab-com/gl-infra/infrastructure/issues/6829
|
|
On our dev instance, /admin/applications as not loading because:
1. There was an unindexed query by `application_id`.
2. There was an expensive query that attempted to load 1 million
unique entries via ActiveRecord just to find the unique count.
We fix the first issue by adding an index for that column.
We fix the second issue with a simple SELECT COUNT(DISTINCT
resource_owner_id) SQL query.
In addition, we add pagination to avoid loading more than 20
applications at once.
Closes https://gitlab.com/gitlab-org/gitlab-ce/issues/67228
|
|
|
|
|
|
camilstaps/gitlab-ce-new-66023-public-private-fork-counts
|
|
Improve application settings API
Closes #58180
See merge request gitlab-org/gitlab-ce!31149
|
|
- Create HAML UI select a cloud provider to create a cluster.
- Add query param to :new cluster view to display a specific cluster
provider form depending on the value of the provider query param.
- Update unit tests and e2e tests to reflect these changes
|
|
Utilize `json_fields` to expose fields via
`Service#as_json(only: json_fields)`.
|
|
As in documentation.
Fixes: #58180.
Also remove the requirement between domain_blacklist_enabled and domain_blacklist.
|
|
|
|
This change implements Application
Statistics API
|
|
|
|
|
|
|
|
to doc
|
|
This fixes a high frequency N+1 issue:
`RoutableActions#find_routable!` is used across many controllers to
retrieve e.g. the Project or Namespace by path. The `#find_routable!`
method calls `#ensure_canonical_path` which in turn retrieves
`#full_path` from the given Routable.
This in turn triggers a lookup on `routes`, leading to a high frequency
of these queries:
```sql
SELECT "routes".* FROM "routes" WHERE "routes"."source_id" = $1 AND
"routes"."source_type" = $2 LIMIT $3
```
This is unnecessary as we already join `routes` in
`Routable#find_by_full_path` anyways.
|
|
Fix Peek on Puma
Closes #66528
See merge request gitlab-org/gitlab-ce!32213
|
|
|
|
Updates frontend code and specs to allow for the new
feature flag
|
|
|
|
into 'master'
Filter out old system notes for epics in notes api endpoint response
See merge request gitlab/gitlabhq!3224
|
|
Add direct upload support for personal snippets
See merge request gitlab/gitlabhq!3226
|
|
Require a captcha after unique failed logins from the same IP
See merge request gitlab/gitlabhq!3270
|
|
Permission fix for MergeRequestsController#pipeline_status
See merge request gitlab/gitlabhq!3274
|
|
admin_group authorization for Groups::RunnersController
See merge request gitlab/gitlabhq!3325
|
|
Restrict MergeRequests#test_reports to authenticated users with read-access on Builds
See merge request gitlab/gitlabhq!3329
|
|
Previously submitting a DELETE request to an issuable URL would be
enough to destroy it, but this should require human confirmation. We
now require that the `destroy_confirm` parameter is set to a truthy
value before this can complete.
In addition, we log a Sentry error if a deletion arrived without
confirmation.
Closes https://gitlab.com/gitlab-org/gitlab-ce/issues/62387
|
|
- Extract MR fields for notes into a separate serializer
- Check if pipelines are empty via count
|
|
Persists if a board list is collapsed for each user.
|
|
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.
|
|
|
|
Peek's `Peek.request_id` method doesn't work well with a multi-threaded
server and concurrent requests, because requests can 'steal' another
request's ID, or unset it before it was due.
The upstream change resolves this; the commit here is just to ensure
that GitLab works with that upstream change, mostly by not using
`Peek.request_id` any more (as the method doesn't exist).
|
|
Remove N+1 SQL query loading project feature in dashboard
Closes #66482
See merge request gitlab-org/gitlab-ce!32169
|
|
Call QuickActionsService on Note update
Add support for notes which just contain
commands after editing
Return http status gone (410) if note was deleted
Temporary frontend addition so it is not
failing when a note is deleted
Move specs to shared examples
Fix rubocop style issue
Deleting note on frontend when status is 410
Use guard clause for note which got deleted
Simplified condition for nil note
This method should no longer be called
with nil note
Refactoring of execute method to reduce
complexity
Move errors update to delete_note method
Note is now deleted visually when it only
contains commands after update
Add expectation
Fix style issues
Changing action to fix tests
Add tests for removeNote and update
deleteNote expectations
|
|
Preload tags when loading Ci::Pipeline
Closes #60925
See merge request gitlab-org/gitlab-ce!32149
|
|
Projects that have a pipeline may need to check whether the user has
permission to read the build (`can?(current_user, :read_build,
project)`), which requires checking the `project_features` table.
This would cause an N+1 SQL query for each project.
This change also has a beneficial side effect that may avoid a race
condition. When a user deletes a project, the project is queued for
deletion and the user is redirected back to the dashboard page. However,
the following may happen:
1. The dashboard page may load this deleted project in the list of
20 projects.
2. The view will load the project pipeline status from the cache and
attempt to show each project.
3. When the view encounters the deleted project, it calls
`can?(current_user, :read_build, project)` to determine whether to
display the pipeline status.
4. Sidekiq deletes the project from the database.
5. However, since the deleted project is still loaded in memory, it will
attempt to call `project.project_feature.access_level`.
6. Since `project_feature` was not eager loaded, a lazy `SELECT` call is
made to the database.
7. This `SELECT` call returns nothing, and the user sees a 500 error.
By eager loading `project_feature`, we can ensure that we have a
consistent view and avoid records from being deleted later.
Closes https://gitlab.com/gitlab-org/gitlab-ce/issues/66482
|
|
[CE backport] Enforced SSO shouldn't break container registry authentication
See merge request gitlab-org/gitlab-ce!32110
|
|
|
|
|
|
'master'
CE: Archiving a project should create an audit event
See merge request gitlab-org/gitlab-ce!32039
|
|
- Use authorize_admin_group! instead of authorize_admin_pipeline!
- Added role-based permission specs for Groups::RunnersController
|
|
This used without a session and issues a sessionless token, so we
should avoid causing access checks based on the session.
|