com karma: Use the author/tagged date as timestamp to go into the e-mail header.: lib/Git/PostReceiveHook.php lib/Mail.php
| From: | Derick Rethans | Date: | Tue, 20 Mar 2012 09:05:49 +0000 |
| Subject: | com karma: Use the author/tagged date as timestamp to go into the e-mail header.: lib/Git/PostReceiveHook.php lib/Mail.php | ||
| References: | 1 | Groups: | php.cvs |
| Request: | Send a blank email to php-cvs+get-68043@lists.php.net to get a copy of this message | ||
Commit: 01fda1b87d24f4e1a51c4ca7c6f55a60f63c4ab2
Author: Derick Rethans(github@derickrethans.nl) Tue, 20 Mar 2012 09:04:29 +0000
Committer: Derick Rethans(github@derickrethans.nl) Tue, 20 Mar 2012 09:05:42 +0000
Parents: f05ac19fc6481815958655f483ef8d0d4fbc3bbe
Link: http://git.php.net/?p=karma.git;a=commitdiff;h=01fda1b87d24f4e1a51c4ca7c6f55a60f63c4ab2
Log:
Use the author/tagged date as timestamp to go into the e-mail header.
This makes the emails appear in chronological order in the threads.
Changed paths:
M lib/Git/PostReceiveHook.php
M lib/Mail.php
Diff:
01fda1b87d24f4e1a51c4ca7c6f55a60f63c4ab2
diff --git a/lib/Git/PostReceiveHook.php b/lib/Git/PostReceiveHook.php
index 6fd1a2f..60c0a33 100644
--- a/lib/Git/PostReceiveHook.php
+++ b/lib/Git/PostReceiveHook.php
@@ -258,6 +258,7 @@ class PostReceiveHook extends ReceiveHook
$shortname = str_replace('refs/tags/', '', $name);
$mail = new \Mail();
$mail->setSubject($this->emailPrefix . 'tag ' .
$this->getRepositoryShortName() . ': ' . $status[$changeType] . ' tag ' .
$shortname);
+ $mail->setTimestamp(strtotime($info['tagger_date']));
$message = 'Tag ' . $shortname . ' in ' . $this->getRepositoryName()
. ' was ' . $status[$changeType] . 'd' .
(($changeType != self::TYPE_CREATED) ? ' from ' . $oldrev : '' ) .
"\n";
@@ -501,6 +502,7 @@ class PostReceiveHook extends ReceiveHook
$mail = new \Mail();
$mail->setSubject($this->emailPrefix . 'com ' .
$this->getRepositoryShortName() . ': ' . $info['subject'] . ': '.
implode(' ', array_keys($paths)));
+ $mail->setTimestamp(strtotime($info['author_date']));
$message = '';
diff --git a/lib/Mail.php b/lib/Mail.php
index 15b90e8..7c63a41 100644
--- a/lib/Mail.php
+++ b/lib/Mail.php
@@ -12,6 +12,7 @@ class Mail
private $boundary = '';
private $uniqId = '';
private $replyTo = [];
+ private $timestamp = null;
const CRLF = "\r\n";
@@ -100,6 +101,15 @@ class Mail
}
/**
+ * Set timestamp
+ * @param string $timestamp timestamp
+ */
+ public function setTimestamp($timestamp)
+ {
+ $this->timestamp = trim($timestamp);
+ }
+
+ /**
* Set mail body text
* @param string $message body text
*/
@@ -157,7 +167,7 @@ class Mail
$headers[] = $this->makeHeader('In-Reply-To', $replyTo);
}
$headers[] = $this->makeHeader('MIME-Version', '1.0');
- $headers[] = $this->makeHeader('Date', date(DATE_RFC2822, time()));
+ $headers[] = $this->makeHeader('Date', date(DATE_RFC2822, $this->timestamp
?: time()));
if ($this->multipart) {
$this->boundary = sha1($this->uniqId);
$headers[] = $this->makeHeader('Content-Type', 'multipart/mixed;
boundary="' . $this->boundary . '"');
@@ -212,4 +222,4 @@ class Mail
return mail($receivers, $subject, $body, $headers);
}
-}
\ No newline at end of file
+}