编辑推荐
想要满足独特的开发需求?那就在下一个项目中使用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