なるようになるブログ

読書感想文かrailsについてかrubyについてか

rails commit log流し読み(2017/09/12)

2017/09/12分のコミットです。

CHANGELOGにのったコミットは以下の通りです。

activesupport/CHANGELOG.md

railties/CHANGELOG.md


Add credentials using a generic EncryptedConfiguration class (#30067)

秘密情報を保持する為のファイルとして、config/credentials.yml.encを追加しています。

現状、秘密情報を保持する為のファイルが複数(config/secrets.ymlconfig/secrets.yml.enc)あり、かつ、それらのファイルとは別にSECRET_BASE_KEYという環境変数があったりで、少々ややこしい状態になっていました。 そのため、既存の仕組みとは別に、新たに秘密情報を管理する為のファイルを追加し、今後はそこに秘密情報を集約する事にしていく予定との事です。secret_key_baseもデフォルトでconfig/credentials.yml.encに定義されるようになています。なお、secrets.yml.xxxはdeprecateにする予定との事です(このPRではそこまでは含まれていません)。

config/credentials.yml.encにはencrypted secrets同様に編集、及び、値を表示する為のコマンド(credentials:editcredentials:show)が提供されており、encrypted secretsとおなじような形で使用できます。なお、keyファイル名は異なっています(credentialsはconfig/master.keyというファイルを使用しています)。なお、RAILS_MASTER_KEY環境変数は変わらず使用出来ます。

合わせて、EncryptedFileを扱う為の仕組みをActive Supportに切り出して汎用的に使用できるようにする対応、及び、secret_key_baseの設定がdevelopment及びtestで不要になる対応が含まれています。

secret_key_baseがconfig/credentials.yml.encで設定されるようになった、かつ、config/credentials.yml.encはproduction環境でのみ使用する事を想定している事から、secret_key_baseをdevelopment及びtestで設定しないで良いようにしたようです。


Ignore activestorage/test/service/configurations.yml

.gitignoreの修正です。

activestorage/test/service/configurations.ymlをignoreするファイルに追加しています。

上記ファイルはActive Storageのテストの時に使用するファイルで、外部サービス(AWC, GCP, Azure)のアクセスkey等を定義する為のファイルです。で、当然それらの情報はsecretsであり、リポジトリに含むべきではない為、ignoreするようにしています。


Rename activestorage/test/service/configurations.yml to activestorage/test/service/configurations.example.yml

activestorage/test/service/configurations.ymlactivestorage/test/service/configurations.example.ymlにリネームしています。

先のコミットの通り、configurations.ymlはignoreするようになったのですが、exampleが無いとそもそも何書いたら良いかわからないので、configurations.example.ymlが代わりに置かれるようになりました。


Use escaped character in regexp

railties/test/generators/namespaced_generators_test.rbの修正です。

assert_no_matchでテストを行ってる箇所で正規表現を使用する際、".“をエスケープせずに使用している箇所があったのを、”\“でエスケープするよう修正しています。