사용자 도구

사이트 도구


git:gitblit

문서의 이전 판입니다!


Gitblit

Hook

기본 API

import com.gitblit.GitBlit
import com.gitblit.Keys
import com.gitblit.models.RepositoryModel
import com.gitblit.models.TeamModel
import com.gitblit.models.UserModel
import com.gitblit.utils.JGitUtils
import java.text.SimpleDateFormat
import org.eclipse.jgit.lib.Repository
import org.eclipse.jgit.lib.Config
import org.eclipse.jgit.revwalk.RevCommit
import org.eclipse.jgit.transport.ReceiveCommand
import org.eclipse.jgit.transport.ReceiveCommand.Result
import org.slf4j.Logger

커밋/수정 커밋 메시지 및 파일 정보 확보

Exporting files on post-receive hook. 대한 답변 참조

Repository r = gitblit.getRepository(repository.name)
 
for (ReceiveCommand command : commands) {
    def updateType = command.type
    def updatedRef = command.refName
 
    logger.info("## ${command.type} - ${command.refName}")
 
    def commits = JGitUtils.getRevLog(r, command.oldId.name, command.newId.name).reverse()
 
    switch (command.type) {
        case ReceiveCommand.Type.CREATE:
        case ReceiveCommand.Type.UPDATE:
        case ReceiveCommand.Type.UPDATE_NONFASTFORWARD:
            for (def commit in commits) {
                // commit : org.eclipse.jgit.revwalk.RevCommit
                logger.info("## commit.fullMessage : ${commit.fullMessage}") // 커밋 로그 메시지
 
                def files = JGitUtils.getFilesInCommit(r, commit)
 
                files.each { file ->
                    // 커밋/수정된 파일 정보 file : com.gitblit.models.PathModel
                    logger.info("## Commit File ${file.name} - ${file.path}")
                }
            }
    }
}

Commit Reject

boolean success = true
 
commands.each { ReceiveCommand command ->
    if (...) {
        command.setResult(Result.REJECTED_OTHER_REASON, "${repository.name} 리포지토리에 커밋 실패");
        success = false
    }
}
 
....
 
return success
git/gitblit.1369638671.txt.gz · 마지막으로 수정됨: 2013/05/27 16:11 저자 kwon37xi