GitHub 實踐 GitHub实践

克裡斯·道森 (Chris Dawson), 本·斯特勞勃 (Ben Straub)

買這商品的人也買了...

商品描述

<內容簡介>

本書一窺GitHub內部使用的工具,以敘事的方式描述構建軟件元工具的相關過程,其中不只介紹相關的技術,還會說明折中方案、重構的現實意義,以及編寫元工具所面臨的挑戰。對已經熟悉Git或GitHub、想提升相關技能的讀者,書中介紹瞭如何使用GitHub API及相關的開源技術,如Jekyll(網站生成工具)、Hubot(NodeJS聊天機器人)和Gollum(維基)構建工具。

<章節目錄>

前言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