Commit Graph

44 Commits

Author SHA1 Message Date
GitLab Bot a48b98b75d Add latest changes from gitlab-org/gitlab@master 2023-07-13 06:10:43 +00:00
GitLab Bot fe530c6e7f Add latest changes from gitlab-org/gitlab@master 2023-06-16 21:09:11 +00:00
GitLab Bot 0a70b104d0 Add latest changes from gitlab-org/gitlab@master 2022-09-02 15:12:37 +00:00
GitLab Bot dda49284fc Add latest changes from gitlab-org/gitlab@master 2022-08-03 09:12:13 +00:00
GitLab Bot 9c5341dd08 Add latest changes from gitlab-org/gitlab@master 2022-08-01 12:12:10 +00:00
GitLab Bot a269fb8e7c Add latest changes from gitlab-org/gitlab@master 2022-07-13 21:10:15 +00:00
GitLab Bot 4b4c254b2c Add latest changes from gitlab-org/gitlab@master 2022-05-24 12:09:04 +00:00
GitLab Bot 16f41a5b04 Add latest changes from gitlab-org/gitlab@master 2021-11-03 21:10:35 +00:00
GitLab Bot 2fe5ea34a5 Add latest changes from gitlab-org/gitlab@master 2021-08-12 12:11:05 +00:00
GitLab Bot ec3483bd18 Add latest changes from gitlab-org/gitlab@master 2021-07-26 09:09:00 +00:00
GitLab Bot ec4abad65d Add latest changes from gitlab-org/gitlab@master 2021-06-16 15:10:08 +00:00
GitLab Bot afa3d4e066 Add latest changes from gitlab-org/gitlab@master 2021-03-30 09:10:51 +00:00
GitLab Bot 708ee0bcb2 Add latest changes from gitlab-org/gitlab@master 2020-09-17 18:10:12 +00:00
GitLab Bot 592223823c Add latest changes from gitlab-org/gitlab@master 2020-09-03 18:08:29 +00:00
GitLab Bot 2368893df7 Add latest changes from gitlab-org/gitlab@master 2020-08-31 15:10:41 +00:00
GitLab Bot fa7ac2663b Add latest changes from gitlab-org/gitlab@master 2020-06-24 06:09:01 +00:00
GitLab Bot 4a3ba3e5f2 Add latest changes from gitlab-org/gitlab@master 2020-05-22 09:08:09 +00:00
GitLab Bot 41456efd55 Add latest changes from gitlab-org/gitlab@master 2020-05-19 00:07:58 +00:00
GitLab Bot abe11a6a2c Add latest changes from gitlab-org/gitlab@master 2020-04-28 21:09:35 +00:00
GitLab Bot 53b1f4eaa2 Add latest changes from gitlab-org/gitlab@master 2020-04-02 15:08:01 +00:00
GitLab Bot a89cb5cbdd Add latest changes from gitlab-org/gitlab@master 2020-02-06 21:08:48 +00:00
GitLab Bot b3e4ec8e8a Add latest changes from gitlab-org/gitlab@master 2019-10-23 09:06:03 +00:00
Grzegorz Bizon 1068ec2e92 Merge branch '66741-remove-spec-rails_helper-rb' into 'master'
Remove spec/rails_helper.rb

Closes #66741

See merge request gitlab-org/gitlab-ce!32380
2019-09-03 13:48:17 +00:00
Ash McKenzie 19ff9d9899
Replace rails_helper.rb with spec_helper.rb
rails_helper.rb's only logic was to require
spec_helper.rb.
2019-08-30 12:26:18 +10:00
Lee Tickett 72390953da Handle invalid mirror url 2019-08-29 16:19:07 +00:00
Bob Van Landuyt 452bc36d60 Rework retry strategy for remote mirrors
**Prevention of running 2 simultaneous updates**

Instead of using `RemoteMirror#update_status` and raise an error if
it's already running to prevent the same mirror being updated at the
same time we now use `Gitlab::ExclusiveLease` for that.

When we fail to obtain a lease in 3 tries, 30 seconds apart, we bail
and reschedule. We'll reschedule faster for the protected branches.

If the mirror already ran since it was scheduled, the job will be
skipped.

**Error handling: Remote side**

When an update fails because of a `Gitlab::Git::CommandError`, we
won't track this error in sentry, this could be on the remote side:
for example when branches have diverged.

In this case, we'll try 3 times scheduled 1 or 5 minutes apart.

In between, the mirror is marked as "to_retry", the error would be
visible to the user when they visit the settings page.

After 3 tries we'll mark the mirror as failed and notify the user.

We won't track this error in sentry, as it's not likely we can help
it.

The next event that would trigger a new refresh.

**Error handling: our side**

If an unexpected error occurs, we mark the mirror as failed, but we'd
still retry the job based on the regular sidekiq retries with
backoff. Same as we used to

The error would be reported in sentry, since its likely we need to do
something about it.
2019-08-13 20:52:01 +00:00
Bob Van Landuyt ab11eee1d6 Mark mirrors as failed 1 hour after they started
We call `Project#mark_stuck_remote_mirrors_as_failed!` from the
`Git::BaseHooksService`. So that gets called every time we push tags
or branches.

Before this would only mark started mirrors as failed if they had
been started 24 hours ago. A push would never take 24 hours,
especially not when we run it so often.

Lowering that threshold 1 hour should at least allow us to retry
broken mirrors more often on pushes.

The timeout for the initial push is set somewhat longer to accommodate
for pushing large repos. Both numbers are currently picked arbitrarily.
2019-07-23 16:04:49 +02:00
Luke Bennett 8753384873
Show disabled project repo mirrors
Show disabled mirrors with a badge so that they
can be deleted by project owners.
2019-05-07 03:42:09 +01:00
Thong Kuah 4ec16912b8 Autocorrect with RSpec/ExampleWording cop
- rewords examples starting with 'should'
- rewords examples starting with 'it'

Note: I had to manually fixup "onlies" to "only"
2019-04-05 08:43:27 +00:00
Thong Kuah a2cfc150ce Add # frozen_string_literal to spec/models
Adds `# frozen_string_literal: true` to spec/models ruby files
2019-04-01 14:37:54 +13:00
Stan Hu 6fbbd4ab39 Only send one notification for failed remote mirror
Retries in Sidekiq and in the remote mirror scheduler can cause repeated
attempts in quick succession if the sync fails. Each failure will then
send an e-mail to all project maintainers, which can spam users
unnecessarily.

Modify the logic to send one notification the first time the mirror
fails by setting `error_notification_sent` to `true` and reset the
flag after a successful sync.

Closes https://gitlab.com/gitlab-org/gitlab-ce/issues/56222
2019-01-15 00:15:40 -08:00
John Jarvis e4dabec82a Merge branch 'security-fix-ssrf-import-url-remote-mirror' into 'master'
[master] SSRF - Scan Internal Ports and GCP/AWS endpoints

See merge request gitlab/gitlabhq!2689
2019-01-01 20:38:37 +00:00
Francisco Javier López 63c48f7380
Replaced UrlValidator with PublicUrlValidator for import_url and remote mirror urls 2018-12-13 08:57:04 +01:00
Alejandro Rodríguez b65cb237ce Send a notification email on mirror update errors
The email is sent to project maintainers containing the last mirror
update error. This will allow maintainers to set alarms and react
accordingly.
2018-12-11 23:08:17 -03:00
Stan Hu 207f0a1b16 Make RemoteMirror's only_protected_branches default value consistent
From https://gitlab.com/gitlab-org/gitlab-ce/issues/53515, we see the
backend appears to have inconsistent default values for this column:

* DB schema: false by default
* UI checkbox: false by default
* `RemoteMirror` model: true by default

This leads to unintended behavior where the boolean is activated if the
UI doesn't pass in a value for the checkbox.
2018-11-28 11:23:27 -08:00
Nick Thomas f1bc7b6eb5
SSH public-key authentication for push mirroring 2018-11-19 11:46:39 +00:00
Alejandro Rodríguez a99bf447a2 Remove Gitlab::Git::Repository#rugged and Gollum code
Cleanup code, and refactor tests that still use Rugged. After this, there should
be no Rugged code that access the instance's repositories on non-test
environments. There is still some rugged code for other tasks like the
repository import task, but since it doesn't access any repository storage path
it can stay.
2018-10-02 16:34:28 -03:00
Stan Hu 578137f6e4 Fix remote mirrors failing if Git remotes have not been added
Remote mirrors only get created when the URL changes, However, during the GCP
migration, the remote mirror did not get created automatically. Plus, there's
no guarantee someone restoring a repository from backup would have this
remote. We now add the remote each time we attempt to fetch from the
repository.

This works because Gitaly doesn't throw up an exception or error if the
remote already exists:
https://gitlab.com/gitlab-org/gitaly/issues/1317

In the future, we should attempt to add if the remote doesn't exist:
https://gitlab.com/gitlab-org/gitaly/issues/1316

Closes #50562
2018-08-22 17:02:09 -07:00
Lin Jen-Shin 4ee08b77bc Updates from `rubocop -a` 2018-07-09 21:13:08 +08:00
Jacob Vosmaer (GitLab) 5cf5680f9c Deny repository disk access in development and test 2018-06-14 11:18:25 +00:00
Francisco Javier López 1418afc2d6 Avoid checking the user format in every url validation 2018-06-11 13:29:37 +00:00
Francisco Javier López 840f80d48b Add validation to webhook and service URLs to ensure they are not blocked because of SSRF 2018-06-01 11:43:53 +00:00
Tiago Botelho 961255b107 Adds remote mirror table migration 2018-05-07 12:00:13 +02:00
Tiago Botelho 9a13059332 Backports every CE related change from ee-5484 to CE 2018-05-07 11:59:51 +02:00