GitHubツールビルディング

―GitHub APIを活用したワークフローの拡張とカスタマイズ

[cover photo]
TOPICS
Programming
発行年月日
PRINT LENGTH
320
ISBN
978-4-87311-795-9
原書
Building Tools with GitHub
FORMAT
PDF
Ebook
3,520円
Ebookを購入する

本書は、さまざまな言語とGitHub APIを使って、いろいろなツールを作るアイデアを紹介する書籍です。オープンソースのWikiであるGollumを使う画像整理ツール、PythonとSearch APIを使ってレポジトリを検索するGUIツール、Gist APIを使ったRubyサーバーを作成します。またJavaScriptのチャットロボットHubotを使ってGitHubの通知を行う方法、JavaScriptとGit Data APIを使ってGitHubにシングルページアプリケーションをホストする方法なども紹介します。多彩なGitHub APIを使いながらツールを作ることで、ワークフロー構築のアイデアを得ることができる一冊です。

目次

目次
監訳者まえがき
まえがき

1章 GitHub API
    1.1 cURL
    1.2 後続のAPIパスへの目印
    1.3 JSON(JavaScript Object Notation)形式
        1.3.1 コマンドラインからJSONをパースする
        1.3.2 cURLのデバッグスイッチ
    1.4 重要なヘッダ
    1.5 ハイパーメディアAPIをたどる
    1.6 認証
        1.6.1 ユーザー名とパスワードによる認証
        1.6.2 OAuth
    1.7 ステータスコード
        1.7.1 成功(200または201)
        1.7.2 行儀のわるいJSON(400)
        1.7.3 不適切なJSON(422)
        1.7.4 作成成功(201)
        1.7.5 変化なし(304)
        1.7.6 GitHub APIのレート制限
        1.7.7 レート制限を読み出す
    1.8 レート制限を回避するための条件付きリクエスト
    1.9 Webからのコンテンツアクセス
        1.9.1 JSON-P
        1.9.2 CORSサポート
        1.9.3 レスポンスのコンテンツ形式を指定する
    1.10 まとめ

2章 GistとGist API
    2.1 簡単なコード共有
    2.2 Gistはリポジトリである
        2.2.1 GistをHTMLに埋め込む
        2.2.2 Jekyll Blogに埋め込む
    2.3 コマンドラインからGistを作る
    2.4 完全に機能するアプリとしてのGist
    2.5 Gistを表示するGist
        2.5.1 Gist APIを探る
        2.5.2 Octokitからハイパーメディアデータを使う
    2.6 まとめ

3章 GollumによるGitHub Wiki
    3.1 スメアゴルの物語
        3.1.1 Wikiと結びついたリポジトリ
        3.1.2 マークアップと構造
    3.2 Gollumをハックする
    3.3 Gollumエディタの出発点
    3.4 画像をプログラムから扱う
    3.5 Ruggedライブラリを使う
    3.6 Reviewファイルに画像を追加する
    3.7 画像ストレージの最適化
    3.8 GitHubでレビューする
    3.9 リビジョンのナビゲーションを改善する
    3.10 カンプページ間のリンクを修正する
    3.11 まとめ

4章 PythonとSearch API
    4.1 Search APIの一般原則
        4.1.1 認証
        4.1.2 結果の形式
        4.1.3 検索演算子と修飾子
        4.1.4 ソート
    4.2 Search APIの詳細
        4.2.1 リポジトリ検索
        4.2.2 コード検索
        4.2.3 Issue検索
        4.2.4 ユーザー検索
    4.3 アプリケーション例
        4.3.1 ユーザーフロー
    4.4 Python
        4.4.1 AGitHub
        4.4.2 WxPython
        4.4.3 PyInstaller
    4.5 コード
        4.5.1 Gitクレデンシャルヘルパー
        4.5.2 ウィンドウとインターフェイス
        4.5.3 GitHubログイン
        4.5.4 GitHub検索
        4.5.5 結果を表示する
    4.6 パッケージング
    4.7 まとめ

5章 .NETとCommit Status API
    5.1 API
        5.1.1 生のステータス
        5.1.2 複合ステータス
        5.1.3 ステータスの作成
    5.2 アプリを書こう
        5.2.1 ライブラリ
        5.2.2 開発環境
        5.2.3 リクエストを送る
        5.2.4 OAuthフロー
        5.2.5 ステータスハンドラー
    5.3 まとめ

6章 RubyとJekyll
    6.1 Jekyllを学んで作ってみる
    6.2 Jekyllとは何か?
        6.2.1 Jekyllをローカルで動かす
    6.3 Jekyllブログのクイックスタート
        6.3.1 YFM:YAML Front Matter
        6.3.2 Jekyll Markup
        6.3.3 Jekyllコマンドを使う
        6.3.4 Jekyllのプライバシーレベル
        6.3.5 テーマ
        6.3.6 GitHubに公開する
        6.3.7 独自ドメインでホストする
    6.4 他のブログからインポートする
        6.4.1 Wordpressからのインポート
        6.4.2 その他のブログからのエクスポート
    6.5 サイトをスクレイピングしてJekyllに変換する
        6.5.1 Jekyllのスクレイピング戦術
        6.5.2 セットアップ
        6.5.3 タイトルのスクレイピング
        6.5.4 対話型Rubyを使って改良する
        6.5.5 テストを書いてキャッシュする
        6.5.6 Jekyllポストを書く
        6.5.7 Jekyllコマンドラインツール
        6.5.8 Liquid Markupを使ったマスターインデックスファイル
        6.5.9 本文と著者をスクレイピングする
        6.5.10 Jekyllに画像を追加する
        6.5.11 CSSをカスタマイズする
        6.5.12 Forkでコントリビューションを促す
        6.5.13 ブログをGitHubに公開する
    6.6 まとめ

7章 AndroidとGit Data API
    7.1 セットアップ
        7.1.1 Jekyllブログの作成
        7.1.2 Android開発ツール
    7.2 新規プロジェクトの作成
        7.2.1 Gradleビルドファイルを編集する
        7.2.2 デフォルトのAndroid Main
    7.3 Androidの自動テスト
        7.3.1 GitHubクライアントのユニットテスト
        7.3.2 AndroidのUIテスト
    7.4 アプリケーションの実装
        7.4.1 GitHubにログインするコード
        7.4.2 GitHubと通信するコード
        7.4.3 ブログコンテンツを書き込む
        7.4.4 GitHubサービス
        7.4.5 リポジトリとブランチのベースSHA
        7.4.6 blobを作成する
        7.4.7 treeを生成する
        7.4.8 commitを作成する
        7.4.9 masterリソースを更新する
        7.4.10 テストをすべて成功させる
    7.5 まとめ

8章 CoffeeScript、Hubot、Activity API
    8.1 Activity API
    8.2 プルリクエスト満足度向上計画
        8.2.1 考慮すべきことと制限事項
        8.2.2 普通のHubotの作成
        8.2.3 Slackアカウントの作成
        8.2.4 チャンネルの名前付け
        8.2.5 Hubotのローカル実行
    8.3 Herokuにインストールする
        8.3.1 Herokuのセットアップ
    8.4 Activity APIの概要
        8.4.1 Hubot拡張を書く
        8.4.2 Pull Requestのコードレビュー
        8.4.3 OAuthトークンを使ってイベントに登録する
        8.4.4 実際のPull Requestを発行する
        8.4.5 PR通知をHTTPのPOSTリクエストとして扱う
    8.5 まとめ

9章 JavaScriptとGit Data API
    9.1 GitHubにコーヒーショップデータベースを作る
    9.2 セットアップ
        9.2.1 ホスト名のマッピング
        9.2.2 サポートライブラリの追加
    9.3 GitHub.jsを使ったAngularJSアプリケーション
        9.3.1 アプリケーションデータ構造の可視化
        9.3.2 アプリをテスト可能にする
        9.3.3 テストデータ
        9.3.4 CoffeeTech.js
    9.4 ジオコーディングのサポート
        9.4.1 都市のデータ
    9.5 ログインを追加する
        9.5.1 もうエラー?
        9.5.2 ユーザーが報告した(する)データを表示する
        9.5.3 ユーザーがコントリビュートしたデータ
    9.6 Pull Requestを受け取る
    9.7 まとめ

付録A GitHub Enterprise
    A.1 インストール
    A.2 システム管理
    A.3 エンドポイント
    A.4 完全なホスト名とマウントポイント
    A.5 コマンドラインのクライアントツール:cURL
    A.6 クライアントライブラリを使ったリクエスト例
        A.6.1 Ruby
        A.6.2 Java
        A.6.3 JavaScript
        A.6.4 Python
        A.6.5 C#
    A.7 マネジメントAPI
    A.8 ドキュメント

付録B GitHubにおけるRuby、NodeJS、シェル
    B.1 GitHubとRuby
        B.1.1 Rubyのインストール
        B.1.2 RubyとRVMの重要な概念
        B.1.3 Rubyをインストールする際の潜在的問題
    B.2 GitHubはNodeJSに夢中
        B.2.1 NodeJSのインストール
        B.2.2 NVM(Node Version Manager)
        B.2.3 package.json
    B.3 コマンドラインの基礎とシェル
        B.3.1 シェルのコメント
        B.3.2 コマンドに変数を与える
        B.3.3 コマンドを複数行に分割する
        B.3.4 出力を後続のコマンドにパイプする
        B.3.5 リダイレクト

付録C GitHub Developerの紹介
    C.1 API/Webhooksリファレンス
    C.2 チュートリアル
    C.3 ブログ
    C.4 Early Accessプログラム
    C.5 GraphQL API
    C.6 Integrations
    C.7 フォーラム
    C.8 ロードマップ
    C.9 最後に

索引