问题标签 [probot]

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.

0 投票
1 回答
726 浏览

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:结束

0 投票
1 回答
153 浏览

github - 通用 pull_request 事件和其他更具体的 pull_request 事件(如 pull_request.opened)的意义

我正在使用nodejsprobot框架开发一个GitHub 应用程序。我可以看到 probot 框架的Application类(https://probot.github.io/api/latest/classes/application.html)包含如下事件:

我注意到,当单击“创建拉取请求”按钮时,会触发pull_requestpull_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:开始

0 投票
1 回答
138 浏览

github - 如果 PR 消息正文验证失败,则拒绝 Pull Request 创建请求

如果某些条件失败,我们有没有办法拒绝创建拉取请求?我正在nodejsprobot中开发 GitHub 应用程序,并且希望在开发人员单击“创建拉取请求”按钮时拒绝创建拉取请求(例如检查拉取请求正文中是否存在某些模式)拉取请求正文失败。

因此,从根本上说,如果某些验证失败,则不应首先创建拉取请求(并且应将用户带回 PR 创建页面)。

即,如果拉取请求正文(或任何其他逻辑)的验证失败,则在同一个拉取请求创建页面上。

0 投票
1 回答
715 浏览

node.js - 错误事件:未找到;从另一个事件触发事件时:nodejs中内置的probot应用程序

我正在 probot 和 nodejs 中构建一个 GitHub 应用程序,并尝试在pull_request.synchronize事件发生时更新 PR。我知道这没有多大意义,但关键是我希望能够在某个事件发生时更新 PR。

我每次都得到以下错误:

为什么它无法从上下文中获取详细信息,而实际上上下文确实由我的控制台语句打印出来并包含 pull_request 详细信息。

我只是 probot 和 nodejs 的初学者,所以我不确定这是否与语法有关。

0 投票
2 回答
564 浏览

github - 如何解决无法访问特定 GitHub 集成的问题

如果 GitHub 集成失败,一般会发生什么。假设我们有一个验证拉取请求的 GitHub 应用程序。如果那个应用程序宕机了,GitHub 会显示一些关于它的消息吗?

当应用程序未启动时,拉取请求似乎会通过。这是相当危险的。我的意思是,GitHub 是否为 GitHub 集成提供了任何后备机制。

编辑 1:开始

我只是想知道,由于 webhook 是从 GitHub 端发送到我们在应用程序设置中配置的 webhook url,如果 webhook url 无法访问,GitHub 有没有办法通知用户。

编辑 1:结束

0 投票
1 回答
309 浏览

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:结束

0 投票
1 回答
44 浏览

github - Github Probot:为什么将固定问题视为样式并标记为 wont_fix?

在 Github 上使用 Probot,它的配置如下:

然而 Probot 将固定问题标记为“陈旧”(示例)。这个问题没有明确的“固定”标签吗?

0 投票
1 回答
2496 浏览

node.js - Phusion Passenger:启动 Web 应用程序时出错 - 使用 Plesk nginx 部署 Probot 应用程序 (NodeJS)

我正在尝试将GitHub Probot 应用程序18.0.27 U1(NodeJS 应用程序)部署到我的使用 NodeJS Extension运行 Plesk的网络服务器1.3.6-117。在我的本地机器上运行 probot 应用程序时,该应用程序启动得很好,并且可以通过 localhost 访问。

Plesk 显然使用Phusion Passenger 应用程序服务器来服务 NodeJS 应用程序。
访问已部署的网站时,出现以下错误:

截图:乘客问题定位

并在/var/log/nginx/error.log


到目前为止我测试过的东西

  • 我增加了在 nginx 中启动应用程序的超时时间passenger_start_timeout 300;
  • 我为此网站在 Plesk 中禁用了phpproxy_mode (默认情况下,Nginx 代理向 Apache 请求,但乘客仅在 nginx 上运行)
  • 我编写了一个自定义启动脚本来禁用乘客自动安装并将节点 dotenv 文件中的网络服务器端口设置为PORT="passenger"

开始问题

我的应用程序失败还是乘客无法绑定应用程序的端口?

是否有更详细的日志或启用详细输出的选项?

提前致谢!

0 投票
1 回答
358 浏览

github-api - Probot 应用程序在尝试合并 PR 时抛出“资源无法通过集成访问”

我一直在尝试创建一个简单的 Probot 应用程序,除其他外,它将在满足某些标准时合并 PR。(我知道预建的解决方案是可用的,但它们不仅不太适合我的需求,我也不会学到任何东西)。

使用context.github.pulls.merge(context.issue())回报:ERROR probot: Resource not accessible by integration

我尝试将 context.issue() 替换为文档建议其寻找的对象。谷歌搜索虽然很难找到类似的问题,但表明它是一个权限问题,我已经仔细检查了权限,并在一个阶段为应用程序授予了所有权限。

值得注意的事情:

  • 此 repo 上没有 github 操作设置
  • 回购属于一个测试组织,机器人应用程序可以访问该组织中的所有回购
  • 该 repo 最初是私有的,但也已公开测试过

任何朝着正确方向轻推将不胜感激。

谢谢

0 投票
0 回答
69 浏览

javascript - 列出 github 问题修订 - octokit

我正在开发一个 probot 应用程序,以防止泄露有关 github 问题的敏感信息。

当我从 github-issue 中编辑掉敏感信息时,仍然可以在帖子的编辑历史(修订历史)中查看这些信息,然后您可以从 UI 中手动删除它们,如图所示: Github-issues-revision-history 和删除

我一直在使用https://octokit.github.io/rest.js/v18但似乎没有明确的端点来访问所述修订。

尝试了各种方法,例如

但我似乎无法找到这些修订的保存位置。这些帖子修订究竟保存在哪里,以便我可以使用我的 probot 应用程序删除它们?