This is an automated email from the ASF dual-hosted git repository.
klesh pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/incubator-devlake.git
The following commit(s) were added to refs/heads/main by this push:
new 80d1377f3 fix: replace panic in gitextractor with error handling
(#8386)
80d1377f3 is described below
commit 80d1377f326847da1ba73f9e21c6b5cd416b85c3
Author: Adam ForyĆ <[email protected]>
AuthorDate: Mon Apr 28 11:22:41 2025 +0200
fix: replace panic in gitextractor with error handling (#8386)
* replace panic in gitextractor with error handling.
* Fix subTaskCtx.GetLogger().Error arguments
---------
Co-authored-by: Klesh Wong <[email protected]>
---
backend/plugins/gitextractor/tasks/repo_cloner.go | 3 ++-
backend/plugins/gitextractor/tasks/repo_collector.go | 6 ++++--
2 files changed, 6 insertions(+), 3 deletions(-)
diff --git a/backend/plugins/gitextractor/tasks/repo_cloner.go
b/backend/plugins/gitextractor/tasks/repo_cloner.go
index c72841105..d4efd278d 100644
--- a/backend/plugins/gitextractor/tasks/repo_cloner.go
+++ b/backend/plugins/gitextractor/tasks/repo_cloner.go
@@ -39,7 +39,8 @@ var CloneGitRepoMeta = plugin.SubTaskMeta{
func CloneGitRepo(subTaskCtx plugin.SubTaskContext) errors.Error {
taskData, ok := subTaskCtx.GetData().(*parser.GitExtractorTaskData)
if !ok {
- panic("git repo reference not found on context")
+ subTaskCtx.GetLogger().Error(nil, "git repo reference not found
on context")
+ return errors.Default.New("git repo reference not found on
context")
}
op := taskData.Options
storage := store.NewDatabase(subTaskCtx, op.RepoId)
diff --git a/backend/plugins/gitextractor/tasks/repo_collector.go
b/backend/plugins/gitextractor/tasks/repo_collector.go
index 23fbe1734..42da50551 100644
--- a/backend/plugins/gitextractor/tasks/repo_collector.go
+++ b/backend/plugins/gitextractor/tasks/repo_collector.go
@@ -84,10 +84,12 @@ func CollectGitDiffLines(subTaskCtx plugin.SubTaskContext)
errors.Error {
func getGitRepo(subTaskCtx plugin.SubTaskContext) parser.RepoCollector {
taskData, ok := subTaskCtx.GetData().(*parser.GitExtractorTaskData)
if !ok {
- panic("git repo reference not found on context")
+ subTaskCtx.GetLogger().Error(nil, "git repo reference not found
on context")
+ return nil
}
if taskData.GitRepo == nil {
- panic("git repo is empty, please check subtask: clone repo")
+ subTaskCtx.GetLogger().Error(nil, "git repo is empty, skipping
Collect Commits subtask")
+ return nil
}
return taskData.GitRepo
}