GitHub实践
Chris Dawson, Ben Straub
安道 译
出版时间:2016年10月
页数:252
想要满足独特的开发需求?那就在下一个项目中使用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 API的用法。不管你使用哪门编程语言,通过了解书中使用GitHub API开发的多个项目,你都能立即把所学的知识运用到日常工作中。”
——Kyle Daigle,GitHub高级平台工程师
  1. 前言 
  2. 第1章 开放的GitHub API 
  3. 1.1 cURL 
  4. 1.2 列举API路径
  5. 1.3 JSON格式
  6. 1.3.1 在命令行中解析JSON
  7. 1.3.2 cURL的调试开关 
  8. 1.4 重要的首部
  9. 1.5 跟随超媒体API  
  10. 1.6 身份验证
  11. 1.6.1 用户名和密码验证
  12. 1.6.2 OAuth  
  13. 1.7 状态码 
  14. 1.7.1 成功(200 或201)
  15. 1.7.2 不合规的JSON(400)
  16. 1.7.3 错误的JSON(422)
  17. 1.7.4 成功创建(201)
  18. 1.7.5 完全没变化(304)
  19. 1.7.6 GitHub API的频率限制
  20. 1.7.7 获知频率限制
  21. 1.8 使用条件请求规避频率限制
  22. 1.9 在Web 中访问内容
  23. 1.9.1 JSON-P  
  24. 1.9.2 CORS支持
  25. 1.9.3 指定响应的内容格式
  26. 1.10 小结
  27. 第2章 Gist和Gist API  
  28. 2.1 简便的代码分享工具  
  29. 2.2 Gist是仓库
  30. 2.2.1 在HTML中嵌入Gist  
  31. 2.2.2 在Jekyll博客中嵌入Gist 
  32. 2.3 使用命令行创建Gist 
  33. 2.4 Gist是功能完整的应用 
  34. 2.5 渲染Gist的Gist 
  35. 2.5.1 深入了解Gist API  
  36. 2.5.2 使用Octokit获取超媒体数据
  37. 2.6 小结
  38. 第3章 GitHub使用的维基库Gollum 
  39. 3.1 “史麦戈的故事……”  
  40. 3.1.1 与仓库关联的维基
  41. 3.1.2 标记和结构
  42. 3.2 改造Gollum 
  43. 3.3 开始创建Gollum编辑器
  44. 3.4 以编程的方式处理图像
  45. 3.5 使用Rugged库
  46. 3.6 优化图像存储
  47. 3.7 在GitHub中查看
  48. 3.8 改善修订版本导航
  49. 3.9 修缮素材页面之间的链接
  50. 3.10 小结
  51. 第4章 Python和Search API 
  52. 4.1 Search API概述 
  53. 4.1.1 身份验证
  54. 4.1.2 结果的格式
  55. 4.1.3 搜索运算符和限定符
  56. 4.1.4 排序
  57. 4.2 Search API详解
  58. 4.2.1 搜索仓库
  59. 4.2.2 搜索代码
  60. 4.2.3 搜索工单
  61. 4.2.4 搜索用户
  62. 4.3 示例应用
  63. 4.4 Python  
  64. 4.4.1 AGitHub  
  65. 4.4.2 WxPython
  66. 4.4.3 PyInstaller  
  67. 4.5 编写代码
  68. 4.5.1 获取Git凭据的辅助函数
  69. 4.5.2 窗口和界面
  70. 4.5.3 登录GitHub 
  71. 4.5.4 搜索GitHub  
  72. 4.5.5 显示结果
  73. 4.6 打包
  74. 4.7 小结
  75. 第5章 .NET和Commit Status API 
  76. 5.1 Commit Status API  
  77. 5.1.1 原始状态
  78. 5.1.2 合并后的状态 
  79. 5.1.3 创建状态
  80. 5.2 编写一个应用
  81. 5.2.1 要使用的库
  82. 5.2.2 开发环境
  83. 5.2.3 发送请求
  84. 5.2.4 OAuth验证流程
  85. 5.2.5 处理状态的函数
  86. 5.3 小结
  87. 第6章 Ruby和Jekyll 
  88. 6.1 学习使用Jekyll构建博客
  89. 6.2 Jekyll是什么
  90. 6.3 使用Jekyll快速创建博客
  91. 6.3.1 YAML格式的头部元信息
  92. 6.3.2 Jekyll使用的标记
  93. 6.3.3 使用Jekyll命令
  94. 6.3.4 在Jekyll中设定隐私级别
  95. 6.3.5 主题
  96. 6.3.6 发布到GitHub中
  97. 6.3.7 托管在自己的域名名下
  98. 6.4 导入其他博客
  99. 6.4.1 导入WordPress  
  100. 6.4.2 从其他博客中导入
  101. 6.5 爬取网站,导入Jekyll 
  102. 6.5.1 爬取策略
  103. 6.5.2 设置
  104. 6.5.3 爬取标题
  105. 6.5.4 借助交互式Ruby控制台改善
  106. 6.5.5 编写测试,处理缓存
  107. 6.5.6 输出Jekyll文章
  108. 6.5.7 使用jekyll命令行工具
  109. 6.5.8 使用Liquid Markup编写主索引文件  
  110. 6.5.9 爬取正文和作者
  111. 6.5.10 把图像添加到Jekyll中
  112. 6.5.11 自定义样式(CSS)
  113. 6.5.12 通过GitHub的“派生”功能鼓励协作
  114. 6.5.13 把博客发布到GitHub中
  115. 6.6 小结
  116. 第7章 Android和Git Data API 
  117. 7.1 搭建环境
  118. 7.1.1 创建Jekyll博客
  119. 7.1.2 Android开发工具
  120. 7.2 新建项目
  121. 7.2.1 编辑Gradle构建文件
  122. 7.2.2 Android默认的主活动
  123. 7.3 自动测试Android应用
  124. 7.3.1 对GitHub客户端做单元测试
  125. 7.3.2 对Android应用做UI测试
  126. 7.4 实现应用
  127. 7.4.1 编写登录GitHub的代码
  128. 7.4.2 编写与GitHub交互的代码
  129. 7.4.3 编写博客内容
  130. 7.4.4 GitHub服务
  131. 7.4.5 从仓库和分支中获取基SHA  
  132. 7.4.6 创建blob 
  133. 7.4.7 生成树
  134. 7.4.8 创建提交
  135. 7.4.9 更新上游资源
  136. 7.4.10 通过全部测试
  137. 7.5 小结
  138. 第8章 CoffeeScript、Hubot和Activity API 
  139. 8.1 Activity API
  140. 8.2 让拉取请求得到各方认同
  141. 8.2.1 注意事项和局限
  142. 8.2.2 创建常规的Hubot 
  143. 8.2.3 注册Slack账户
  144. 8.2.4 在本地运行Hubot  
  145. 8.3 部署到Heroku 
  146. 8.4 Activity API概述
  147. 8.4.1 编写Hubot扩展
  148. 8.4.2 通过拉取请求审查代码
  149. 8.4.3 使用OAuth令牌注册事件
  150. 8.4.4 发起真实的拉取请求
  151. 8.4.5 通过HTTP POST请求处理拉取请求通知  
  152. 8.5 小结
  153. 第9章 JavaScript和Git Data API
  154. 9.1 构建一个咖啡店数据库并托管在GitHub中  
  155. 9.2 搭建环境
  156. 9.2.1 绑定域名
  157. 9.2.2 添加支持库
  158. 9.3 使用GitHub.js开发一个AngularJS应用  
  159. 9.3.1 规划应用的数据结构
  160. 9.3.2 让应用易于测试
  161. 9.3.3 测试数据
  162. 9.3.4 修改coffeetech.js文件
  163. 9.4 添加地理编码功能
  164. 9.5 添加登录功能
  165. 9.6 显示(即将)由用户提供的数据
  166. 9.7 接受拉取请求
  167. 9.8 实现安全的登录方式
  168. 9.8.1 身份验证需要服务器
  169. 9.8.2 使用Firebase处理身份验证过程
  170. 9.8.3 测试Firebase  
  171. 9.8.4 实现Firebase登录功能
  172. 9.9 小结
  173. 附录A GitHub企业版
  174. 附录B GitHub对Ruby、NodeJS(和shell)的利用
书名:GitHub实践
作者:Chris Dawson, Ben Straub
译者:安道 译
国内出版社:人民邮电出版社
出版时间:2016年10月
页数:252
书号:978-7-115-43806-5
原版书书名:Building Tools with GitHub
原版书出版商:O'Reilly Media
Chris Dawson
 
Chris Dawson,曾就职于Apple、Virage和RealNetworks等知名IT企业,现于eBay工作。他积极参与并见证了GitHub的发展,自己也开了一家公司Webiphany。
 
 
Ben Straub
 
Ben Straub,IT服务公司Gridium的开发人员,热衷于开发优秀的软件,最近刚加入GitHub。除写过多本书之外,他还兼职在线软件开发培训。