summaryrefslogtreecommitdiff
path: root/rubocop
Commit message (Collapse)AuthorAgeFilesLines
* Forbid the use of `#reload` and prefer `#reset`forbid-the-usage-of-reloadKamil Trzciński2019-04-152-0/+22
| | | | | | | The `#reload` makes to load all objects into memory, and the main purpose of `#reload` is to drop the association cache. The `#reset` seems to solve exactly that case.
* Properly handle `ee` migration specsHeinrich Lee Yu2019-03-281-1/+1
|
* Merge branch 'fix-rubocop-ee-module-injection-detection' into 'master'Rémy Coutable2019-01-161-3/+7
|\ | | | | | | | | Fix detecting nested EE constants in RuboCop See merge request gitlab-org/gitlab-ce!24430
| * Fix detecting nested EE constants in RuboCopYorick Peterse2019-01-161-3/+7
| | | | | | | | | | | | | | | | The InjectEnterpriseEditionModule cop would not detect certain nested EE constants such as `EE::Foo::Bar::Baz`. This could result in it not enforcing `prepend` being placed on the last line. This commit fixes this by just performing a string match on the line, instead of relying on AST matching.
* | Prevent factories in background migration specsBob Van Landuyt2019-01-161-3/+8
|/ | | | | The Background migration specs also run against a certain version of the database. So we should avoid using factories.
* Added Cop for injecting EE modulesYorick Peterse2018-12-132-0/+48
| | | | | | | This Cop enforces the rule that injecting EE modules (using prepend, include, or extend) is done by placing the injection on the last line of a file, instead of somewhere in the middle. By placing these lines at the very end, merge conflicts will not happen.
* Make add_reference cop accept a hash for :indexToon Claes2018-11-271-2/+7
| | | | | | It might happen you want to make the reference column have a unique value, or you want to create partial indexes. So instead of only accepting a `true` value, also accept a hash of options.
* Add cop prohibiting params argument in url_for47986-rubocop-safe-paramsJarka Košanová2018-11-222-0/+35
|
* Whitelist none method from ActiveRecord::Queryingda-rubocop-whitelist-active-record-noneDouglas Barbosa Alexandre2018-10-311-1/+0
|
* Add a new QA::ElementWithPattern copRémy Coutable2018-10-153-0/+51
| | | | | | | This cop forbids the use of `element :foo, 'pattern'` and `element :bar, /pattern/` in QA files. Signed-off-by: Rémy Coutable <remy@rymai.me>
* Applies the CE backport of EE#657Tiago Botelho2018-09-242-0/+23
|
* Fix leading slash in redirects and add copSanad Liaquat2018-09-212-0/+53
|
* Remove unused constantbvl-remove-unused-regexBob Van Landuyt2018-09-191-1/+0
| | | | | | This removes an unused constant from the `RubyInterpolationInTranslation`. The constant was used in a first implementation of this class.
* Added FromUnion to easily select from a UNIONYorick Peterse2018-09-172-0/+28
| | | | | | | | | | | | | | | | | | | | | | | | | | | This commit adds the module `FromUnion`, which provides the class method `from_union`. This simplifies the process of selecting data from the result of a UNION, and reduces the likelihood of making mistakes. As a result, instead of this: union = Gitlab::SQL::Union.new([foo, bar]) Foo.from("(#{union.to_sql}) #{Foo.table_name}") We can now write this instead: Foo.from_union([foo, bar]) This commit also includes some changes to make this new setup work properly. For example, a bug in Rails 4 (https://github.com/rails/rails/issues/24193) would break the use of `from("sub-query-here").includes(:relation)` in certain cases. There was also a CI query which appeared to repeat a lot of conditions from an outer query on an inner query, which isn't necessary. Finally, we include a RuboCop cop to ensure developers use this new module, instead of using Gitlab::SQL::Union directly. Fixes https://gitlab.com/gitlab-org/gitlab-ce/issues/51307
* Added RuboCop cops to enforce code reuse rulesYorick Peterse2018-09-118-0/+548
| | | | | These Cops enforces the code reuse rules as defined in merge request https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/21254.
* Fix LineBreakAroundConditionalBlock cop for a conditional after rescueRobert Speicher2018-09-051-1/+6
| | | | | | | | | | | | Previously this would violate on the `if`: def a_method do_something rescue if condition do_something end end
* Minor renames for clarityJacopo2018-08-291-2/+2
|
* Handles when ClassMethods is used inside a classJacopo2018-08-291-2/+4
|
* Fixes rubocop chain ordinary method after safe navigation operatorJacopo2018-08-291-2/+5
|
* Applies rule only when extending ActiveSupport::ConcernJacopo2018-08-291-2/+22
|
* Adds Rubocop rule to enforce class_methods over module ClassMethodsJacopo2018-08-292-0/+49
|
* Reject ruby interpolation in externalized stringsbvl-correct-interpolation-i18nBob Van Landuyt2018-08-253-0/+36
| | | | | | | | | | | | | | | | When using ruby interpolation in externalized strings, they can't be detected. Which means they will never be presented to be translated. To mix variables into translations we need to use `sprintf` instead. Instead of: _("Hello #{subject}") Use: _("Hello %{subject}) % { subject: 'world' }
* Blacklist the use of "destroy_all"Yorick Peterse2018-08-162-0/+23
| | | | | This method usually has really bad performance implications, as it loads rows into memory and deletes them one by one.
* Add rubocop check for add_reference to require index.Andreas Brandl2018-08-082-0/+50
|
* Update rubocop to get rid of a warning in other MRLin Jen-Shin2018-07-091-0/+2
|
* Merge branch 'update-large-tables-cop' into 'master'Grzegorz Bizon2018-06-221-2/+13
|\ | | | | | | | | Disallow methods that copy data on large tables See merge request gitlab-org/gitlab-ce!20021
| * Add more large tables to copupdate-large-tables-copSean McGivern2018-06-221-1/+5
| | | | | | | | | | These are all over 20 GB on GitLab.com. merge_request_diff_commits is several hundred gigabytes in size.
| * Disallow methods that copy data on large tablesSean McGivern2018-06-191-1/+8
| | | | | | | | | | | | {change_column_type,rename_column}_concurrently both copy data from one column to another during a migration, which should not be done on GitLab.com. Instead, we should use background migrations.
* | Add a cop for `FinderMethods`bvl-finder-methods-copBob Van Landuyt2018-06-202-0/+53
|/ | | | | | | This notifies developers when calling `find(_by!)` chained on `execute`. And suggests using the methods from `FinderMethods`. These will perform the correct authorization checks on the resource when it is found.
* Allow comment after if/unless clause46758-fallout-of-cacheable-attributeRémy Coutable2018-05-291-1/+1
| | | | Signed-off-by: Rémy Coutable <remy@rymai.me>
* Introduce spec/fast_spec_helper.rb to run spec files that don't rely on the ↵Rémy Coutable2018-04-231-1/+1
| | | | | | whole Rails env Signed-off-by: Rémy Coutable <remy@rymai.me>
* Revert the addition of goldiloaderYorick Peterse2018-04-182-47/+1
| | | | | | | | | This reverts the addition of the "goldiloader" Gem and all use of it. While this Gem is very promising it's causing a variety of problems on GitLab.com due to it eager-loading too much data in places where we don't expect/can handle this. At least for the time being this means we have to go back to manually fixing N+1 query problems, but at least those should not cause a negative impact on availability.
* Resolve "Make a Rubocop that forbids returning from a block"🙈 jacopo beschi 🙉2018-04-184-2/+129
|
* Add cop for has_many :through without disabled autoloadingfix-n-plus-one-when-getting-notification-settings-for-recipientsSean McGivern2018-04-092-1/+47
| | | | | | | | | | | | | Goldiloader is great, but has several issues with has_many :through relations: * https://github.com/salsify/goldiloader/issues/12 * https://github.com/salsify/goldiloader/issues/14 * https://github.com/salsify/goldiloader/issues/18 Rather than try to figure out which applies in each case, we should just do the drudge work of manually disabling autoloading for all relations of this type. We can always use regular preloading for specific cases, but this way we avoid generating invalid queries through Goldiloader's magic.
* Introduce a new FactoriesInMigrationSpecs copRémy Coutable2018-04-063-1/+53
| | | | Signed-off-by: Rémy Coutable <remy@rymai.me>
* Merge branch 'fj-15329-services-callbacks-ssrf' into 'security-10-6'Douwe Maan2018-03-212-0/+63
| | | | | Server Side Request Forgery in Services and Web Hooks See merge request gitlab/gitlabhq!2337
* [CE] Add Naming/FileName rule checking expected class/module per filenameGabriel Mazetto2018-03-081-0/+1
|
* Enable RuboCop Style/RegexpLiteralTakuya Noguchi2018-02-011-1/+1
|
* Introduce PredicateMemoization cop and fix offensesLin Jen-Shin2018-01-122-0/+40
| | | | with StrongMemoize
* Adds Rubocop rule for line break around conditionals🙈 jacopo beschi 🙉2018-01-112-0/+120
|
* Require our own custom cops; Remove missing cops41480-require-custom-copsLin Jen-Shin2017-12-261-3/+0
| | | | Also try to use the same config from EE
* Use gitlab-stylesRémy Coutable2017-12-2232-490/+31
| | | | Signed-off-by: Rémy Coutable <remy@rymai.me>
* Merge remote-tracking branch 'upstream/master' into no-ivar-in-modulesLin Jen-Shin2017-12-155-0/+95
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * upstream/master: (671 commits) Make rubocop happy Use guard clause Improve language Prettify Use temp branch Pass info about who started the job and which job triggered it Docs: add indexes for monitoring and performance monitoring clearer-documentation-on-inline-diffs Add docs for commit diff discussion in merge requests sorting for tags api Clear BatchLoader after each spec to prevent holding onto records longer than necessary Include project in BatchLoader key to prevent returning blobs for the wrong project moved lfs_blob_ids method into ExtractsPath module Converted JS modules into exported modules spec fixes Bump gitlab-shell version to 5.10.3 Clear caches before updating MR diffs Use new Ruby version 2.4 in GitLab QA images moved lfs blob fetch from extractspath file Update GitLab QA dependencies ...
| * Add rubocops to ensure Sidekiq workers include ApplicationWorker and don't ↵Douwe Maan2017-12-133-0/+58
| | | | | | | | manually set their queue
| * Add cop for use of remove_columnadd-remove-column-copSean McGivern2017-12-113-0/+37
| | | | | | | | | | | | | | remove_column should only be used in the up (or change) step of a migration if it's a post-deployment migration. Otherwise there will be downtime due to the ActiveRecord column cache, which we can avoid by using the IgnorableColumn concern in combination with a post-deployment migration.
* | Merge remote-tracking branch 'upstream/master' into no-ivar-in-modulesLin Jen-Shin2017-11-223-11/+114
|\ \ | |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * upstream/master: (126 commits) Update VERSION to 10.3.0-pre Update CHANGELOG.md for 10.2.0 default fill color for SVGs ignore hashed repos (for now) when using `rake gitlab:cleanup:repos` Use Redis cache for branch existence checks Update CONTRIBUTING.md: Link definition of done to criteria Use `make install` for Gitaly setups in non-test environments FileUploader should check for hashed_storage?(:attachments) to use disk_path Set the default gitlab-shell timeout to 3 hours Update composite pipelines index to include "id" Use arrays in Pipeline#latest_builds_with_artifacts Fix blank states using old css Skip confirmation user api Custom issue tracker Revert "check for `read_only?` first before seeing if request is disallowed" add `#with_metadata` scope to remove a N+1 from the notes' API Fix promoting milestone updating all issuables without milestone Batchload blobs for diff generation check for `read_only?` first before seeing if request is disallowed use `Gitlab::Routing.url_helpers` instead of `Rails.application.routes.url_helpers` ...
| * Merge branch '18040-rubocop-line-break-after-guard-clause' into 'master'Rémy Coutable2017-11-202-0/+101
| |\ | | | | | | | | | | | | | | | | | | Adds Rubocop rule for line break after guard clause Closes #18040 See merge request gitlab-org/gitlab-ce!15188
| | * Adds Rubocop rule for line break after guard clauseJacopo2017-11-162-0/+101
| | | | | | | | | | | | Adds a rubocop rule (with autocorrect) to ensure line break after guard clauses.
| * | Prevent update_column_in_batches on large tablesSean McGivern2017-11-172-11/+13
| |/ | | | | | | | | | | | | | | | | | | add_column_with_default is implemented in terms of update_column_in_batches, but update_column_in_batches can be used independently. Neither of these should be used on the specified large tables, because they will cause issues on large instances like GitLab.com. This also ignores the cop for all existing migrations, renaming AddColumnWithDefaultToLargeTable where appropriate.
* | Move ModuleWithInstanceVariables to Gitlab namespaceLin Jen-Shin2017-11-223-83/+64
| | | | | | | | | | And use .rubocop.yml to exclude paths we don't care, rather than using the cop itself to exclude.