diff --git a/borgmatic/config/schema.yaml b/borgmatic/config/schema.yaml index 02bd5d6a3..d7acc1c1d 100644 --- a/borgmatic/config/schema.yaml +++ b/borgmatic/config/schema.yaml @@ -1029,6 +1029,16 @@ properties: description: | The address of your self-hosted ntfy.sh instance. example: https://ntfy.your-domain.com + username: + type: string + description: | + The username used for authentication. + example: testuser + password: + type: string + description: | + The password used for authentication. + example: fakepassword start: type: object properties: diff --git a/borgmatic/hooks/ntfy.py b/borgmatic/hooks/ntfy.py index c62b51103..fd3b9881b 100644 --- a/borgmatic/hooks/ntfy.py +++ b/borgmatic/hooks/ntfy.py @@ -56,10 +56,19 @@ def ping_monitor(hook_config, config_filename, state, monitoring_log_level, dry_ 'X-Tags': state_config.get('tags'), } + username = hook_config.get('username') + password = hook_config.get('password') + + auth = ( + requests.auth.HTTPBasicAuth(username, password) + if (username and password) is not None + else None + ) + if not dry_run: logging.getLogger('urllib3').setLevel(logging.ERROR) try: - response = requests.post(f'{base_url}/{topic}', headers=headers) + response = requests.post(f'{base_url}/{topic}', headers=headers, auth=auth) if not response.ok: response.raise_for_status() except requests.exceptions.RequestException as error: