diff options
| author | Eugen Wissner <belka@caraus.de> | 2023-06-17 21:41:52 +0200 |
|---|---|---|
| committer | Eugen Wissner <belka@caraus.de> | 2023-06-17 21:41:52 +0200 |
| commit | d63e65794863a2d4c8bb85ea597a872f4c0c04d3 (patch) | |
| tree | 1e09e17fba82df89fb62e813be06c5f2d733608b /lib | |
| parent | 6e313e227269b1f7f0690e765c41c54c02612cf6 (diff) | |
| download | slackbuilder-d63e65794863a2d4c8bb85ea597a872f4c0c04d3.tar.gz | |
Support version transformation for GitHub tags
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/up2date.rb | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/lib/up2date.rb b/lib/up2date.rb index c63d7c2..2b87b19 100644 --- a/lib/up2date.rb +++ b/lib/up2date.rb @@ -24,7 +24,7 @@ module SlackBuilder GITHUB_QUERY = <<~GQL query ($name: String!, $owner: String!) { repository(name: $name, owner: $owner) { - refs(last: 1, refPrefix: "refs/tags/", orderBy: { field: TAG_COMMIT_DATE, direction: ASC }) { + refs(last: 10, refPrefix: "refs/tags/", orderBy: { field: TAG_COMMIT_DATE, direction: ASC }) { nodes { id, name @@ -35,11 +35,12 @@ module SlackBuilder GQL private_constant :GITHUB_QUERY - def initialize(owner, name) + def initialize(owner, name, version_transform = ->(x) { x }) super() @owner = owner @name = name + @version_transform = version_transform end def latest @@ -52,7 +53,16 @@ module SlackBuilder 'content-type' => 'application/json', 'authorization' => "Bearer #{CONFIG[:gh_token]}" } - JSON.parse(response.body)['data']['repository']['refs']['nodes'].first['name'] + filter_versions_from_response JSON.parse(response.body) + end + + private + + def filter_versions_from_response(response) + response['data']['repository']['refs']['nodes'] + .map { |node| @version_transform.call node['name'] } + .compact + .last end end |
