From ca4d98678c20e4033fdaca09ecbbf0f5952e0b84 Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Mon, 09 Jun 2014 14:10:51 -0400
Subject: [PATCH] Add repository and user/team lifecycle listener extension points

---
 src/site/plugins_extensions.mkd |   75 ++++++++++++++++++++++++++++++++++++-
 1 files changed, 73 insertions(+), 2 deletions(-)

diff --git a/src/site/plugins_extensions.mkd b/src/site/plugins_extensions.mkd
index 99b6400..0e06643 100644
--- a/src/site/plugins_extensions.mkd
+++ b/src/site/plugins_extensions.mkd
@@ -286,7 +286,7 @@
 }
 ```
 
-### Lifecycle Listener
+### Server Lifecycle Listener
 
 *SINCE 1.6.0*
 
@@ -313,4 +313,75 @@
     	log.info("Gitblit is Going Down!!");
     }
 }
-```
\ No newline at end of file
+```
+
+### Repository Lifecycle Listener
+
+*SINCE 1.6.0*
+
+You can provide a lifecycle listener to be notified when Gitblit has created or deleted a repository.
+
+```java
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import ro.fortsoft.pf4j.Extension;
+import com.gitblit.extensions.RepositoryLifeCycleListener;
+import com.gitblit.models.RepositoryModel;
+
+@Extension
+public class MyRepoLifeCycleListener extends RepositoryLifeCycleListener {
+
+    final Logger log = LoggerFactory.getLogger(getClass());
+    
+    @Override
+    public void onCreation(RepositoryModel repo) {
+    	log.info("Gitblit created {}", repo);
+    }
+
+    @Override
+    public void onDeletion(RepositoryModel repo) {
+    	log.info("Gitblit deleted {}", repo);
+    }
+}
+```
+
+### User/Team Lifecycle Listener
+
+*SINCE 1.6.0*
+
+You can provide a lifecycle listener to be notified when Gitblit has created or deleted a user or a team.
+
+```java
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import ro.fortsoft.pf4j.Extension;
+import com.gitblit.extensions.UserTeamLifeCycleListener;
+import com.gitblit.models.TeamModel;
+import com.gitblit.models.UserModel;
+
+@Extension
+public class MyUserTeamLifeCycleListener extends UserTeamLifeCycleListener {
+
+    final Logger log = LoggerFactory.getLogger(getClass());
+    
+    @Override
+    public void onCreation(UserModel user) {
+    	log.info("Gitblit created user {}", user);
+    }
+
+    @Override
+    public void onDeletion(UserModel user) {
+    	log.info("Gitblit deleted user {}", user);
+    }
+
+    @Override
+    public void onCreation(TeamModel team) {
+    	log.info("Gitblit created team {}", team);
+    }
+
+    @Override
+    public void onDeletion(TeamModel team) {
+    	log.info("Gitblit deleted team {}", team);
+    }
+}
+```

--
Gitblit v1.9.1