check last updated time
This commit is contained in:
parent
906fd5bb8d
commit
2ae6c03618
2 changed files with 9 additions and 10 deletions
17
run.py
17
run.py
|
@ -1,22 +1,18 @@
|
||||||
import requests
|
import requests
|
||||||
from rocketry import Rocketry
|
from rocketry import Rocketry
|
||||||
from rocketry.conds import every
|
from rocketry.conds import every
|
||||||
|
from sec import GITLAB_API_TOKEN, DISCORD_WEBHOOK_URL
|
||||||
|
|
||||||
# GitLab API token and repository details
|
|
||||||
GITLAB_API_TOKEN = 'glpat-8i4z8VbfL9a76YxFqHHC'
|
|
||||||
GITLAB_API_URL = 'https://gitlab.com/api/v4/projects/codebreaker-challenge%2F2024%2Foutreach-2024/issues?state=opened'
|
GITLAB_API_URL = 'https://gitlab.com/api/v4/projects/codebreaker-challenge%2F2024%2Foutreach-2024/issues?state=opened'
|
||||||
GITLAB_PROJECT_URL = 'https://gitlab.com/codebreaker-challenge/2024/outreach-2024'
|
GITLAB_PROJECT_URL = 'https://gitlab.com/codebreaker-challenge/2024/outreach-2024'
|
||||||
|
|
||||||
# Discord webhook URL
|
|
||||||
DISCORD_WEBHOOK_URL = 'https://discord.com/api/webhooks/1285276886871834655/0pRndW9BZjUUmLlcELIT1fLkOXKfe-FEX3WDpoPZT7MMvKvK9V_dFo7FkDfB2W3CRghV'
|
|
||||||
|
|
||||||
# Headers for GitLab API request
|
# Headers for GitLab API request
|
||||||
headers = {
|
headers = {
|
||||||
'Private-Token': GITLAB_API_TOKEN
|
'Private-Token': GITLAB_API_TOKEN
|
||||||
}
|
}
|
||||||
|
|
||||||
# Set to keep track of reported issues
|
# Dictionary to keep track of reported issues and their update times
|
||||||
reported_issues = set()
|
reported_issues = {}
|
||||||
|
|
||||||
# Function to send a message to Discord
|
# Function to send a message to Discord
|
||||||
def send_discord_notification(title, email, subject, message, issue_url):
|
def send_discord_notification(title, email, subject, message, issue_url):
|
||||||
|
@ -35,13 +31,15 @@ def check_for_new_issues():
|
||||||
if response.status_code == 200:
|
if response.status_code == 200:
|
||||||
issues = response.json()
|
issues = response.json()
|
||||||
for issue in issues:
|
for issue in issues:
|
||||||
if issue['id'] not in reported_issues:
|
issue_id = issue['id']
|
||||||
|
updated_at = issue['updated_at']
|
||||||
|
if issue_id not in reported_issues or reported_issues[issue_id] != updated_at:
|
||||||
title = issue['title']
|
title = issue['title']
|
||||||
email, subject = title.split(' - ', 1)
|
email, subject = title.split(' - ', 1)
|
||||||
message = issue['description'][:50] + '...' if len(issue['description']) > 50 else issue['description']
|
message = issue['description'][:50] + '...' if len(issue['description']) > 50 else issue['description']
|
||||||
issue_url = f"{GITLAB_PROJECT_URL}/-/issues/{issue['iid']}"
|
issue_url = f"{GITLAB_PROJECT_URL}/-/issues/{issue['iid']}"
|
||||||
send_discord_notification(title, email, subject, message, issue_url)
|
send_discord_notification(title, email, subject, message, issue_url)
|
||||||
reported_issues.add(issue['id'])
|
reported_issues[issue_id] = updated_at
|
||||||
else:
|
else:
|
||||||
print(f"Failed to fetch issues. Status code: {response.status_code}")
|
print(f"Failed to fetch issues. Status code: {response.status_code}")
|
||||||
|
|
||||||
|
@ -56,4 +54,3 @@ def scheduled_task():
|
||||||
# Run the Rocketry app
|
# Run the Rocketry app
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
app.run()
|
app.run()
|
||||||
|
|
||||||
|
|
2
sec.py
Normal file
2
sec.py
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
GITLAB_API_TOKEN = 'glpat-8i4z8VbfL9a76YxFqHHC'
|
||||||
|
DISCORD_WEBHOOK_URL = 'https://discord.com/api/webhooks/1285276886871834655/0pRndW9BZjUUmLlcELIT1fLkOXKfe-FEX3WDpoPZT7MMvKvK9V_dFo7FkDfB2W3CRghV'
|
Loading…
Reference in a new issue