internal/task: move shared security release symbols to privx For golang/go#79034 For golang/go#78458 Change-Id: I4b1dc87dd1eb7ae25edc9c3d7f41b3492730580a Reviewed-on: https://go-review.googlesource.com/c/build/+/801100 Reviewed-by: Nicholas Husin <nsh@golang.org> Reviewed-by: Nicholas Husin <husin@google.com> Reviewed-by: Neal Patel <nealpatel@google.com> LUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
diff --git a/internal/task/privx.go b/internal/task/privx.go index efe285a..c8cba49 100644 --- a/internal/task/privx.go +++ b/internal/task/privx.go
@@ -6,10 +6,12 @@ import ( "bytes" + "context" "errors" "fmt" "net/http" "net/mail" + "path" "regexp" "slices" "strings" @@ -21,8 +23,45 @@ wf "golang.org/x/build/internal/workflow" "golang.org/x/build/relmeta" "golang.org/x/sync/errgroup" + yaml "gopkg.in/yaml.v3" ) +// Security release parameter definitions. +var ( + SecurityMilestoneParameter = wf.ParamDef[string]{ + Name: "Release Milestone", + ParamType: wf.BasicString, + Doc: `Release Milestone is the security-metadata milestone for the security patch(es) being included in a Go release. + +You can check with the security release coordinator for this release to confirm this input.`, + Example: "123456", + Check: func(num string) error { + if !numOnlyRE.MatchString(num) { + return errors.New("milestone number must contain only numbers") + } + return nil + }, + } + numOnlyRE = regexp.MustCompile(`^\d+$`) +) + +func fetchReleaseMilestone(ctx context.Context, private GerritClient, milestoneNum string) (relmeta.ReleaseMilestone, error) { + const project = "security-metadata" + head, err := private.ReadBranchHead(ctx, project, "main") + if err != nil { + return relmeta.ReleaseMilestone{}, err + } + b, err := private.ReadFile(ctx, project, head, path.Join("data", "milestones", milestoneNum+".yaml")) + if err != nil { + return relmeta.ReleaseMilestone{}, err + } + var rm relmeta.ReleaseMilestone + if err := yaml.Unmarshal(b, &rm); err != nil { + return relmeta.ReleaseMilestone{}, fmt.Errorf("cannot YAML unmarshal the milestone: %v", err) + } + return rm, nil +} + type PrivXPatch struct { Git *Git PublicGerrit GerritClient
diff --git a/internal/task/security_release_coalesce.go b/internal/task/security_release_coalesce.go index a0d5029..9023877 100644 --- a/internal/task/security_release_coalesce.go +++ b/internal/task/security_release_coalesce.go
@@ -5,12 +5,10 @@ package task import ( - "context" "errors" "fmt" goversion "go/version" "net/http" - "path" "regexp" "strings" "time" @@ -19,26 +17,6 @@ "golang.org/x/build/internal/relui/groups" wf "golang.org/x/build/internal/workflow" "golang.org/x/build/relmeta" - yaml "gopkg.in/yaml.v3" -) - -// Security release parameter definitions. -var ( - SecurityMilestoneParameter = wf.ParamDef[string]{ - Name: "Release Milestone", - ParamType: wf.BasicString, - Doc: `Release Milestone is the security-metadata milestone for the security patch(es) being included in a Go release. - -You can check with the security release coordinator for this release to confirm this input.`, - Example: "123456", - Check: func(num string) error { - if !numOnlyRE.MatchString(num) { - return errors.New("milestone number must contain only numbers") - } - return nil - }, - } - numOnlyRE = regexp.MustCompile(`^\d+$`) ) // SecurityReleaseCoalesceTask is the workflow used to preparing patches for @@ -148,23 +126,6 @@ return clNums, nil } -func fetchReleaseMilestone(ctx context.Context, private GerritClient, milestoneNum string) (relmeta.ReleaseMilestone, error) { - const project = "security-metadata" - head, err := private.ReadBranchHead(ctx, project, "main") - if err != nil { - return relmeta.ReleaseMilestone{}, err - } - b, err := private.ReadFile(ctx, project, head, path.Join("data", "milestones", milestoneNum+".yaml")) - if err != nil { - return relmeta.ReleaseMilestone{}, err - } - var rm relmeta.ReleaseMilestone - if err := yaml.Unmarshal(b, &rm); err != nil { - return relmeta.ReleaseMilestone{}, fmt.Errorf("cannot YAML unmarshal the milestone: %v", err) - } - return rm, nil -} - func (x *SecurityReleaseCoalesceTask) CheckChanges(ctx *wf.TaskContext, clNums []string) ([]*gerrit.ChangeInfo, error) { var ( cls []*gerrit.ChangeInfo