@@ -567,7 +567,7 @@ GitMetric4User >> foundSuccessorOf: userCommits andCompleteImportForMax: commitL
567567{ #category : #' as yet unclassified' }
568568GitMetric4User >> generateAnalysisForPeriod: period over: over withMaxCommitWindows: maxCommitWindow [
569569
570- | contribution codeAddition codeDeletion commitFrequency commentContribution mergeRequestDuration codeChurn delayUntilFirstChurn averageTimeBetweenCommits |
570+ | contribution codeAddition codeDeletion commitFrequency commentContribution mergeRequestDuration codeChurn delayUntilFirstChurn averageTimeBetweenCommits averageTimeBetweenCommits |
571571
572572 contribution := self
573573 codeContributionsSince: (period at: #since )
@@ -606,6 +606,7 @@ GitMetric4User >> generateAnalysisForPeriod: period over: over withMaxCommitWind
606606 onACommitWindowOf: maxCommitWindow
607607 overA: over) at: #avgDelay .
608608
609+ numberOfProjectWithCommit := self numberOfProjectWithCommitSince: (period at: #since ) until: (period at: #until ) overA: over.
609610 averageTimeBetweenCommits := (self averageTimeBetweenCommitSince: (period at: #since ) until: (period at: #until ) over: over) at: #average .
610611
611612 ^ AnalysisReport new
@@ -618,6 +619,7 @@ GitMetric4User >> generateAnalysisForPeriod: period over: over withMaxCommitWind
618619 mergeRequestDuration: mergeRequestDuration;
619620 codeChurn: codeChurn;
620621 delayUntilFirstChurn: delayUntilFirstChurn;
622+ numberOfProjectWithCommit: (numberOfProjectWithCommit at: #average );
621623 averageTimeBetweenCommits: averageTimeBetweenCommits.
622624]
623625
@@ -730,6 +732,52 @@ GitMetric4User >> mergeRequestDurationSince: since until: until overA: aDateWeek
730732 (#details - > groupedByDate) } asDictionary
731733]
732734
735+ { #category : #metrics }
736+ GitMetric4User >> numberOfProjectWithCommitSince: since until: until overA: aDateWeekMonthOrYear [
737+ | groupedByDate commits userCommits dateOver projects |
738+ groupedByDate := self
739+ setupGroupedDateFrom: since
740+ to: until
741+ over: aDateWeekMonthOrYear.
742+
743+ gitAnalyzer := GitAnalyzer new
744+ onModel: glhModel;
745+ glhImporter: glhImporter.
746+
747+ glhImporter withCommitDiffs: false .
748+ commits := self
749+ loadCommitsFromProjectsIds: itsProjects keys
750+ since: since
751+ until: until.
752+ glhImporter withCommitDiffs: true .
753+ userCommits := commits reject: [ :commit | commit commitCreator ~= user ].
754+
755+
756+ userCommits do: [ :userCommit |
757+ dateOver := self
758+ transformDate: userCommit committed_date
759+ to: aDateWeekMonthOrYear.
760+
761+ groupedByDate at: dateOver printString ifPresent: [ :value | value add: (userCommit repository project) ].
762+ ].
763+
764+ groupedByDate := groupedByDate collect: [ :group |
765+ projects := Set newFrom: group.
766+ projects size.
767+ ].
768+
769+ ^ {
770+ (#overEach - > aDateWeekMonthOrYear name).
771+ (#forOver - > (groupedByDate keys size printString
772+ , aDateWeekMonthOrYear printString)).
773+ (#average
774+ - >
775+ groupedByDate average asFloat).
776+ (#details - > groupedByDate).
777+ (#userCommits - > commits size) } asDictionary
778+
779+ ]
780+
733781{ #category : #accessing }
734782GitMetric4User >> user [
735783 ^ user
0 commit comments