继续drone整合gitlab的实验,在上一篇文章里已经实现了在drone获取到了Gitlab上项目列表,但是点
击 ACTIVATE REPOSITORY 就会出现以下提示:
There was a problem enabling your repository.
通过Debug日志可以看到drone里的错误提示:api: cannot create or update hook
{"error":"","level":"debug","msg":"api: cannot create or update hook","name":"helloworld","namespace":"go","request-id":"1NFzUiPgfMhuuxsDY9K6PXgcQqM","time":"2019-06-28T03:14:11Z","user.login":"root"}
初步判断是不是授权时API给的权限不够,但是下图的权限配置也一样未能解决问题。
经过网络搜索一翻,有这么一篇[Gitlab配置Webhook,报错 Url Is Blocked Requests To The Local Network Are Not Allowed](http://zpycloud.com/archives/561)
Gitlab 10.6 版本以后为了安全,不允许向本地网络发送Webhook请求,如果想向本地网络发送Webhook请求,则需要使用管理员帐号登录.
即可进入Admin Area,在Admin Area中,在Settings标签下面,找到OutBound Request
,勾选上Allow Requests To The Local Network From Hooks And Services ,保存更改即可解决问题。
最终根据上面的提示操作完回到Drone项目里,SYNC后即可看到效果了。
关于权限
- gitlab建议使用root用户授权,不然普通用户是没办法获取到项目信息。
- 如果使用普通用户授权了Developer加入项目,drone里能看到列表,但是不能编辑项目。
如下图所示:能在Drone看到项目名
但是点进项目时激活时就会出现以下错误:
如果Gitlab上的项目是其它的用户创建的就是说它的属组不是授权用户下创建的就会多一个Not Found.
提示。