2017-07-28 12 views
0

GitHub APIの使用私は、diff内の特定の行へのリンクを生成する方法を探しています。GitHub APIを使用してdiff内の特定の行へのリンクを取得しますか?

私はすでに、たとえば、「コミット間比較」URLをcontructことができます。 https://github.com/emmetog/feature-flags/compare/master...d8f9c29bfd0b87d26123b78b76feca8e4c87ad8

、ブラウザでそのURLを訪問し、私は特定の行をクリックすると、私はこれを取得: https://github.com/emmetog/feature-flags/compare/master...d8f9c29bfd0b87d26123b78b76feca8e4c87ad8#diff-21171d4ef87ca8e3591556dd18dfa456R26

をしかし、最後のビットである#diff-21171d4ef87ca8e3591556dd18dfa456R26ビットをプログラムでgithub apiを通して生成する必要があります。そうしないと、ブラウザを経由せずにdiffの特定の行にリンクする別の方法を見つけることができます。

これは可能ですか?

答えて

0

不可能です。

  1. は、私は、我々はファイルsrc/Emmetog/FeatureFlag/Entity/FeatureFlag.phpの新バージョンと旧バージョンの間で異なるのライン26が何であるかを指定することはできませんGitHubのAPIを使用することにより curl https://github.com/emmetog/feature-flags/compare/master...d8f9c29bfd0b87d26123b78b76feca8e4c87ad8

  2. を試してみました

  3. https://developer.github.com/v3/repos/commits/#compare-two-commitsを読みます 2つのリビジョンの違いは26行目では発生しないため、比較することはできません。またはファイルsrc/Emmetog/FeatureFlag/Entity/FeatureFlag.phpにはコードが10行しかないため、比較することはできません。

  4. HTMLウェブページでは、id = diff-21171d4ef87ca8e3591556dd18dfa456R26は自動生成IDです。 GitHub APIリクエストを実行する前に、意図的な方法を指定することはできません。

0

これは最良の方法ではありませんが、ウェブスクレイピングを行うことができるようです。

たとえば、あなたが提供したリンク。この行には次の要素が含まれています。

<td id="diff-21171d4ef87ca8e3591556dd18dfa456R26" 
data-line-number="26" class="blob-num blob-num-addition 
js-linkable-line-number selected-line"></td> 

diffハッシュが含まれています。また、行番号(26)もあります。今度はdiffハッシュと行番号の間に 'R'が必要です。それは、ラインが追加されたか削除されたかによって与えられると私は信じている。あなたはcssクラス 'blob-num-addition'からそれを得ることができます。 「BLOB-num-addition」は「R」に対応し、「BLOB-num-addition」は「L」に対応するように見える

関連する問題