OOZOU
與我們聯繫
Back to TIL
ruby on rails

Ignore bundled gems for Rubocop and ESLint in GitHub Actions

January 19, 2022

Rails projects will often install gems into the vendor directory in GitHub actions so we can cache them for the consecutive runs.

If you use code linters in the action you need to exclude the vendor/bundle/\* to prevent false positives

For ESLint this can be configured through ignorePatterns

// ./.eslintrc.json
{
  "ignorePatterns": [
    "vendor/bundle/*"
  ]
}

For Rubocop you can exclude through the AllCops config

# ./.rubocop.yml
AllCops:
  Exclude:
    - 'vendor/**/*'

Importance of Ignoring Bundled Gems in Code Linters

In software development, maintaining high code quality is essential. Code linters are a tool to help achieve this by performing static code analysis, which can detect potential errors and enforce a consistent coding style. However, when using linters in a continuous integration environment, such as GitHub Actions, it's crucial to configure them correctly to avoid false positives.

Bundled gems, often stored in the vendor directory, are external code dependencies that can be flagged by code linters if not properly excluded. By ignoring these directories, you can ensure that the linter focuses on your source code rather than external libraries, thus maintaining the integrity of your code analysis.

Configuring Linters to Exclude Bundled Gems

For JavaScript projects using ESLint, you can configure the linter to ignore the vendor/bundle/* directory through the ignorePatterns setting in your .eslintrc.json file. This ensures that only your code is checked, improving code quality without unnecessary distractions.

// ./.eslintrc.json
{
  "ignorePatterns": [
    "vendor/bundle/*"
  ]
}

Similarly, for Ruby projects using Rubocop, you can exclude the vendor directory by adding an Exclude rule under AllCops in your .rubocop.yml configuration file. This helps focus the static code analysis on your actual source code.

# ./.rubocop.yml
AllCops:
  Exclude:
    - 'vendor/**/*'

By configuring your code linters to exclude bundled gems, you can maintain a high standard of code quality while avoiding false positives in your static code analysis.

#RUBY-ON-RAILS

More on ruby on rails

ruby on railsFebruary 10, 2022

Use Pundit Policies to manage permitted parameters, defaults and per action

To manage permitted params you can add permitted\attributes and permitted\attributes\for\#{action} in your policies e.g.

ruby on railsJanuary 31, 2022

Use `requestSubmit` for form submits with Turbo

Turbo listens to submit events on form.  Hence, always use requestSubmit to submit  a form using JS.

ruby on railsApril 18, 2021

Rails 6, Ruby 3, Bootstrap 5 and Hotwire

Extending the blogpost from Bootrails with Hotwire: All the fancy new things (as of when I'm writing this TIL):

有專案構想嗎?

我們很樂意聆聽您正在打造的產品。

開始對話hello@oozou.com
OOZOU Logo

曼谷 · 新加坡 · 香港

X
Facebook
Instagram
LinkedIn

服務

  • Web 開發
  • AI 與生成式 AI 解決方案
  • 行動應用程式開發
  • 資料分析與工程
  • UI/UX 設計與產品設計
  • 數位轉型

公司

  • 關於我們
  • 職涯
  • 部落格
  • 白皮書
  • 案例研究
  • Today I Learned
  • 聯繫我們

更多

  • 產業
  • 索取報價
  • 合作夥伴網絡
© 2026 OOZOU. 版權所有。
隱私政策行為準則反賄賂反貪腐政策