summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorEugen Wissner <belka@caraus.de>2023-06-17 21:41:52 +0200
committerEugen Wissner <belka@caraus.de>2023-06-17 21:41:52 +0200
commitd63e65794863a2d4c8bb85ea597a872f4c0c04d3 (patch)
tree1e09e17fba82df89fb62e813be06c5f2d733608b /lib
parent6e313e227269b1f7f0690e765c41c54c02612cf6 (diff)
downloadslackbuilder-d63e65794863a2d4c8bb85ea597a872f4c0c04d3.tar.gz
Support version transformation for GitHub tags
Diffstat (limited to 'lib')
-rw-r--r--lib/up2date.rb16
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