Cybozu Productivity News

#7 - 2023.03.09

Pull request merge queue (public beta) | GitHub Changelog

共有担当: @korosuke613

  • GitHub において、pull request merge queue がパブリックベータになりました
  • マージキューはプルリクエストが頻繁に飛び交うリポジトリにおいて特に有効です。プルリクエストをすぐにマージするのではなく、キューに溜め込み、溜まったプルリクエストをまとめたブランチを作り、CI にかけマージするという手法になります
    • マージキューがなぜ嬉しいかについては過去の記事を参照ください
  • 現時点では GHEC、Organization のみ利用可能であるため、個人のリポジトリでの利用はできません
    • 将来的に個人でも使えるのかは分かりませんが、個人で使うメリットはあまりなさそうです(renovate などのプルリクエストをまとめてマージするのに便利かも?)
  • 実際に会社のリポジトリで試してみました
  • 次のリンクの人の方がもっとわかりやすくまとめてくれています
  • 感想としては、結構複雑な仕組みなので、仕様をきちんと知らないと想定通りの利用が難しいという印象です。しかし、使いこなせればとても強力だと思います。皆さんも大規模リポジトリで有効活用してみてください

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 アクセスキーを環境変数から削除
  • 便利なので、Terraform Cloud を使っている方は OIDC に移行するとより安全で良いかと思います

Audit log streaming to AWS S3 integration with AWS CloudTrail Lake | GitHub Changelog

共有担当: @defaultcf

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 をうまく使えばローカルに生でクレデンシャルを保存することはほぼなくせそうでいいですね
  • 記事のまとめにも書かれている通り、クレデンシャルを読み取るプロセスが頻繁に実行される場合に少しわずらわしいのと、セッションみたいな固定じゃないクレデンシャルの扱いをどうしようかなというのは引き続きありますね

We are hiring

サイボウズの開発者の生産性を上げる「生産性向上チーム」とは!?