stable

Clone or download

Read-only

feat: Handle commits of a push sequentially

part of request #27896 Smart commit is not smart enough How to test: No functional change expected in the Git closing references feature: - if you push two commits that have a "closing comment" for the same artifact, they are handled in sequence instead of in parallel - Tracker workflow manager will still comment twice on the artifact Notes: - Due to the existence of inline caches both in Tracker_ArtifactFactory and Artifact::getStatus(), it does not solve the bug: the code will try to close the artifact twice. Another contribution will be needed to ensure we do make the SQL query twice to check whether the artifact is open. - It makes more sense to check that the artifact closure is allowed in DefaultBranchPushProcessor. After all, it is where we produce events for Tracker. Previously it was done at the beginning in PushCommitsAnalyzer. Change-Id: Id3b3dfc48eebeafec44e72b1cafcec5646d27b1c

Modified Files

Name
M plugins/git/hooks/post-receive.php +3 −1 Go to diff View file
A plugins/git/include/Git/Repository/Settings/ArtifactClosure/ArtifactClosureNotAllowedFault.php +34 −0 Go to diff View file
R plugins/git/include/Hook/Asynchronous/AnalyzeCommitTask.php Go to diff View file
M plugins/git/include/Hook/Asynchronous/AsynchronousEventHandler.php +41 −24 Go to diff View file
R plugins/git/include/Hook/Asynchronous/BuildCommitAnalysisProcessor.php Go to diff View file
M plugins/git/include/Hook/Asynchronous/CommitAnalysisOrder.php +3 −0 Go to diff View file
R plugins/git/include/Hook/Asynchronous/CommitAnalysisOrderParser.php Go to diff View file
R plugins/git/include/Hook/Asynchronous/CommitAnalysisProcessorBuilder.php Go to diff View file
M plugins/git/include/Hook/Asynchronous/UnhandledTopicFault.php +1 −1 Go to diff View file
R plugins/git/include/Hook/Asynchronous/CommitAnalysisProcessor.php Go to diff View file
R plugins/git/include/Hook/PushCommitsAnalyzer.php Go to diff View file
A plugins/git/include/Hook/DefaultBranchPush/PushAnalyzer.php +43 −0 Go to diff View file
M plugins/git/include/Hook/PostReceive.php +7 −5 Go to diff View file
M plugins/git/include/gitPlugin.php +4 −4 Go to diff View file
R plugins/git/tests/unit/Hook/Asynchronous/AnalyzeCommitTaskTest.php Go to diff View file
M plugins/git/tests/unit/Hook/Asynchronous/AsynchronousEventHandlerTest.php +53 −29 Go to diff View file
D plugins/git/tests/unit/Hook/Asynchronous/CommitAnalysisProcessorTest.php +0 −94 Go to diff View file
R plugins/git/tests/unit/Hook/Asynchronous/CommitAnalysisOrderParserTest.php Go to diff View file
A plugins/git/tests/unit/Hook/DefaultBranchPush/DefaultBranchPushProcessorTest.php +130 −0 Go to diff View file
A plugins/git/tests/unit/Hook/DefaultBranchPush/DefaultBranchPushReceivedTest.php +77 −0 Go to diff View file
A plugins/git/tests/unit/Hook/DefaultBranchPush/PushAnalyzerTest.php +84 −0 Go to diff View file
M plugins/git/tests/unit/Hook/PostReceiveTest.php +3 −9 Go to diff View file
D plugins/git/tests/unit/Hook/PushCommitsAnalyzerTest.php +0 −96 Go to diff View file
R plugins/git/tests/unit/Stub/BuildCommitAnalysisProcessorStub.php Go to diff View file
M plugins/git/tests/unit/Stub/RetrieveCommitMessageStub.php +2 −11 Go to diff View file