小编luk*_*ans的帖子

GitHub API如何检查用户是否具有对存储库的写入权限

我目前有一个机器人可以自动执行一些GitHub操作,比如合并拉取请求,在打开PR时通知Slack的员工,那种事情(这是一个自定义风格的Hubot实例)

当工作人员给他合并拉取请求的命令时,他首先检查他们是否属于对该存储库具有写入权限的团队.它有效,但代码不是很好.

首先,他获得组织中的所有团队,循环遍历它们,将所有用户分配给该团队,如果他发现用户发出合并命令,则他会检查该团队是否具有写入权限.如果不是,则认证是好的.

这是最好的方式吗?我觉得它可以简单得多.

github-api

10
推荐指数
1
解决办法
7154
查看次数

GitHub Webhook秘密永远不会验证

我正在使用GitHub webhook将事件传递给我的应用程序(GitHub的Hubot的一个实例),并使用sha1秘密进行保护.

我正在使用以下代码验证传入webhooks上的哈希值

crypto    = require('crypto')
signature = "sha1=" + crypto.createHmac('sha1', process.env.HUBOT_GITHUB_SECRET).update( new Buffer request.body ).digest('hex')
unless request.headers['x-hub-signature'] is signature
  response.send "Signature not valid"
  return
Run Code Online (Sandbox Code Playgroud)

在webhook中传递的X-Hub-Signature标头看起来像这样

X-Hub-Signature:sha1 = 1cffc5d4c77a3f696ecd9c19dbc2575d22ffebd4

我按照GitHub的文档准确传递密钥和数据,但哈希总是不同.

这是GitHub的文档. https://developer.github.com/v3/repos/hooks/#example

这是我最有可能误解的部分

secret:作为X-Hub-Signature标头与HTTP请求一起传递的可选字符串.使用秘密作为密钥,将此标头的值计算为正文的HMAC十六进制摘要.

谁能看到我哪里出错了?

git cryptography github node.js github-api

8
推荐指数
3
解决办法
2659
查看次数

标签 统计

github-api ×2

cryptography ×1

git ×1

github ×1

node.js ×1