MCPcopy Index your code
hub / github.com/apache/devlake / ExtractPlanBuild

Function ExtractPlanBuild

backend/plugins/bamboo/tasks/plan_build_extractor.go:32–83  ·  view source on GitHub ↗
(taskCtx plugin.SubTaskContext)

Source from the content-addressed store, hash-verified

30var _ plugin.SubTaskEntryPoint = ExtractPlanBuild
31
32func ExtractPlanBuild(taskCtx plugin.SubTaskContext) errors.Error {
33 rawDataSubTaskArgs, data := CreateRawDataSubTaskArgs(taskCtx, RAW_PLAN_BUILD_TABLE)
34 logger := taskCtx.GetLogger()
35
36 extractor, err := helper.NewApiExtractor(helper.ApiExtractorArgs{
37 RawDataSubTaskArgs: *rawDataSubTaskArgs,
38
39 Extract: func(resData *helper.RawData) ([]interface{}, errors.Error) {
40 res := &models.ApiBambooPlanBuild{}
41 err := errors.Convert(json.Unmarshal(resData.Data, res))
42 if err != nil {
43 return nil, err
44 }
45 body := res.Convert()
46 body.ConnectionId = data.Options.ConnectionId
47 body.PlanKey = data.Options.PlanKey
48 body.Type = data.RegexEnricher.ReturnNameIfMatched(devops.DEPLOYMENT, body.PlanName)
49 body.Environment = data.RegexEnricher.ReturnNameIfMatched(devops.PRODUCTION, body.PlanName)
50
51 var url string
52 homepage, errGetHomePage := getBambooHomePage(body.LinkHref)
53 if errGetHomePage != nil {
54 logger.Warn(errGetHomePage, "get bamboo home")
55 } else {
56 url = homepage + "/browse/" + body.PlanResultKey
57 }
58 results := make([]interface{}, 0)
59 results = append(results, body)
60 // As job build can get more accuracy repo info,
61 // we can collect BambooPlanBuildVcsRevision in job_build_extractor
62 for _, v := range res.VcsRevisions.VcsRevision {
63 results = append(results, &models.BambooPlanBuildVcsRevision{
64 ConnectionId: data.Options.ConnectionId,
65 PlanBuildKey: body.PlanBuildKey,
66 PlanResultKey: body.PlanResultKey,
67 RepositoryId: v.RepositoryId,
68 RepositoryName: v.RepositoryName,
69 VcsRevisionKey: v.VcsRevisionKey,
70 DisplayTitle: body.GenerateCICDPipeLineName(),
71 Url: url,
72 })
73 }
74
75 return results, nil
76 },
77 })
78 if err != nil {
79 return err
80 }
81
82 return extractor.Execute()
83}
84
85var ExtractPlanBuildMeta = plugin.SubTaskMeta{
86 Name: "ExtractPlanBuild",

Callers

nothing calls this directly

Calls 9

ConvertMethod · 0.95
ExecuteMethod · 0.95
getBambooHomePageFunction · 0.85
ReturnNameIfMatchedMethod · 0.80
CreateRawDataSubTaskArgsFunction · 0.70
GetLoggerMethod · 0.65
WarnMethod · 0.65
ConvertMethod · 0.45

Tested by

no test coverage detected