🦖

Productivity Weekly (2022-05-18号)

2022/05/28に公開

こんにちは。サイボウズ株式会社 生産性向上チームの平木場です。

僕たち生産性向上チームは毎週水曜日に Productivity Weekly という「1 週間の間に発見された開発者の生産性向上に関するネタを共有する会」を社内で開催しています。
本記事はその時のネタをまとめたものです。

今回が第 74 回目です。過去の記事はこちら

news 📺

github/gh-valet: Valet helps facilitate the migration of Azure DevOps, CircleCI, GitLab CI, Jenkins, and Travis CI pipelines to GitHub Actions.

https://github.com/github/gh-valet

既存の CI ツールから GitHub Actions へマイグレーションするための GitHub 謹製ツール、github/gh-valet が登場しました(private beta)。Azure DevOps、CircleCI、GitLab CI、Jenkins、Travis CI をサポートしています。

GitHub CLI 拡張として作られており、インストールは簡単です。しかし、現在は private preview となっているので、試すには GitHub Sales に問い合わせる必要があります(ちなみに僕はまだ使えていません)。

Valet is currently private and customers must be onboarded prior to using the gh-valet CLI extension. Please reach out to GitHub Sales to inquire about being granted access.

ソースコードや README を読む感じ、どうやら OSS の gh-valet 自体はインターフェイスに過ぎないようで、変換などの処理は ghcr.io/valet-customers/valet-cli で行っているようです[1]。そしてこのイメージの pull は private preview のリストに入っている人しか許可されていないということのようですね。なので、github/gh-valet のソースコードを書き換えて利用制限を回避するといったことはできなさそうです。

unauthorized となる
❯ docker pull ghcr.io/valet-customers/valet-cli
Using default tag: latest
Error response from daemon: unauthorized

gh-valet の面白いところはただのワークフローファイル変換ツールではなさそうなところです。gh valet audit コマンドで変換元の CI サーバにアクセスし、パイプラインのサマリーを出力したり、gh valet forecast コマンドで過去のパイプラインの利用状況から GitHub Actions 移行後の利用状況を予測したりと、移行の助けとなる機能が入っています。

正直こういう移行ツールって結局大規模なワークフローに対応できないイメージが強いのです。しかし、gh-valet は CI サーバに情報を取りに行くことや、GitHub 内に Valet チームという専門のチームができている[2]ことから、将来的には大規模なワークフローであっても利用でしていけるのではないかと希望を持てました。

現在 private beta なので、気になる人は社内の GitHub 管理者に問い合わせましょう。

github/gh-gei: GitHub Enterprise Importer CLI

https://github.com/github/gh-gei

GitHub Enterprise Server、Azure DevOps から GitHub Enterprise Cloud へ Organization、リポジトリを移行するための GitHub 謹製ツール github/gh-gei が登場しました(public beta)。

GitHub CLI 拡張として作られており、簡単にインストールできます。

git リポジトリを移すだけであれば新しいリポジトリを作って古いリポジトリの対象ブランチを push するだけで良いのですが、それでは Issue やプルリクエストは引き継げませんでした。

gh-gei は移行元、移行先の Organization(またはリポジトリ)の権限を持ったトークンがあれば誰でも実行でき、Issue やプルリクエストに加え、Wiki やブランチ保護、その他諸々の情報を移行できます。どういったデータが移行できるかは Migration support for GitHub Enterprise Importer - GitHub Docs をご覧ください。

コミットにひもづくユーザは良いとして、Issue やプルリクエストにひもづくユーザはどうなるのかと思ったのですが、どうやら移行時に移行元のユーザは Mannequin という概念になるようです(参考)。Mannequin については、GitHub の管理画面からどの GitHub ユーザーに対応するかを割り当てることができます。

これまでも似たような公式移行ツールはあったのですが、OSS でない、GHES の場合サーバー側でスクリプトを実行しないといけなかったため、サーバ管理者との連携が必須である、といったことから、正直なところ使いづらかったです。

まだ試せてないのですが、クラウド移行する上でなかなか便利なツールそうです。Organization 単位で移行できるのも嬉しいですね。詳しい移行方法等はドキュメントを参照ください[3]

Consistently allow GitHub Apps as exceptions to branch protection rules | GitHub Changelog

https://github.blog/changelog/2022-05-17-consistently-allow-github-apps-as-exceptions-to-branch-protection-rules/

GitHub の branch protection において、プルリクエストを強制する設定(Restrict who can push to matching branches)の例外に GitHub Apps を追加できるようになりました。これまではユーザとチームに対してのみ例外を許可できました。

この変更により、例えば、GitHub Apps を使って自動でコミットを main ブランチに追加させたいが、main ブランチはプルリクエストを強制したい...といったケースに対応できます。柔軟に安全に開発をしやすくなる変更ですね。覚えておきたいです。

Release v1.22.0 · microsoft/playwright

https://github.com/microsoft/playwright/releases/tag/v1.22.0

Playwright v1.22.0 がリリースされ、React、Vue、Svelte に対するコンポーネントテスト機能が追加されました(プレビュー)。ページを開いてテストするのではなく、コンポーネント単独てテストできる機能で、例えば他のテスティングフレームワークだと cypress が対応しています(Introduction | Cypress Documentation)。

まだ試験的な機能であるため、インポート方法が通常と異なりますが、test メソッドに渡すコールバック関数の引数(関数)への引数としてコンポーネントを渡すことでインスタンス化できるため、使い勝手は良さそうです。詳しくはドキュメントを読みましょう。正式機能となるのが楽しみですね。

know-how 🎓

開発チームとプロダクトのデリバリープロセスを効率化&成果を最大化する業務を担当しているチームを紹介します

https://engineering.linecorp.com/ja/interview/effective-team-and-delivery/

LINE さんによる、様々な開発組織やプロジェクトやプロダクトのデリバリープロセスをより効果的にするプロフェッショナル集団 Effective Team & Delivery 室(ETD 室)の紹介記事です。

主にはアジャイルコーチングやプロジェクトマネジメントのコンサルティングを行なっており、支援先の現場にその時必要だと考えるソリューションを提案することを大事にしているとのことです。

また直接的な支援だけでなく、大きく分けて以下の活動内容があるとのことです。

  • 組織やプロジェクトへの直接的支援
  • トレーニング、ドキュメント、ツールキットなどを通してノウハウの提供
  • 社内コミュニティの創造、運営
  • ETD 室自体のパフォーマンスを上げるための活動

この記事では、活動事例も紹介されており、具体的な業務内容がイメージしやすいです。

デリバリープロセスを効率化するためのチームということで技術的支援が多いのかと最初は思ったのですが、コーチングやチームビルディングなど、人や組織を成長させるところにも重きを置いているんだなと思いました。大まかな活動内容は生産性向上チームと近い部分があるなと思ったので参考にしたいです。

ITエンジニア採用入門

https://zenn.dev/tbpgr/books/214cd4a0052a92

Web エンジニア、エンジニア採用担当を経験した方による IT エンジニア採用に関する情報をまとめた Zenn Books です。

そのボリュームに驚きます。2022/05/28 時点で 60000 文字を超えており、Chapter は 55 まであります。

大まかな目次としては、本の概要、前提知識、採用マーケティング、求人要件定義、求人票、カジュアル面談、ダイレクトリクルーティング、選考、候補者体験、その他&活用事例となっています。範囲としては採用の始まりから終わりまでを網羅しています。

普段の開発のみをやっていければ幸せですが、現実はチームをスケールするために採用活動を欠かすことはできません。この本は効率よく効果的に採用活動を行うための参考にできそうです。

koneta 🍘

Productivity Weekly で出たネタを全て紹介したいけど体力が持たない、または、そんなに言うことがなかったネタを一言程度で書くコーナーです。

あとがき

今週号がとても遅くなってしまいすみません。最近プライベートも仕事も色々あって忙しかったです。そういえばシンウルトラマンを見てきました。ウルトラマンは子供の頃に当時 TV でやってたのを見てたくらいで、ほとんど詳しくありませんが、そんな自分でも楽しめました。見終わった後に色々調べると、結構元ネタがある描写が多かったみたいでもう 1 回見にいきたくなりましたね。

そういえば、Revue を試験的に始めてみました。Subscribe すると、Productivity Weekly 最新号が出たらメールが届きます。よかったら登録してみてください。
https://www.getrevue.co/profile/korosuke613_productivity_weekly

サイボウズの生産性向上チームでは社内エンジニアの開発生産性を上げるための活動を行なっています。そんな生産性向上チームが気になる方は下のリンクをクリック!
https://note.com/cybozu_dev/n/n1c1b44bf72f6

脚注
  1. https://github.com/github/gh-valet/blob/cc04762e8b37d77ca2e876ac8accc73d0f160321/src/Valet/App.cs#L7 ↩︎

  2. https://github.com/github/gh-valet/blob/cc04762e8b37d77ca2e876ac8accc73d0f160321/README.md?plain=1#L9 ↩︎

  3. GHES->GHEC や GHEC->GHEC、GHEC->GHAE など、いろいろなパターンがあって最初混乱しました。 ↩︎

GitHubで編集を提案

Discussion