summaryrefslogtreecommitdiff
path: root/cmd/generate/src_contribs.go
diff options
context:
space:
mode:
Diffstat (limited to 'cmd/generate/src_contribs.go')
-rw-r--r--cmd/generate/src_contribs.go30
1 files changed, 19 insertions, 11 deletions
diff --git a/cmd/generate/src_contribs.go b/cmd/generate/src_contribs.go
index b47cf89..760b56a 100644
--- a/cmd/generate/src_contribs.go
+++ b/cmd/generate/src_contribs.go
@@ -20,7 +20,8 @@ type Contribution struct {
SubmittedAt time.Time `json:"submitted-at"`
LastUpdatedAt time.Time `json:"last-updated-at"`
Status string `json:"status"`
- StatusClass string `json:"-"`
+
+ StatusClass string `json:"-"`
}
func ReadContribs(filename string) ([]Contribution, error) {
@@ -62,19 +63,26 @@ func (c *Contribution) Fill() error {
return err
}
}
+ c.StatusClass, err = classifyStatus(c.Status)
+ if err != nil {
+ return err
+ }
+ return nil
+}
+
+func classifyStatus(status string) (string, error) {
switch {
- case strings.Contains(c.Status, "released") || strings.Contains(c.Status, "deployed"):
- c.StatusClass = "released"
- case strings.Contains(c.Status, "merged"):
- c.StatusClass = "merged"
- case strings.Contains(c.Status, "open"):
- c.StatusClass = "open"
- case strings.Contains(c.Status, "closed") || strings.Contains(c.Status, "locked"):
- c.StatusClass = "closed"
+ case strings.Contains(status, "released") || strings.Contains(status, "deployed"):
+ return "released", nil
+ case strings.Contains(status, "merged"):
+ return "merged", nil
+ case strings.Contains(status, "open"):
+ return "open", nil
+ case strings.Contains(status, "closed") || strings.Contains(status, "locked"):
+ return "closed", nil
default:
- return fmt.Errorf("unrecognized status string: %q", c.Status)
+ return "", fmt.Errorf("unrecognized status string: %q", status)
}
- return nil
}
var (