linear-cli 0.9.4 → 0.9.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +8 -2
- data/changelog/0.9.5/added_build_image_to_build_push_container_image.yml +4 -0
- data/changelog/0.9.5/added_user_information_to_comment_list_in_issue_view.yml +4 -0
- data/changelog/0.9.5/tag.yml +1 -0
- data/lib/linear/cli/version.rb +1 -1
- data/lib/linear/models/comment.rb +3 -1
- data/lib/linear/models/issue.rb +9 -2
- data/lib/linear/models/user.rb +3 -1
- data/oci/Containerfile +3 -6
- data/oci/build_image +137 -0
- metadata +6 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 64ec47de5a41cf7cf1a5c26da7edc9d6d45d430107e7da3d8a66a0c39742b93b
|
4
|
+
data.tar.gz: 3695694ebac882ec28b111ba83eed877d89838574f23ec7489472182d6c7c212
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a10b11f20a7392ed4a349d5a629e0d3ab8ced165266cdfb2ba3c07a2fcfaa0132412b221af012bc5012512f06bd16b6ce88888f20c1b2047430e66cdca014577
|
7
|
+
data.tar.gz: 691e23ac88eaeb5bbd44d18a98f0b233d3f2d813c4b955a30aba6a5862c49e724fd63b70acf793599c90be18ed1ca57689a69e71c1a988abd2b1fedbd8da31e4
|
data/CHANGELOG.md
CHANGED
@@ -2,6 +2,11 @@
|
|
2
2
|
|
3
3
|
## [Unreleased]
|
4
4
|
|
5
|
+
## [0.9.5] - 2024-02-08
|
6
|
+
### Added
|
7
|
+
- Added build_image to build/push container image (@bougyman)
|
8
|
+
- Added user information to comment list in issue view (@bougyman)
|
9
|
+
|
5
10
|
## [0.9.4] - 2024-02-07
|
6
11
|
### Fixed
|
7
12
|
- Fixed issue with canceled issues showing up in lcls (@bougyman)
|
@@ -83,8 +88,9 @@
|
|
83
88
|
### Added
|
84
89
|
- Added new changelog management system (changelog-rb) (@bougyman)
|
85
90
|
|
86
|
-
[Unreleased]: https://github.com/rubyists/linear-cli/compare/0.9.
|
87
|
-
[0.9.
|
91
|
+
[Unreleased]: https://github.com/rubyists/linear-cli/compare/0.9.5...HEAD
|
92
|
+
[0.9.5]: https://github.com/rubyists/linear-cli/compare/v0.9.4...0.9.5
|
93
|
+
[0.9.4]: https://github.com/rubyists/linear-cli/compare/v0.9.3...v0.9.4
|
88
94
|
[0.9.3]: https://github.com/rubyists/linear-cli/compare/v0.9.1...v0.9.3
|
89
95
|
[0.9.1]: https://github.com/rubyists/linear-cli/compare/v0.9.0...v0.9.1
|
90
96
|
[0.9.0]: https://github.com/rubyists/linear-cli/compare/v0.8.6...v0.9.0
|
@@ -0,0 +1 @@
|
|
1
|
+
date: 2024-02-08
|
data/lib/linear/cli/version.rb
CHANGED
@@ -5,16 +5,18 @@ require 'gqli'
|
|
5
5
|
module Rubyists
|
6
6
|
# Namespace for Linear
|
7
7
|
module Linear
|
8
|
-
M :base_model
|
8
|
+
M :base_model, :user
|
9
9
|
Comment = Class.new(BaseModel)
|
10
10
|
# The Comment class represents a Linear issue comment.
|
11
11
|
class Comment
|
12
12
|
include SemanticLogger::Loggable
|
13
|
+
many_to_one :user
|
13
14
|
|
14
15
|
Base = fragment('BaseComment', 'Comment') do
|
15
16
|
id
|
16
17
|
body
|
17
18
|
url
|
19
|
+
user { ___ User.base_fragment }
|
18
20
|
createdAt
|
19
21
|
updatedAt
|
20
22
|
end
|
data/lib/linear/models/issue.rb
CHANGED
@@ -9,7 +9,7 @@ module Rubyists
|
|
9
9
|
Issue = Class.new(BaseModel)
|
10
10
|
M 'issue/class_methods'
|
11
11
|
# The Issue class represents a Linear issue.
|
12
|
-
class Issue
|
12
|
+
class Issue # rubocop:disable Metrics/ClassLength
|
13
13
|
include SemanticLogger::Loggable
|
14
14
|
extend ClassMethods
|
15
15
|
many_to_one :assignee, :User
|
@@ -119,7 +119,14 @@ module Rubyists
|
|
119
119
|
end
|
120
120
|
|
121
121
|
def display_comments
|
122
|
-
|
122
|
+
return '' unless comments.respond_to?(:map)
|
123
|
+
|
124
|
+
displays = comments&.map do |c|
|
125
|
+
user = c.user.name
|
126
|
+
date = DateTime.parse(c.createdAt).strftime('%Y-%m-%d at %H:%M')
|
127
|
+
"--- #{user} on #{date} ---\n#{TTY::Markdown.parse(c.body)}"
|
128
|
+
end
|
129
|
+
displays&.join("\n")
|
123
130
|
end
|
124
131
|
|
125
132
|
def full
|
data/lib/linear/models/user.rb
CHANGED
data/oci/Containerfile
CHANGED
@@ -3,6 +3,7 @@ FROM docker.io/ruby:3.3.0-alpine3.19 AS build-env
|
|
3
3
|
|
4
4
|
# Setting env up
|
5
5
|
ARG APP_ROOT=/app
|
6
|
+
ARG APP_VERSION
|
6
7
|
ENV LANG C.UTF-8
|
7
8
|
ENV BUNDLE_SILENCE_ROOT_WARNING=1
|
8
9
|
|
@@ -14,19 +15,15 @@ WORKDIR $APP_ROOT
|
|
14
15
|
COPY . $APP_ROOT
|
15
16
|
RUN gem i semantic_logger && bundle install && bundle exec rake build
|
16
17
|
|
17
|
-
CMD %w[bundle exec lc]
|
18
|
-
|
19
|
-
# Remove folders not needed in resulting image
|
20
|
-
RUN rm -rf node_modules tmp/cache app/assets vendor/assets spec
|
21
|
-
|
22
18
|
############### Build step done ###############
|
23
19
|
FROM docker.io/ruby:3.3.0-alpine3.19
|
24
20
|
ARG PACKAGES="bash sqlite sqlite-dev ruby-dev build-base github-cli"
|
21
|
+
ARG APP_VERSION
|
25
22
|
|
26
23
|
# install packages
|
27
24
|
RUN apk --update --no-cache add $PACKAGES
|
28
25
|
COPY --from=build-env /app/pkg /tmp
|
29
|
-
RUN
|
26
|
+
RUN gem install /tmp/linear-cli-${APP_VERSION}.gem
|
30
27
|
|
31
28
|
CMD ["bundle", "exec", "lc"]
|
32
29
|
|
data/oci/build_image
ADDED
@@ -0,0 +1,137 @@
|
|
1
|
+
#!/usr/bin/env bash
|
2
|
+
|
3
|
+
: "${IMAGE_NAME:=$(basename "$(pwd)")}"
|
4
|
+
: "${BUILD_CONTEXT:=$(pwd)}"
|
5
|
+
|
6
|
+
usage() { # {{{
|
7
|
+
cat <<-EOT
|
8
|
+
Usage: $0 <options> <image_tag>
|
9
|
+
Options:
|
10
|
+
-i NAME Name of the image (default: $IMAGE_NAME)
|
11
|
+
-c CONTAINERFILE Path to the containerfile (default: ./oci/Containerfile)
|
12
|
+
-C CONTEXT Build context (default: $BUILD_CONTEXT)
|
13
|
+
-p Push the image to the registry
|
14
|
+
-s Also mark the image as stable
|
15
|
+
-h Show help / usage
|
16
|
+
EOT
|
17
|
+
} # }}}
|
18
|
+
|
19
|
+
die() { # {{{
|
20
|
+
local -i code
|
21
|
+
code=$1
|
22
|
+
shift
|
23
|
+
printf "Error! => %s\n" "$*" >&2
|
24
|
+
printf "\n" >&2
|
25
|
+
usage >&2
|
26
|
+
# shellcheck disable=SC2086
|
27
|
+
exit $code
|
28
|
+
} # }}}
|
29
|
+
|
30
|
+
push=0
|
31
|
+
stable=0
|
32
|
+
while getopts :hpi:c:C:s opt # {{{
|
33
|
+
do
|
34
|
+
case $opt in
|
35
|
+
c)
|
36
|
+
CONTAINERFILE=$OPTARG
|
37
|
+
;;
|
38
|
+
C)
|
39
|
+
BUILD_CONTEXT=$OPTARG
|
40
|
+
;;
|
41
|
+
i)
|
42
|
+
IMAGE_NAME=$OPTARG
|
43
|
+
;;
|
44
|
+
p)
|
45
|
+
push=1
|
46
|
+
;;
|
47
|
+
s)
|
48
|
+
stable=1
|
49
|
+
;;
|
50
|
+
h)
|
51
|
+
usage
|
52
|
+
exit
|
53
|
+
;;
|
54
|
+
:)
|
55
|
+
printf "Option %s requires an argument\n" "$OPTARG" >&2
|
56
|
+
usage >&2
|
57
|
+
exit 28
|
58
|
+
;;
|
59
|
+
?)
|
60
|
+
printf "Invalid option '%s'\n" "$OPTARG" >&2
|
61
|
+
usage >&2
|
62
|
+
exit 27
|
63
|
+
;;
|
64
|
+
esac
|
65
|
+
done # }}}
|
66
|
+
shift $((OPTIND-1))
|
67
|
+
|
68
|
+
tag=$1
|
69
|
+
[ -z "$tag" ] && die 1 "Missing image tag"
|
70
|
+
shift
|
71
|
+
|
72
|
+
[ $# -gt 0 ] && die 2 "Too many arguments"
|
73
|
+
|
74
|
+
if [ -z "$CONTAINERFILE" ]; then
|
75
|
+
printf "No containerfile specified, looking for default locations\n"
|
76
|
+
for containerfile in Containerfile Dockerfile
|
77
|
+
do
|
78
|
+
if [ -f ./oci/"$containerfile" ]; then
|
79
|
+
printf "Found ./oci/%s\n" "$containerfile" >&2
|
80
|
+
containerfile=./oci/"$containerfile"
|
81
|
+
break
|
82
|
+
fi
|
83
|
+
if [ -f "$containerfile" ]; then
|
84
|
+
printf "Found %s\n" "$containerfile" >&2
|
85
|
+
break
|
86
|
+
fi
|
87
|
+
done
|
88
|
+
else
|
89
|
+
[ -f "$CONTAINERFILE" ] || die 3 "Containerfile '$CONTAINERFILE' not found"
|
90
|
+
printf "Using containerfile %s\n" "$CONTAINERFILE" >&2
|
91
|
+
containerfile=$CONTAINERFILE
|
92
|
+
fi
|
93
|
+
|
94
|
+
[ -f "$containerfile" ] || die 4 "No containerfile found"
|
95
|
+
|
96
|
+
[ -d "$BUILD_CONTEXT" ] || die 5 "Build context '$BUILD_CONTEXT' not found"
|
97
|
+
|
98
|
+
# Build the image
|
99
|
+
if command -v podman 2>/dev/null
|
100
|
+
then
|
101
|
+
runtime=podman
|
102
|
+
elif command -v docker 2>/dev/null
|
103
|
+
then
|
104
|
+
runtime=docker
|
105
|
+
else
|
106
|
+
die 6 "No container runtime found"
|
107
|
+
fi
|
108
|
+
|
109
|
+
$runtime build --build-arg "APP_VERSION=${tag}" -t "$IMAGE_NAME:$tag" -f "$containerfile" "$BUILD_CONTEXT" || die 7 "Failed to build image"
|
110
|
+
|
111
|
+
set -x
|
112
|
+
[ $push -eq 1 ] || exit 0
|
113
|
+
# push the image
|
114
|
+
registry_image_name="ghcr.io/rubyists/$IMAGE_NAME:$tag"
|
115
|
+
if ! $runtime login --get-login ghcr.io
|
116
|
+
then
|
117
|
+
printf "Not logged in to ghcr.io, trying to login\n" >&2
|
118
|
+
[ -z "$GITHUB_TOKEN" ] && die 8 "No GITHUB_TOKEN set, cannot login"
|
119
|
+
printf "%s" "$GITHUB_TOKEN" | $runtime login -u "$GITHUB_TOKEN" --password-stdin ghcr.io || die 9 "Failed to login to ghcr.io"
|
120
|
+
fi
|
121
|
+
|
122
|
+
if [ "$runtime" = "podman" ]
|
123
|
+
then
|
124
|
+
podman push "$IMAGE_NAME:$tag" "$registry_image_name" || die 10 "Failed to push image"
|
125
|
+
else
|
126
|
+
docker push "$registry_image_name" || die 11 "Failed to push image"
|
127
|
+
fi
|
128
|
+
|
129
|
+
[ "$stable" -eq 0 ] && exit 0
|
130
|
+
# Mark the image as stable
|
131
|
+
registry_stable_name="ghcr.io/rubyists/$IMAGE_NAME:stable"
|
132
|
+
if [ "$runtime" = "podman" ]
|
133
|
+
then
|
134
|
+
podman push "$IMAGE_NAME:$tag" "$registry_stable_name" || die 10 "Failed to push image"
|
135
|
+
else
|
136
|
+
docker push "$registry_stable_name" || die 11 "Failed to push image"
|
137
|
+
fi
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: linear-cli
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.9.
|
4
|
+
version: 0.9.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tj (bougyman) Vanderpoel
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-02-
|
11
|
+
date: 2024-02-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: base64
|
@@ -250,6 +250,9 @@ files:
|
|
250
250
|
- changelog/0.9.3/tag.yml
|
251
251
|
- changelog/0.9.4/fixed_issue_with_canceled_issues_showing_up_in_lcls.yml
|
252
252
|
- changelog/0.9.4/tag.yml
|
253
|
+
- changelog/0.9.5/added_build_image_to_build_push_container_image.yml
|
254
|
+
- changelog/0.9.5/added_user_information_to_comment_list_in_issue_view.yml
|
255
|
+
- changelog/0.9.5/tag.yml
|
253
256
|
- changelog/unreleased/.gitkeep
|
254
257
|
- cinemas/listings.cinema
|
255
258
|
- cinemas/listings.cinema.gif
|
@@ -300,6 +303,7 @@ files:
|
|
300
303
|
- lib/linear/version.rb
|
301
304
|
- linear-cli.gemspec
|
302
305
|
- oci/Containerfile
|
306
|
+
- oci/build_image
|
303
307
|
homepage: https://github.com/rubyists/linear-cli
|
304
308
|
licenses:
|
305
309
|
- MIT
|