MCPcopy
hub / github.com/apache/devlake / ConvertTaskCommit

Function ConvertTaskCommit

backend/plugins/tapd/tasks/task_commit_converter.go:34–90  ·  view source on GitHub ↗
(taskCtx plugin.SubTaskContext)

Source from the content-addressed store, hash-verified

32)
33
34func ConvertTaskCommit(taskCtx plugin.SubTaskContext) errors.Error {
35 rawDataSubTaskArgs, data := CreateRawDataSubTaskArgs(taskCtx, RAW_TASK_COMMIT_TABLE)
36 logger := taskCtx.GetLogger()
37 db := taskCtx.GetDal()
38 logger.Info("convert workspace: %d", data.Options.WorkspaceId)
39
40 clauses := []dal.Clause{
41 dal.From(&models.TapdTaskCommit{}),
42 dal.Where("connection_id = ? AND workspace_id = ?", data.Options.ConnectionId, data.Options.WorkspaceId),
43 }
44 cursor, err := db.Cursor(clauses...)
45 if err != nil {
46 return err
47 }
48 defer cursor.Close()
49 issueIdGen := didgen.NewDomainIdGenerator(&models.TapdTask{})
50 converter, err := helper.NewDataConverter(helper.DataConverterArgs{
51 RawDataSubTaskArgs: *rawDataSubTaskArgs,
52 InputRowType: reflect.TypeOf(models.TapdTaskCommit{}),
53 Input: cursor,
54 Convert: func(inputRow interface{}) ([]interface{}, errors.Error) {
55 toolL := inputRow.(*models.TapdTaskCommit)
56 results := make([]interface{}, 0, 2)
57 issueCommit := &crossdomain.IssueCommit{
58 IssueId: issueIdGen.Generate(data.Options.ConnectionId, toolL.TaskId),
59 CommitSha: toolL.CommitId,
60 }
61 results = append(results, issueCommit)
62 if toolL.WebURL != `` {
63 u, err := errors.Convert01(url.Parse(toolL.WebURL))
64 if err != nil {
65 return nil, err
66 }
67 repoUrl := toolL.WebURL
68 if !strings.HasSuffix(repoUrl, `.git`) {
69 repoUrl = repoUrl + `.git`
70 }
71 issueRepoCommit := &crossdomain.IssueRepoCommit{
72 IssueId: issueIdGen.Generate(data.Options.ConnectionId, toolL.TaskId),
73 RepoUrl: repoUrl,
74 CommitSha: toolL.CommitId,
75 Host: u.Hostname(),
76 Namespace: getRepoNamespaceFromUrlPath(u.Path),
77 RepoName: getRepoNameFromUrlPath(u.Path),
78 }
79 results = append(results, issueRepoCommit)
80 }
81
82 return results, nil
83 },
84 })
85 if err != nil {
86 return err
87 }
88
89 return converter.Execute()
90}
91

Callers

nothing calls this directly

Calls 11

GenerateMethod · 0.95
ExecuteMethod · 0.95
getRepoNameFromUrlPathFunction · 0.85
CreateRawDataSubTaskArgsFunction · 0.70
GetLoggerMethod · 0.65
GetDalMethod · 0.65
InfoMethod · 0.65
FromMethod · 0.65
CursorMethod · 0.65
CloseMethod · 0.65

Tested by

no test coverage detected