LoginSignup
0
2

More than 5 years have passed since last update.

foodcriticで、Chefの静的コード解析のチェック対象を絞り込む

Posted at

27.jpg

はじめに

foodcriticは、Chef Cookbookのスタイルをチェックしてくれる静的コード解析ツールです。
今回、foodcriticにて、コードチェック対象外とする方法を整理します。

コードチェック対象は、foodcritic -lコマンドにて確認できます。また、下記ディレクトリ等にて、コードチェック対象が設定されています。foodcritic関連のディレクトリを確認したい場合には、gem environmentコマンドを実行して下さい。
C:\xxx\gem\ruby\2.4.0\gems\foodcritic-11.4.0\lib\foodcritic\rules

foodcriticのホームページから、チェック項目の内容を確認できます。

1.コードチェック対象外を指定

- 1-1.Chefレシピにコードチェック対象外を指定

チェック対象外とする項目を、Chefレシピに直接設定する方法です。各スクリプトにて、チェック対象外とするIDを、#~のように記載します。

node['modules'].each do |modules|
  package "#{modules}" do   #~FC002
    action [:remove]
  end
end

- 1-2.foodcriticファイルにコードチェック対象外を指定

チェック対象外とする項目を、1つのファイルに設定する方法です。cookbook配下に.foodcriticファイルを作成し、チェック対象外とするIDを記載します。

PS C:\xxx\chef-repo\site-cookbook\common > cat .foodcritic
~FC064
~FC065
~FC069
~FC071
~FC078

- 1-3.foodcriticコマンド実行時にコードチェック対象外を指定

foodcritic実行時に、チェック対象外のIDを指定する方法です。この場合、上記の1-1と1-2の設定が無視されます。

PS C:\xxx\chef-repo\site-cookbook\common > foodcritic -C ./ -t ~FC002
PS C:\xxx\chef-repo\site-cookbook\common > foodcritic --help
foodcritic [cookbook_paths]
    -t, --tags TAGS                  Check against (or exclude ~) rules with the specified tags.

2.コードチェック対象を指定

反対に、コードチェック対象のみを指定することも可能です

- 2-1.foodcriticコマンド実行時にコードチェック対象を指定

foodcritic実行時に、チェック対象のIDを指定します

PS C:\xxx\chef-repo\site-cookbook\common > foodcritic -C ./ -t FC002

foodcritic実行時に、チェック対象のtagを指定します。tagはfoodcriticホームページにて確認して下さい。

PS C:\xxx\chef-repo\site-cookbook\common > foodcritic -C ./ -t roles

3. 設定例

インターネットアクセスがない環境だったため、.foodcriticファイルを配置する1-2の方法にて、以下をチェック対象外としました。
FC064: Ensure issues_url is set in metadata
FC065: Ensure source_url is set in metadata
FC069: Ensure standardized license defined in metadata
FC071: Missing LICENSE file
FC078: Ensure cookbook shared under an OSI-approved open source license

PS C:\xxx\chef-repo\site-cookbook\common > cat .foodcritic
~FC064
~FC065
~FC069
~FC071
~FC078

まとめ

1-2の.foodcriticファイルにチェック対象外とするIDを指定する方法が、一番楽かと思います。

0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2