Github提供了丰富的API供开发者使用(官方文档V3)。通过使用这些API,开发者可以通过编程实现各种需求。此篇文章主要介绍如何使用Github API
进行身份认证,并通过Github API
导入其他版本管理系统的仓库,例如码云和Gitlab。
身份验证
官方文档的OverView介绍了Github API
进行身份验证的方法。这里有三种:
- 基础认证方法
- 基于
OAuth2 token
认证方法 OAuth2 key/secret
认证方法
官方推荐使用第二种OAuth2 token
认证方法。并且官方将在2020.11.13后不再支持第三种认证方法。
基础认证方法
基于用户名和密码的验证方法。请求接口时输入GIthub上的用户名和密码进行用户身份验证。
官方给出的使用curl请求示例如下:
1 | curl -u "username" https://api.github.com |
使用Postman
进行接口调试:
点击Authorization
,Type
选择Basic Auth
,输入用户名和密码即可。
基于OAuth2 token
认证方法
用户可以在Github上生成全网唯一的OAuth2 token
,并且可以根据token
用途的不同,设定每个token
的权限。
生成token
Github网页右上角用户设置页面Settings->开发者设置页面 Developer Setting->personal access token
->Generate New token
->填写信息
->页面最下方Generate token
Note
处填写token
对应的描述,方便后期管理。在下方选择该token
对应的权限,本文只介绍导入其他库,因此全选repo
的选项即可。选择完毕后点击Generate token
。生成token
只会显示一次,此处切记。以后任何方式都无法查看这个token
值,如果忘记,只能删除重新创建。
使用token
生成的token直接添加到请求头中即可。
官方给出的使用curl请求示例如下,OAUTH-TOKEN
替换为上面生成的token
。
1 | curl -H "Authorization: token OAUTH-TOKEN" https://api.github.com |
使用Postman
调试:
在Headers
中添加key为Authorization
,对应的Value为token OAUTH-TOKEN
,OAUTH-TOKEN
替换为上面生成的token
。
导入其他库
github可以直接导入其他Git仓库,可以在网页上操作,也可以通过API来进行导入。
API如下,owner
换成自己的Github用户名,import前的repo
换成导入到github中的仓库名称,注意,使用API时,github中要先创建一个空的仓库用来导入。
开始一个导入
1 | PUT /repos/:owner/:repo/import |
请求时带的json数据如下:
1 | { |
参数简单说明(详见官方文档):
参数 | 含义 |
---|---|
vcs | 导入仓库使用的版本管理系统,可以为subversion 、git |
vcs_url | 仓库地址 |
vcs_username | 源仓库的用户名,如果源仓库时公开的,此处可以省略 |
vcs_password | 源仓库的用户对应的密码,如果源仓库时公开的,此处可以省略 |
更新已经存在的仓库
如果已经导入了,又想保持仓库与源仓库同步,那么可以通过更新API实现对仓库的导入更新。
1 | PATCH /repos/:owner/:repo/import |
请求时带的json数据如下:
1 | { |
参数含义如上。注意,如果此处没有这两个参数也是可以的。按照官方文档中的说法是,不传参时会重新导入。
还有其他例如查看导入状态的API等,详情可以参见官方文档。