2023年8月31日木曜日

circleCIのgitでsafe.directoryが必要になっていた

 

# 概要

* 自分で触ってないコードがローカル環境のrubocopチェックで止まっていた
* rubocopする前にgit diffをしているが、失敗しているように見える

```
echo "${BASE_REMOTE:=origin}"
echo "${TARGET_BRANCH:=master}"

diff_files=`git --no-pager diff $BASE_REMOTE/$TARGET_BRANCH...HEAD --name-only --diff-filter=MAR`
```

# 調査

* エラーメッセージで調べると、safe.directoryオプションが必要になったらしい

```
detected dubious ownership in repositor
```

[[git]操作時にdetected dubious ownership in repositoryが発生するようになった](https://qiita.com/nekotouma0114/items/5206607584ccef5fb6b5)

* Git 2.35.2以降に入った機能らしい

https://zenn.dev/gorohash/articles/72c9c84778194f
```
CVE-2022-24765という脆弱性に対応するためGit 2.35.2以降に入った機能です。このバージョン以降、Gitは実行ユーザーが所有権を持たない.gitディレクトリをデフォルトで読み込まないようになりました。この動作に例外を設けるのがsafe.directoryという設定項目です。
```

* gitのバージョンを上げた覚えはないが、rubyバージョンアップ対応がマージされたタイミングから発生しているように見える

## rubyバージョンアップ対応前後のdocker imageを確認

### ruby3.0.0

* debian/git 1:2.20.1-2+deb10u3
https://hub.docker.com/layers/library/ruby/3.0.0/images/sha256-df83fc949ee94198553d0a1ee6796e25965915e09d0238e32ae610f1d0923195?context=explore

### ruby3.1.4

* debian/git 1:2.39.2-1.1
https://hub.docker.com/layers/library/ruby/3.1.4/images/sha256-a9256495e9da29f16b290573346d041b579a0ec7d36178425e8b2c3998e7adc2?context=explore

# 結論

* rubyバージョンアップの際にdocker imageが変わったことで、gitのバージョンも上がっていた
* 以下のようにsafe.directoryを設定する
```
git config --global --add safe.directory /app
```

# 参考

[CircleCIでのUbuntu14.04サポート終了対応](https://www.pivotaltracker.com/story/show/181603739)

2023年8月5日土曜日

電動自転車購入

 子供が月イチで幼稚園に行くことになったし、来年からの通園になると自転車が必要になるので、初めて電動自転車を購入した。


今後のメンテナンスを考えて、家の近くの自転車屋で購入することにした。

前から他の店を回って見てきたが、だいたい似たようなものであまり選ぶ余地がない感じだった。

少し重いけど頑丈そうな、どちらかというと子供送迎に適したのを選んだ。確か小学校に入ると乗らなくなるとは思うが、そもそも自転車って5-6年乗れたら目的は達成しているのではないか?とも思ったところ。

子供も自転車屋に一緒に連れていったけど、乗る気まんまんだった。


ちょうど、神奈川ペイのポイント還元が始まったところだったので

楽天ペイで支払ったらすぐ上限のポイントが還元されていた。

これだったら妻にも神奈川ペイを登録してもらったほうが良かったかも。


帰りは試しに自転車に乗って帰ったけど、歩いてママと離れてたら子供が泣き始めてた。