blob: 83b33ce2a6f75b590d0798358bae114c839a8e50 [file] [log] [blame]
package com.googlesource.gerrit.plugins.hooks.util;
import java.io.IOException;
import com.google.gerrit.reviewdb.client.Project.NameKey;
import com.google.gerrit.server.git.GitRepositoryManager;
import com.google.inject.Inject;
import org.eclipse.jgit.lib.ObjectId;
import org.eclipse.jgit.lib.Repository;
import org.eclipse.jgit.revwalk.RevCommit;
import org.eclipse.jgit.revwalk.RevWalk;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class CommitMessageFetcher {
private static final Logger log = LoggerFactory.getLogger(
CommitMessageFetcher.class);
private final GitRepositoryManager repoManager;
@Inject
CommitMessageFetcher(GitRepositoryManager repoManager) {
this.repoManager = repoManager;
}
public String fetch(String projectName, String commitId) throws IOException {
try (Repository repo = repoManager.openRepository(new NameKey(projectName));
RevWalk revWalk = new RevWalk(repo)){
RevCommit commit = revWalk.parseCommit(ObjectId.fromString(commitId));
return commit.getFullMessage();
}
}
public String fetchGuarded(String projectName, String commitId) {
String ret = "";
try {
ret = fetch(projectName, commitId);
} catch (IOException e) {
log.error("Could not fetch commit message for commit " + commitId +
" of project " + projectName, e);
}
return ret;
}
}