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

Function CollectApiCommits

backend/plugins/gitee/tasks/commit_collector.go:40–89  ·  view source on GitHub ↗
(taskCtx plugin.SubTaskContext)

Source from the content-addressed store, hash-verified

38}
39
40func CollectApiCommits(taskCtx plugin.SubTaskContext) errors.Error {
41 db := taskCtx.GetDal()
42 rawDataSubTaskArgs, data := CreateRawDataSubTaskArgs(taskCtx, RAW_COMMIT_TABLE)
43 since := data.Since
44 incremental := false
45 if since == nil {
46 latestUpdated := &models.GiteeCommit{}
47 err := db.All(
48 &latestUpdated,
49 dal.Join("left join _tool_gitee_repo_commits on _tool_gitee_commits.sha = _tool_gitee_repo_commits.commit_sha"),
50 dal.Join("left join _tool_gitee_repos on _tool_gitee_repo_commits.repo_id = _tool_gitee_repos.gitee_id"),
51 dal.Where("_tool_gitee_repo_commits.repo_id = ? AND _tool_gitee_repo_commits.connection_id = ?", data.Repo.GiteeId, data.Repo.ConnectionId),
52 dal.Orderby("committed_date DESC"),
53 dal.Limit(1),
54 )
55
56 if err != nil {
57 return errors.Default.Wrap(err, "failed to get latest gitee commit record")
58 }
59 if latestUpdated.Sha != "" {
60 since = &latestUpdated.CommittedDate
61 incremental = true
62 }
63 }
64
65 collector, err := helper.NewApiCollector(helper.ApiCollectorArgs{
66 RawDataSubTaskArgs: *rawDataSubTaskArgs,
67 ApiClient: data.ApiClient,
68 PageSize: 100,
69 Incremental: incremental,
70 UrlTemplate: "repos/{{ .Params.Owner }}/{{ .Params.Repo }}/commits",
71 Query: func(reqData *helper.RequestData) (url.Values, errors.Error) {
72 query := url.Values{}
73 if since != nil {
74 query.Set("since", since.String())
75 }
76 query.Set("page", strconv.Itoa(reqData.Pager.Page))
77 query.Set("per_page", strconv.Itoa(reqData.Pager.Size))
78 return query, nil
79 },
80 Concurrency: 20,
81 ResponseParser: GetRawMessageFromResponse,
82 })
83
84 if err != nil {
85 return err
86 }
87
88 return collector.Execute()
89}

Callers

nothing calls this directly

Calls 6

ExecuteMethod · 0.95
WrapMethod · 0.80
CreateRawDataSubTaskArgsFunction · 0.70
GetDalMethod · 0.65
AllMethod · 0.65
StringMethod · 0.45

Tested by

no test coverage detected