編輯推薦
想要滿足獨特的開發需求?那就在下一個項目中使用GitHub提供的強大API吧!本書將手把手教你如何構建軟件工具,並定製屬於你的GitHub工作流程。書中每一章都要求你自己動手實踐,並介紹使用GitHub提供的各項技術時應采取的摺中方案以及注意事項。
如果你是經驗豐富的程序員並熟知GitHub,你將學到如何使用GitHub API及相關的開源技術,如Jekyll(網站生成工具)、Hubot(NodeJS聊天機器人)和Gollum(維基)構建工具。
本書主要內容如下:
● 使用Gist API命令行工具和Ruby的API客戶端Octokit,構建一個簡單的Ruby服務器
● 使用Gollum命令行工具構建一個圖像管理程序
● 使用Python構建一個搜索GitHub的GUI工具
● 說明第三方工具和自己編寫的代碼如何交互
● 使用GitHub倉庫中的數據創建完整的Jekyll博客
● 創建一個Android移動應用,讀寫Jekyll倉庫
● 在GitHub中托管一個完整的JavaScript單頁應用
● 使用Hubot自動審查拉取請求
內容簡介
本書一窺GitHub內部使用的工具,以敘事的方式描述構建軟件元工具的相關過程,其中不隻介紹相關的技術,還會說明摺中方案、重構的現實意義,以及編寫元工具所麵臨的挑戰。對已經熟悉Git或GitHub、想提升相關技能的讀者,書中介紹瞭如何使用GitHub API及相關的開源技術,如Jekyll(網站生成工具)、Hubot(NodeJS聊天機器人)和Gollum(維基)構建工具。
作者簡介
Chris Dawson,曾就職於Apple、Virage和RealNetworks等知名IT企業,現於eBay工作。他積極參與並見證瞭GitHub的發展,自己也開瞭一傢公司Webiphany。
Ben Straub,IT服務公司Gridium的開發人員,熱衷於開發傑齣的軟件,近期剛加入GitHub。除寫過多本書之外,他還兼職在綫軟件開發培訓。
目錄
目錄
前言 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
GitHub實踐 下載 mobi epub pdf txt 電子書 格式