@@ -95,17 +95,56 @@ def format_repo_event(repo, action):
9595 updated_at = convert_to_utc4 (repo .get ("updated_at" ))
9696 url = repo .get ("html_url" , "" )
9797
98- subject = f"[GitHub Alert] Repository { action } : { repo_name } "
99- body = (
100- f"A repository was { action } in your GitHub organization.\n \n "
101- f"π Repository Name: { repo_name } \n "
102- f"{ visibility_icon } \n "
103- f"π€ Owner: { owner } \n "
104- f"πΏ Default branch: { default_branch } \n "
105- f"π Created at: { created_at } \n "
106- f"π Last updated: { updated_at } \n "
107- f"π URL: { url } \n "
108- )
98+ # Special cases for visibility changes
99+ if action == "publicized" :
100+ subject = f"[GitHub Alert] Repository changed from PRIVATE β PUBLIC: { repo_name } "
101+ body = (
102+ f"The repository visibility has been changed.\n \n "
103+ f"β‘οΈ Now PUBLIC\n \n "
104+ f"π Repository Name: { repo_name } \n "
105+ f"{ visibility_icon } \n "
106+ f"π€ Owner: { owner } \n "
107+ f"πΏ Default branch: { default_branch } \n "
108+ f"π Created at: { created_at } \n "
109+ f"π Last updated: { updated_at } \n "
110+ f"π URL: { url } \n "
111+ )
112+ elif action == "privatized" :
113+ subject = f"[GitHub Alert] Repository changed from PUBLIC β PRIVATE: { repo_name } "
114+ body = (
115+ f"The repository visibility has been changed.\n \n "
116+ f"β‘οΈ Now PRIVATE\n \n "
117+ f"π Repository Name: { repo_name } \n "
118+ f"{ visibility_icon } \n "
119+ f"π€ Owner: { owner } \n "
120+ f"πΏ Default branch: { default_branch } \n "
121+ f"π Created at: { created_at } \n "
122+ f"π Last updated: { updated_at } \n "
123+ f"π URL: { url } \n "
124+ )
125+ else :
126+ # Generic events
127+ action_labels = {
128+ "created" : "Repository created" ,
129+ "deleted" : "Repository deleted" ,
130+ "archived" : "Repository archived" ,
131+ "unarchived" : "Repository unarchived" ,
132+ "edited" : "Repository edited" ,
133+ "renamed" : "Repository renamed" ,
134+ "transferred" : "Repository transferred"
135+ }
136+ subject = f"[GitHub Alert] { action_labels .get (action , action )} : { repo_name } "
137+ body = (
138+ f"A repository event occurred: { action_labels .get (action , action )} \n \n "
139+ f"π Repository Name: { repo_name } \n "
140+ f"{ visibility_icon } \n "
141+ f"π€ Owner: { owner } \n "
142+ f"πΏ Default branch: { default_branch } \n "
143+ f"π Created at: { created_at } \n "
144+ f"π Last updated: { updated_at } \n "
145+ f"π URL: { url } \n "
146+ )
147+
109148 return subject , body
110149
111150# --- GitHub Webhook + Health Handlers ---
@@ -140,6 +179,7 @@ def github_webhook():
140179 "privatized" , # public β private
141180 "archived" ,
142181 "unarchived" ,
182+ "edited" ,
143183 "renamed" ,
144184 "transferred"
145185 ]
0 commit comments