Add additional topics, set them to default
This commit is contained in:
parent
009fafb7a5
commit
f80d8b0751
59
buzon/app.py
59
buzon/app.py
@ -40,6 +40,15 @@ logging.basicConfig(level="INFO")
|
|||||||
async def startup():
|
async def startup():
|
||||||
"""Starting up buzon"""
|
"""Starting up buzon"""
|
||||||
buzon_logger.info('Starting up')
|
buzon_logger.info('Starting up')
|
||||||
|
|
||||||
|
# TODO: Some how do this in the models in config/carrier.py
|
||||||
|
if buzon_config.mqtt_topic_issues is None:
|
||||||
|
buzon_config.mqtt_topic_issues = buzon_config.mqtt_topic_default
|
||||||
|
if buzon_config.mqtt_topic_forks is None:
|
||||||
|
buzon_config.mqtt_topic_forks = buzon_config.mqtt_topic_default
|
||||||
|
if buzon_config.mqtt_topic_commits is None:
|
||||||
|
buzon_config.mqtt_topic_commits = buzon_config.mqtt_topic_default
|
||||||
|
|
||||||
if buzon_mode == "test":
|
if buzon_mode == "test":
|
||||||
buzon_logger.warning('No MQTT messages will be sent in testing mode.')
|
buzon_logger.warning('No MQTT messages will be sent in testing mode.')
|
||||||
else:
|
else:
|
||||||
@ -68,7 +77,7 @@ async def root():
|
|||||||
"""
|
"""
|
||||||
What's at the root? Nothing.
|
What's at the root? Nothing.
|
||||||
"""
|
"""
|
||||||
return {"message": "buzon, a carrier for gitea webhooks"}
|
return {"message": "buzon, a carrier for gitea and forgejo webhooks"}
|
||||||
|
|
||||||
@app.post(
|
@app.post(
|
||||||
'/push-event',
|
'/push-event',
|
||||||
@ -93,3 +102,51 @@ async def push_event(event_data: EventPush):
|
|||||||
)
|
)
|
||||||
|
|
||||||
return processor_event
|
return processor_event
|
||||||
|
|
||||||
|
@app.post(
|
||||||
|
'/fork-event',
|
||||||
|
response_model=Responder,
|
||||||
|
responses={201: {'model': Responder}, 400: {'model': Responder}}
|
||||||
|
)
|
||||||
|
async def fork_event(event_data: EventPush):
|
||||||
|
"""
|
||||||
|
Fork events for repositories
|
||||||
|
|
||||||
|
This comes back as JSONResponse.
|
||||||
|
"""
|
||||||
|
processor_event = processor.process_respond(
|
||||||
|
buzon_config.mqtt_topic_forks,
|
||||||
|
event_data,
|
||||||
|
buzon_mqtt,
|
||||||
|
buzon_config,
|
||||||
|
buzon_logger,
|
||||||
|
buzon_mode,
|
||||||
|
retries=5,
|
||||||
|
sleep=10
|
||||||
|
)
|
||||||
|
|
||||||
|
return processor_event
|
||||||
|
|
||||||
|
@app.post(
|
||||||
|
'/issue-event',
|
||||||
|
response_model=Responder,
|
||||||
|
responses={201: {'model': Responder}, 400: {'model': Responder}}
|
||||||
|
)
|
||||||
|
async def issue_event(event_data: EventPush):
|
||||||
|
"""
|
||||||
|
Issues event for repositories that have issue activity
|
||||||
|
|
||||||
|
This comes back as JSONResponse.
|
||||||
|
"""
|
||||||
|
processor_event = processor.process_respond(
|
||||||
|
buzon_config.mqtt_topic_issues,
|
||||||
|
event_data,
|
||||||
|
buzon_mqtt,
|
||||||
|
buzon_config,
|
||||||
|
buzon_logger,
|
||||||
|
buzon_mode,
|
||||||
|
retries=5,
|
||||||
|
sleep=10
|
||||||
|
)
|
||||||
|
|
||||||
|
return processor_event
|
||||||
|
@ -6,7 +6,7 @@ Carrier module
|
|||||||
|
|
||||||
import typing
|
import typing
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
from pydantic import BaseModel
|
from pydantic import BaseModel, model_validator
|
||||||
|
|
||||||
__all__ = [
|
__all__ = [
|
||||||
'Responder',
|
'Responder',
|
||||||
@ -31,7 +31,7 @@ class Responder(BaseModel):
|
|||||||
"""
|
"""
|
||||||
confirm: bool
|
confirm: bool
|
||||||
|
|
||||||
class Configuration(BaseModel):
|
class Configuration(BaseModel, validate_assignment=True):
|
||||||
"""
|
"""
|
||||||
Configuration stuff
|
Configuration stuff
|
||||||
"""
|
"""
|
||||||
@ -40,8 +40,10 @@ class Configuration(BaseModel):
|
|||||||
mqtt_port: int
|
mqtt_port: int
|
||||||
mqtt_user: str
|
mqtt_user: str
|
||||||
mqtt_password: str
|
mqtt_password: str
|
||||||
mqtt_topic_commits: str
|
|
||||||
mqtt_topic_default: str
|
mqtt_topic_default: str
|
||||||
|
mqtt_topic_commits: typing.Optional[str] = None
|
||||||
|
mqtt_topic_forks: typing.Optional[str] = None
|
||||||
|
mqtt_topic_issues: typing.Optional[str] = None
|
||||||
mqtt_qos: int
|
mqtt_qos: int
|
||||||
mode: typing.Literal['test', 'prod']
|
mode: typing.Literal['test', 'prod']
|
||||||
|
|
||||||
|
@ -4,8 +4,10 @@ mqtt_host: mq.example.com
|
|||||||
mqtt_port: 1883
|
mqtt_port: 1883
|
||||||
mqtt_user: buzon
|
mqtt_user: buzon
|
||||||
mqtt_password: buzon
|
mqtt_password: buzon
|
||||||
mqtt_topic_commits: commits
|
|
||||||
mqtt_topic_default: default
|
mqtt_topic_default: default
|
||||||
|
#mqtt_topic_commits: default
|
||||||
|
#mqtt_topic_forks: default
|
||||||
|
#mqtt_topic_issues: default
|
||||||
mqtt_qos: 2
|
mqtt_qos: 2
|
||||||
|
|
||||||
loglevel: INFO
|
loglevel: INFO
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
[project]
|
[project]
|
||||||
name = "buzon"
|
name = "buzon"
|
||||||
version = "0.1.0"
|
version = "0.2.1"
|
||||||
description = "MQTT webhook delivery service"
|
description = "MQTT webhook delivery service"
|
||||||
readme = "README.md"
|
readme = "README.md"
|
||||||
authors = [
|
authors = [
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
%global pyname buzon
|
%global pyname buzon
|
||||||
|
|
||||||
Name: python-%{pyname}
|
Name: python-%{pyname}
|
||||||
Version: 0.2.0
|
Version: 0.2.1
|
||||||
Release: 1%{?dist}
|
Release: 1%{?dist}
|
||||||
Summary: MQTT Webhook Delivery Service
|
Summary: MQTT Webhook Delivery Service
|
||||||
|
|
||||||
@ -55,6 +55,9 @@ install -pm 0644 rpm/buzon.sysconfig %{buildroot}%{_sysconfdir}/sysconfig/%{pyna
|
|||||||
%{_sysconfdir}/sysconfig/%{pyname}
|
%{_sysconfdir}/sysconfig/%{pyname}
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Sat Dec 21 2024 Louis Abel <label@resf.org> - 0.2.1-1
|
||||||
|
- Add additional fields for topics
|
||||||
|
|
||||||
* Wed Dec 18 2024 Louis Abel <label@resf.org> - 0.1.0-1
|
* Wed Dec 18 2024 Louis Abel <label@resf.org> - 0.1.0-1
|
||||||
- Initial buzon spec file
|
- Initial buzon spec file
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user