(refs #121)Create WebHookPayload only when web hook has been registered.

This commit is contained in:
takezoe
2013-10-06 23:22:29 +09:00
parent b92b429ffa
commit e94411ebeb
3 changed files with 21 additions and 17 deletions

View File

@@ -137,13 +137,16 @@ trait RepositorySettingsControllerBase extends ControllerBase with FlashMapSuppo
.setMaxCount(3)
.call.iterator.asScala.map(new CommitInfo(_))
callWebHook(repository.owner, repository.name,
val webHookURLs = getWebHookURLs(repository.owner, repository.name)
if(webHookURLs.nonEmpty){
callWebHook(repository.owner, repository.name, webHookURLs,
WebHookPayload(
git,
"refs/heads/" + repository.repository.defaultBranch,
repository,
commits.toList,
getAccountByUserName(repository.owner).get))
}
flash += "info" -> "Test payload deployed!"
}

View File

@@ -29,7 +29,7 @@ trait WebHookService {
def deleteWebHookURL(owner: String, repository: String, url :String): Unit =
Query(WebHooks).filter(_.byPrimaryKey(owner, repository, url)).delete
def callWebHook(owner: String, repository: String, payload: WebHookPayload): Unit = {
def callWebHook(owner: String, repository: String, webHookURLs: List[WebHook], payload: WebHookPayload): Unit = {
import org.json4s._
import org.json4s.jackson.Serialization
import org.json4s.jackson.Serialization.{read, write}
@@ -41,8 +41,6 @@ trait WebHookService {
logger.debug("start callWebHook")
implicit val formats = Serialization.formats(NoTypeHints)
val webHookURLs = getWebHookURLs(owner, repository)
if(webHookURLs.nonEmpty){
val json = write(payload)
val httpClient = new DefaultHttpClient()

View File

@@ -129,6 +129,8 @@ class CommitLogHook(owner: String, repository: String, userName: String, baseURL
}
// call web hook
val webHookURLs = getWebHookURLs(owner, repository)
if(webHookURLs.nonEmpty){
val payload = WebHookPayload(
git,
command.getRefName,
@@ -136,7 +138,8 @@ class CommitLogHook(owner: String, repository: String, userName: String, baseURL
newCommits,
getAccountByUserName(owner).get)
callWebHook(owner, repository, payload)
callWebHook(owner, repository, webHookURLs, payload)
}
}
}
// update repository last modified time.