diff --git a/.gitignore b/.gitignore index 85e7c1d..8a361b9 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,5 @@ /.idea/ +/check +/debian-dsa +/in +/out diff --git a/README.md b/README.md index d3c7d0f..9481dbc 100644 --- a/README.md +++ b/README.md @@ -65,11 +65,11 @@ shortened and pretty-printed example output looks like this: [ { "date": "2023-01-18", - "title": "DSA-5322" + "dsa": "DSA-5322" }, { "date": "2023-01-19", - "title": "DSA-5323" + "dsa": "DSA-5323" } ] ``` @@ -87,7 +87,7 @@ metadata. If the version exists. The following input example returns the output "params": {}, "version": { "date": "2023-01-18", - "title": "DSA-5322" + "dsa": "DSA-5322" } } ``` diff --git a/debian-dsa b/debian-dsa deleted file mode 100755 index 48b5618..0000000 Binary files a/debian-dsa and /dev/null differ diff --git a/internal/resource/dsa/dsa.go b/internal/resource/dsa/dsa.go index c6cba90..218bfc9 100644 --- a/internal/resource/dsa/dsa.go +++ b/internal/resource/dsa/dsa.go @@ -147,8 +147,10 @@ func (r *Resource) Check() error { return fmt.Errorf("could not parse input from Concourse: %w", err) } + var inputDate time.Time + if len(input.Version.Date) > 0 { - _, err = parseISODate(input.Version.Date) + inputDate, err = parseISODate(input.Version.Date) if err != nil { return fmt.Errorf("could not interpret version from Concourse as date: %w", err) } @@ -164,7 +166,14 @@ func (r *Resource) Check() error { for _, item := range dsaData.Items { parts := strings.SplitN(item.Title, " ", 2) - dates.addVersion(Version{Date: item.Date, DSANumber: parts[0]}) + versionDate, err := parseISODate(item.Date) + if err != nil { + return fmt.Errorf("could not interpret date from RDF feed as date: %w", err) + } + + if inputDate.IsZero() || inputDate.Before(versionDate) { + dates.addVersion(Version{Date: item.Date, DSANumber: parts[0]}) + } } sort.Sort(dates)