首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从gitlab webhooks访问api

从gitlab webhooks访问api
EN

Stack Overflow用户
提问于 2014-04-02 20:00:15
回答 1查看 1.2K关注 0票数 1

我需要开发一堆我自己的web钩子(或者服务),用于自动部署,报告到项目管理系统,等等。但是发布到web钩子上的数据没有太多的信息来满足我的需求。

例如,我收到了简单的推送事件,我怎么知道它是强制推还是不用力推?好的,我有两个树,让我们看看存储库并检查这个推送oops,需要用户令牌来完成它。悲伤的。

从web钩子访问gitlab api的正确方法是什么?可能我错过了什么重要的事?我真的很困惑。

Upd1:

我们试着找个解决办法。可能性

  1. 想象一下,我们可以有一个用户可以阅读gitlab中的所有项目。但是,该用户应该连接到每个项目以获得访问权限。好的;-(
  2. 去读推子的回购书怎么样?我们不能因为我们需要用他的私人标记来做这件事。
  3. 也许是一些内部功能来读取所有的repos或什么的?当然不是。
  4. 所以。也许是数据库?不是的。因为我们首先需要克隆repo,并且不能用刷新缓存将数据保存在DB中。

我认为我们需要一个安全令牌,也许需要很多复选框,为每个连接的web钩子或一个应用程序(服务)提供访问权限。

请随意分享你的想法。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-04-02 21:32:52

我记得有部分解决办法。所以情况会是这样的:

  1. 使用web钩子创建web服务。
  2. 在同一主机上为某些特殊用户(通常是web钩子服务的所有者)创建ssh键,以访问repos。
  3. 将上一步创建的ssh键添加为部署密钥。
  4. 最后:注册您的web钩子,并将该钩子的部署键添加到项目中--对每个需要此钩子的项目重复它。

您有事件侦听器( web钩子服务),并且可以访问该存储库(ssh/git)。

但是,该解决方案仍然无法访问API本身。

也许还有另一种解决办法。

  1. 创建自定义管理用户与一个大随机密码和一些合成名称,如HookBot或其他,记住该用户的private_token;
  2. 注册你的网络钩子;
  3. 使用access将您的部署密钥添加到HookBot (未经测试);
  4. 使用sudo获取源或其他内容。只需模仿pusher的帐户(sudo -u {author_id})并继续,阅读回购,使用它,等等。

也许还有别的解决办法?更合法?

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22821767

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档