mirror of
https://github.com/BreizhHardware/ntfy_alerts.git
synced 2026-01-18 16:37:28 +01:00
Add docker login possibility
This commit is contained in:
@@ -19,6 +19,8 @@ ENV USERNAME="" \
|
||||
NTFY_URL="" \
|
||||
GHNTFY_TIMEOUT="3600" \
|
||||
GHNTFY_TOKEN="" \
|
||||
DOCKER_USERNAME="" \
|
||||
DOCKER_PASSWORD="" \
|
||||
FLASK_ENV=production
|
||||
|
||||
# Exposer le port 5000 pour l'API et le port 80 pour le serveur web
|
||||
|
||||
@@ -31,6 +31,8 @@ services:
|
||||
- NTFY_URL=ntfy_url # Required
|
||||
- GHNTFY_TIMEOUT=timeout # Default is 3600 (1 hour)
|
||||
- GHNTFY_TOKEN= # Default is empty (Github token)
|
||||
- DOCKER_USERNAME= # Default is empty (Docker Hub username)
|
||||
- DOCKER_PASSWORD= # Default is empty (Docker Hub password)
|
||||
volumes:
|
||||
- /path/to/github-ntfy:/github-ntfy/
|
||||
ports:
|
||||
|
||||
28
ntfy.py
28
ntfy.py
@@ -14,6 +14,32 @@ github_headers = {}
|
||||
if github_token:
|
||||
github_headers['Authorization'] = f"token {github_token}"
|
||||
|
||||
docker_username = os.environ.get('DOCKER_USERNAME')
|
||||
docker_password = os.environ.get('DOCKER_PASSWORD')
|
||||
|
||||
|
||||
def create_dockerhub_token(username, password):
|
||||
url = "https://hub.docker.com//v2/users/login"
|
||||
headers = {"Content-Type": "application/json"}
|
||||
data = json.dumps({"username": username, "password": password})
|
||||
|
||||
response = requests.post(url, headers=headers, data=data)
|
||||
|
||||
if response.status_code == 200:
|
||||
token = response.json().get("token")
|
||||
if token:
|
||||
return token
|
||||
else:
|
||||
logger.error("Failed to get Docker Hub token.")
|
||||
else:
|
||||
logger.error(f"Failed to get Docker Hub token. Status code: {response.status_code}")
|
||||
return None
|
||||
|
||||
|
||||
docker_token = create_dockerhub_token(docker_username, docker_password)
|
||||
docker_header = {}
|
||||
if docker_token:
|
||||
docker_header['Authorization'] = f"Bearer {docker_token}"
|
||||
# Connecting to the database to store previous versions
|
||||
conn = sqlite3.connect('/github-ntfy/ghntfy_versions.db', check_same_thread=False)
|
||||
cursor = conn.cursor()
|
||||
@@ -88,7 +114,7 @@ def get_latest_docker_releases(watched_repos):
|
||||
releases = []
|
||||
for repo in watched_repos:
|
||||
url = f"https://hub.docker.com/v2/repositories/{repo_name}/tags/latest"
|
||||
response = requests.get(url)
|
||||
response = requests.get(url, headers=docker_header)
|
||||
if response.status_code == 200:
|
||||
release_info = response.json()
|
||||
release_date=release_info["last_upated"]
|
||||
|
||||
Reference in New Issue
Block a user