緊急開催!GitHub Universe 2018 アフターイベント in Tokyoに参加してきました。GitHub Universe2018のkeynoteの内容をGitHub Japanさんが日本語で解説してくださったのでメモを共有します。
目次
動画
Collaboration
Suggested changes
- プルリクで修正したほうがいいコードを見つけたら、プルリク上でソースコードを書き換えて変更要求を投げることができる
- 変更が承認されると変更がブランチに取り込まれる
- どんな感じかはデモが分かりやすい
ChangeLog
- GitHubの新機能は ChangeLog | The GitHub Blog から確認できる
Business
Learning lab
- GitHubにインストールすると、GitやGitHubのトレーニングができる
- 英語しかサポートしていない
- OrganizationにLaerning labをインストールして、Organization単位でつくれるようになっている。さらにカスタムコンテンツも作れるようになっていて、自社専用の研修コンテンツを作ることもできる。
- Adminの人は各コースの進捗などを見ることができる
Unified Search
- GitHub EnterpriseとGitHubのリポジトリが統合的に検索できる
- GitHub Enterprise2.14から使える
Unified Contributions
- GitHubで活動するとプロファイルに草が生える
- Unified Contributionsを設定すると、GitHub Enterpriseでの活動を匿名化したうえでGitHub上に草として生やすことができる
- クラウドでどんな活動をしているか、ビジネスクラウド・エンタープライズでどんな活動をしているか見えるようになる
- GitHub Enterprise2.15から使える
Unified Business Identity
- GitHubは従来ひとつのOrganizationにつきひとつの会社で契約するようになっていた
- Organizationを複数まとめてビジネスアカウントとして契約できるようになった
- 支払いやライセンス、権限管理がまとめられるように今後なっていく
- Limited public beta
Security
Security Alert
- 去年リリースされたプロジェクト内の脆弱性をアラートしてくれる機能
- 対応言語にJava, .NETが追加(これまではJavaScript, Ruby, Pythonのみ)
Token Scanning
- セキュリティトークンをGitHubにpushしてしまったら通知してくれる
- AWS, Azure, GitHub, GoogleCloud, Slackなど
Platform
Semantic Code Search
- 自然言語で検索すると、それらしいコードブロックを返す
- 始まったばかりで、これから発展していく
GitHub Actions
Actionsとは?
- Actionsとはコードをビルドして、実行して、共有するようなサービス
- Actionsを使うと、ワークフローをコードで表現できるようになる
- 誰かが作ったコードを利用することもできる
- 今年のUniverseで一番大きな発表
- プルリクエスト以来の大きなリリース
- GitHubはこれまでコードをホストしてコラボレートするサービスだったが、コードを実行できるプラットフォームになった
npmパッケージリポジトリにテストしてからpublishするデモ
- GitHubへのpushをトリガにワークフローを発動
- ワークフローのイベントのトリガは26個あるのでほとんどの要求は満たせる
- タグ名で先に進ませるかを判断
- npm testコマンドでテストをおこなう
- npm publishコマンドでパッケージをnpmパッケージリポジトリにpublish
- npmにパブリッシュするためのトークンはGitHub Secret Vaultを使ってActionsの中にセキュアに保存する
- GitHub Secret Vaultはブラウザ上で暗号化して、サーバーサイドの暗号化されたストレージに保存している
- 簡単なワークフローであればビジュアルエディタで簡単に作ることができる
初めてプロジェクトに貢献した人にWelcome Messageを表示するデモ
Actionsは先の例のような単純なリリースだけでなく、GitHub APIを使ったアプリケーションも書ける。
- Actionsの例として、始めてそのプロジェクトに貢献した人にたいしてWelcome Messageを出したいときのワークフロー
- Issueがオープンされているかチェック
- その人がはじめてのcontributorかチェック
- 最後にWelcomeメッセージをコメントとして追加する
最後のWelcomeメッセージのところでghxという新しいツールを使っている
- ghxとはGitHub APIのキーとなるAPIだけ簡単に扱えるようなツール
- 全部のAPIは叩けない
- GitHub Actionと一緒につかうことを想定している
- GitHubのAPIを叩くためのキーの情報などはGitHub Actionsで認識しているので、細かいことを考えずに簡単にAPIを叩くことができる
- 将来的にはコマンドラインツールとして公開し、ローカル環境でつかえるようになる予定
Issueの重複を弾くデモ
Issueの重複を探し出して、そのIssueを案内する
- フィルタアクションでIssueがオープンされているか見る
- ラベルを貼る
- Issueの重複を探し出して、そのIssueを案内する
最後のIssueの重複を探すActionでprobotという定義を使っている
- probotとは、GitHubが中心となるオープンソースプロジェクトで、GitHub上の作業を自動化するロボット
- 簡単にbotを作って自動化できるようにすることを目指している
- hubotの代替
- GitHub Actionsの中でprobotがすぐに利用できるようになっている
クラウドプロバイダへアプリケーションをデプロイするデモ
- OctCatに名言をつぶやかせるサイトをZeitにデプロイするデモ
- DockerコマンドのActionを使ってDockerイメージを作る
- フィルタを使ってデプロイ対象をmasterだけにする
- Zeitにデプロイして、Zeitのaliasというコマンドを使ってURLを貼る
- デプロイ先はHerokuなど、複数のクラウドに並列でデプロイすることができる
- ワークフローはビジュアルエディタだけでなく、テキストファイルで作成することもできる
- AWS, Azure, GoogleCloudなどいろんなプロバイダに同時並列デプロイすることもできる
基調講演2日目では様々な人がActionsの例をデモ
GitHub Actions: みなさんが開発し、GitHubで実行 | The GitHub Blog にまとまっているでそちらを参照。動画は英語だが、デモ中心で分かりやすいのでぜひ見てほしいとのこと。
Actionsまとめ
- npmへテストしてからpublish
- Secret Vault
- ghxでGitHub API呼び出し
- probot
- クラウドプロバイダへの同時デプロイ
- 誰かが作ったものも使える
- 450のActionsをベータとしてリリースしている
Actionsはコードを実行してワークフローを管理できるようになるサービス。自動化をすすめて作業の効率化をはかる。
CI/CDを置き換えるものではなく、Workflowである。CircleCIなどとは共存する関係をめざす。