Age | Commit message (Collapse) | Author |
|
ActiveModel::Serialization is simple in that it recursively calls
`as_json` on each object to serialize everything. However, for a model
like a Project, this can generate a query for every single association,
which can add up to tens of thousands of queries and lead to memory
bloat.
To improve this, we can do several things:
1. We use `tree:` and `preload:` to automatically generate
a list of all preloads that could be used to serialize
objects in bulk.
2. We observe that a single project has many issues, merge requests,
etc. Instead of serializing everything at once, which could lead to
database timeouts and high memory usage, we take each top-level
association and serialize the data in batches.
For example, we serialize the first 100 issues and preload all of
their associated events, notes, etc. before moving onto the next
batch. When we're done, we serialize merge requests in the same way.
We repeat this pattern for the remaining associations specified in
import_export.yml.
|
|
Lowering the limit when performing search from 1001 to 101.
This will allow us to speed this process.
|
|
Add skeleton Pages internal API
See merge request gitlab-org/gitlab-ce!32732
|
|
|
|
Normalize import_export structure
See merge request gitlab-org/gitlab-ce!32704
|
|
This brings a significant refactor to how
we handle `import_export.yml`, merge it with EE
and how we handle that for reader and saver.
This is meant to simplify the code, and remove
a ton of conditions to handle different models
of the structure.
This is also meant to prepare the structure
to extend it much easier, like adding `preload:`
or additional object types when needed.
This does not change the behavior of import/export,
rather unifies and simplifies the current implementation.
|
|
This class encapsulates our use of the Danger gem.
|
|
Port CreateGithubPullRequestEvents migration from EE
See merge request gitlab-org/gitlab-ce!31802
|
|
CE backport for gitlab-org/gitlab-ee!15561 (Expose new GraphQL `event` field for `DesignType`)
See merge request gitlab-org/gitlab-ce!32249
|
|
Most of the project templates bundled with GitLab have an empty string
set for `external_authorization_classification_label` in their
`project.json`. When imported this overrides the default label set on
the instance, causing the label to appear empty.
This change sets empty labels to nil during import, allowing the
default label to override it and be applied to the project.
|
|
Revert "Merge branch '66596-allow-danger-to-be-run-locally' into 'master'"
See merge request gitlab-org/gitlab-ce!32741
|
|
'59729-estimate-quick-action-does-not-produce-correct-time-for-1mo' into 'master'
Resolve "estimate quick action does not produce correct time for 1mo"
See merge request gitlab-org/gitlab-ce!32165
|
|
This reverts merge request !32196
|
|
Basic `/internal/pages` endpoint that will be used for Pages virtual
domains internal API. The endpoint is currently behind feature flag and
provides authetication similar to how Workhorse is authenticating with
the GitLab.
|
|
This class encapsulates our use of the Danger gem.
|
|
https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/15561
https://gitlab.com/gitlab-org/gitlab-ee/issues/12705
https://gitlab.com/gitlab-org/gitlab-ee/issues/13353
|
|
Add Danger Roulette rules for pipeline files
See merge request gitlab-org/gitlab-ce!32616
|
|
into 'master'
Resolve "user-content.gitlab-static.net brings back 404 only"
See merge request gitlab-org/gitlab-ce!32703
|
|
Detect if pipeline runs for a GitHub pull request
When using a mirror for CI/CD only we register a pull_request
webhook. When a pull_request webhook is received, if the
source branch SHA matches the actual head of the branch in the
repository we create immediately a new pipeline for the
external pull request. Otherwise we store the
pull request info for when the push webhook is received.
When using "only/except: external_pull_requests" we can detect
if the pipeline has a open pull request on GitHub and create or
not the job based on that.
|
|
Since it is not possible to dynamically detect if a job is automatically
cancellable or not, a this new attribute is necessary. Moreover, it let
the maintainer of the repo to adjust the behaviour of the auto cancellation
feature to match exactly what he needs.
|
|
|
|
|
|
Extract /internal/allowed API Actor logic out
See merge request gitlab-org/gitlab-ce!31564
|
|
These are the structural changes for supporting the EE feature of moving
"code_owner_approval_required" state from existing on a project to being
on the protected branches individually, allowing for CODEOWNER
validation on push events.
|
|
Patches ChronicDuration to use our custom conversions
when parsing months
|
|
Those feature flags were always enabled so we can remove them safely.
|
|
'66966-convert-rails-env-stub-usages-to-use-railshelpers-stub_rails_env-instead' into 'master'
Use stub_rails_env for Rails.env stubbing
Closes #66966
See merge request gitlab-org/gitlab-ce!32625
|
|
Now, when the dns rebinging setting is disabled, we will
allow urls that are not resolvable.
|
|
Created new API::Support::GitAccessActor class to
encapsulate some of the more edge logic, making
the /internal/allowed route much cleaner.
|
|
RailsHelpers.stub_rails_env takes care of
stubbing Rails.env
|
|
- `edge_nodes` needs to get called on the object
- added `include GlobalID::Identification` in a couple places
- renamed `object` to `item` in spec due to conflict
|
|
- Due to https://github.com/exAspArk/batch-loader/pull/32,
we changed BatchLoader.for into BatchLoader::GraphQL.for
- since our results are wrapped in a BatchLoader::GraphQL,
calling `sync` during authorization is required to get real object
- `graphql` now has it's own authorization system. Our
`authorized?` method conflicted and required renaming
|
|
Improve diff lines count efficiency
|
|
Introduce JWTAutheticatable module that can be reused for ai=uthtication
between Pages and GitLab (the same way we use do now for Workhorse).
Related to https://gitlab.com/gitlab-org/gitlab-ce/issues/61927.
|
|
Creates new event when an epic is created, closed, reopened or
commented.
|
|
Add new RailsHelpers module for specs
Closes #66688
See merge request gitlab-org/gitlab-ce!32309
|
|
spec/rails_helper.rb was removed on
1068ec2e9201af3de1fc5ebe9c8d9f7953c89b51
|
|
Remove spec/rails_helper.rb
Closes #66741
See merge request gitlab-org/gitlab-ce!32380
|
|
Modified schema via migrations.
Added one-to-one relationship between the two models.
Added changelog file
|
|
Remove all references to Gitlab::CorrelationId
See merge request gitlab-org/gitlab-ce!32228
|
|
Extends the permission of $CI_REGISTRY_USER to allow them
to delete tags in addition to just pushing.
https://gitlab.com/gitlab-org/gitlab-ce/issues/40096
|
|
Prometheus listen_address can be in formats of :9090 and 0.0.0.0:9090.
But before these can be used to connect a project to Prometheus, they
have to converted into absolute URIs.
|
|
Fix permissions check in `RelativeLinkFilter`
See merge request gitlab-org/gitlab-ce!32448
|
|
Fix Peek on Puma
Closes #66528
See merge request gitlab-org/gitlab-ce!32213
|
|
Fixes RelativeLinkFilter for users that don't have access
to the project's repository
|
|
Fix 500 error in CI lint when included templates are an array
Closes #66605
See merge request gitlab-org/gitlab-ce!32232
|
|
Move generic k8s services out of GCP namespace
See merge request gitlab-org/gitlab-ce!32310
|
|
Improve chatops help output
See merge request gitlab-org/gitlab-ce!32208
|
|
Previously the following syntax would fail in the linter with an
error 500:
```
include:
template:
- License-Management.gitlab-ci.yml
- Dependency-Scanning.gitlab-ci.yml
- SAST.gitlab-ci.yml
```
Now the error will call out specifically that the value
is not a string.
Closes https://gitlab.com/gitlab-org/gitlab-ce/issues/66605
|
|
All avatars now visible in commit trailers.
|