This is an automated email from the ASF dual-hosted git repository. wave pushed a commit to branch notify-users-on-pat in repository https://gitbox.apache.org/repos/asf/tooling-trusted-releases.git
commit 3d9fb43e35c5af342745d22ce41b8bb43ab66300 Author: Dave Fisher <[email protected]> AuthorDate: Wed Jan 21 13:48:28 2026 -0800 Notify users on authentication credentials change --- atr/storage/writers/tokens.py | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/atr/storage/writers/tokens.py b/atr/storage/writers/tokens.py index fe57158..2760582 100644 --- a/atr/storage/writers/tokens.py +++ b/atr/storage/writers/tokens.py @@ -25,6 +25,7 @@ import sqlmodel import atr.db as db import atr.jwtoken as jwtoken +import atr.mail as mail import atr.models.sql as sql import atr.storage as storage @@ -65,6 +66,15 @@ class FoundationCommitter(GeneralPublic): ) self.__data.add(pat) await self.__data.commit() + await mail.send( + mail.Message( + email_sender="[email protected]", + email_recipient=f"{uid}@apache.org", + subject="New API Token Created", + body=f"A new API token '{label or 'unlabeled'}' was created for your account. " + "If you did not create this token, please revoke it immediately.", + ) + ) return pat async def delete_token(self, token_id: int) -> None: @@ -81,6 +91,15 @@ class FoundationCommitter(GeneralPublic): asf_uid=self.__asf_uid, token_id=token_id, ) + await mail.send( + mail.Message( + email_sender="[email protected]", + email_recipient=f"{self.__asf_uid}@apache.org", + subject="Deleted API Token", + body="An API token was deleted from your account. " + "If you did not delete any tokens, please checkl your account immediately.", + ) + ) async def issue_jwt(self, pat_text: str) -> str: pat_hash = hashlib.sha3_256(pat_text.encode()).hexdigest() --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
