diff options
-rw-r--r-- | third_party/gerrit-queue/0001-gerrit-Use-a-Gerrit-label-instead-of-hashtag-for-aut.patch | 187 | ||||
-rw-r--r-- | third_party/gerrit-queue/default.nix | 32 |
2 files changed, 0 insertions, 219 deletions
diff --git a/third_party/gerrit-queue/0001-gerrit-Use-a-Gerrit-label-instead-of-hashtag-for-aut.patch b/third_party/gerrit-queue/0001-gerrit-Use-a-Gerrit-label-instead-of-hashtag-for-aut.patch deleted file mode 100644 index 21fe09ff68aa..000000000000 --- a/third_party/gerrit-queue/0001-gerrit-Use-a-Gerrit-label-instead-of-hashtag-for-aut.patch +++ /dev/null @@ -1,187 +0,0 @@ -From 24f5a642af3aa1627bbff977f0a101907a02c69f Mon Sep 17 00:00:00 2001 -From: Vincent Ambo <mail@tazj.in> -Date: Thu, 9 Dec 2021 13:49:16 +0300 -Subject: [PATCH] gerrit: Use a Gerrit label instead of hashtag for autosubmit - -This moves to using a Gerrit label ('Autosubmit') with boolean values -for determining whether a developer wants to have a change -automatically submitted. - -See also https://cl.tvl.fyi/c/depot/+/4172 ---- - README.md | 2 +- - gerrit/changeset.go | 20 +++++++++----------- - gerrit/client.go | 16 ---------------- - main.go | 11 ++--------- - submitqueue/runner.go | 12 +++++------- - 5 files changed, 17 insertions(+), 44 deletions(-) - -diff --git a/README.md b/README.md -index d021fd0..9ffb81b 100644 ---- a/README.md -+++ b/README.md -@@ -8,7 +8,7 @@ await CI feedback on a rebased changeset, then one clicks submit, and - effectively makes everybody else rebase again. `gerrit-queue` is meant to - remove these races to master. - --Developers can add a specific tag `submit_me` to all changesets in a series, -+Developers can set the `Autosubmit` label to `+1` on all changesets in a series, - and if all preconditions on are met ("submittable" in gerrit speech, this - usually means passing CI and passing Code Review), `gerrit-queue` takes care of - rebasing and submitting it to master -diff --git a/gerrit/changeset.go b/gerrit/changeset.go -index 0a0a607..f71032a 100644 ---- a/gerrit/changeset.go -+++ b/gerrit/changeset.go -@@ -16,8 +16,8 @@ type Changeset struct { - Number int - Verified int - CodeReviewed int -+ Autosubmit int - Submittable bool -- HashTags []string - CommitID string - ParentCommitIDs []string - OwnerName string -@@ -32,8 +32,8 @@ func MakeChangeset(changeInfo *goGerrit.ChangeInfo) *Changeset { - Number: changeInfo.Number, - Verified: labelInfoToInt(changeInfo.Labels["Verified"]), - CodeReviewed: labelInfoToInt(changeInfo.Labels["Code-Review"]), -+ Autosubmit: labelInfoToInt(changeInfo.Labels["Autosubmit"]), - Submittable: changeInfo.Submittable, -- HashTags: changeInfo.Hashtags, - CommitID: changeInfo.CurrentRevision, // yes, this IS the commit ID. - ParentCommitIDs: getParentCommitIDs(changeInfo), - OwnerName: changeInfo.Owner.Name, -@@ -41,15 +41,13 @@ func MakeChangeset(changeInfo *goGerrit.ChangeInfo) *Changeset { - } - } - --// HasTag returns true if a Changeset has the given tag. --func (c *Changeset) HasTag(tag string) bool { -- hashTags := c.HashTags -- for _, hashTag := range hashTags { -- if hashTag == tag { -- return true -- } -- } -- return false -+// IsAutosubmit returns true if the changeset is intended to be -+// automatically submitted by gerrit-queue. -+// -+// This is determined by the Change Owner setting +1 on the -+// "Autosubmit" label. -+func (c *Changeset) IsAutosubmit() bool { -+ return c.Autosubmit == 1 - } - - // IsVerified returns true if the changeset passed CI, -diff --git a/gerrit/client.go b/gerrit/client.go -index 415871d..314f972 100644 ---- a/gerrit/client.go -+++ b/gerrit/client.go -@@ -26,7 +26,6 @@ type IClient interface { - GetChangesetURL(changeset *Changeset) string - SubmitChangeset(changeset *Changeset) (*Changeset, error) - RebaseChangeset(changeset *Changeset, ref string) (*Changeset, error) -- RemoveTag(changeset *Changeset, tag string) (*Changeset, error) - ChangesetIsRebasedOnHEAD(changeset *Changeset) bool - SerieIsRebasedOnHEAD(serie *Serie) bool - FilterSeries(filter func(s *Serie) bool) []*Serie -@@ -161,21 +160,6 @@ func (c *Client) RebaseChangeset(changeset *Changeset, ref string) (*Changeset, - return c.fetchChangeset(changeInfo.ChangeID) - } - --// RemoveTag removes the submit queue tag from a changeset and updates gerrit --// we never add, that's something users should do in the GUI. --func (c *Client) RemoveTag(changeset *Changeset, tag string) (*Changeset, error) { -- hashTags := changeset.HashTags -- newHashTags := []string{} -- for _, hashTag := range hashTags { -- if hashTag != tag { -- newHashTags = append(newHashTags, hashTag) -- } -- } -- // TODO: implement setting hashtags api in go-gerrit and use here -- // https://gerrit-review.googlesource.com/Documentation/rest-api-changes.html#set-hashtags -- return changeset, nil --} -- - // GetBaseURL returns the gerrit base URL - func (c *Client) GetBaseURL() string { - return c.baseURL -diff --git a/main.go b/main.go -index 9f3277e..d8577da 100644 ---- a/main.go -+++ b/main.go -@@ -21,7 +21,7 @@ import ( - ) - - func main() { -- var URL, username, password, projectName, branchName, submitQueueTag string -+ var URL, username, password, projectName, branchName string - var fetchOnly bool - var triggerInterval int - -@@ -64,13 +64,6 @@ func main() { - Destination: &branchName, - Value: "master", - }, -- cli.StringFlag{ -- Name: "submit-queue-tag", -- Usage: "the tag used to submit something to the submit queue", -- EnvVar: "SUBMIT_QUEUE_TAG", -- Destination: &submitQueueTag, -- Value: "submit_me", -- }, - cli.IntFlag{ - Name: "trigger-interval", - Usage: "How often we should trigger ourselves (interval in seconds)", -@@ -102,7 +95,7 @@ func main() { - } - log.Infof("Successfully connected to gerrit at %s", URL) - -- runner := submitqueue.NewRunner(l, gerrit, submitQueueTag) -+ runner := submitqueue.NewRunner(l, gerrit) - - handler := frontend.MakeFrontend(rotatingLogHandler, gerrit, runner) - -diff --git a/submitqueue/runner.go b/submitqueue/runner.go -index 0d8bcce..6e4a54a 100644 ---- a/submitqueue/runner.go -+++ b/submitqueue/runner.go -@@ -20,26 +20,24 @@ type Runner struct { - wipSerie *gerrit.Serie - logger *log.Logger - gerrit *gerrit.Client -- submitQueueTag string // the tag used to submit something to the submit queue - } - - // NewRunner creates a new Runner struct --func NewRunner(logger *log.Logger, gerrit *gerrit.Client, submitQueueTag string) *Runner { -+func NewRunner(logger *log.Logger, gerrit *gerrit.Client) *Runner { - return &Runner{ -- logger: logger, -- gerrit: gerrit, -- submitQueueTag: submitQueueTag, -+ logger: logger, -+ gerrit: gerrit, - } - } - - // isAutoSubmittable determines if something could be autosubmitted, potentially requiring a rebase - // for this, it needs to: --// * have the auto-submit label -+// * have the "Autosubmit" label set to +1 - // * have gerrit's 'submittable' field set to true - // it doesn't check if the series is rebased on HEAD - func (r *Runner) isAutoSubmittable(s *gerrit.Serie) bool { - for _, c := range s.ChangeSets { -- if c.Submittable != true || !c.HasTag(r.submitQueueTag) { -+ if c.Submittable != true || !c.IsAutosubmit() { - return false - } - } --- -2.33.1 - diff --git a/third_party/gerrit-queue/default.nix b/third_party/gerrit-queue/default.nix deleted file mode 100644 index 169fffd417df..000000000000 --- a/third_party/gerrit-queue/default.nix +++ /dev/null @@ -1,32 +0,0 @@ -{ pkgs, lib, ... }: - -pkgs.buildGoModule { - pname = "gerrit-queue"; - version = "master"; - vendorSha256 = "0hivr4yn9aa1vk7z1h1nwg75hzqnsaxypi1wwxdy1l1hnm5k8hhi"; - - src = pkgs.fetchFromGitHub { - owner = "tweag"; - repo = "gerrit-queue"; - rev = "c67b3ba7ea769cd747ea2f43ee6d12943d599ae0"; - hash = "sha256:1x0g6fd5hymf6a8wxj1b1xi4x1hmwpnx4f2cdidgvsyd77v902c1"; - }; - - # Add TVL patches to bend gerrit-queue functionality to our will. - patches = [ - # Use 'Autosubmit' label instead of Gerrit hashtags. - ./0001-gerrit-Use-a-Gerrit-label-instead-of-hashtag-for-aut.patch - ]; - - # gerrit-queue embeds static assets which need to be generated - nativeBuildInputs = [ pkgs.statik ]; - preBuild = '' - statik -f - ''; - - meta = with lib; { - description = "Gerrit submit bot"; - homepage = "https://github.com/tweag/gerrit-queue"; - license = licenses.asl20; - }; -} |