in app/registry/public_api.go [232:289]
func (a *App) makeViewPublicAPIMR(mr gerrit.GerritMergeRequest, registryName string) (PublicAPI, error) {
var publicAPI PublicAPI
if mr.Status.ChangeID == "" {
return publicAPI, nil
}
changeInfo, _, err := a.Gerrit.GoGerritClient().Changes.GetChangeDetail(mr.Status.ChangeID, &goGerrit.ChangeOptions{})
if err != nil {
return publicAPI, fmt.Errorf("unable to get gerrit change details, %w", err)
}
changesContent, err := a.getChangeContentData(changeInfo.ID, ValuesLocation, changeInfo.Project)
if err != nil {
return publicAPI, fmt.Errorf("unable to get gerrit change, %w", err)
}
var (
url string
data Values
)
if err := yaml.Unmarshal([]byte(changesContent), &data); err != nil {
return publicAPI, fmt.Errorf("unable to decode yaml, %w", err)
}
name := mr.Labels[MRLabelPublicApiName]
vals, err := GetValuesFromGit(registryName, MasterBranch, a.Gerrit)
if err != nil {
return publicAPI, fmt.Errorf("unable to get values from git, %w", err)
}
for _, v := range vals.PublicApi {
if v.Name == name {
url = v.URL
}
}
if len(data.PublicApi) > 0 {
for _, pub := range data.PublicApi {
if pub.Name == name {
if pub.URL != "" {
url = pub.URL
}
}
}
}
if mr.Status.Value == gerrit.StatusNew {
publicAPI = PublicAPI{Name: name, URL: url, Enabled: true, StatusRegistration: publicAPIStatusInactive}
} else if mr.Status.Value != gerrit.StatusMerged && mr.Status.Value != gerrit.StatusAbandoned {
publicAPI = PublicAPI{Name: name, URL: url, Enabled: true, StatusRegistration: publicAPIStatusFailed}
}
return publicAPI, nil
}