你知唔知我系靓仔
监控github仓库更新
需要监控一些运行库的关键更新,重复造了个轮子,偷懒使用qmsg推送
import time
import requests
from github import Github
def send_qmsg(token, group_key, message):
api_url = f"https://qmsg.zendee.cn/group/{group_key}"
params = {
"msg": message
}
response = requests.get(api_url, params=params)
if response.status_code == 200:
print("Message sent successfully!")
else:
print(f"Failed to send message. Status code: {response.status_code}")
def get_latest_commit_sha(repo):
# 获取最新的 commit sha
return repo.get_commits()[0].sha
def monitor_repositories(token, repo_urls, qmsg_token, qmsg_group_key):
# 使用 GitHub Token 进行身份验证
g = Github(token)
# 初始化每个仓库的最新 commit sha
latest_commit_shas = {}
for repo_url in repo_urls:
try:
# 获取仓库信息
repo = g.get_repo(repo_url)
# 记录当前时刻的最新 commit sha
latest_commit_shas[repo_url] = get_latest_commit_sha(repo)
except Exception as e:
print(f"Error: {e}")
while True:
for repo_url in repo_urls:
try:
# 获取仓库信息
repo = g.get_repo(repo_url)
# 获取最新的 commit
latest_commit = repo.get_commits()[0]
# 检查是否有新的 commit
if latest_commit.sha != latest_commit_shas[repo_url]:
message = f"订阅的仓库 {repo_url} 有修改: {latest_commit.commit.message}"
print(message)
# 发送消息到 qmsg
send_qmsg(qmsg_token, qmsg_group_key, message)
latest_commit_shas[repo_url] = latest_commit.sha
except Exception as e:
print(f"Error: {e}")
# 等待5秒再次检查
time.sleep(5)
if __name__ == "__main__":
github_token = "ghp_U*pm4"
repository_urls = ["username/main1", "username/main2", "username/main3"] # 添加更多仓库地址
qmsg_token = "qq" # 或者使用 "msg",根据你的需求选择
qmsg_group_key = "c2575a7*c89d6f"
monitor_repositories(github_token, repository_urls, qmsg_token, qmsg_group_key)