Что означают поля position и original_position в API комментариев github pull request?

API github v3 позволяет вам перечислять комментарии к запрос на вытягивание через

curl 'https://api.github.com/repos/danvk/dygraphs/pulls/296/comments'

Ответ выглядит примерно так:

[
  {
    "id": 11908831,
    "diff_hunk": "@@ -1521,16 +1576,6 @@ Dygraph.prototype.doZoomX_ = function(lowX, highX) {\n };\n \n /**\n- * Transition function to use in animations. Returns values between 0.0\n- * (totally old values) and 1.0 (totally new values) for each frame.\n- * @private\n- */\n-Dygraph.zoomAnimationFunction = function(frame, numFrames) {",
    "path": "dygraph.js",
    "position": 140,
    "original_position": 140,
    "commit_id": "bacf5ce283d6871ce1c090f29bf5411341622248",
    "original_commit_id": "335011fd4473f55aaaceb69726d15e0063373149",
    "user": { ... }
    "body": "I'm not sure why this is showing up in the diff -- did you move it?",
  }
]

(Вы можете увидеть этот комментарий на github здесь.)

У меня вопрос: что именно означают 140 в полях «position» и «original_position»?

Я хотел бы перевести это в / из номеров строк в конкретном коммите. В документации API указано, что это номер строки в унифицированном различии. , но я не могу сказать, в какой унифицированный diff он индексируется. "dygraph.js" не изменился с 335011f..bacf5ce, то есть original_commit_id..commit_id.


person danvk    schedule 03.06.2014    source источник


Ответы (1)


Вы можете увидеть в "создать комментарий"

position number Required. 

Индекс строки в разнице, которую нужно прокомментировать.

Если вы развернете все различия, связанные с комментарием PR296, увидите, что 140-я строка этого различия - это та, что была прокомментирована.
Вернитесь к последнему разделу @@, и у вас будет заголовок diff, соответствующий этому комментарию:

 -1521,16 +1576,6 @@ Dygraph.prototype.doZoomX_ = function(lowX, highX) {

Если этот PR развился (изменил свою модификацию), original_position должен ссылаться на индекс предыдущей строки перед последним изменением.

person VonC    schedule 03.06.2014
comment
Спасибо! Чтобы сделать это немного более явным: для PR296 базовый sha - 01275da4, а для этого комментария commit_id - bacf5ce2. Чтобы получить правильную строку в diff, я запускаю git diff 01275da4..bacf5ce2 dygraph.js и удаляю первые четыре строки заголовка (которые не отображаются в пользовательском интерфейсе github). Затем комментарий переходит в строку 141 diff (потому что github использует номера строк, отсчитываемые от 0?). - person danvk; 04.06.2014
comment
Я не вижу комментариев к этому commit_id bacf5ce2. Фактически, dygraph.js не изменяется при этом коммите. Что мне не хватает? - person Masud Rahman; 16.06.2016
comment
@MasudRahman Вы можете увидеть это на api.github.com/repos/danvk. / dygraphs / pulls / 296 / комментарии - person VonC; 16.06.2016
comment
OK. Не могли бы вы помочь мне понять, как позиция может быть 140? Я вижу комментарий - я не уверен, почему это отображается в различии - вы его переместили? между этими двумя частями - '@@ -1521,16 +1576,6 @@' и '@@ -1540,8 +1585,8 @@' dygraph.js в github.com/danvk/dygraphs/pull/296/files. Я трачу на это дни. - person Masud Rahman; 16.06.2016
comment
@MasudRahman позиция 140 - это место, где комментарий api.github.com/repos/ danvk / dygraphs / pulls / comments / 11908831 связан. У меня мало информации, чем я уже ввел в ответе выше. - person VonC; 16.06.2016