in log4j-catalog/log4j-catalog-git/src/main/java/org/apache/logging/log4j/catalog/git/dao/GitCatalogDao.java [153:181]
public void write(CatalogData data) {
File localRepoFile = new File(localRepoPath);
if (!localRepoFile.exists() || !localRepoFile.canWrite()) {
throw new CatalogModificationException("Catalog is not writable: " + localRepoFile.getAbsolutePath());
}
try (FileWriter writer = new FileWriter(catalogFile)){
String text = mapper.writeValueAsString(data);
writer.write(text);
} catch (IOException ioException) {
throw new CatalogModificationException("Unable to write catalog file.", ioException);
}
try (Git git = Git.open(localRepoFile)) {
git.add().addFilepattern(catalogPath).call();
git.commit().setMessage("Catalog updated").call();
updateRepo();
PushCommand pushCommand = git.push();
if (credentialsProvider != null) {
pushCommand.setCredentialsProvider(credentialsProvider);
}
if (transportConfigCallback != null) {
pushCommand.setTransportConfigCallback(transportConfigCallback);
}
pushCommand.call();
} catch (GitAPIException | IOException ex) {
throw new CatalogModificationException("Unable to modify catalog", ex);
}
}