github提供了管理库的api,我们可以利用curl(我是在Linux系统下)这个工具,来利用github的api对github上的库进行管理。
github对库的的各种api在这里查看: https://developer.github.com/v3/repos/
从里面选几个例子:
GET /users/:user/repos
POST /user/repos
DELETE /repos/:owner/:repo
这些api一般由两部分组成,前面大写的单词和后面带有斜杠的一些东西。
前面的大写单词表示网络请求,具体啥请求我暂不知道称呼,后面是地址,如/user/repos在使用的时候就换成https://api.github.com/user/repos,也就是在前面加上域名,其它都是这样。
像这样/repos/:owner/:repo
,里面有冒号,不能照抄,实际上冒号和后面的单词组成的这部分是要被替换掉的,:owner
和:user
一个表示库所有者,这个表示用户,反正都是换成github用户名,:repo换成库名。其它带冒号的先自己推断吧。
再看curl的使用,它是一个命令行工具。
各种请求curl怎么发?我在man手册看的,GET用参数-G。可以用-X参数并在它后面直接加上请求名,如-X DELETE,-X PATCH
。POST呢?一般POST请求都要带数据的把,数据传输要用到-d参数,只用这个参数而没用其它请求的时候,就认为的POST请求,当然你也可以加上-X POST。
Ok,接下来说怎么传数据。有的api是需要传数据的,如创建库。
curl的数据传输放在-d参数的后面。
github api的数据格式你也可以在那个api页面看到,是包含在花括号中,里面各个部分的信息用逗号隔开。每部分信息由名字和值两部分组成,用冒号隔开,名字要加双引号,值如果是字符串也要加双引号,具体例子如:
{“name”: “Hello-World”,”description”: “This is your first repository”}
各部分信息有的是必须的,有的可以省略。
在curl的-d参数后面的信息要放在单引号里面如:
-d ‘{“name”: “Hello-World”,”description”: “This is your first repository”}’
后面地址部分直接把完整地址放在后面即可。
对了,建立连接有时候需要权限的吧,如建立或删除库时。此时再多加个curl的参数-u,后面跟用户名。如-u xxx
举个完整例子,这个是创建库的:
curl -u username -d ‘{“name”: “Hello-World”,”description”: “This is your first repository”}’ https://api.github.com/user/repos
提醒一点,注意参数大小写。