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
|
|
|
|
Refactor parse_options() in push_options.rb
Closes #67091
See merge request gitlab-org/gitlab-ce!32756
|
|
Normalize import_export structure
See merge request gitlab-org/gitlab-ce!32704
|
|
This improves code quality by reducing Cognitive Complexity.
This fixes https://gitlab.com/gitlab-org/gitlab-ce/issues/67091
|
|
|
|
Wiki attachments can be workhorse accelerated.
This commit is backward compatible with older workhorse
|
|
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
|
|
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
|
|
Break up Danger rules into local or CI only
See merge request gitlab-org/gitlab-ce!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.
|
|
Support adding and removing labels w/ push opts
Closes #5942
See merge request gitlab-org/gitlab-ce!31831
|
|
|
|
Add Danger Roulette rules for pipeline files
See merge request gitlab-org/gitlab-ce!32616
|
|
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.
|
|
|
|
Patches ChronicDuration to use our custom conversions
when parsing months
|
|
- Move code for creating a new column from old into a function so that
it can be reused.
- Also add comments above the methods.
|
|
'66150-remove-dynamically-constructed-feature-flags-starting-with-prometheus_transaction_' into 'master'
Resolve "Remove dynamically constructed feature flags starting with `prometheus_transaction_`"
Closes #66150
See merge request gitlab-org/gitlab-ce!32395
|
|
|
|
Those feature flags were always enabled so we can remove them safely.
|
|
Avoid calling freeze on already frozen strings in lib/gitlab
See merge request gitlab-org/gitlab-ce!32637
|
|
|
|
Now, when the dns rebinging setting is disabled, we will
allow urls that are not resolvable.
|
|
- `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
|
|
When using /due quick action with an invalid date a meaninful error
message is shown.
|
|
- 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
|
|
Persist `needs:` validation as config error
See merge request gitlab-org/gitlab-ce!32648
|
|
In case when `needs:` is missing, but when requested by service,
we would not save the pipeline with config_error.
This makes it explicit that we want to persist the error
as `config_error` failure reason.
|
|
MergeRequests::PushOptionsHandlerService has been updated to allow
adding and removing labels to a merge request using git push options.
To create a new merge request and add 2 labels to it:
git push -u origin -o merge_request.create \
-o merge_request.label="My label 1" \
-o merge_request.label="My label 2"
To update an existing merge request and remove a label while
adding a different label:
git push -u origin -o merge_request.label="My added label" \
-o merge_request.unlabel="My removed label"
Issue https://gitlab.com/gitlab-org/gitlab-ce/issues/64320
|
|
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.
|
|
|
|
Backport retries options for cancel_running
See merge request gitlab-org/gitlab-ce!32525
|
|
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
|
|
This allows overriding `only.refs` to something else if needed.
|
|
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.
|
|
as requested by the reviewer
|
|
|
|
Wrong format on MS Teams integration push events with multi line commit messages
|