大家早上好
我想创建一个脚本,当有人根据请求请求注释在我们的GitHub上请求请求时,该脚本会自动更新RedMine上的问题。
我使用selenium和redmine REST API用Python编写了一个脚本,该脚本检索了请求者在GitHub上提出的请求请求的注释,但是我必须手动执行它。
您知道在拉取请求之后是否可以自动执行python脚本吗?
(当前脚本存储在我的计算机上,但理想情况下,它将存储在外部服务器上,以便我和我的合作伙伴可以更轻松地使用它)
我已经搜索了一些基于WebHooks或CRON的解决方案,但似乎没有任何答案可以解决我的问题。
我正在使用Python 2.7
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import test
# Xpath to retrieve number of the fix
DISCONNECTED_XPATH = "//div[4]/div/main/div[2]/div[1]/div/div[2]/div[3]/div[2]/div[1]/div[1]/div[2]/div/div[2]/task-lists/table/tbody/tr/td/p"
CONNECTED_XPATH = "//div[4]/div/main/div[2]/div[1]/div/div[1]/div[3]/div[2]/div[1]/div[1]/div[2]/div/div[2]/task-lists/table/tbody/tr/td/p"
PULL_URL = "https://github.com/MaxTeiger/TestCoopengo/pull/1"
# Init
print("Opening the browser...")
driver = webdriver.Firefox()
# Go to the specified pull
print("Reaching " + PULL_URL)
driver.get(PULL_URL)
assert "GitHub" in driver.title
print("Finding the pull comment...")
# retrieve the fix id
elem = driver.find_element_by_xpath(DISCONNECTED_XPATH)
issueID = elem.text
print("Closing driver")
driver.close()
issueID = int(issueID.split('#')[1])
print("Issue ID : " +str(issueID))
print("Updating ticket on RedMine...")
test.updateIssueOnRedMineFromGit(issueID, PULL_URL)
谢谢您能为我提供帮助还是对我的问题有更好的解决方案
答案 0 :(得分:1)
我终于找到了解决我问题的答案,事实证明GitHub提出的webhooks回答了我的问题(回购>设置> Webhooks)。
现在,我只需要设置一个服务器即可在发出HTML Post请求时调用我的脚本,但是我不知道如何检索所需的请求请求的URL。