GitHub Universe アフターイベント in Tokyo 参加レポ


https://githubuniversejapan.peatix.com/

日時：2018/10/24 (水) 14:30 - 18:00 JST
会場：TECH PLAY SHIBUYA

![Kobito.aTEkWh.png](https://qiita-image-store.s3.amazonaws.com/0/13994/3967ec02-1503-897d-5bca-560daf097a74.png "Kobito.aTEkWh.png")

# TL;DR

- 海外イベントはYouTubeでも観れるが、行ってその場の空気/熱量を感じることに意義がある
- 様々な新機能が発表されたが、目玉である Actions の責務は既存のCI/CDサービスがあるので、個人的には Suggested Changes, Learning Lab, Security Alert が嬉しい
- ベンダーのブースが数多く設置されていたように、新しいサービスと出会うことができるのも価値がある（詳細は文中リンクを）
- InnerSource という考え方。大企業にはハードル高く感じられるが、その信念には激しく同意。実現している企業は、開発の文化ごと変革できてそう


# GitHub Japan代表の挨拶

EU で Microsoft による買収が承認された。
Microsoft社によるサービスへの何らかの影響はあるのか？という世間の疑問を明確に否定。繰り返しになるが、Microsoftは現在最もOpenSourceに貢献してくれている組織の1つである。

皆様安心してお使いいただけますよ☆

# GitHubを中心とした最新の開発手法
スピーカー：GitHub Solutions Engineer　池田尚史

> Universeで発表されたGitHubの新機能を使うことで実現する、他ツールとの連携や最新の開発手法をご紹介します。

![Kobito.qKt1Y0.png](https://qiita-image-store.s3.amazonaws.com/0/13994/9176e701-13a4-8139-b390-075c706cfd81.png "Kobito.qKt1Y0.png")


会場は、サンフランシスコのパレスオブファインアーツ。

主要な４つのテーマに分類して新機能の発表が行われた。

- Collaboration
- Business
- Security
- Platform

## Collaboration

### Suggested Changes

https://blog.github.com/changelog/2018-10-16-suggested-changes/

Pull Request(以下、PR)を開いたときに、こういうように変更したほうがいいよ、とサジェストしたい。PR内容の変更のサジェストの提案と適用（PR中のブランチへのマージ）ができる

レビュワ「これ、こういう風に書いたほうがいいんじゃない？（コードサンプル付きのコメント）」
レビュイ「なるほど、それいいですね！そうします :+1: （コメントして適用ボタン押す）」
⇒PRの指摘反映をその場でできる！効率的！ :bulb: 

### Changelog

（GitHubブログを見て）

https://blog.github.com/changelog/

## Business

### Learning Lab

https://blog.github.com/jp/#github-learning-lab

GitHub初心者向けのトレーニング機能（英語のみ）  
GitHub上で実践的にいくつかのコースを受講可能

- Organization単位でラーニングラボをインストールできる
- カスタムコンテンツも用意できる
- メンバーの進捗具合も確認できる

https://lab.github.com/

https://lab.github.com/organizations

⇒新人研修でのGitHub練習に最適 :bulb: カスタムコンテンツを使えば「このプロジェクトチームで始めに身に付けて欲しい知識のオリエンテーションに使えて良さげ :thumbsup: 

### GitHub Connect

GitHub Enterprise(以下、GHE) と GitHub.com をつなげて利用できる機能群

#### Unified Search

GitHub Enterpriseを離れることなく、GitHub.com にあるパブリックリポジトリと GitHub Businenss Cloud にあるプライベートリポジトリを横断して検索できる。

#### Unified Contributions

GitHub.com 上で、GHE の活動状況も（匿名で草が生えて）見えるようになる

https://blog.github.com/jp/#unified-search%E3%81%A8unified-contributions

#### Unified Business Identity

Businessの支払いを一元管理可能（Orgをまたいで）

（Limited public beta）

## Security

1,500件を超えるデータブリーチ案件がある。そういった問題に対する機能

### Security Alert

現状の Javascript、Ruby、Python （500万を超えるアラートを通知して全世界が利用中） に加えて **Java、.NET のサポートを追加**

Alertページを改善、より見やすく。

⇒仕事ではJavaを使うことが多いため、これは嬉しい :+1:

https://blog.github.com/jp/#%E3%82%BB%E3%82%AD%E3%83%A5%E3%83%AA%E3%83%86%E3%82%A3%E8%84%86%E5%BC%B1%E6%80%A7%E3%82%A2%E3%83%A9%E3%83%BC%E3%83%88%E3%81%A7%E3%81%AEjava%E3%81%A8net%E3%81%AE%E3%82%B5%E3%83%9D%E3%83%BC%E3%83%88

### Token Scanning

トークンとキーが誤ってコミットされ、パブリックリポジトリに公開されたがために悪用される事案が発生している。悪事を働くハッカーはそれらを日常的に監視している。そこで、Tokenらしきものが push されたら、アラートを出すようにした。  
※サポートしているサービスは [ヘルプドキュメント](https://help.github.com/articles/about-token-scanning/)に記載

https://blog.github.com/jp/#%E3%83%91%E3%83%96%E3%83%AA%E3%83%83%E3%82%AF%E3%83%AA%E3%83%9D%E3%82%B8%E3%83%88%E3%83%AA%E7%94%A8github-token-scanning%E3%83%91%E3%83%96%E3%83%AA%E3%83%83%E3%82%AF%E3%83%99%E3%83%BC%E3%82%BF%E7%89%88

### Security Advisory API

GitHub Security Advisory API を公開。開発者自身でのセキュリティチェックに利用できる

https://blog.github.com/jp/#github-security-advisory-api

## Platform

### Semantic Code Search

https://experiments.github.com/

自然言語で検索すると、それに応じたコードブロックを GitHub.com 上から検索して返す。

将来的に、コーディングをもっと自立的にエラーなくできるようにしたい。という実験的なサービス。


## Actions

https://github.com/features/actions/

コードをビルドして、実行して、共有することができるようにする

- Pull Request以来の大きなリリースと言われている
- ワークフローをコードで表現できる。どんな言語でも記載できる

（ここからデモ）

- リポジトリに `/.github/main.workflow` ファイルを用意
  - テキストでも可能だし、ビジュアルに設定も可能
- イベントは26種類用意されている

トリガー　→　アクション（ex.フィルター）→ Run NPM Test → Publish NPM Package

- アクションはOSSで多数用意されている
- 450の標準的なアクションをリリース済み(beta)

*フィルター*
フィルター条件に一致しなければ、ワークフローを止める

*シークレット*
Actionsで指定するシークレットの情報は、定義ファイルにハードコードするのではなく、後述の GitHub Securet を利用できる

### GitHub Secret Bolt

GitHub Actionの中に、外部サービスと連携するためのシークレットをセキュアに保存できる。アップロード時に暗号化され、GitHub内に永続化される。

### Using GitHub API

GitHub APPs でやっていた自動化もActionsのワークフローで可能。

```
ex.) 初めてIssueがオープンされたら、ウェルカムメッセージを表示する
```

### ghx

Actions の内部で利用されているコマンド。GitHub APIの中でキーとなるAPIを簡単に使えるようにしたツール。

（Actions デモ、Triage Issue）

- Issueが起票される
- Label triage
- Detect duplicate Issue（※by Probot）重複するIssueを探し出すBot

※Probotの利用、いろんな作業を自動化するbot（Hubotの代替）
ただし、日本語の情報が少ない

ghx は GitHubの内部で使われているが、今後公開される予定

### Cloud deploy

zeit.co にサイトをデプロイするデモ

```
ex.) master ブランチにコミットがpushされると、Zeitへデプロイされる
ex.) 並行して Heroku にも同じサイトをデプロイする
```
循環依存ではない限り、あらゆるActionのツリーができる

```
ex.) AWS, Azure, GCP へも並列でデプロイ可能（圧巻）
```

https://blog.github.com/jp/2018-10-24-action-demos/

開発者がやる日々の作業を自動化して、クオリティ・オブ・ライフを向上することが可能


現在、GitHub.com で、Actionsは limited beta 利用のサインアップ受付中。（応募が殺到しているらしく、少し待たされるらしい）

## QAコーナー

- TravisCI, CircleCIとの棲み分けは？
  - 共存共栄のものだと考えている

- ビルドのスピンアップをキャッシュとかできるか？
  - 今のところはできない、今後のロードマップも不明

- Actions の料金形態は？
  - まだ決まっていない

- Enterprise への導入予定はあるか？
  - あるが、まだ .com の beta の段階なので、詳細は未定

# 及川卓也が見た、GitHub Universe
スピーカー：フリーランス技術アドバイザー　及川卓也

> Universeに実際に参加する及川氏の観点によるGitHubの技術動向のほか、開発トレンドについて解説いただきます

![Kobito.1QBFHa.png](https://qiita-image-store.s3.amazonaws.com/0/13994/8f1ec80a-eb81-f0eb-2ad7-fb9fc6a9a164.png "Kobito.1QBFHa.png")


## GitHub Universe イベント参加報告

ビルダー、プランナー、参加者の皆が、未来を作っていく、というイベント。多くの海外のイベントは、動画も資料も公開される。他に例を見ない独特な会場。

参加者、1,300以上（比較的小規模）YouTubeリアルタイム配信あり

[My Octcatジェネレータ](https://myoctocat.com/)

大半のエリアがブース出展、キーノート／ブレイクアウトセッションは奥の円形スペース。

- フードが温かい＆美味しい（嬉
  - 大規模イベントはコールドフードが大半（悲

いくつか気になったブース（ランダム選出）

- Codecov
  - https://codecov.io/
  - カバレッジレポートを様々な形で可視化。CI/CDで利用。
- Code Climate
  - https://codeclimate.com/
  - 開発チームの生産性／Velocityを可視化する
  - PRのライフサイクルで、どの状態で時間がかかるか、が分かる
    - 大きなPRは時間がかかる、など自明なものも数値で分かる
- WhiteSource
  - https://www.whitesourcesoftware.com/
  - 使っているOSSの脆弱性を診断。特に「有効な」脆弱性をスキャン
  - 実際にOSSを使っていても、実際に影響しないものが大半だったりする

## GitHub Universe に見る技術トレンド

DevOps、言わずもがな

**Actions**

- Opsの人は、古くからのマニュアルオペレーションを大事にする傾向があるが、自動化の大切さを感じさせる、いいデモだった（すべてのクラウドに並行デプロイ）

- ActionsでもContainerが使われている
  - 技術トレンドの流れ

- 「GitHub は、Source Hosting Platform から DevOps Platform になる」そういうメッセージが、この Universe だと感じた。

**Workflow**

- オートメーションは全てにおいて可能になってきている
- どこを中心に考えるか、何をトリガーにするか

GitHub Actions は、「GitHubのイベント」をトリガーとしたものである。それ以外のイベントでも駆動できないか？

```
ex.) APIで Issueを起票すれば、それはGitHubのイベントとしてトリガーできる
　→外部で発生するイベントもGitHubに集約することだって可能
```

**チームメンバーとしての自分と、個人としての自分**

GitHubにより「個人・（閉じた）組織・OSS」が一連の操作で統合される未来」を夢想する

**OpenSource**

GitHub自身も OpenSource に支えられ、OpenSource は GitHub に支えられている

現在のOSSの最大のコントリビューターはMicrosoft。

https://octoverse.github.com/

**Software eating the world.**

すべての企業は、ソフトウェア企業になる。

**InnterSource at American**

「インナーソース」？
ググると分かる（池田さんの記事: https://thinkit.co.jp/article/8404 ）

> Inner Sourceとは、オープンソース・ソフトウェアの開発プロセス、文化をファイアーウォールの後ろでも行う取り組みのことをいいます。（上記の記事より）

同一企業内でもソースコードを共有・共通化できていない

- 組み込み系企業で、会社のなかに Malloc が50個くらいある、とか
- 社内でも組織横断的に、PRを送り合う世界に、なりたい、したい

ソフトウェアの未来

- 未来を予測することはできない。
- だが、想像することはできるし、それに備えることもできる。

# パネルディスカッション：Universeで生トーク！

> Universeに参加した日本人ユーザーによるパネルディスカッションです。Universeでの体験談のほか、GitHub利用についての意見交換も？！

```
モデレーター：及川卓也
パネリスト：荒川裕紀（株式会社リクルートホールディングス）
パネリスト：石田晋哉（株式会社デンソー）
パネリスト：大平哲也（株式会社ZOZOテクノロジーズ）
パネリスト：松原陸（NTTコミュニケーションズ株式会社）
```

## 自己紹介

それぞれのmyoctcatを作ってみた

![Kobito.iaS53N.png](https://qiita-image-store.s3.amazonaws.com/0/13994/0b8de092-da3d-2a3f-8d6f-2572b03e6499.png "Kobito.iaS53N.png")
↑負けじと作ってみた！

## 気になったセッション

- [キーノートDay2](https://www.youtube.com/watch?v=RMtga2JfkT4)
  - ノンテックな人が、技術の進化を語れている
- [The State of the Octoverse](https://octoverse.github.com/)
  - 世界のトレンドが読み取れる（よく記事にもなるけど）

## Actions どう感じたか、どう使いたいか

「IFTTTと同じ」と言われることもあるが、ビジュアル・プログラミング＋コードでの表現が両立されている

1. ホスティングしてくれるbotだな
2. 小さいOSSや小規模PJのCI/CDに使えそう
3. 複数クラウドが絡むワークフローの整理整頓をするのに貢献しそう


## 面白かったブースは？

- [netlify](https://www.netlify.com/)
  - PRごとにURLを１つ作ってくれる
- [Black Duck](https://www.blackducksoftware.com/ja/black-duck-home)

（その他、余談）Slackでは、3年目の社員が「大ベテラン」と言われるらしい

## 注目の技術は？

- **脆弱性診断**
  - GitHub以上にソースコードを持っている企業はない

- **Suggested Changes**
  - 開発者は喜ぶ、小気味よい機能追加だと思う


# 懇親会

軽食と飲み物をいただきながら、ネットワーキングしてきました。
尊敬する及川さんとも名刺交換できてミーハー心大爆発☆でした。