class GitManager {

    public Revision createPipelineRevision(Pipeline pipeline,
                                           String revisionName,
                                           String commit,
                                           String message,
                                           String releaseDescription) throws GitClientException {
        Assert.isTrue(GitUtils.checkGitNaming(revisionName),
                messageHelper.getMessage(MessageConstants.ERROR_INVALID_PIPELINE_REVISION_NAME, revisionName));
        GitlabClient client = this.getGitlabClientForPipeline(pipeline);
        GitTagEntry gitTagEntry = client.createRepositoryRevision(revisionName, commit, message, releaseDescription);
        return new Revision(gitTagEntry.getName(),
                gitTagEntry.getMessage(),
                parseGitDate(gitTagEntry.getCommit().getAuthoredDate()), gitTagEntry.getCommit().getId(),
                gitTagEntry.getCommit().getAuthorName(), gitTagEntry.getCommit().getAuthorEmail());
    }

}