| OLD | NEW |
| (Empty) | |
| 1 // Copyright 2016 The LUCI Authors. All rights reserved. |
| 2 // Use of this source code is governed under the Apache License, Version 2.0 |
| 3 // that can be found in the LICENSE file. |
| 4 |
| 5 package buildbucket |
| 6 |
| 7 import ( |
| 8 "bytes" |
| 9 "strconv" |
| 10 ) |
| 11 |
| 12 // This file is about buildbucket build params in the format supported by |
| 13 // Buildbot. |
| 14 |
| 15 // properties is well-established build properties. |
| 16 type properties struct { |
| 17 PatchStorage string `json:"patch_storage"` // e.g. "rietveld", "gerrit" |
| 18 |
| 19 RietveldURL string `json:"rietveld"` // e.g. "https://codereview.chromiu
m.org" |
| 20 Issue number `json:"issue"` // e.g. 2127373005 |
| 21 PatchSet number `json:"patchset"` // e.g. 40001 |
| 22 |
| 23 GerritURL string `json:"gerrit"` // e.g. "https://
chromium-review.googlesource.com" |
| 24 GerritChangeNumber int `json:"event.change.number"` // e.g. 358171 |
| 25 GerritChangeID string `json:"event.change.id"` // e.g. "infra%2F
infra~master~Iee05b76799d577d491f533b8acaa4560ac14a806" |
| 26 GerritChangeURL string `json:"event.change.url"` // e.g. "https://
chromium-review.googlesource.com/#/c/358171" |
| 27 GerritPatchRef string `json:"event.patchSet.ref"` // e.g. "refs/cha
nges/71/358171/2" |
| 28 |
| 29 Revision string `json:"revision"` // e.g. "0b04861933367c62630751702
c84fd64bc3caf6f" |
| 30 BlameList []string `json:"blamelist"` // e.g. ["someone@chromium.org"] |
| 31 |
| 32 // Fields below are present only in ResultDetails. |
| 33 |
| 34 GotRevision string `json:"got_revision"` // e.g. "0b04861933367c62630751
702c84fd64bc3caf6f" |
| 35 BuildNumber int `json:"buildnumber"` // e.g. 3021 |
| 36 } |
| 37 |
| 38 // number is an integer that supports JSON unmarshalling from a string. |
| 39 type number int |
| 40 |
| 41 // UnmarshalJSON parses data as an integer, whether data is a number or string. |
| 42 func (n *number) UnmarshalJSON(data []byte) error { |
| 43 data = bytes.Trim(data, `"`) |
| 44 num, err := strconv.Atoi(string(data)) |
| 45 if err == nil { |
| 46 *n = number(num) |
| 47 } |
| 48 return err |
| 49 } |
| 50 |
| 51 // change is used in "changes" buildbucket parameters; supported by buildbot |
| 52 // See https://chromium.googlesource.com/chromium/tools/build/+/master/scripts/m
aster/buildbucket/README.md#Build-parameters |
| 53 type change struct { |
| 54 Author struct{ Email string } |
| 55 } |
| 56 |
| 57 // buildParameters is contents of "parameters_json" buildbucket build field |
| 58 // in the format supported by Buildbot, see |
| 59 // // See https://chromium.googlesource.com/chromium/tools/build/+/master/script
s/master/buildbucket/README.md#Build-parameters |
| 60 // |
| 61 // Buildbucket is not aware of this format, but majority of chrome-infra is. |
| 62 type buildParameters struct { |
| 63 BuilderName string `json:"builder_name"` |
| 64 Properties properties |
| 65 Changes []change |
| 66 } |
| 67 |
| 68 // resultDetails is contents of "result_details_json" buildbucket build field |
| 69 // in the format supported by Buildbot. |
| 70 type resultDetails struct { |
| 71 Properties properties |
| 72 } |
| OLD | NEW |