@Service @Transactional public class GitServiceImpl extends net.nemerosa.ontrack.extension.scm.service.AbstractSCMChangeLogService<GitConfiguration,GitBuildInfo,GitChangeLogIssue> implements GitService, net.nemerosa.ontrack.job.orchestrator.JobOrchestratorSupplier
| Constructor and Description |
|---|
GitServiceImpl(net.nemerosa.ontrack.model.structure.StructureService structureService,
net.nemerosa.ontrack.model.structure.PropertyService propertyService,
net.nemerosa.ontrack.job.JobScheduler jobScheduler,
net.nemerosa.ontrack.model.security.SecurityService securityService,
net.nemerosa.ontrack.tx.TransactionService transactionService,
net.nemerosa.ontrack.model.support.ApplicationLogService applicationLogService,
net.nemerosa.ontrack.git.GitRepositoryClientFactory gitRepositoryClientFactory,
BuildGitCommitLinkService buildGitCommitLinkService,
java.util.Collection<GitConfigurator> gitConfigurators,
net.nemerosa.ontrack.extension.scm.service.SCMUtilsService scmService) |
| Modifier and Type | Method and Description |
|---|---|
protected <T> void |
buildSync(net.nemerosa.ontrack.model.structure.Branch branch,
GitBranchConfiguration branchConfiguration,
net.nemerosa.ontrack.job.JobRunListener listener) |
GitChangeLog |
changeLog(net.nemerosa.ontrack.extension.api.model.BuildDiffRequest request)
Change log
|
java.util.stream.Stream<net.nemerosa.ontrack.job.JobRegistration> |
collectJobRegistrations() |
java.lang.String |
diff(GitChangeLog changeLog,
java.util.List<java.lang.String> patterns)
Gets a diff on a list of file changes, filtering the changes using ANT-like patterns
|
java.util.Optional<java.lang.String> |
download(net.nemerosa.ontrack.model.structure.Branch branch,
java.lang.String path) |
void |
forEachConfiguredBranch(java.util.function.BiConsumer<net.nemerosa.ontrack.model.structure.Branch,GitBranchConfiguration> consumer)
Loops over each correctly configured branch.
|
void |
forEachConfiguredProject(java.util.function.BiConsumer<net.nemerosa.ontrack.model.structure.Project,GitConfiguration> consumer)
Loops over each correctly configured project.
|
java.util.Optional<GitBranchConfiguration> |
getBranchConfiguration(net.nemerosa.ontrack.model.structure.Branch branch)
Gets the configuration for a branch
|
GitChangeLogCommits |
getChangeLogCommits(GitChangeLog changeLog)
Change log commits
|
GitChangeLogFiles |
getChangeLogFiles(GitChangeLog changeLog)
Change log files
|
GitChangeLogIssues |
getChangeLogIssues(GitChangeLog changeLog)
Change log issues
|
protected java.lang.String |
getCommitFromBuild(net.nemerosa.ontrack.model.structure.Build build) |
OntrackGitCommitInfo |
getCommitInfo(net.nemerosa.ontrack.model.structure.ID branchId,
java.lang.String commit)
Gets information about a commit in a Git-configured branch.
|
protected <T> java.util.Optional<net.nemerosa.ontrack.model.structure.Build> |
getEarliestBuildAfterCommit(java.lang.String commit,
net.nemerosa.ontrack.model.structure.Branch branch,
GitBranchConfiguration branchConfiguration,
net.nemerosa.ontrack.git.GitRepositoryClient client) |
protected net.nemerosa.ontrack.job.JobKey |
getGitBranchSyncJobKey(net.nemerosa.ontrack.model.structure.Branch branch) |
protected net.nemerosa.ontrack.git.GitRepositoryClient |
getGitRepositoryClient(net.nemerosa.ontrack.model.structure.Project project) |
OntrackGitIssueInfo |
getIssueInfo(net.nemerosa.ontrack.model.structure.ID branchId,
java.lang.String key)
Gets information about an issue in a Git-configured branch
|
java.util.Optional<GitConfiguration> |
getProjectConfiguration(net.nemerosa.ontrack.model.structure.Project project)
Gets the configuration for a project.
|
GitSynchronisationInfo |
getProjectGitSyncInfo(net.nemerosa.ontrack.model.structure.Project project)
Gets the Git synchronisation information.
|
java.util.List<java.lang.String> |
getRemoteBranches(GitConfiguration configuration)
Gets the list of remote branches, as defined under
ref/heads. |
protected GitBranchConfiguration |
getRequiredBranchConfiguration(net.nemerosa.ontrack.model.structure.Branch branch) |
protected GitConfiguration |
getRequiredProjectConfiguration(net.nemerosa.ontrack.model.structure.Project project) |
java.util.Optional<net.nemerosa.ontrack.extension.scm.model.SCMPathInfo> |
getSCMPathInfo(net.nemerosa.ontrack.model.structure.Branch branch) |
boolean |
isBranchConfiguredForGit(net.nemerosa.ontrack.model.structure.Branch branch)
Tests if a branch is correctly configured for Git.
|
java.util.Optional<java.util.concurrent.Future<?>> |
launchBuildSync(net.nemerosa.ontrack.model.structure.ID branchId,
boolean synchronous)
Launches the build/tag synchronisation for a branch
|
java.util.Optional<GitUICommit> |
lookupCommit(GitConfiguration configuration,
java.lang.String id)
Looks up a commit in the given
configuration. |
net.nemerosa.ontrack.model.Ack |
projectSync(net.nemerosa.ontrack.model.structure.Project project,
GitSynchronisationRequest request)
Synchronises the Git repository attached to this project.
|
boolean |
scanCommits(GitBranchConfiguration branchConfiguration,
java.util.function.Predicate<org.eclipse.jgit.revwalk.RevCommit> scanFunction)
Scans the whole history of a repository.
|
void |
scheduleGitBuildSync(net.nemerosa.ontrack.model.structure.Branch branch,
GitBranchConfigurationProperty property) |
java.util.Optional<java.util.concurrent.Future<?>> |
sync(GitConfiguration gitConfiguration,
GitSynchronisationRequest request)
Synchronises the Git repository attached to this configuration.
|
protected java.lang.Object |
syncAndWait(GitConfiguration gitConfiguration) |
void |
unscheduleGitBuildSync(net.nemerosa.ontrack.model.structure.Branch branch,
GitBranchConfigurationProperty property) |
@Autowired
public GitServiceImpl(net.nemerosa.ontrack.model.structure.StructureService structureService,
net.nemerosa.ontrack.model.structure.PropertyService propertyService,
net.nemerosa.ontrack.job.JobScheduler jobScheduler,
net.nemerosa.ontrack.model.security.SecurityService securityService,
net.nemerosa.ontrack.tx.TransactionService transactionService,
net.nemerosa.ontrack.model.support.ApplicationLogService applicationLogService,
net.nemerosa.ontrack.git.GitRepositoryClientFactory gitRepositoryClientFactory,
BuildGitCommitLinkService buildGitCommitLinkService,
java.util.Collection<GitConfigurator> gitConfigurators,
net.nemerosa.ontrack.extension.scm.service.SCMUtilsService scmService)
public void forEachConfiguredProject(java.util.function.BiConsumer<net.nemerosa.ontrack.model.structure.Project,GitConfiguration> consumer)
GitServiceforEachConfiguredProject in interface GitServicepublic void forEachConfiguredBranch(java.util.function.BiConsumer<net.nemerosa.ontrack.model.structure.Branch,GitBranchConfiguration> consumer)
GitServiceforEachConfiguredBranch in interface GitServicepublic java.util.stream.Stream<net.nemerosa.ontrack.job.JobRegistration> collectJobRegistrations()
collectJobRegistrations in interface net.nemerosa.ontrack.job.orchestrator.JobOrchestratorSupplierpublic boolean isBranchConfiguredForGit(net.nemerosa.ontrack.model.structure.Branch branch)
GitServiceisBranchConfiguredForGit in interface GitServicepublic java.util.Optional<java.util.concurrent.Future<?>> launchBuildSync(net.nemerosa.ontrack.model.structure.ID branchId,
boolean synchronous)
GitServicelaunchBuildSync in interface GitService@Transactional public GitChangeLog changeLog(net.nemerosa.ontrack.extension.api.model.BuildDiffRequest request)
GitServicechangeLog in interface GitServiceprotected java.lang.Object syncAndWait(GitConfiguration gitConfiguration)
protected GitConfiguration getRequiredProjectConfiguration(net.nemerosa.ontrack.model.structure.Project project)
protected net.nemerosa.ontrack.git.GitRepositoryClient getGitRepositoryClient(net.nemerosa.ontrack.model.structure.Project project)
public GitChangeLogCommits getChangeLogCommits(GitChangeLog changeLog)
GitServicegetChangeLogCommits in interface GitServiceprotected java.lang.String getCommitFromBuild(net.nemerosa.ontrack.model.structure.Build build)
public GitChangeLogIssues getChangeLogIssues(GitChangeLog changeLog)
GitServicegetChangeLogIssues in interface GitServicepublic GitChangeLogFiles getChangeLogFiles(GitChangeLog changeLog)
GitServicegetChangeLogFiles in interface GitServicepublic boolean scanCommits(GitBranchConfiguration branchConfiguration, java.util.function.Predicate<org.eclipse.jgit.revwalk.RevCommit> scanFunction)
GitServicescanCommits in interface GitServicebranchConfiguration - Repository branch to scanscanFunction - Function that scans the commits. Returns true if the scan
must not go on, false otherwise.true if at least one call to scanFunction has returned true.public OntrackGitIssueInfo getIssueInfo(net.nemerosa.ontrack.model.structure.ID branchId, java.lang.String key)
GitServicegetIssueInfo in interface GitServicepublic java.util.Optional<GitUICommit> lookupCommit(GitConfiguration configuration, java.lang.String id)
GitServiceconfiguration.lookupCommit in interface GitServiceid - Commit long or short IDpublic OntrackGitCommitInfo getCommitInfo(net.nemerosa.ontrack.model.structure.ID branchId, java.lang.String commit)
GitServicegetCommitInfo in interface GitServicepublic java.util.List<java.lang.String> getRemoteBranches(GitConfiguration configuration)
GitServiceref/heads.getRemoteBranches in interface GitServicepublic java.lang.String diff(GitChangeLog changeLog, java.util.List<java.lang.String> patterns)
GitServicediff in interface GitServicepublic java.util.Optional<java.lang.String> download(net.nemerosa.ontrack.model.structure.Branch branch,
java.lang.String path)
download in interface net.nemerosa.ontrack.extension.scm.service.SCMServicepublic net.nemerosa.ontrack.model.Ack projectSync(net.nemerosa.ontrack.model.structure.Project project,
GitSynchronisationRequest request)
GitServiceprojectSync in interface GitServiceproject - Projectrequest - Sync requestpublic java.util.Optional<java.util.concurrent.Future<?>> sync(GitConfiguration gitConfiguration, GitSynchronisationRequest request)
GitServicesync in interface GitServicegitConfiguration - Configuration to syncrequest - Sync requestpublic GitSynchronisationInfo getProjectGitSyncInfo(net.nemerosa.ontrack.model.structure.Project project)
GitServicegetProjectGitSyncInfo in interface GitServiceproject - Project configured for Gitprotected <T> java.util.Optional<net.nemerosa.ontrack.model.structure.Build> getEarliestBuildAfterCommit(java.lang.String commit,
net.nemerosa.ontrack.model.structure.Branch branch,
GitBranchConfiguration branchConfiguration,
net.nemerosa.ontrack.git.GitRepositoryClient client)
public java.util.Optional<GitConfiguration> getProjectConfiguration(net.nemerosa.ontrack.model.structure.Project project)
GitServicegetProjectConfiguration in interface GitServiceprotected GitBranchConfiguration getRequiredBranchConfiguration(net.nemerosa.ontrack.model.structure.Branch branch)
public java.util.Optional<GitBranchConfiguration> getBranchConfiguration(net.nemerosa.ontrack.model.structure.Branch branch)
GitServicegetBranchConfiguration in interface GitServicebranch - Branch to checkprotected net.nemerosa.ontrack.job.JobKey getGitBranchSyncJobKey(net.nemerosa.ontrack.model.structure.Branch branch)
protected <T> void buildSync(net.nemerosa.ontrack.model.structure.Branch branch,
GitBranchConfiguration branchConfiguration,
net.nemerosa.ontrack.job.JobRunListener listener)
public void scheduleGitBuildSync(net.nemerosa.ontrack.model.structure.Branch branch,
GitBranchConfigurationProperty property)
scheduleGitBuildSync in interface GitServicepublic void unscheduleGitBuildSync(net.nemerosa.ontrack.model.structure.Branch branch,
GitBranchConfigurationProperty property)
unscheduleGitBuildSync in interface GitServicepublic java.util.Optional<net.nemerosa.ontrack.extension.scm.model.SCMPathInfo> getSCMPathInfo(net.nemerosa.ontrack.model.structure.Branch branch)
getSCMPathInfo in interface net.nemerosa.ontrack.extension.scm.service.SCMService