forked from importers/git-importer
Add monitor for commits
This commit is contained in:
parent
39fde7744a
commit
1fc466d15b
37
opensuse-monitor.py
Executable file
37
opensuse-monitor.py
Executable file
@ -0,0 +1,37 @@
|
||||
#!/usr/bin/python3
|
||||
import json
|
||||
from pathlib import Path
|
||||
import pika
|
||||
import sys
|
||||
|
||||
MY_TASKS_DIR = Path(__file__).parent / "tasks"
|
||||
|
||||
connection = pika.BlockingConnection(pika.URLParameters("amqps://opensuse:opensuse@rabbit.opensuse.org"))
|
||||
channel = connection.channel()
|
||||
|
||||
channel.exchange_declare(exchange='pubsub', exchange_type='topic', passive=True, durable=True)
|
||||
|
||||
result = channel.queue_declare("", exclusive=True)
|
||||
queue_name = result.method.queue
|
||||
|
||||
channel.queue_bind(exchange='pubsub',
|
||||
queue=queue_name,routing_key='#')
|
||||
|
||||
print(' [*] Waiting for logs. To exit press CTRL+C')
|
||||
|
||||
def callback(ch, method, properties, body):
|
||||
if method.routing_key not in ("opensuse.obs.package.commit",):
|
||||
return
|
||||
body = json.loads(body)
|
||||
if 'project' in body and 'package' in body and body['project'] == 'openSUSE:Factory':
|
||||
if '/' in body['package']:
|
||||
return
|
||||
|
||||
(MY_TASKS_DIR / body['package']).touch()
|
||||
print(" [x] %r:%r" % (method.routing_key, body['package']))
|
||||
|
||||
channel.basic_consume(queue_name,
|
||||
callback,
|
||||
auto_ack=True)
|
||||
|
||||
channel.start_consuming()
|
Loading…
Reference in New Issue
Block a user