- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试编写一个可以使用 eslint 输出对 github PR 进行评论的小脚本。
问题是 eslint 给了我每个错误的绝对行号。
但是 github API 想要相对于 diff 的行号。
来自 github API 文档:https://developer.github.com/v3/pulls/comments/#create-a-comment
To comment on a specific line in a file, you will need to first determine the position in the diff. GitHub offers a application/vnd.github.v3.diff media type which you can use in a preceding request to view the pull request's diff. The diff needs to be interpreted to translate from the line in the file to a position in the diff. The position value is the number of lines down from the first "@@" hunk header in the file you would like to comment on.
The line just below the "@@" line is position 1, the next line is position 2, and so on. The position in the file's diff continues to increase through lines of whitespace and additional hunks until a new file is reached.
[{
"chunks": [{
"content": "@@ -,OLD_TOTAL_LINES +NEW_STARTING_LINE_NUMBER,NEW_TOTAL_LINES @@",
"changes": [
{
"type": STRING("normal"|"add"|"del"),
"normal": BOOLEAN,
"add": BOOLEAN,
"del": BOOLEAN,
"ln1": OLD_LINE_NUMBER,
"ln2": NEW_LINE_NUMBER,
"content": STRING,
"oldStart": NUMBER,
"oldLines": NUMBER,
"newStart": NUMBER,
"newLines": NUMBER
}
}]
}]
NEW_STARTING_LINE_NUMBER
开始的新行号数组到NEW_STARTING_LINE_NUMBER+NEW_TOTAL_LINES
对于每个文件 newStart
从每个数字,并使其成为另一个数组relativeLineNumbers
type==='del'
)增加相应的剩余 relativeLineNumbers
@@
的行)减少相应的剩余 relativeLineNumbers
最佳答案
我找到了解决方案。我没有把它放在这里,因为它涉及简单的循环,没有什么特别的。但无论如何现在回答是为了帮助别人。
我已经打开了一个拉取请求来创建类似的情况,如问题所示
https://github.com/harryi3t/5134/pull/7/files
使用 Github API 可以获取差异数据。
diff --git a/test.js b/test.js
index 2aa9a08..066fc99 100644
--- a/test.js
+++ b/test.js
@@ -2,14 +2,7 @@
var hello = require('./hello.js');
-var names = [
- 'harry',
- 'barry',
- 'garry',
- 'harry',
- 'barry',
- 'marry',
-];
+var names = ['harry', 'barry', 'garry', 'harry', 'barry', 'marry'];
var names2 = [
'harry',
@@ -23,9 +16,7 @@ var names2 = [
// after this line new chunk will be created
var names3 = [
'harry',
- 'barry',
- 'garry',
'harry',
'barry',
- 'marry',
+ 'marry', 'garry',
];
diff-parse
模块并进行计算。
var parsedFiles = parseDiff(data); // diff output
parsedFiles.forEach(
function (file) {
var relativeLine = 0;
file.chunks.forEach(
function (chunk, index) {
if (index !== 0) // relative line number should increment for each chunk
relativeLine++; // except the first one (see rel-line 16 in the image)
chunk.changes.forEach(
function (change) {
relativeLine++;
console.log(
change.type,
change.ln1 ? change.ln1 : '-',
change.ln2 ? change.ln2 : '-',
change.ln ? change.ln : '-',
relativeLine
);
}
);
}
);
}
);
type (ln1) old line (ln2) new line (ln) added/deleted line relative line
normal 2 2 - 1
normal 3 3 - 2
normal 4 4 - 3
del - - 5 4
del - - 6 5
del - - 7 6
del - - 8 7
del - - 9 8
del - - 10 9
del - - 11 10
del - - 12 11
add - - 5 12
normal 13 6 - 13
normal 14 7 - 14
normal 15 8 - 15
normal 23 16 - 17
normal 24 17 - 18
normal 25 18 - 19
del - - 26 20
del - - 27 21
normal 28 19 - 22
normal 29 20 - 23
del - - 30 24
add - - 21 25
normal 31 22 - 26
关于github - 如何在 github 上评论 PR 上的特定行号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41662127/
背景:开发分支没有任何 ci/cd 管道集。我在功能分支创建了一个多阶段发布管道,并且在开发阶段之前工作正常,QA 阶段取决于成功的开发阶段和 PR 触发器。我已经创建了一个从功能到开发分支的 PR。
Github 不久前发布了 draft PR。 我有一个普通的 PR,我想将其更改为 PR 草案。我怎样才能做到这一点? 最佳答案 更新 - 现已推出 - 2020 年 1 月 转换默认 → 草稿 现
目标 我对 Azure 和管道还很陌生,我正在尝试从 Azure 中的 pr 触发管道。该存储库位于 Github 中。 这是管道 yaml:pipeline.yml trigger: none #
我正在运行一个具有 1 个数据中心(6 个节点)和 Cassandra 3.11.0 的集群,复制因子为 2。我知道 nodetool repair -pr将对该节点上的主要范围进行修复。我的问题是如
我和我的团队正在努力在 ADO 中实现特定的 CI/CD 模式。 我们定义了一个名为“Develop”的构建管道和一个同名的发布管道。我们在我们的开发分支上设置了一个构建策略,要求“开发”构建管道在
当对 my_branch 进行任何更改(直接更改分支或通过合并 PR)时,我需要触发管道(CI),我的 yml 触发器配置如下 - trigger: batch: true branches:
我正在尝试使用 http://rove.io/在我的 Windows 8 机器上设置一个 vagrant box。我已按照网站上的说明进行操作(特别是安装 gem install librarian-
我有一个 protected github 存储库,我希望已经允许“读取”访问权限的用户也能够合并 PR,所以我给了他“写入”角色。根据github docs这应该足够了。他仍然无法合并,并且看到一条
Github 提供了一种很好的方式来列出两个标签之间的提交,例如https://github.com/jupyter/nbconvert/compare/6.0.6...6.0.7 有没有办法列出两个
我们最近改变了工作流程。我们在 github 上的(新)存储库有 2 个分支:master 和 develop。 master 不受直接推送的影响,只有 PR 被 merge 。 develop 是所
我使用下面的过滤器使PR在2017-03-19之前关闭;但是,有没有一种方法可以过滤特定日期。 is:pr is:closed merged:>=2017-03-19 base:master sort
在Github中提交PR后,它会获得批准,然后合并到master中。在这一点上,我应该删除我的分支以保持整洁。我不是天使,经常忘记这样做! Github上有一个方便的“拉取请求”页面,可以跟踪您所有打
我想用一次提交创建一个 PR,所以我用提交 SHA checkout 一个新分支, git checkout -b new-branch 8517c80183607461ea 我如何从这里创建 PR?
我正在寻找一种通过 GitHub 设置或 CircleCI 设置防止参与 PR(创建 PR 或进行提交)的人能够合并 PR(甚至批准它)的方法。 到目前为止,我拥有一个需要批准的分支的保护,但在批准后
我正在使用如下所述的拉取请求构建来创建包含所包含资源的资源组 https://learn.microsoft.com/en-us/azure/devops/pipelines/release/depl
我问这个问题是因为,在提出 PR 并将其发送给多个团队成员进行审查之后,我看到在 PR 以 merge 或不 merge 关闭之前创建新提交的必要性。 PR request主要是指一个feature
我已将 Debug模式设置为 2: Configure::write('debug', 2); 我尝试在我的 Controller 中使用 pr(),它没有显示任何内容,即空白: pr($th
我问这个问题是因为,在提出 PR 并将其发送给多个团队成员进行审查之后,我看到在 PR 以 merge 或不 merge 关闭之前创建新提交的必要性。 PR request主要是指一个feature
Github 添加 reviewers . 有没有办法找到用户是评论者的 PR(例如在 Pull Requests 页面上)?我已经尝试过的事情: 已检查 https://help.github.co
我听说为了更好地宣传主页,网站的结构需要像这样: 主页链接到所有页面,每个页面都链接到主页。 主页链接到二级页面,它们链接到三级页面,每个页面只链接到一个上级页面。 我的问题是: 1. 对吗? 2.
我是一名优秀的程序员,十分优秀!