]> Cypherpunks repositories - gostls13.git/commitdiff
misc/dashboard/codereview: interpret zero reviewers as the CL being closed.
authorDavid Symonds <dsymonds@golang.org>
Mon, 30 Jul 2012 03:51:21 +0000 (13:51 +1000)
committerDavid Symonds <dsymonds@golang.org>
Mon, 30 Jul 2012 03:51:21 +0000 (13:51 +1000)
This is the state when the CL has been submitted by someone other than
the CL author, but before the CL author has synched their client.

R=golang-dev, rsc
CC=golang-dev
https://golang.org/cl/6458044

misc/dashboard/codereview/dashboard/cl.go

index 1b05e8ffdd81721eebbe5302303af53c94d921c8..a53a28628f5309dd411f163685ba6f25028678d9 100644 (file)
@@ -294,12 +294,13 @@ func updateCL(c appengine.Context, n string) error {
        }
 
        var apiResp struct {
-               Description string `json:"description"`
-               Created     string `json:"created"`
-               OwnerEmail  string `json:"owner_email"`
-               Modified    string `json:"modified"`
-               Closed      bool   `json:"closed"`
-               Subject     string `json:"subject"`
+               Description string   `json:"description"`
+               Reviewers   []string `json:"reviewers"`
+               Created     string   `json:"created"`
+               OwnerEmail  string   `json:"owner_email"`
+               Modified    string   `json:"modified"`
+               Closed      bool     `json:"closed"`
+               Subject     string   `json:"subject"`
                Messages    []struct {
                        Text       string   `json:"text"`
                        Sender     string   `json:"sender"`
@@ -334,6 +335,13 @@ func updateCL(c appengine.Context, n string) error {
        if i := strings.Index(cl.FirstLine, "\n"); i >= 0 {
                cl.FirstLine = cl.FirstLine[:i]
        }
+       // Treat zero reviewers as a signal that the CL is completed.
+       // This could be after the CL has been submitted, but before the CL author has synced,
+       // but it could also be a CL manually edited to remove reviewers.
+       if len(apiResp.Reviewers) == 0 {
+               cl.Closed = true
+       }
+
        lgtm := make(map[string]bool)
        notLGTM := make(map[string]bool)
        rcpt := make(map[string]bool)