Commit Graph

1359 Commits

Author SHA1 Message Date
Lin Jen-Shin 349db4802b Merge remote-tracking branch 'upstream/master' into 36089-handle-ref-failure-better
* upstream/master: (47 commits)
  Update CHANGELOG.md for 9.4.5
  Update charlock_holmes
  add a changelog entry
  switch to multi-line before block
  restructure the #new_key notification spec
  don't send devise notifications to the ghost user
  reset_delivered_emails before testing #new_key
  skip the :read_project check for new_project_member
  move the member spec to be with the other ones
  add a spec for new_group_member
  add a spec for never emailing the ghost user
  rubocop fix
  a membership with no user is always notifiable
  check notifiability for more emails
  add Member#notifiable?(type, opts)
  make NotificationRecipient a little more customizable
  Add notes about database performance for MySQL
  fix confidential border issue as well as confidential styles leaking on new MR
  Migrate force push check to Gitaly
  Add option to disable project export on instance
  ...
2017-08-14 19:33:35 +08:00
Douwe Maan 9419d10e86 Merge branch 'bvl-rollback-renamed-system-namespace' into 'master'
Don't rename system when migrating from 9.x -> 9.4

Closes #35525 and #36148

See merge request !13228
2017-08-14 07:39:52 +00:00
Rémy Coutable 455dc74e65 Merge branch 'disable-project-export' into 'master'
Add option to disable project export on instance

See merge request !13211
2017-08-11 17:33:45 +00:00
Robin Bobbitt 649d042dbc Add option to disable project export on instance 2017-08-11 12:22:37 -04:00
Bob Van Landuyt 180de2d201 Make sure uploads for personal snippets are correctly rendered 2017-08-11 18:15:02 +02:00
Douwe Maan f662721eed Merge branch '35435-pending-delete-project-error-in-admin-interface-fix' into 'master'
Pending delete projects no longer return 500 error in Admins projects view

Closes #35435

See merge request !13389
2017-08-11 15:14:39 +00:00
Sean McGivern e80a893ff0 Merge branch 'split-events-into-push-events' into 'master'
Use a separate table for storing push events

See merge request !12463
2017-08-11 14:40:03 +00:00
Lin Jen-Shin 3b0dcbf235 Merge remote-tracking branch 'upstream/master' into 36089-handle-ref-failure-better
* upstream/master:
  Fix merge request diff deserialisation when too_large was absent
  Bumps omniauth-ldap gem version to 2.0.4
  Remove an unnecessary `let` in spec/features/projects/user_edits_files_spec.rb
  Remove documentation about rules that are now enforced by RuboCop
  Enable the RSpec/HookArgument cop and auto-correct offenses
2017-08-11 20:30:14 +08:00
Lin Jen-Shin 501be36c2e Just use the repo. Not sure why master could pass
It keeps giving me no repo error from setting up autocrlf,
which shouldn't have anything to do with this merge request.
2017-08-11 20:10:43 +08:00
Lin Jen-Shin e04c1ae7c7 Merge remote-tracking branch 'upstream/master' into 36089-handle-ref-failure-better
* upstream/master: (62 commits)
  Update gitlab.po: Missing 'r' in "Fouché" that comes from "Fourcher" verb.
  Docs: update user docs index
  Fix minor typos in views
  Fix Layout/SpaceBeforeBlockBraces violation in bin/changelog_spec
  Merge branch 'rs-alphanumeric-ssh-params' into 'security-9-4'
  Merge branch 'import-symlinks-9-3' into 'security-9-3'
  Fix wrong method call on prometheus histogram
  Document new all-in-one Helm chart - docs
  Fix 404 on link path
  Fix line numbers not matching up to code in code viewer.
  Hide overflow-x on collapsed sidebar
  removed global use of breakpoint checker
  Increase performance of the breakpoint size checker
  Filter sensitive query string parameters from NGINX access logs
  Added a template for database changes
  Render new issue link in failed job as a regular link instead of a UJS one
  Include RE2 in the upgrade docs
  Remove affix plugin from issuable sidebar with new navigation
  Fix linter error
  alternative route for download archive
  ...
2017-08-11 19:15:35 +08:00
Tiago Botelho 21066e827a Pending delete projects no longer return 500 error in Admins projects view 2017-08-11 11:45:09 +01:00
Lin Jen-Shin ae7c52a060 Fix more tests 2017-08-11 17:54:34 +08:00
Robert Speicher c8b802471b Enable the RSpec/HookArgument cop and auto-correct offenses 2017-08-10 19:29:42 -04:00
Lin Jen-Shin 41a5adca75 Don't try to create diffs if one of the branch is missing
Also fix a few tests
2017-08-10 23:53:55 +08:00
Yorick Peterse 0395c47193
Migrate events into a new format
This commit migrates events data in such a way that push events are
stored much more efficiently. This is done by creating a shadow table
called "events_for_migration", and a table called "push_event_payloads"
which is used for storing push data of push events. The background
migration in this commit will copy events from the "events" table into
the "events_for_migration" table, push events in will also have a row
created in "push_event_payloads".

This approach allows us to reclaim space in the next release by simply
swapping the "events" and "events_for_migration" tables, then dropping
the old events (now "events_for_migration") table.

The new table structure is also optimised for storage space, and does
not include the unused "title" column nor the "data" column (since this
data is moved to "push_event_payloads").

== Newly Created Events

Newly created events are inserted into both "events" and
"events_for_migration", both using the exact same primary key value. The
table "push_event_payloads" in turn has a foreign key to the _shadow_
table. This removes the need for recreating and validating the foreign
key after swapping the tables. Since the shadow table also has a foreign
key to "projects.id" we also don't have to worry about orphaned rows.

This approach however does require some additional storage as we're
duplicating a portion of the events data for at least 1 release. The
exact amount is hard to estimate, but for GitLab.com this is expected to
be between 10 and 20 GB at most. The background migration in this commit
deliberately does _not_ update the "events" table as doing so would put
a lot of pressure on PostgreSQL's auto vacuuming system.

== Supporting Both Old And New Events

Application code has also been adjusted to support push events using
both the old and new data formats. This is done by creating a PushEvent
class which extends the regular Event class. Using Rails' Single Table
Inheritance system we can ensure the right class is used for the right
data, which in this case is based on the value of `events.action`. To
support displaying old and new data at the same time the PushEvent class
re-defines a few methods of the Event class, falling back to their
original implementations for push events in the old format.

Once all existing events have been migrated the various push event
related methods can be removed from the Event model, and the calls to
`super` can be removed from the methods in the PushEvent model.

The UI and event atom feed have also been slightly changed to better
handle this new setup, fortunately only a few changes were necessary to
make this work.

== API Changes

The API only displays push data of events in the new format. Supporting
both formats in the API is a bit more difficult compared to the UI.
Since the old push data was not really well documented (apart from one
example that used an incorrect "action" nmae) I decided that supporting
both was not worth the effort, especially since events will be migrated
in a few days _and_ new events are created in the correct format.
2017-08-10 17:45:44 +02:00
Rémy Coutable ebf5a0bd1b
Fix and improve spec/controllers/autocomplete_controller_spec.rb
Signed-off-by: Rémy Coutable <remy@rymai.me>
2017-08-10 09:45:03 +02:00
Lin Jen-Shin 412db1874f Fix some tests and report the error message 2017-08-09 21:41:45 +08:00
Rémy Coutable c946ee1282
Enable the Layout/SpaceBeforeBlockBraces cop
Signed-off-by: Rémy Coutable <remy@rymai.me>
2017-08-09 11:52:22 +02:00
Mike Greiling 7767ceef47 Merge branch 'master' into ide
* master: (177 commits)
  Add changelog
  Bump gitlab-shell version to 5.8.0 to fix Git for Windows 2.14
  Make contextual sidebar collapsible
  Fixed sidebar context header hover colors
  Use correct `Environment`-class within `Gitlab` namespace
  Remove gl.Activities from Commits page
  Move `let` calls inside the `describe` block using them
  Add `/assign me` alias support for assigning issuables to oneself
  GRPC::Unavailable (< GRPC::BadStatus) is wrapped in a CommandError
  Use `broken_storage` in the fs_shards_spec.
  Eager load project creators for project dashboards
  Memoize a user's personal projects count
  Remove redundant query from User#recent_push
  Improve checking if projects would be returned
  Change spelling of gitlab-shell
  Remove unused #tree-holder
  Add custom linter for inline JavaScript to haml_lint
  Rename user_can_admin? because it's more accurate
  Synchronous zanata community contribution translation
  Add Korean translation to i18n
  ...
2017-08-07 15:20:09 -05:00
Bob Van Landuyt 3598e60bf2 Add a Circuitbreaker for storage paths 2017-08-04 15:38:48 +02:00
Luke "Jared" Bennett 91a6074348
Fix blob_controller_spec plain to raw_path 2017-08-04 13:45:44 +01:00
haseeb 4974f1ef86 fix #3686 make tarball download url to end with extension 2017-08-03 16:44:48 +00:00
Douwe Maan 2197ee02e9 Merge branch 'master' into ide 2017-08-03 13:13:06 +02:00
Robert Speicher 72a7b30c9f Change all `:empty_project` to `:project` 2017-08-02 17:47:31 -04:00
Rémy Coutable db17b3c7cd Merge branch 'rs-issuables-list-metadata-shared-examples' into 'master'
Make the 'issuables list meta-data' shared example less dangerous

See merge request !13236
2017-08-02 09:46:11 +00:00
Robert Speicher 9513bd18c4 Ensure all project factories use `:repository` trait or `:empty_project` 2017-08-01 14:51:52 -04:00
Robert Speicher 939e9bdde1 Make the 'issuables list meta-data' shared example less dangerous
This shared example would take an object's database ID and create a
number of objects based on it. If for some reason the ID were a high
number, like 20, this would create `20 + 21 + 22` objects.

Not only was this dangerous from a performance perspective, it was
entirely unnecessary, as the behavior it was testing is already
well-tested in the unit test for the underlying object. For a controller
test, which is what's including this shared example, all we need to do
is verify that the assigned object contains the correct `id => object`
Hash, which is what we now test for.
2017-08-01 12:55:57 -04:00
Sean McGivern 90cb2aab38 Merge branch '28283-legacy-storage-format' into 'master'
[CE] Added Legacy Storage format

See merge request !13149
2017-08-01 12:24:24 +00:00
Jacob Vosmaer 67de82cf5f Add option to use CommitLanguages RPC 2017-08-01 10:48:46 +02:00
Gabriel Mazetto abb878326c Rename many path_with_namespace -> full_path 2017-08-01 07:26:58 +02:00
Luke "Jared" Bennett 0ac012f0ad
Merge remote-tracking branch 'origin/master' into ide 2017-07-31 17:24:13 +01:00
Douwe Maan 8b68b69572 Merge branch 'fix-replying-to-commit-comment-in-mr-from-fork' into 'master'
Fix replying to commit comments on merge requests created from forks

Closes #31772

See merge request !13137
2017-07-28 16:53:10 +00:00
Sean McGivern 75d04f6a29 Fix replying to commit comments on MRs from forks
A commit comment shows in the MR, but if the MR is from a fork, it will have a
different project ID to the MR's target project. In that case, add an
note_project_id param so that we can pick the correct project for the note.
2017-07-28 16:25:13 +01:00
Luke "Jared" Bennett dc04fdc1a3
Merge remote-tracking branch 'origin/master' into ide 2017-07-28 15:26:00 +01:00
Tim Zallmann 7e17f9bc89 Merge branch '35224-transform-user-profile-javascript-into-async-bundle' into 'master'
Resolve "Transform user profile javascript into async bundle"

Closes #35224

See merge request !12929
2017-07-28 07:27:13 +00:00
Oswaldo Ferreira e561b142fa Backport gitlab-ee!2456 2017-07-27 12:09:46 -04:00
Keifer Furzland 7e113b6824 Remove superfluous type defs in specs
Signed-off-by: Rémy Coutable <remy@rymai.me>
2017-07-27 14:31:52 +02:00
Sean McGivern f2da36f196 Merge branch '35453-pending-delete-projects-error-in-admin-dashboard-fix' into 'master'
Fixes 500 error caused by pending delete projects in admin dashboard

Closes #35453

See merge request !13067
2017-07-26 08:29:38 +00:00
Tiago Botelho 22d53f0607 Fixes 500 error caused by pending delete projects in admin dashboard 2017-07-25 17:59:47 +01:00
Kamil Trzciński ac948684fc Merge branch '30634-protected-pipeline' into 'master'
Implement "Block pipelines on protected branches"

Closes #30634, #34616, and #33130

See merge request !11910
2017-07-25 15:04:23 +00:00
Rémy Coutable e43bda0ebb Merge branch 'dz-update-shoulda' into 'master'
Update shoulda-matchers gem to 3.1.2

See merge request !13040
2017-07-25 08:08:26 +00:00
Dmitriy Zaporozhets eafb03cfd5
Remove unnecessary set_flash.now from controller specs
Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
2017-07-24 15:21:16 +03:00
Jarka Kadlecova 2fa22a0729 Associate Issues tab only with internal issues tracker 2017-07-24 08:10:14 +02:00
Grzegorz Bizon d950e4d937 Merge branch 'zj-pipeline-badge-improvements' into 'master'
Pipeline badge improvements

Closes #15582 and #20961

See merge request !12966
2017-07-22 05:36:02 +00:00
Rémy Coutable 60b28e7ce1 Merge branch '34549-extract-devise-mappings-into-helper' into 'master'
Extract "@request.env['devise.mapping'] = Devise.mappings[:user]" to a test helper

Closes #34549

See merge request !12742
2017-07-21 15:41:12 +00:00
Z.J. van de Weg 2086483b24 Rename build to pipeline for status badges
First commit in probably 2, for resolve gitlab-org/gitlab-ce#15582. This
commit is renaming files and classes from build to pipeline. Also
wording is editted to pipeline. Given `pipeline` had more characters
than `build`, I've made the field a bit wider. The width now matchers
the one for the coverage badge, so they look nice when in a table
format, or in a list.

As soon as this commit is merged to master, and released, the build.svg
is deprecated, meaning that all users which already placed a badge
should update it. However, to make sure it keeps working tests are added
for this case.
2017-07-21 10:22:09 +02:00
Luke "Jared" Bennett 6448368b5b
Merge remote-tracking branch 'origin/master' into ide 2017-07-20 17:51:07 +01:00
Jacopo 0b5133bac2 Extract "@request.env['devise.mapping'] = Devise.mappings[:user]" to a test helper
Extracted `@request.env['devise.mapping'] = Devise.mappings[:user]` and `Rails.application.env_config['devise.mapping'] = Devise.mappings[:user]`
in our tests into the helper method `set_devise_mapping`
2017-07-20 18:36:53 +02:00
Alexander Randa e0ab5618a0 Wrong data type when testing webhooks 2017-07-20 15:12:06 +00:00
Lin Jen-Shin 43aa8866bc Merge remote-tracking branch 'upstream/master' into 30634-protected-pipeline
* upstream/master: (130 commits)
  Change auto-retry count to a correct value in docs
  Fix background migration cleanup specs
  Fix CI/CD job auto-retry specs
  Fix JS; make buttons sr accessibile; fix overlay
  remove redundant changelog entries
  Merge branch '24570-use-re2-for-user-supplied-regexp-9-3' into 'security-9-3'
  Merge branch '33303-404-for-unauthorized-project' into 'security-9-3'
  Merge branch '33359-pers-snippet-files-location' into 'security-9-3'
  Merge branch 'bvl-remove-appearance-symlink' into 'security-9-3'
  Hide description about protected branches to non-member
  Update CHANGELOG.md for 9.0.11
  Update CHANGELOG.md for 9.1.8
  Update CHANGELOG.md for 8.17.7
  Update CHANGELOG.md for 9.2.8
  Update CHANGELOG.md for 9.3.8
  Respect blockquote line breaks in markdown
  35209 Add wip message to new navigation preference section
  Add github imported projects count to usage data
  Add versions to Prometheus metrics doc
  Add Bulgarian translations of Pipeline Schedules
  ...
2017-07-20 20:36:43 +08:00