#8 - 2023.04.20
GitHub Actions Importer General Availability
共有担当: @ganta0087
- 他のCIプラットフォームからCI/CDパイプラインをGitHub Actionsに移行するGitHub Actions ImporterがGAになりました。
- サポートしているCIプラットフォームはAzure DevOps、CircleCI、GitLab、Jenkins、Travis CIです。
- 本体はDockerイメージとして配布され、GitHub CLIの拡張経由で利用します。
- 主な機能は次の通りです。
- 移行元のCIプラットフォームの使用状況の履歴からGitHub Actionsの使用量の予測
- 移行元のパイプラインからGitHub ActionsのワークフローのYAMLファイルへの変換
- 変換したワークフローのYAMLファイルを適用するPull Requestの作成
Kubectl OpenAI plugin
共有担当: @naotama
- 生産性向上チームでも利用している Kubernetesのコマンドラインツールであるkubectl に
OpenAI GPTを使ってKubernetesマニフェストを生成・適用するためのkubectlプラグイン
の紹介です。- OpenAI API Key or Azure OpenAI Service API Key のどちらかが必要です。また、gpt-3.5, gpt-4 の model が利用可能です。
- マニフェストの生成・適応をするプラグインですが、デフォルトで apply する前に確認が入るので、勝手に apply されることはありません。
- --temperature オプションで 0 指定すると、基本同じ回答が返ってきます。1 にすると異なる答えが返ってくるので(かもしれない)、求める答えにならなければ、1 指定して動かしてみると良いかもしれません。
- このプラグインのキモは kubectl-ai/cmd/cli/completion.go#L65 のプロンプト実装です。
- 出典 : @mattnさん
- 今は新規生成&適応なので、実用性は薄いのですが、既存マニフェストを指定して、変更できるようになったら、実際のプロダクトでも利用できそうです。
- 生成する
対象言語/ツール
を指定して、出力対象を明示することで、適切な答えを得ている。この考え方を応用して、いろんなツール向けに実装がでてきそうです。次々にでてくるであろう、生産性を向上させるプロンプトの開発(発明)が楽しみです。
Comment on files in a pull request (public beta) | GitHub Changelog
共有担当: @korosuke613
- GitHub のプルリクエストにおいて、ファイル単位でコメントができるようになりました(public beta)
- 削除されたファイルや、バイナリ、move されたファイルなどに対するコメントができるようになり、レビューの表現力を上げやすくなりました
- これまではプルリクエストに対してコメントするなどで表現する必要があったのでとても便利ですね
- 例: https://github.com/cybozu/productivity-news/pull/65/files#diff-053150b640a7ce75eff69d1a22cae7f0f94ad64ce9a855db544dda0929316519
GitHub Copilot X:AIを搭載した開発者体験 - GitHubブログ
共有担当: @korosuke613
- 製品ページ: Introducing GitHub Copilot X
- 去年、コーディング時に AI に次のコードをサジェストしてもらうサービス、GitHub Copilot がリリースされましたが、今回新たに GitHub Copilot X が登場しました
- GitHub Copilot X は 1 つの機能・サービスというわけでなく、AI による新たな開発者体験を実現する実験的なサービス群を指します
- GitHub の中の人によると、Copilot に関する各名称は次を表すようです
- 「GitHub Copilot 👉 プロダクト、GitHub Copilot for Business / Individual 👉 提供形態、GitHub Copilot X 👉 ビジョン 」https://twitter.com/yuhattor/status/1640344136787034113
- 実際には次の機能が Copilot X の一部として紹介されています
- Copilot chat: ChatGPT のような体験をエディタで
- Copilot for Docs: プログラミングに関するドキュメントに詳しい Chat
- Copilot for Pull Requests: プルリクエストの説明をしてくれる
- Copilot for CLI: 質問すると CLI のコマンドを提示してくれる。解説もしてくれる[^for_cli]
- さらにいろいろなプロジェクトが始動しています
- 【GitHub Copilotは序章に過ぎない!?】GitHub Next、次世代の開発エクスペリエンスを実現する圧倒的なプロジェクト群 | DevelopersIO
- GitHub Copilot for Your Codebase や GitHub Copilot Radar もまだ WIP 段階となっていますが、WAITLIST 段階になると X に含まれるのかもしれませんね
- 既存の Copilot のプランに含まれるかどうかやそもそも提供されるかどうかも現時点では決まってなさそうです
- GitHub Copilot を契約している方であれば、各 Waitlist に参加し、待てば実際に触ることができます。気になる機能があれば触ったりフィードバックを送ったりしてみましょう
- 個人的にはプルリクエストの説明をしてくれるやつがとても便利そうで興味があります。ソフトウェア開発がますます加速しそうですね。楽しみです
Announcing the GitHub Actions extension for VS Code | The GitHub Blog
共有担当: @korosuke613
- Changelog: GitHub Actions: Visual Studio Code Extension is now in public beta | GitHub Changelog
- VSCode の GitHub Actions 拡張機能が登場しました(public beta)1
- 主な機能としては次があります。
- ワークフローのワークフローランの管理
- 一覧の表示
- ページへのリンク
- 履歴の表示
- ログの表示
- ワークフローの作成支援
- 式や構文の強調表示
- ホバー時のドキュメント表示
- 式や構文の validation
- 式や構文の自動補完
- ワークフローのワークフローランの管理
- 個人的にはワークフロー一覧の表示とかよりも、式や構文の validation や自動補完が嬉しいです。
特に、3rd party アクションに関する支援(リンクの表示やwith
の検証)がとても便利です - 大変便利なので、GitHub Action ユーザはぜひ使ってみてください
- 個人的には JetBrains IDE を好んで使うため、そっちにも公式で拡張機能を出してほしい気はします
Release v2.0.0 · aws-actions/configure-aws-credentials
共有担当: @defaultcf
- このアクションで使われている Node.js のバージョンが v12 から v16 にアップデートされました。
- 2022年9月から GitHub Actions では Node.js v12 は非推奨となっており、警告が出るようになっていましたが、アップデートすることで警告が出なくなります。
- proxy を設定できるようになりました。
AWS Application Composer Now Generally Available – Visually Build Serverless Applications Quickly | AWS News Blog
共有担当: @defaultcf
- re:Invent 2022 で発表された AWS Application Composer が GA となりました。
- API Gateway から Lambda を介すことなく直接 SQS に接続できるようになりました。
- 変更時の差分を AWS SAM で確認できるようになりました。
- インターフェイスが少し修正されました
- カードが少し小さくなった
- ズーム機能が追加された
- 視覚的に確認しながら Lambda でエンドポイントを作ることができるので、アリかもしれません。
高パフォーマンスのオープンソースファイルクライアント、Mountpoint for Amazon S3 のご紹介
共有担当: @defaultcf
- アルファリリースされました。
- S3 バケットをファイルシステムとしてマウントできます。
- 注意点があります。
- 現在は読み取りのみをサポートしています。書き込みは将来的にサポートされる予定です。
- このライブラリにキャッシュする仕組みはありません。
- ビルド済みのバイナリは配布されていないので、自分でビルドする必要があります。今後ビルド済みのバイナリは配布される予定です。
Bit-for-bit reproducible builds with Dockerfile | by Akihiro Suda | nttlabs | Mar, 2023 | Medium
共有担当: @miyajan
- 再現性のある Docker イメージのビルド方法についての記事です
- 再現性のあるビルドとは?
- いつ誰がビルドしても同じバイナリがビルドできる
- 特定のマシンビルド環境は必要になる
- 再現性のあるビルドができるとなにが嬉しい?
- バイナリが特定のソースからビルドされたことが検証可能になるため、セキュリティ面で嬉しい
- 再現性のある Docker イメージビルドを難しくする要因は?
- タイムスタンプ
- イメージのメタデータ内のタイムスタンプ、イメージのレイヤー内のファイルのタイムスタンプ
- インストールされるパッケージのバージョン(apt など)
- インストールを実行するタイミングで、インストールされるパッケージのバージョンが変わる
- 古いバージョンのパッケージは削除されることもある
- 古いバージョンを保存する
snapshot
リポジトリが存在しても、広くミラーされておらず帯域も限られるので、通常利用には向かない
- タイムスタンプ
- SOURCE_DATE_EPOCH でタイムスタンプを再現可能にする
SOURCE_DATE_EPOCH
環境変数に UNIX タイムスタンプを指定すると、ビルドツールは再現性のある出力のためにこのタイムスタンプを使用することが想定されています- BuildKit v0.11 で
SOURCE_DATE_EPOCH
を暫定的にサポート
- repro-get でパッケージバージョンを再現可能にする
repro-get
は、インストールされているすべてのパッケージのハッシュ一覧を生成でき、ハッシュファイルからパッケージをインストールできる- 高速なリポジトリからダウンロードして失敗したら、snapshot リポジトリにフォールバックできる
- OCI レジストリなどを利用するように設定も可能
apt
,dnf
,apk
,pacman
に対応
- 現状だとまだ複雑ですが、今後改善されていきそうな印象です
Terraform v1.4.0 リリース
共有担当: @r4mimu
- Release Note
terraform_data
リソースが追加- Always show and store planned actions and checks even when planning fails
- plan のエラー時に planファイルを書き出すようになった
terraform show -json planfile
で見られる
Writing Terraform for unsupported resources
共有担当: @r4mimu
- TerraformプロバイダがサポートしていないリソースをTerraform管理化として利用する TerraCurl の紹介
- リポジトリ
- 個人リポジトリっぽいですが、開発者は hashicorp の中の人らしく、公式ブログでも紹介されています
- 公式サンプルを見ると素朴にurlとリクエストボディを渡してHTTPリクエストを実行する形です
- DELETEメソッドを実行させることで destroy も実現させています
- ただ、TerraCurlのoutputの値は循環参照となり利用できないので、リソース作成後に判明するパラメータを用いたリクエストは作成できなさそうです...
- 面白いツールだと思いますが、あまり実運用では使いたくないのが本音なところです
We are hiring
Footnotes
-
ちなみに僕は存在すら知りませんでした。 ↩