如何從提交散列獲取GitHub PR ID?在git控制檯或GitHub API中可能嗎?GitHub從提交散列提取請求ID
0
A
回答
1
使用GitHub API(V3)絕對有可能。要獲得PR ID,您需要使用GitHub Search Issues API並首先找到PR號碼,然後您可以使用PR號碼查找PR ID。請注意,拉取請求將包含合併請求ID和單獨的問題ID。
例如,假設您有一個提交sha - 7dd1bcf5f2f5eeed34cc2ec63053098fba302b6c
。要從這個沙發中找到PR ID,您可以執行以下操作:
步驟1:使用commit sha找到PR編號:使用Github搜索api- https://api.github.com/search/issues?q=sha:7dd1bcf5f2f5eeed34cc2ec63053098fba302b6c
。從JSON響應,現場「數」表示PR號(在本例中16)和「ID」代表問題ID(不是PR ID)
第2步:使用PR數量和回購的細節,找到PR ID。根據步驟1中收到的JSON響應,我們可以構建以下內容 - https://api.github.com/repos/lamassu/lamassu-admin/pulls/16
。在收到的JSON響應中,字段「ID」是所需的PR ID。
0
我花了很多時間調查它,這裏是結果。簡單SH行打印拉請求ID:
git ls-remote origin ‘pull/*/head’ | grep -F -f <(git rev-parse HEAD) | awk -F’/' ‘{print $3}’
而且在Jenkinsfile:
def gitCommitSHA = sh(returnStdout: true, script: 'git rev-parse HEAD').trim()
def allPRs = sh(returnStdout: true, script: "origin ‘pull/*/head’")
List result = allPRs.split('\n').findAll { it.contains(gitCommitSHA) && it.contains("refs/pull") }
if (result.size() ==1){
def str = result[0]
def prId = str.substring(str.indexOf("pull")+5,str.lastIndexOf("head")-1)
echo "Pull request id: ${prId}"
}
+0
謝謝。這對我非常有幫助。真的感謝 –
相關問題
- 1. Github拉請求沒有老提交
- 2. 更新提交/拉請求Github清單
- 3. Github上提交併引入請求
- 4. 在Github中合併一些提交請求提交
- 5. 從提交消息獲取Git提交散列
- 6. 如何在GitHub上從5個提交請求中選擇2個提交?
- 7. Gitlab:從提交ID獲取合併請求
- 8. GitHub:我提出的請求?
- 9. 在github上創建單個提交的拉取請求
- 10. 從.git文件夾提取提交ID
- 11. 在GitHub上發送拉取請求,僅提供最新的提交
- 12. GitHub垃圾收集提交請求中引用的懸掛提交嗎?
- 13. 在Github中,我如何將更改提交給克隆並提交拉請求?
- 14. 創建Github拉請求第一次提交和最後一次提交?
- 15. GitHub API提交
- 16. 取消AJAX請求如果提交
- 17. Git:從提交請求中排除已提交的文件
- 18. 提交POST請求到Piwik.php
- 19. Squash提交閉合請求
- 20. 提交後無法推送或從Github中提取
- 21. 爲什麼我的GitHub pull請求有兩個提交?
- 22. GitHub Pull請求顯示主人的一些提交
- 23. Github拉請求不包括一些提交
- 24. github:添加提交到現有的拉請求
- 25. 無關的提交包含在Github企業的請求中
- 26. Github上對提交
- 27. 如何提取到散列
- 28. 如何停止github添加新的提交到現有的拉取請求
- 29. 顯示已經在目標分支中的提交的GitHub拉取請求
- 30. 放棄Git針對拒絕的拉取請求在Github上提交
歡迎StackOverflow的,請花一分鐘閱讀[如何問一個很好的問題(https://開頭計算器.com/help/how-to-ask) – LazerBanana