问题标签 [github-app]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
git - 验证 GitHub 拉取请求的标题和正文
有没有办法验证 GitHub 拉取请求的标题和正文。我知道我们可以使用拉取请求模板来预填充拉取请求消息。GitHub 也确实提供了针对每个提交运行的WebHooks、Checks API 。
但是我正在寻找某种方式,当贡献者点击“发送拉取请求”按钮并基于验证接受或拒绝拉取请求。
我正在考虑通过GitHub App来实现这一点,它将安装在组织级别的存储库中。
我不关心检查提交。
我遇到了ContentReferenceEvent,它似乎提供了一个类似但不完整的功能,其中仅读取URLcontent_reference
并触发事件。我希望这也能提供一种获取 PullRequest 的标题和正文的方法。
但是,使用内容附件表示此功能仅供测试使用:
注意:内容附件 API 目前处于公开测试阶段,仅可用于 GitHub 应用程序。在此期间,功能和要求可能随时更改。
由于处于测试阶段,我无法使用此功能。
请让我知道还有哪些其他替代方案,或者如果不存在这样的替代方案,我该如何自己实现。
node.js - 传递给 createTokenAuth 的令牌不是字符串:octokit, auth-token
我正在尝试构建一个 GitHub 应用程序并遵循https://probot.github.io/docs/和 https://octokit.github.io/rest.js/v17#authentication。它基本上是一个nodejs应用程序。
我没有使用 nodejs 或 typescript 甚至 probot 框架的经验。
PRIVATE_KEY_PATH 位于.env文件中,如下所示:
.pem文件位于项目的根目录中
typeof 打印字符串: -------------TypeOf token ---- string
index.js
我不断收到以下错误:
无法通过互联网找到有关此主题的太多帮助。我什至尝试浏览 octokit https://github.com/octokit/auth-token.js/blob/master/src/index.ts的代码,看来我的代码没有做错任何事情。
除了文档之外,没有太多资源可以参考 GitHub 应用程序或 probot 框架的问题。StackOverflow 也只有大约 20-30 个与 GitHub 应用程序或 probot 框架相关的问题。
编辑 1:开始
运行以下代码:
产生以下错误:
编辑 1:结束
github - 通用 pull_request 事件和其他更具体的 pull_request 事件(如 pull_request.opened)的意义
我正在使用nodejs和probot框架开发一个GitHub 应用程序。我可以看到 probot 框架的Application类(https://probot.github.io/api/latest/classes/application.html)包含如下事件:
我注意到,当单击“创建拉取请求”按钮时,会触发pull_request和pull_request.opened事件。
为了理解在单击同一个按钮时触发多个看似相似的事件的这种行为,我尝试重新打开一个关闭的请求并打印出pull_request事件和pull_request.reopened事件的 Context 对象。
我对这两个上下文进行了差异比较,发现两个事件返回的上下文是相同的,只是pull_request事件的上下文包含在附加属性下面:
我们知道返回的上下文对象的一般格式如下:
上述信息在两种情况下都存在。我们可以看到,这也告诉我们执行的具体操作,这由context.payload.action表示。因此,如果有人要求获取pull_request.opened,他/她可以通过使用pull_request事件来做到这一点,如下所示:
并且不需要关心其他更具体的事件(这里是pull_request.opened),即除了从上面的代码中实现的之外,下面的代码不会提供真正的额外帮助:
所以这是困扰我的问题: pull_request 事件的目的是什么,如果它的其他特定形式(如 pull_request.reopened)没有不同的信息(更准确地说,如果它们的上下文不包含不同的信息)?
我很确定这背后确实隐藏着一些智慧。我在互联网上找不到任何东西,文档中没有任何东西可以解释这一点。
请帮助我了解隐藏的智慧。
编辑 1:开始
忘了提到一个观察,那就是:重新打开拉取请求也会触发issue_comment.created事件。因此,一个操作(单击Create Pull Request)触发了三个事件。
编辑 2:开始
github - 如果 PR 消息正文验证失败,则拒绝 Pull Request 创建请求
如果某些条件失败,我们有没有办法拒绝创建拉取请求?我正在nodejs和probot中开发 GitHub 应用程序,并且希望在开发人员单击“创建拉取请求”按钮时拒绝创建拉取请求(例如检查拉取请求正文中是否存在某些模式)拉取请求正文失败。
因此,从根本上说,如果某些验证失败,则不应首先创建拉取请求(并且应将用户带回 PR 创建页面)。
即,如果拉取请求正文(或任何其他逻辑)的验证失败,则在同一个拉取请求创建页面上。
node.js - 错误事件:未找到;从另一个事件触发事件时:nodejs中内置的probot应用程序
我正在 probot 和 nodejs 中构建一个 GitHub 应用程序,并尝试在pull_request.synchronize事件发生时更新 PR。我知道这没有多大意义,但关键是我希望能够在某个事件发生时更新 PR。
我每次都得到以下错误:
为什么它无法从上下文中获取详细信息,而实际上上下文确实由我的控制台语句打印出来并包含 pull_request 详细信息。
我只是 probot 和 nodejs 的初学者,所以我不确定这是否与语法有关。
node.js - 如何通过 GitHub APP API 更新拉取请求?
我开发了 GitHub APP 来管理拉取请求过程,我正在使用两个 API
1.状态检查 API
2. update-a-pull-request API
当请求更新由一个人创建的现有拉取请求时,我收到此错误消息的用户。
如何获得具有正确权限的安装令牌?
要执行 API 调用,我需要令牌,我以这种方式生成令牌:
在 GitHub 帐户中创建应用程序
在 APP 中创建了 PEM 私钥
在代码中,使用 PEM 密钥创建 JWT 令牌
使用 JWT 令牌创建安装令牌,如下所示
标题
获取安装令牌
更新由其中一位用户创建的现有拉取请求
github - 在没有用户交互的情况下以编程方式创建 github 应用程序?
就像标题提到的那样,我检查了以下资源:
- https://developer.github.com/v3/apps/#create-a-github-app-from-a-manifest
- https://developer.github.com/apps/building-github-apps/creating-github-apps-from-a-manifest/
似乎需要手动用户交互来创建应用程序,因为它需要将人们重定向到 GitHub 以创建新的 GitHub 应用程序。
node.js - GitHub API 在尝试生成访问令牌时返回 401
我正在尝试通过 GitHub API 为我的 GitHub 应用程序生成访问令牌。
我收到 401 未经授权的响应错误:
expiration time' claim ('exp') is too far in the future
我的代码:
Github 文档 - https://developer.github.com/apps/building-github-apps/authenticating-with-github-apps/
github - 如何解决无法访问特定 GitHub 集成的问题
如果 GitHub 集成失败,一般会发生什么。假设我们有一个验证拉取请求的 GitHub 应用程序。如果那个应用程序宕机了,GitHub 会显示一些关于它的消息吗?
当应用程序未启动时,拉取请求似乎会通过。这是相当危险的。我的意思是,GitHub 是否为 GitHub 集成提供了任何后备机制。
编辑 1:开始
我只是想知道,由于 webhook 是从 GitHub 端发送到我们在应用程序设置中配置的 webhook url,如果 webhook url 无法访问,GitHub 有没有办法通知用户。
编辑 1:结束
github - 无法在我的集成中实施检查,为创建检查方法获取“地图未定义”
我正在尝试在我的 GitHub 应用程序中实施 Checks。我的应用程序是用 probot 构建的。
我只是无法实施检查。我尝试过查看演示 ruby 示例的文档,其中包括几个不同的设置(不确定 probot 是否需要)。我只是对那里的例子感到困惑。
下面是驻留在我的 index.js 中的代码:
我得到以下错误
错误日志抱怨 index.js:24:35,这正是该create
行中的方法await context.github.checks.create
上面的代码是否足以创建检查test-check-1还是我还需要处理其他事情。我已经在我的仓库的分支保护设置下启用了“在合并之前通过所需的状态检查”选项。该部分显示对不起,我们在上周找不到此存储库的任何状态检查。
不知道如何连接一切。
编辑 1:开始
以下是包含@OscarDOM 建议的所需参数后的代码:-
不幸的是,我仍然在完全相同的行和列上遇到相同的错误。
编辑 1:结束
编辑 2:开始
以下是修正 mediaType 参数后的最终工作代码:
请注意,我还必须纠正一个错误,那就是价值所有者参数。正确的方法是指定 context.payload.repository.owner.login ,这是我最近从StackOverflow 帖子中学到的
编辑 2:结束