4040import org .eclipse .jgit .transport .URIish ;
4141import org .jenkinsci .plugins .multiplescms .MultiSCM ;
4242import org .kohsuke .github .GHException ;
43- import org .kohsuke .github .GHHook ;
4443import org .kohsuke .github .GHRepository ;
4544import org .kohsuke .stapler .DataBoundConstructor ;
4645import org .kohsuke .stapler .StaplerRequest ;
5049 *
5150 * @author Kohsuke Kawaguchi
5251 */
53- public class GitHubPushTrigger extends Trigger <AbstractProject > implements GitHubTrigger , Runnable {
52+ public class GitHubPushTrigger extends Trigger <AbstractProject <?,?>> implements GitHubTrigger {
5453 @ DataBoundConstructor
5554 public GitHubPushTrigger () {
5655 }
5756
5857 /**
5958 * Called when a POST is made.
6059 */
60+ @ Deprecated
6161 public void onPost () {
62- getDescriptor ().queue .execute (this );
62+ onPost ("" );
63+ }
64+
65+ /**
66+ * Called when a POST is made.
67+ */
68+ public void onPost (String triggeredByUser ) {
69+ final String pushBy = triggeredByUser ;
70+ getDescriptor ().queue .execute (new Runnable () {
71+ public void run () {
72+ try {
73+ StreamTaskListener listener = new StreamTaskListener (getLogFile ());
74+
75+ try {
76+ PrintStream logger = listener .getLogger ();
77+ long start = System .currentTimeMillis ();
78+ logger .println ("Started on " + DateFormat .getDateTimeInstance ().format (new Date ()));
79+ boolean result = job .poll (listener ).hasChanges ();
80+ logger .println ("Done. Took " + Util .getTimeSpanString (System .currentTimeMillis ()-start ));
81+ if (result ) {
82+ logger .println ("Changes found" );
83+ job .scheduleBuild (new GitHubPushCause (pushBy ));
84+ } else {
85+ logger .println ("No changes" );
86+ }
87+ } finally {
88+ listener .close ();
89+ }
90+ } catch (IOException e ) {
91+ LOGGER .log (Level .SEVERE ,"Failed to record SCM polling" ,e );
92+ }
93+ }
94+ });
6395 }
6496
6597 /**
@@ -69,30 +101,6 @@ public File getLogFile() {
69101 return new File (job .getRootDir (),"github-polling.log" );
70102 }
71103
72- public void run () {
73- try {
74- StreamTaskListener listener = new StreamTaskListener (getLogFile ());
75-
76- try {
77- PrintStream logger = listener .getLogger ();
78- long start = System .currentTimeMillis ();
79- logger .println ("Started on " + DateFormat .getDateTimeInstance ().format (new Date ()));
80- boolean result = job .poll (listener ).hasChanges ();
81- logger .println ("Done. Took " + Util .getTimeSpanString (System .currentTimeMillis ()-start ));
82- if (result ) {
83- logger .println ("Changes found" );
84- job .scheduleBuild (new GitHubPushCause ());
85- } else {
86- logger .println ("No changes" );
87- }
88- } finally {
89- listener .close ();
90- }
91- } catch (IOException e ) {
92- LOGGER .log (Level .SEVERE ,"Failed to record SCM polling" ,e );
93- }
94- }
95-
96104 /**
97105 * Does this project read from a repository of the given user name and the
98106 * given repository name?
@@ -131,7 +139,7 @@ protected void addRepositories(Set<GitHubRepositoryName> r, SCM scm) {
131139 }
132140
133141 @ Override
134- public void start (AbstractProject project , boolean newInstance ) {
142+ public void start (AbstractProject <?,?> project , boolean newInstance ) {
135143 super .start (project , newInstance );
136144 if (newInstance && getDescriptor ().isManageHook ()) {
137145 // make sure we have hooks installed. do this lazily to avoid blocking the UI thread.
0 commit comments