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.go19
1 files changed, 15 insertions, 4 deletions
diff --git a/cmd/generate/src_contribs.go b/cmd/generate/src_contribs.go
index 9c7bcd6..0ead1cd 100644
--- a/cmd/generate/src_contribs.go
+++ b/cmd/generate/src_contribs.go
@@ -130,15 +130,19 @@ func (c Contribution) fetchStatus() (string, error) {
}
func (c Contribution) fetchSubmittedAt() (time.Time, error) {
+ var ret time.Time
for _, forge := range forges {
submittedAt, err := forge.FetchSubmittedAt(c.URLs)
if err != nil {
return time.Time{}, err
}
- if !submittedAt.IsZero() {
- return submittedAt, nil
+ if !submittedAt.IsZero() && (ret.IsZero() || submittedAt.Before(ret)) {
+ ret = submittedAt
}
}
+ if !ret.IsZero() {
+ return ret, nil
+ }
return time.Time{}, fmt.Errorf("idk how to get created timestamp for %q", c.URLs[0])
}
@@ -151,14 +155,21 @@ func withinOneSecond(a, b time.Time) bool {
}
func (c Contribution) fetchLastUpdated() (time.Time, User, error) {
+ var ret struct {
+ time.Time
+ User
+ }
for _, forge := range forges {
updatedAt, updatedBy, err := forge.FetchLastUpdated(c.URLs)
if err != nil {
return time.Time{}, User{}, err
}
- if !updatedAt.IsZero() {
- return updatedAt, updatedBy, nil
+ if !updatedAt.IsZero() && (ret.Time.IsZero() || updatedAt.After(ret.Time)) {
+ ret.Time, ret.User = updatedAt, updatedBy
}
}
+ if !ret.Time.IsZero() {
+ return ret.Time, ret.User, nil
+ }
return time.Time{}, User{}, nil //fmt.Errorf("idk how to get updated timestamp for %q", c.URLs[0])
}