MCPcopy Create free account
hub / github.com/apache/devlake / CollectApiIssues

Function CollectApiIssues

backend/plugins/gitlab/tasks/issue_collector.go:47–90  ·  view source on GitHub ↗
(taskCtx plugin.SubTaskContext)

Source from the content-addressed store, hash-verified

45}
46
47func CollectApiIssues(taskCtx plugin.SubTaskContext) errors.Error {
48 rawDataSubTaskArgs, data := CreateRawDataSubTaskArgs(taskCtx, RAW_ISSUE_TABLE)
49 collectorWithState, err := helper.NewStatefulApiCollector(*rawDataSubTaskArgs)
50 if err != nil {
51 return err
52 }
53
54 err = collectorWithState.InitCollector(helper.ApiCollectorArgs{
55 ApiClient: data.ApiClient,
56 PageSize: 100,
57
58 UrlTemplate: "projects/{{ .Params.ProjectId }}/issues",
59 /*
60 (Optional) Return query string for request, or you can plug them into UrlTemplate directly
61 */
62 Query: func(reqData *helper.RequestData) (url.Values, errors.Error) {
63 query := url.Values{}
64 if collectorWithState.GetSince() != nil {
65 query.Set("updated_after", collectorWithState.GetSince().Format(time.RFC3339))
66 }
67 query.Set("sort", "asc")
68 query.Set("page", fmt.Sprintf("%v", reqData.Pager.Page))
69 query.Set("per_page", fmt.Sprintf("%v", reqData.Pager.Size))
70
71 return query, nil
72 },
73
74 GetTotalPages: GetTotalPagesFromResponse,
75 ResponseParser: func(res *http.Response) ([]json.RawMessage, errors.Error) {
76 var items []json.RawMessage
77 err := helper.UnmarshalResponse(res, &items)
78 if err != nil {
79 return nil, err
80 }
81 return items, nil
82 },
83 })
84
85 if err != nil {
86 return err
87 }
88
89 return collectorWithState.Execute()
90}

Callers

nothing calls this directly

Calls 5

InitCollectorMethod · 0.95
ExecuteMethod · 0.95
FormatMethod · 0.80
CreateRawDataSubTaskArgsFunction · 0.70
GetSinceMethod · 0.45

Tested by

no test coverage detected