@@ -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