| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
| |
`Gitlab::QueryLimiting.whitelist` has been moved from being inside the
feature flag conditional check to the `process_mr_push_options`
`Api::Internal` helper.
https://gitlab.com/gitlab-org/gitlab-ce/issues/60250
|
|
|
|
|
|
|
|
|
| |
When creating a merge request for push options, there may be over 100
queries that are run to create a merge request. Even after we reduce the
number of queries by disabling the Sidekiq jobs, it appears we still
hover near this limit.
Closes https://gitlab.com/gitlab-org/gitlab-ee/issues/11450
|
|
|
|
|
| |
https://gitlab.com/gitlab-org/gitlab-ce/issues/43263
https://gitlab.com/gitlab-org/gitlab-ce/issues/53198
|
|
|
|
|
|
|
|
|
|
| |
Exceptions are no longer raised, instead all errors encountered are
added to the errors property.
MergeRequests::BuildService is used to generate attributes of a new
merge request.
Code moved from Api::Internal to Api::Helpers::InternalHelpers.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Previously the raw push option Array was sent to Pipeline::Chain::Skip.
This commit updates this class (and the chain of classes that pass the
push option parameters from the API internal `post_receive` endpoint to
that class) to treat push options as a Hash of options parsed by
GitLab::PushOptions.
The GitLab::PushOptions class takes options like this:
-o ci.skip -o merge_request.create -o merge_request.target=branch
and turns them into a Hash like this:
{
ci: {
skip: true
},
merge_request: {
create: true,
target: 'branch'
}
}
This now how Pipeline::Chain::Skip is determining if the `ci.skip` push
option was used.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
To create a new merge request:
git push -u origin -o merge_request.create
To create a new merge request setting target branch:
git push -u origin -o merge_request.create \
-o merge_request.target=123
To update an existing merge request with a new target branch:
git push -u origin -o merge_request.target=123
A new Gitlab::PushOptions class handles parsing and validating the push
options array. This can be the start of the standard of GitLab accepting
push options that follow namespacing rules. Rules are discussed in issue
https://gitlab.com/gitlab-org/gitlab-ce/issues/43263.
E.g. these push options:
-o merge_request.create -o merge_request.target=123
Become parsed as:
{
merge_request: {
create: true,
target: '123',
}
}
And are fetched with the class via:
push_options.get(:merge_request)
push_options.get(:merge_request, :create)
push_options.get(:merge_request, :target)
A new MergeRequests::PushOptionsHandlerService takes the `merge_request`
namespaced push options and handles creating and updating
merge requests.
Any errors encountered are passed to the existing `output` Hash in
Api::Internal's `post_receive` endpoint, and passed to gitlab-shell
where they're output to the user.
Issue https://gitlab.com/gitlab-org/gitlab-ce/issues/43263
|
|
|
|
| |
Currently a no-op for CE
|
|
|
|
|
|
|
|
| |
This changes the repository type from a binary `wiki?` to a type. So
we can have more than 2 repository types.
Now everywhere we called `.wiki?` and expected a boolean, we check
that type.
|
|\
| |
| |
| |
| | |
Resolve CE to EE differences in the lib/api directory
See merge request gitlab-org/gitlab-ce!25430
|
| |
| |
| |
| |
| |
| | |
This adds a method to API::Internal that returns the URL to use for LFS
authentication tokens. This makes it possible for EE to redefine this
behaviour, without having to directly modify the source code.
|
|/
|
|
|
|
| |
The repository_path is no longer needed since
https://gitlab.com/gitlab-org/gitlab-shell/merge_requests/231, which closes
https://gitlab.com/gitlab-org/gitlab-shell/issues/135.
|
|
|
|
|
|
| |
This will enable us to track the human-readable project path with SSH
access in gitlab-shell. Currently the Gitaly logs will only show the
hashed storage and gl_repository path (e.g. project-1234).
|
|
|
|
|
|
|
|
|
| |
When using git-lfs with SSH we weren't passing in
the expires_header header which is allows large
transfers to succeed in the event the current
default of 30 mins expires.
https://github.com/git-lfs/git-lfs/blob/master/docs/api/server-discovery.md#ssh
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
gitlab-org/gitlab-shell!166 added support for collecting push options
from the environment, and passing them along to the
/internal/post_receive API endpoint.
This change handles the new push_options JSON element in the payload,
and passes them on through to the GitPushService and GitTagPushService
services.
Futhermore, it adds support for the first push option, ci.skip. With
this change, one can use 'git push -o ci.skip' to skip CI pipe
execution. Note that the pipeline is still created, but in the "skipped"
state, just like with the 'ci skip' commit message text.
Implements #18667
|
|
|
|
|
|
| |
Whenever a git push takes more than 50 seconds the user
will receive a trace from each check performed along with
their timings
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Partially addresses #47424.
Had to make changes to spec files because
stubbing methods on frozen objects is a mess
in RSpec and leads to failures:
https://github.com/rspec/rspec-mocks/issues/1190
|
|
|
|
|
| |
This whitelists all existing offenses for the various CodeReuse cops, of
which most are triggered by the CodeReuse/ActiveRecord cop.
|
|
|
|
|
| |
If user has configure the setting then it will be passed to gitlab-shell
and gitlab-workhorse
|
|
|
|
|
| |
- Use proper HTTP codes for /api/v4/allowed response
- CustomAction support
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Why and how to enable this is covered in the docs being changed
here. This requires gitlab-org/gitlab-shell@2e8b670 ("Add support for
SSH certificate authentication", 2018-06-14) which has been merged in
and tagged as 8.0.0, so GITLAB_SHELL_VERSION needs to be bumped.
Merging this closes gitlab-org/gitlab-ce#34572 see
gitlab-org/gitlab-shell!207 for the gitlab-shell MR.
Implementation notes:
- The APIs being changed here are all internal, and their sole
consumer is gitlab-shell.
- Most of the changed code is a MR to gitlab-shell, see the
gitlab-org/gitlab-shell!207 MR. That change covers why only some of
the internal methods get a new "username" parameter, and why some
others only get a "user_id".
|
|\
| |
| |
| |
| | |
Don't pass the repository path to Gitlab Shell
See merge request gitlab-org/gitlab-ce!19011
|
| | |
|
| |
| |
| |
| | |
This isn't a requirement, and removes deprecated method calls
|
|/
|
|
|
|
| |
without a .git directory
Signed-off-by: Rémy Coutable <remy@rymai.me>
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Add find key by base64 key or fingerprint to the internal API
See merge request !250
Squashed changes:
Add unique index to fingerprint
Add new index to schema
Add internal api to get ssh key by fingerprint
Change API endpoint to authorized_keys
Add InsecureKeyFingerprint that calculates the fingerprint without shelling out
Add require for gitlab key fingerprint
Remove uniqueness of fingerprint index
Remove unique option from migration
Fix spec style in fingerprint test
Fix rubocop complain
Extract insecure key fingerprint to separate file
Change migration to support building index concurrently
Remove those hideous tabs
|
|
|
|
|
|
|
|
|
| |
On GitLab.com, there are write deploy keys with no associated users.
Pushes with these deploy keys end with an Error 500 since we attempt
to look up redirect message. If there is no user, don't attempt
to display a redirect message.
Closes #41466
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
| |
Somehow Rails.cache.fetch occasionally returns `nil` values, which causes
this endpoint to crash.
Closes #35094
|
|
|
|
|
| |
- Make single gitaly payload
- Add feature-flag specs to verify payload
|
| |
|