summaryrefslogtreecommitdiff
path: root/rubocop/rubocop.rb
Commit message (Collapse)AuthorAgeFilesLines
* Added Cop for injecting EE modulesYorick Peterse2018-12-131-0/+1
| | | | | | | 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.
* Add cop prohibiting params argument in url_for47986-rubocop-safe-paramsJarka Košanová2018-11-221-0/+1
|
* Add a new QA::ElementWithPattern copRémy Coutable2018-10-151-0/+1
| | | | | | | 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-241-0/+1
|
* Fix leading slash in redirects and add copSanad Liaquat2018-09-211-0/+1
|
* Added FromUnion to easily select from a UNIONYorick Peterse2018-09-171-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | 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-111-0/+6
| | | | | These Cops enforces the code reuse rules as defined in merge request https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/21254.
* Adds Rubocop rule to enforce class_methods over module ClassMethodsJacopo2018-08-291-0/+1
|
* Reject ruby interpolation in externalized stringsbvl-correct-interpolation-i18nBob Van Landuyt2018-08-251-0/+1
| | | | | | | | | | | | | | | | 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-161-0/+1
| | | | | 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-081-0/+1
|
* Add a cop for `FinderMethods`bvl-finder-methods-copBob Van Landuyt2018-06-201-0/+1
| | | | | | | 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.
* Revert the addition of goldiloaderYorick Peterse2018-04-181-2/+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-181-0/+2
|
* Add cop for has_many :through without disabled autoloadingfix-n-plus-one-when-getting-notification-settings-for-recipientsSean McGivern2018-04-091-1/+2
| | | | | | | | | | | | | 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-061-0/+1
| | | | Signed-off-by: Rémy Coutable <remy@rymai.me>
* Merge branch 'fj-15329-services-callbacks-ssrf' into 'security-10-6'Douwe Maan2018-03-211-0/+1
| | | | | 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
|
* Introduce PredicateMemoization cop and fix offensesLin Jen-Shin2018-01-121-0/+1
| | | | with StrongMemoize
* Adds Rubocop rule for line break around conditionals🙈 jacopo beschi 🙉2018-01-111-0/+1
|
* 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-221-10/+3
| | | | Signed-off-by: Rémy Coutable <remy@rymai.me>
* Merge remote-tracking branch 'upstream/master' into no-ivar-in-modulesLin Jen-Shin2017-12-151-0/+3
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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-131-0/+2
| | | | | | | | manually set their queue
| * Add cop for use of remove_columnadd-remove-column-copSean McGivern2017-12-111-0/+1
| | | | | | | | | | | | | | 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-221-1/+2
|\ \ | |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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-201-0/+1
| |\ | | | | | | | | | | | | | | | | | | 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-161-0/+1
| | | | | | | | | | | | Adds a rubocop rule (with autocorrect) to ensure line break after guard clauses.
| * | Prevent update_column_in_batches on large tablesSean McGivern2017-11-171-1/+1
| |/ | | | | | | | | | | | | | | | | | | 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-221-1/+1
| | | | | | | | | | And use .rubocop.yml to exclude paths we don't care, rather than using the cop itself to exclude.
* | Remove codes from bad mergeLin Jen-Shin2017-11-181-2/+0
| |
* | Merge remote-tracking branch 'upstream/master' into no-ivar-in-modulesLin Jen-Shin2017-11-061-3/+7
|\ \ | |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * upstream/master: (1723 commits) Resolve "Editor icons" Refactor issuable destroy action Ignore routes matching legacy_*_redirect in route specs Gitlab::Git::RevList and LfsChanges use lazy popen Gitlab::Git::Popen can lazily hand output to a block Merge branch 'master-i18n' into 'master' Remove unique validation from external_url in Environment Expose `duration` in Job API entity Add TimeCop freeze for DST and Regular time Harcode project visibility update a changelog Put a condition to old migration that adds fast_forward column to MRs Expose project visibility as CI variable fix flaky tests by removing unneeded clicks and focus actions fix flaky test in gfm_autocomplete_spec.rb Use Gitlab::Git operations for repository mirroring Encapsulate git operations for mirroring in Gitlab::Git Create a Wiki Repository's raw_repository properly Add `Gitlab::Git::Repository#fetch` command Fix Gitlab::Metrics::System#real_time and #monotonic_time doc ...
| * Add a new RSpec::EnvAssignment cop to prevent assigning to ENV in specs18765-stub_env_in_specsRémy Coutable2017-10-181-5/+6
| | | | | | | | Signed-off-by: Rémy Coutable <remy@rymai.me>
| * Replaces `tag: true` into `:tag` in the specsJacopo2017-10-071-0/+1
| | | | | | | | | | | | Replaces all the explicit include metadata syntax in the specs (tag: true) into the implicit one (:tag). Added a cop to prevent future errors and handle autocorrection.
* | Add cop to make sure we don't use ivar in a moduleLin Jen-Shin2017-09-181-0/+1
|/
* Add SaferBooleanColumn copMichael Kozono2017-08-141-0/+1
|
* Added cop to blacklist the use of hash indexesrubocop-hash-indexYorick Peterse2017-07-141-0/+1
| | | | | | These indexes are not recorded in the WAL (at least until PostgreSQL 10) and this isn't worth the minor performance improvement over btree indexes.
* Added EachBatch for iterating tables in batchesactive-record-each-batchYorick Peterse2017-07-071-0/+1
| | | | | | | This module provides a class method called `each_batch` that can be used to iterate tables in batches in a more efficient way compared to Rails' `in_batches` method. This commit also includes a RuboCop cop to blacklist the use of `in_batches` in favour of this new method.
* Rename ActiverecordSerialize copYorick Peterse2017-07-061-1/+1
| | | | | This cop has been renamed to ActiveRecordSerialize to match the way "ActiveRecord" is usually written.
* Added Cop to blacklist the use of `dependent:`Yorick Peterse2017-07-061-0/+1
| | | | | | | | This is allowed for existing instances so we don't end up 76 offenses right away, but for new code one should _only_ use this if they _have_ to remove non database data. Even then it's usually better to do this in a service class as this gives you more control over how to remove the data (e.g. in bulk).
* Add ProjectPathHelper copDouwe Maan2017-07-051-0/+1
|
* Add a custom RSpec/SingleLineHook copRobert Speicher2017-06-141-0/+1
| | | | | This cop adds an offense when `before`, `after`, or `around` are used as single-line blocks.
* Add database helpers 'add_timestamps_with_timezone' and ↵32054-rails-should-use-timestamptz-database-type-for-postgresqlblackst0ne2017-06-131-0/+3
| | | | 'timestamps_with_timezone'
* Added Cop to blacklist polymorphic associationsYorick Peterse2017-06-071-0/+1
| | | | | | | | One should really use a separate table instead of using polymorphic associations. See https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/11168 for more information.
* Add a rubocop rule to check if a method 'redirect_to' is used without ↵31840-add-a-rubocop-that-forbids-redirect_to-inside-a-controller-destroy-action-without-an-explicit-statusblackst0ne2017-06-071-0/+1
| | | | explicitly set 'status' in 'destroy' actions of controllers
* Added Cop to blacklist the use of serializedocument-not-using-serializeYorick Peterse2017-05-311-0/+1
| | | | | This Cop blacklists the use of ActiveRecord's "serialize" method, except for cases where we already use this.
* New Migration/UpdateColumnInBatches copRémy Coutable2017-05-291-0/+1
| | | | Signed-off-by: Rémy Coutable <remy@rymai.me>
* Add AddColumnWithDefaultToLargeTable copRobert Speicher2017-04-281-0/+1
|
* Rename AddColumnWithDefault to ReversibleAddColumnWithDefaultRobert Speicher2017-04-281-1/+1
| | | | | We're going to add another cop that deals with another aspect of `add_column_with_default`, so we need to separate them.
* Add remove_concurrent_index to database helperblackst0ne2017-04-061-0/+2
|