Open shuangmianxiaoQ opened 5 years ago
此 issues 是通过 github api 请求提交的
今天突发奇想,怎么能持续关注前端领域的一些新技术呢,首先github肯定是首选,毕竟它的影响力不可言喻。平时也就看看比较熟知的仓库,怎么就能了解到趋势呢,github当然提供了趋势查询功能,还有像查阅github仓库star数排名的功能,既然github都提供了这些功能,直接查阅不就好了。因为自己也接触过一些数据可视化领域的知识,所以想把这些内容转化成图表,岂不是更加直观,这样也方便去关注开源社区的一些最新动态。
github
star
如果要做这样一个应用,使用Github API是不可避免的,之前也有使用过简单的部分API,但是对于查询趋势或是查询star排名的API还没使用过,我想,干脆趁这个机会,学习下完整的GitHub API也是不错的,下面就简单介绍下学习成果!
Github API
API
GitHub API
curl -u "username" https://api.github.com
我是直接在Postman中使用的,直接在Authentication中选择Basic Auth填写用户名和密码即可,如下图所示:
Postman
Authentication
Basic Auth
为了防止泄露密码,这个token就像是第二个密码,需要在开发者设置的个人Token界面生成,选择Generate new token,填写名称并勾选所以的scope,然后记住生成后的Token,因为这个Tocken只显示一次,不过忘了也没关系,可以重新生成或重新创建。
token
Generate new token
scope
Token
Tocken
使用curl认证方式有两种,其中OAUTH-TOKEN为生成的Token:
curl
OAUTH-TOKEN
curl -H "Authorization: token OAUTH-TOKEN" https://api.github.com
curl https://api.github.com/?access_token=OAUTH-TOKEN
curl 'https://api.github.com/users/whatever?client_id=xxxx&client_secret=yyyy'
下面这些权限操作基本上都是需要Auth认证的,所以需要先按照上面的步骤添加权限认证。另外,调用GitHub API不经过认证是只有每小时60次的限制的,通过认证则会有5000次。
Auth
60
5000
PUT
https://api.github.com/repos/用户名/仓库名/contents/文件路径
json { "message": "commit from Postman", "content": "bXkgbmV3IGZpbGUgY29udGVudHM=" }
注意:文件内容是需要将文件整体转换为Base64字符串再存到JSON中的
Base64
JSON
json { "message": "update from Postman", "content": "Y3JlYXRlIGZpbGUgZnJvbSBJTlNPTU5JQQoKSXQncyB1cGRhdGVkISEhCgpJdCdzIHVwZGF0ZWQgYWdhaW4hIQ==", "sha": sha }
注意:必须指定文件的sha,相当于文件的Id,此Id会文件内容的变化而变化,所以需要每次重新获取!
sha
Id
DELETE
json { "message": "delete new file", "sha": sha }
issues
POST
https://api.github.com/repos/用户名/仓库名/issues
json { "title": "GitHub Api 学习", "body": "此 issues 是通过 github api 请求提交的", }
注意:issues 的内容不用转为 Base64 格式,直接添加内容即可
PATCH
https://api.github.com/repos/用户名/仓库名/issues/序号
json { "title": "GitHub Api 学习(更改)", "body": "修改 issues", "state": "open" }
https://api.github.com/repos/用户名/仓库名/issues/序号/lock
json { "locked": true, "active_lock_reason": "too heated" }
此 issues 是通过 github api 请求提交的
今天突发奇想,怎么能持续关注前端领域的一些新技术呢,首先
github
肯定是首选,毕竟它的影响力不可言喻。平时也就看看比较熟知的仓库,怎么就能了解到趋势呢,github
当然提供了趋势查询功能,还有像查阅github
仓库star
数排名的功能,既然github
都提供了这些功能,直接查阅不就好了。因为自己也接触过一些数据可视化领域的知识,所以想把这些内容转化成图表,岂不是更加直观,这样也方便去关注开源社区的一些最新动态。如果要做这样一个应用,使用
Github API
是不可避免的,之前也有使用过简单的部分API
,但是对于查询趋势或是查询star
排名的API
还没使用过,我想,干脆趁这个机会,学习下完整的GitHub API
也是不错的,下面就简单介绍下学习成果!权限认证
Basic authentication
我是直接在
Postman
中使用的,直接在Authentication
中选择Basic Auth
填写用户名和密码即可,如下图所示:OAuth2 token
为了防止泄露密码,这个
token
就像是第二个密码,需要在开发者设置的个人Token界面生成,选择Generate new token
,填写名称并勾选所以的scope
,然后记住生成后的Token
,因为这个Tocken
只显示一次,不过忘了也没关系,可以重新生成或重新创建。使用
curl
认证方式有两种,其中OAUTH-TOKEN
为生成的Token
:OAuth2 key/secret
增删改查
下面这些权限操作基本上都是需要
Auth
认证的,所以需要先按照上面的步骤添加权限认证。另外,调用GitHub API
不经过认证是只有每小时60
次的限制的,通过认证则会有5000
次。添加文件
PUT
https://api.github.com/repos/用户名/仓库名/contents/文件路径
json { "message": "commit from Postman", "content": "bXkgbmV3IGZpbGUgY29udGVudHM=" }
修改文件
PUT
https://api.github.com/repos/用户名/仓库名/contents/文件路径
json { "message": "update from Postman", "content": "Y3JlYXRlIGZpbGUgZnJvbSBJTlNPTU5JQQoKSXQncyB1cGRhdGVkISEhCgpJdCdzIHVwZGF0ZWQgYWdhaW4hIQ==", "sha": sha }
删除文件
DELETE
https://api.github.com/repos/用户名/仓库名/contents/文件路径
json { "message": "delete new file", "sha": sha }
增删改 issues
issues
(该issues
就是通过API
添加的)POST
https://api.github.com/repos/用户名/仓库名/issues
json { "title": "GitHub Api 学习", "body": "此 issues 是通过 github api 请求提交的", }
issues
PATCH
https://api.github.com/repos/用户名/仓库名/issues/序号
json { "title": "GitHub Api 学习(更改)", "body": "修改 issues", "state": "open" }
issues
PUT
https://api.github.com/repos/用户名/仓库名/issues/序号/lock
json { "locked": true, "active_lock_reason": "too heated" }