问题标签 [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.
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 的初学者,所以我不确定这是否与语法有关。
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:结束
github - Github Probot:为什么将固定问题视为样式并标记为 wont_fix?
在 Github 上使用 Probot,它的配置如下:
然而 Probot 将固定问题标记为“陈旧”(示例)。这个问题没有明确的“固定”标签吗?
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 中禁用了php和proxy_mode (默认情况下,Nginx 代理向 Apache 请求,但乘客仅在 nginx 上运行)
- 我编写了一个自定义启动脚本来禁用乘客自动安装并将节点 dotenv 文件中的网络服务器端口设置为
PORT="passenger"
开始问题
我的应用程序失败还是乘客无法绑定应用程序的端口?
是否有更详细的日志或启用详细输出的选项?
提前致谢!
github-api - Probot 应用程序在尝试合并 PR 时抛出“资源无法通过集成访问”
我一直在尝试创建一个简单的 Probot 应用程序,除其他外,它将在满足某些标准时合并 PR。(我知道预建的解决方案是可用的,但它们不仅不太适合我的需求,我也不会学到任何东西)。
使用context.github.pulls.merge(context.issue())
回报:ERROR probot: Resource not accessible by integration
我尝试将 context.issue() 替换为文档建议其寻找的对象。谷歌搜索虽然很难找到类似的问题,但表明它是一个权限问题,我已经仔细检查了权限,并在一个阶段为应用程序授予了所有权限。
值得注意的事情:
- 此 repo 上没有 github 操作设置
- 回购属于一个测试组织,机器人应用程序可以访问该组织中的所有回购
- 该 repo 最初是私有的,但也已公开测试过
任何朝着正确方向轻推将不胜感激。
谢谢
javascript - 列出 github 问题修订 - octokit
我正在开发一个 probot 应用程序,以防止泄露有关 github 问题的敏感信息。
当我从 github-issue 中编辑掉敏感信息时,仍然可以在帖子的编辑历史(修订历史)中查看这些信息,然后您可以从 UI 中手动删除它们,如图所示: Github-issues-revision-history 和删除
我一直在使用https://octokit.github.io/rest.js/v18但似乎没有明确的端点来访问所述修订。
尝试了各种方法,例如
但我似乎无法找到这些修订的保存位置。这些帖子修订究竟保存在哪里,以便我可以使用我的 probot 应用程序删除它们?