88import hudson .model .RootAction ;
99import hudson .model .UnprotectedRootAction ;
1010import hudson .security .ACL ;
11+ import hudson .triggers .Trigger ;
1112import hudson .util .AdaptedIterator ;
1213import hudson .util .Iterators .FilterIterator ;
1314import net .sf .json .JSONObject ;
@@ -145,7 +146,11 @@ protected boolean filter(GitHub g) {
145146 * 1 push to 2 branches will result in 2 pushes.
146147 */
147148 public void doIndex (StaplerRequest req ) {
148- JSONObject o = JSONObject .fromObject (req .getParameter ("payload" ));
149+ processGitHubPayload (req .getParameter ("payload" ),GitHubPushTrigger .class );
150+ }
151+
152+ public void processGitHubPayload (String payload , Class <? extends Trigger > triggerClass ) {
153+ JSONObject o = JSONObject .fromObject (payload );
149154 JSONObject repository = o .getJSONObject ("repository" );
150155 String repoUrl = repository .getString ("url" ); // something like 'https://github.com/kohsuke/foo'
151156 String repoName = repository .getString ("name" ); // 'foo' portion of the above URL
@@ -163,9 +168,9 @@ public void doIndex(StaplerRequest req) {
163168 try {
164169 GitHubRepositoryName changedRepository = new GitHubRepositoryName (matcher .group (1 ), ownerName , repoName );
165170 for (AbstractProject <?,?> job : Hudson .getInstance ().getAllItems (AbstractProject .class )) {
166- GitHubPushTrigger trigger = job .getTrigger (GitHubPushTrigger . class );
171+ GitHubTrigger trigger = ( GitHubTrigger ) job .getTrigger (triggerClass );
167172 if (trigger !=null ) {
168- LOGGER .fine ("Considering to poke " +job .getFullDisplayName ());
173+ LOGGER .info ("Considering to poke " +job .getFullDisplayName ());
169174 if (trigger .getGitHubRepositories ().contains (changedRepository ))
170175 trigger .onPost ();
171176 else
0 commit comments