前言 xi
第1章 開放的GitHub API 1
1.1 cURL 1
1.2 列舉API路徑 2
1.3 JSON格式 3
1.3.1 在命令行中解析JSON 3
1.3.2 cURL的調試開關 5
1.4 重要的首部 6
1.5 跟隨超媒體API 6
1.6 身份驗證 7
1.6.1 用戶名和密碼驗證 7
1.6.2 OAuth 8
1.7 狀態碼 10
1.7.1 成功(200 或201) 10
1.7.2 不閤規的JSON(400) 10
1.7.3 錯誤的JSON(422) 11
1.7.4 成功創建(201) 12
1.7.5 完全沒變化(304) 12
1.7.6 GitHub API的頻率限製 12
1.7.7 獲知頻率限製 13
1.8 使用條件請求規避頻率限製 14
1.9 在Web 中訪問內容 15
1.9.1 JSON-P 15
1.9.2 CORS支持 16
1.9.3 指定響應的內容格式 17
1.10 小結 18
第2章 Gist和Gist API 19
2.1 簡便的代碼分享工具 19
2.2 Gist是倉庫 20
2.2.1 在HTML中嵌入Gist 21
2.2.2 在Jekyll博客中嵌入Gist 21
2.3 使用命令行創建Gist 21
2.4 Gist是功能完整的應用 22
2.5 渲染Gist的Gist 23
2.5.1 深入瞭解Gist API 25
2.5.2 使用Octokit獲取超媒體數據 26
2.6 小結 27
第3章 GitHub使用的維基庫Gollum 28
3.1 “史麥戈的故事……” 28
3.1.1 與倉庫關聯的維基 29
3.1.2 標記和結構 30
3.2 改造Gollum 33
3.3 開始創建Gollum編輯器 34
3.4 以編程的方式處理圖像 34
3.5 使用Rugged庫 36
3.6 優化圖像存儲 39
3.7 在GitHub中查看 41
3.8 改善修訂版本導航 43
3.9 修繕素材頁麵之間的鏈接 44
3.10 小結 45
第4章 Python和Search API 46
4.1 Search API概述 46
4.1.1 身份驗證 46
4.1.2 結果的格式 47
4.1.3 搜索運算符和限定符 48
4.1.4 排序 49
4.2 Search API詳解 49
4.2.1 搜索倉庫 49
4.2.2 搜索代碼 50
4.2.3 搜索工單 51
4.2.4 搜索用戶 52
4.3 示例應用 53
4.4 Python 56
4.4.1 AGitHub 56
4.4.2 WxPython 56
4.4.3 PyInstaller 57
4.5 編寫代碼 57
4.5.1 獲取Git憑據的輔助函數 58
4.5.2 窗口和界麵 59
4.5.3 登錄GitHub 62
4.5.4 搜索GitHub 65
4.5.5 顯示結果 67
4.6 打包 68
4.7 小結 69
第5章 .NET和Commit Status API 70
5.1 Commit Status API 71
5.1.1 原始狀態 72
5.1.2 閤並後的狀態 72
5.1.3 創建狀態 73
5.2 編寫一個應用 74
5.2.1 要使用的庫 74
5.2.2 開發環境 74
5.2.3 發送請求 77
5.2.4 OAuth驗證流程 79
5.2.5 處理狀態的函數 83
5.3 小結 84
第6章 Ruby和Jekyll 86
6.1 學習使用Jekyll構建博客 86
6.2 Jekyll是什麼 86
6.3 使用Jekyll快速創建博客 88
6.3.1 YAML格式的頭部元信息 91
6.3.2 Jekyll使用的標記 92
6.3.3 使用Jekyll命令 93
6.3.4 在Jekyll中設定隱私級彆 93
6.3.5 主題 93
6.3.6 發布到GitHub中 93
6.3.7 托管在自己的域名名下 94
6.4 導入其他博客 96
6.4.1 導入WordPress 96
6.4.2 從其他博客中導入 97
6.5 爬取網站,導入Jekyll 98
6.5.1 爬取策略 98
6.5.2 設置 100
6.5.3 爬取標題 101
6.5.4 藉助交互式Ruby控製颱改善 102
6.5.5 編寫測試,處理緩存 103
6.5.6 輸齣Jekyll文章 108
6.5.7 使用jekyll命令行工具 110
6.5.8 使用Liquid Markup編寫主索引文件 112
6.5.9 爬取正文和作者 114
6.5.10 把圖像添加到Jekyll中 115
6.5.11 自定義樣式(CSS) 116
6.5.12 通過GitHub的“派生”功能鼓勵協作 118
6.5.13 把博客發布到GitHub中 119
6.6 小結 119
第7章 Android和Git Data API 120
7.1 搭建環境 120
7.1.1 創建Jekyll博客 120
7.1.2 Android開發工具 121
7.2 新建項目 121
7.2.1 編輯Gradle構建文件 123
7.2.2 Android默認的主活動 125
7.3 自動測試Android應用 129
7.3.1 對GitHub客戶端做單元測試 129
7.3.2 對Android應用做UI測試 132
7.4 實現應用 134
7.4.1 編寫登錄GitHub的代碼 136
7.4.2 編寫與GitHub交互的代碼 140
7.4.3 編寫博客內容 142
7.4.4 GitHub服務 143
7.4.5 從倉庫和分支中獲取基SHA 144
7.4.6 創建blob 145
7.4.7 生成樹 145
7.4.8 創建提交 146
7.4.9 更新上遊資源 147
7.4.10 通過全部測試 147
7.5 小結 149
第8章 CoffeeScript、Hubot和Activity API 150
8.1 Activity API 150
8.2 讓拉取請求得到各方認同 151
8.2.1 注意事項和局限 151
8.2.2 創建常規的Hubot 151
8.2.3 注冊Slack賬戶 152
8.2.4 在本地運行Hubot 154
8.3 部署到Heroku 155
8.4 Activity API概述 157
8.4.1 編寫Hubot擴展 157
8.4.2 通過拉取請求審查代碼 158
8.4.3 使用OAuth令牌注冊事件 163
8.4.4 發起真實的拉取請求 165
8.4.5 通過HTTP POST請求處理拉取請求通知 167
8.5 小結 187
第9章 JavaScript和Git Data API 188
9.1 構建一個咖啡店數據庫並托管在GitHub中 188
9.2 搭建環境 189
9.2.1 綁定域名 189
9.2.2 添加支持庫 190
9.3 使用GitHub.js開發一個AngularJS 應用 191
9.3.1 規劃應用的數據結構 193
9.3.2 讓應用易於測試 194
9.3.3 測試數據 198
9.3.4 修改coffeetech.js文件 199
9.4 添加地理編碼功能 200
9.5 添加登錄功能 203
9.6 顯示(即將)由用戶提供的數據 205
9.7 接受拉取請求 214
9.8 實現安全的登錄方式 215
9.8.1 身份驗證需要服務器 215
9.8.2 使用Firebase處理身份驗證過程 216
9.8.3 測試Firebase 218
9.8.4 實現Firebase登錄功能 219
9.9 小結 221
附錄A GitHub企業版 222
附錄B GitHub對Ruby、NodeJS(和shell)的利用 226
作者簡介 232
關於封麵 232
· · · · · · (
收起)