blob: b34bd55bb18281d1a05b33b5a7eaf9d2ef0d7f38 [file] [log] [blame]
package com.googlesource.gerrit.plugins.its.base.util;
import com.google.gerrit.entities.Project;
import com.google.gerrit.server.git.GitRepositoryManager;
import com.google.inject.Inject;
import java.io.IOException;
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(Project.nameKey(projectName))) {
try (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;
}
}