#7 - 2023.03.09
Pull request merge queue (public beta) | GitHub Changelog
共有担当: @korosuke613
- GitHub において、pull request merge queue がパブリックベータになりました
- 一昨年のプライベートベータから約一年かかりましたね
- マージキューはプルリクエストが頻繁に飛び交うリポジトリにおいて特に有効です。プルリクエストをすぐにマージするのではなく、キューに溜め込み、溜まったプルリクエストをまとめたブランチを作り、CI にかけマージするという手法になります
- マージキューがなぜ嬉しいかについては過去の記事を参照ください
- 現時点では GHEC、Organization のみ利用可能であるため、個人のリポジトリでの利用はできません
- 将来的に個人でも使えるのかは分かりませんが、個人で使うメリットはあまりなさそうです(renovate などのプルリクエストをまとめてマージするのに便利かも?)
- 実際に会社のリポジトリで試してみました
- 次のリンクの人の方がもっとわかりやすくまとめてくれています
- GitHub の merge queue を試してみて分かったこと | by Seiya Kokushi | Feb, 2023 | Medium
- 特に、merge queue に詰められた後のコミット順の項目は非常に分かりやすく、参考になります
- 感想としては、結構複雑な仕組みなので、仕様をきちんと知らないと想定通りの利用が難しいという印象です。しかし、使いこなせればとても強力だと思います。皆さんも大規模リポジトリで有効活用してみてください
Homebrew 4.0.0 Release
共有担当: @ganta0087
- Homebrew 4.0.0がリリースされました🎉
- インストールパッケージの情報源となるhomebrew/coreとhomebrew/caskをTapとしてではなく、formulae.brew.shからJSONファイルを取得する方式に変更されました。
- 巨大化したこれらのリポジトリのTapによるGitクローンは非常に低速だったため、JSONダウンロード方式への移行で高速化されました。
brew update
の自動実行の頻度が5分から24時間に変更されました。- FormulaeやTapsの開発を行っていなければhomebrew/coreとhomebrew/caskのTapを解除できます。手元の環境ではディスク使用量が約1GB削減されました。
- HomebrewのアナリティクスがGoogle AnalyticsからセルフホストされたInfluxDBへ変更される予定です。
- 今回のリリースでアナリティクスの送信先として、EUに置かれたセルフホストされたInfluxDBインスタンスが追加されました。
- Google Analyticsやアメリカにデータが送信されることを嫌ってアナリティクス機能を無効にしていたユーザーに有効にして貰うことを期待しているようです。
- 現在は移行期間で4.0.0のリリースから90日後にGoogle Analyticsへの送信は停止され、データもすべて破棄されるとのことです。
- パッケージマネージャ「Homebrew 4.0」正式リリース、より高速に。Git cloneからJSONによるパッケージ管理へ切り替え - Publickey
- 作者のMike McQuaid氏のツイート
GitHub Actions – Updating the default GITHUB_TOKEN permissions to read-only
共有担当: @r4mimu
- これまで GitHub Actionsは、リポジトリ上でActionsを有効にすると、デフォルトで読み取り/書き込みの両方のパーミッション(
write-all
)を持つGITHUB_TOKENを取得していました- そのため
actions/checkout@v3
のようなread-only
でよいアクションに過剰に権限が付与されていることになります
- そのため
- しかし、デフォルトで
write-all
というのは権限が強すぎるため、read-only
権限に変更されました(2023.02.02) - この変更は既存の enterprises, organizations, repositories の設定には影響を与えません
- 今後のデフォルト設定は Enterprise -> Organization -> Repository の順に権限が継承されます
- デフォルト権限が安全側に倒されるのは助かりますね
update-github-actions-permissions v2をリリース: 500種類のGitHub Actionsのpermissionsに対応
共有担当: @r4mimu
- update-github-actions-permissionsは
.github/workflow/*.yml
のWorkflowファイルに対して、利用してるActionから最小限 permissionsを自動的に設定するツールです - 先の記事でも共有したとおり、GitHub Actions のワークフローに対するのデフォルト権限は
write-all
でした - このツールはコマンドで、Workflowファイル内の過剰な権限が付与されてい るAction に
permissions
を設定します - update-github-actions-permissions v1では、50種類ほどのGitHub Actionsのpermissionsをサポートをしていましたが、v2では500種類以上のGitHub Actionsのpermissionsをサポートされています
- update-github-actions-permissionsはシンプルにpermissionsを自動で設定するだけのツールであり、
Read repository contents permission
をデフォルトにするために移行するツールという位置付けだそうです
GitHub Actions関連機能とGHESリリースノートの対応表
共有担当: @r4mimu
- GitHub.com における GitHub Actions の新機能リリースが GitHub Enterprise Server(GHES) のどのバージョンで利用できるかをまとめた対応表記事です
- この記事では Changelog ごとにリリース日、ドキュメントへのリンク、対応した GHES のバージョンを表にまとめています
- 時系列で降順になっているのでとても見やすいです
- サイボウズ社内でも GHES は利用しており、GHES のActions で機能が対応しているかを確認したい際に重宝しています
- 有志の手動更新なので気づいた点や反映されていない更新があったらコメントしていきたいですね
[アップデート]Terraform CloudがValutやAWS,Azure,Google Cloudに対してOIDCで動的なクレデンシャル生成に対応 | DevelopersIO
共有担当: @defaultcf
- Terraform Cloud Adds Dynamic Provider Credentials for Vault and Official Cloud Providers
- 今までは Terraform Cloud で AWS の認証を行うには、IAM アクセスキーを使う必要があり、AWS_ACCESS_KEY_ID と AWS_SECRET_ACCESS_KEY を環境変数に設定するしかありませんでした
- 今回の Terraform Cloud のアップデートによって、OIDC を使って AWS の認証ができるようになりました
- 退職に伴うキーのローテーションなどが必要なくなります
- 試してみました
- OIDC Provider と IAM Role を作成
- IAM Role には、今まで IAM ユーザーに付与していた各種権限を同じように付与
- Terraform Cloud で次の設定をします
- TFC_AWS_PROVIDER_AUTH を true に設定
- TFC_AWS_RUN_ROLE_ARN を Terraform で作成したロールの ARN に設定
- 最後に AWS の IAM アクセスキーを環境変数から削除
- OIDC Provider と IAM Role を作成
- 便利なので、Terraform Cloud を使っている方は OIDC に移行するとより安全で良いかと思います
Audit log streaming to AWS S3 integration with AWS CloudTrail Lake | GitHub Changelog
共有担当: @defaultcf
- GitHub の audit log を AWS に出力する機能は2022年1月に GA となっています
- 今回は AWS 側のアップデートにより、さらに CloudTrail Lake に取り込めるようになりました
- 新規 — AWS CloudTrail Lake が AWS 以外のソースからのアクティビティイベントの取り込みをサポート | Amazon Web Services ブログ
- CloudTrail Lake に外部のサービスのイベントを取り込めるようになりました
- また AWS がこの統合機能を使ったサンプルを提供しています
- aws-samples/aws-cloudtrail-lake-github-audit-log: A reference architecture to integrate GitHub Audit Log to AWS CloudTrail Lake
- S3 にログがアップロードされる度に、そのログデータを CloudTrail Audit Event 形式に変換して CloudTrail に送信します
- Athena などで頑張ることなく、ログ解析の基盤を作ることができるので便利そうです
VPC内のサブネットやルートテーブルなどのリソースを可視化するリソースマップが追加されました | DevelopersIO
共有担当: @defaultcf
- AWS マネージドコンソール上で、VPC 内のサブネットやルートテーブル、NAT Gateway などの関係性を図で確認できるようになりました
- VPC 作成時に作成するリソースの関係が図で確認できる機能は 2022年3月に GA となっていますが、今回既存のリソースも図で確認できるようになりました
- 直感的に関係を把握できるので、誤った接続がされていないかをサクッと調べるのに便利です
1Passwordを使って、ローカルにファイル(~/.configや.env)として置かれてる生のパスワードなどを削除した | Web Scratch
共有担当: @miyajan
- 1Password を使ってローカルの生パスワードなどを削除する方法として、以下のような内容が紹介されています
- SSH の秘密鍵を 1Password に移行する方法
- 1Password Shell Plugins で
gh
コマンドやaws
コマンドのクレデンシャルを 1Password に移行する方法 - 1Password CLI で
.env
や dotfile に入っているクレデンシャルを 1Password に移行する方法
- 1Password CLI をうまく使えばローカルに生でクレデンシャルを保存することはほぼなくせそうでいいですね
- 記事のまとめにも書かれている通り、クレデンシャルを読み取るプロセスが頻繁に実行される場合に少しわずらわしいのと、セッションみたいな固定じゃないクレデンシャルの扱いをどうしようかなというのは引き続きありますね