Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitaly.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CHANGELOG.md2
-rw-r--r--internal/helper/fieldextractors/repository.go25
2 files changed, 24 insertions, 3 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 1179aa7c2..ffca5078c 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -8,6 +8,8 @@ v0.29.0
https://gitlab.com/gitlab-org/gitaly/merge_requests/267
- Don't count on PID 1 to be the reaper
https://gitlab.com/gitlab-org/gitaly/merge_requests/270
+- Log top level project group for easier analysis
+ https://gitlab.com/gitlab-org/gitaly/merge_requests/272
v0.28.0
diff --git a/internal/helper/fieldextractors/repository.go b/internal/helper/fieldextractors/repository.go
index 582a647d1..2b812d3d1 100644
--- a/internal/helper/fieldextractors/repository.go
+++ b/internal/helper/fieldextractors/repository.go
@@ -1,6 +1,10 @@
package fieldextractors
-import pb "gitlab.com/gitlab-org/gitaly-proto/go"
+import (
+ "strings"
+
+ pb "gitlab.com/gitlab-org/gitaly-proto/go"
+)
func formatRepoRequest(repo *pb.Repository) map[string]interface{} {
if repo == nil {
@@ -12,11 +16,26 @@ func formatRepoRequest(repo *pb.Repository) map[string]interface{} {
}
return map[string]interface{}{
- "repoStorage": repo.StorageName,
- "repoPath": repo.RelativePath,
+ "repoStorage": repo.StorageName,
+ "repoPath": repo.RelativePath,
+ "topLevelGroup": getTopLevelGroupFromRepoPath(repo.RelativePath),
}
}
+// getTopLevelGroupFromRepoPath gives the top-level group name, given
+// a repoPath. For example:
+// - "gitlab-org/gitlab-ce.git" returns "gitlab-org"
+// - "gitlab-org/gitter/webapp.git" returns "gitlab-org"
+// - "x.git" returns ""
+func getTopLevelGroupFromRepoPath(repoPath string) string {
+ parts := strings.SplitN(repoPath, "/", 2)
+ if len(parts) != 2 {
+ return ""
+ }
+
+ return parts[0]
+}
+
type repositoryBasedRequest interface {
GetRepository() *pb.Repository
}