(原) Gogs 自建Git

原创文章,请后转载,并注明出处。

Gogs 一款极易搭建的自助 Git 服务,Golang开发自然跨平台。

搭建很简单,个人或小团队使用,完全可以用sqlite3。在现有的N100上搭建一个,极其简单,速度起飞。
除了个人常规git以外,是否可以解决时断时续的github.com呢?也就是克隆一些常用的项目(也可以备不时之需,万一卡脖子了呢)。比如对一些常用的项目定时clone;针对断断续续的问题,让它自动重试…

要实现自动化操作,必然用到Gogs的API,以下为一些学习记录。

  1. 先在界面中创建好自己的token (管理员如何操作先不管)
  2. 获取访问令牌
    curl -u ease:PASS https://git.scwy.net/api/v1/users/ease/tokens
    这里的ease为我的用户名,PASS为密码
    返回类似信息: [{“name”:“ease_token”,“sha1”:“1bf260d2a5e57cb302695597593f1b619366461e”}]
    ease_token 是在界面中定义的token名,sha1值即为访问用的令牌。注意并不是界面中生成的令牌,只是临时生成的访问令牌。
  3. 获取token后,可以继续使用其它API
    搜索用户:
curl -H "Authorization: token 1bf260d2a5e57cb302695597593f1b619366461e" "https://git.scwy.net/api/v1/users/search?q=qo&limit=5"

这里需要上面获取的访问令牌来授权使用。
返回信息:

{"data":[{"id":8,"username":"qor5","login":"","full_name":"","email":"","avatar_url":"https://secure.gravatar.com/avatar/e6a0316b25cf966fd25acfe15237c82f?d=identicon"}],"ok":true}

搜仓库:
curl -H “Authorization: token 1bf260d2a5e57cb302695597593f1b619366461e” “https://git.scwy.net/api/v1/repos/search?q=admin&limit=5"

**列出单个用户: **
curl -H “Authorization: token 1bf260d2a5e57cb302695597593f1b619366461e” “https://git.scwy.net/api/v1/users/qor5"