linear-cli 0.7.7 → 0.8.1

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 040dce1ff59ddd000240b8a03105928d775841be91d1fe50f974249e2ddc21fc
4
- data.tar.gz: 0de33b286614b981e63ad75b14d1728e825d44e6ec2265c625a00888cdb32cf2
3
+ metadata.gz: b95ed9950a87c2cf56f05af3403d55d1a13a85ad14d7ac336364d5be83ec94de
4
+ data.tar.gz: 34fa63ba23ac7ad34be83bbcc65916f4463b85c5aa47747097effdcfd51c76d2
5
5
  SHA512:
6
- metadata.gz: 1f45d0fc3280fda121430d10078e49a5a870753a8fa4788943934a586134101b58c40cacbd8fb3d83bd140d36db70bf19e82a65e3a87770bcf6a6ab48aa8bbbe
7
- data.tar.gz: 9333ae8a1cb9bab180035dba641c23a5315783bf3d6bd0e790f0b21eb3da0a8ae149c1264ff4619ef75caaff1ec51bf8fdf4cd7c1f36659552d8cb685b7f4332
6
+ metadata.gz: 483f8bac18d150ecfc57b906ec5f46e17fe46825632e09964779ac5b19c9b31ac83ae1d75c971bd619c03fe38273d17bf822e62d1b09b32fb3e6ea6eb5e328de
7
+ data.tar.gz: 3f19d6344f4683fad3eb5b60306941903563fc38879fe1a671930374920dc87b9ee47c188e79604cc587882a354a145a223089cbe8ae1b9ac1466ebaccae32a9
data/CHANGELOG.md CHANGED
@@ -2,6 +2,14 @@
2
2
 
3
3
  ## [Unreleased]
4
4
 
5
+ ## [0.8.1] - 2024-02-06
6
+ ### Fixed
7
+ - Fixed problem with setting verbosity (@bougyman)
8
+
9
+ ## [0.8.0] - 2024-02-06
10
+ ### Added
11
+ - Added Containerfile to build oci image (@bougyman)
12
+
5
13
  ## [0.7.7] - 2024-02-06
6
14
  ### Added
7
15
  - Added ability to attach project to command (@bougyman)
@@ -51,8 +59,10 @@
51
59
  ### Added
52
60
  - Added new changelog management system (changelog-rb) (@bougyman)
53
61
 
54
- [Unreleased]: https://github.com/rubyists/linear-cli/compare/0.7.7...HEAD
55
- [0.7.7]: https://github.com/rubyists/linear-cli/compare/v0.7.5...0.7.7
62
+ [Unreleased]: https://github.com/rubyists/linear-cli/compare/0.8.1...HEAD
63
+ [0.8.1]: https://github.com/rubyists/linear-cli/compare/v0.8.0...0.8.1
64
+ [0.8.0]: https://github.com/rubyists/linear-cli/compare/v0.7.7...v0.8.0
65
+ [0.7.7]: https://github.com/rubyists/linear-cli/compare/v0.7.5...v0.7.7
56
66
  [0.7.5]: https://github.com/rubyists/linear-cli/compare/v0.7.3...v0.7.5
57
67
  [0.7.3]: https://github.com/rubyists/linear-cli/compare/v0.7.2...v0.7.3
58
68
  [0.7.2]: https://github.com/rubyists/linear-cli/compare/v0.7.1...v0.7.2
data/Readme.adoc CHANGED
@@ -11,7 +11,21 @@ A command line interface to https://linear.app.
11
11
 
12
12
  == Installation
13
13
 
14
- === Gem (Most should use this)
14
+ === I don't want to install
15
+
16
+ You can use the OCI container image to run the CLI without installing it.
17
+
18
+ [source,sh]
19
+ ----
20
+ $ podman run -it --rm -e LINEAR_API_KEY=your-api-key ghcr.io/rubyists/linear-cli:stable lcls <1>
21
+ $ docker run -it --rm -e LINEAR_API_KEY=your-api-key ghcr.io/rubyists/linear-cli:stable lcls <2>
22
+ ----
23
+ <1> Podman Usage
24
+ <2> Docker Usage
25
+
26
+ === Gem install (Most should use this)
27
+
28
+ Requires ruby 3.2 or later
15
29
 
16
30
  [source,sh]
17
31
  ----
@@ -80,7 +94,7 @@ $ lc w --teams
80
94
 
81
95
  `lcls` is a helper provided to list issues. It's an alias for `lc issues list`.
82
96
 
83
- image::listings.cinema.gif[]
97
+ image::cinemas/listings.cinema.gif[]
84
98
 
85
99
  [source,sh]
86
100
  ----
@@ -0,0 +1,4 @@
1
+ type: Added
2
+ title: >
3
+ Added Containerfile to build oci image
4
+ author: bougyman
@@ -0,0 +1 @@
1
+ date: 2024-02-06
@@ -0,0 +1,4 @@
1
+ type: Fixed
2
+ title: >
3
+ Fixed problem with setting verbosity
4
+ author: bougyman
@@ -0,0 +1 @@
1
+ date: 2024-02-06
@@ -1,2 +1,2 @@
1
1
  #!/usr/bin/env bash
2
- exec linear-cli issue update --comment - "$@"
2
+ exec lc issue update --comment - "$@"
@@ -5,6 +5,7 @@ module Rubyists
5
5
  module CLI
6
6
  # This module is prepended to all commands to log their calls
7
7
  module Caller
8
+ include SemanticLogger::Loggable
8
9
  def self.prepended(mod) # rubocop:disable Metrics/MethodLength, Metrics/AbcSize
9
10
  # Global options for all commands
10
11
  mod.instance_eval do
@@ -25,6 +26,7 @@ module Rubyists
25
26
  logger.trace "Calling #{self.class} with #{method_args}"
26
27
  super(**method_args)
27
28
  rescue SmellsBad => e
29
+ require 'pry'; binding.pry
28
30
  logger.error e.message
29
31
  exit 1
30
32
  rescue NotFoundError => e
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Rubyists
4
4
  module Linear
5
- VERSION = '0.7.7'
5
+ VERSION = '0.8.1'
6
6
  end
7
7
  end
@@ -15,12 +15,7 @@ module Rubyists
15
15
  end
16
16
 
17
17
  def comment_for(issue, comment)
18
- return comment unless comment.nil? || comment == '-'
19
-
20
- comment = prompt.ask("Comment for #{issue.identifier} - #{issue.title} (- to open an editor)", default: '-')
21
- return comment unless comment == '-'
22
-
23
- editor_for %w[comment .md]
18
+ ask_or_edit comment, "Comment for #{issue.identifier} - #{issue.title}"
24
19
  end
25
20
 
26
21
  def team_for(key = nil)
@@ -30,13 +25,8 @@ module Rubyists
30
25
  end
31
26
 
32
27
  def reason_for(reason = nil, four: nil)
33
- return reason if reason && reason != '-'
34
-
35
28
  question = four ? "Reason for #{TTY::Markdown.parse(four)}" : 'Reason'
36
- answer = prompt.ask("#{question} (- to open an editor):", default: '-')
37
- return answer unless answer == '-'
38
-
39
- editor_for %w[reason .md]
29
+ ask_or_edit reason, question
40
30
  end
41
31
 
42
32
  def cancelled_state_for(thingy)
@@ -55,10 +45,20 @@ module Rubyists
55
45
  Rubyists::Linear::WorkflowState.find selection
56
46
  end
57
47
 
58
- def description_for(description = nil)
59
- return description if description
48
+ def ask_or_edit(thing, question)
49
+ return thing if thing && thing != '-'
60
50
 
61
- prompt.multiline('Description:').map(&:chomp).join('\\n')
51
+ answer = prompt.ask("#{question}: ('-' to open an editor)", default: '-')
52
+ return answer unless answer == '-'
53
+
54
+ answer = editor_for [thing, '.md']
55
+ raise SmellsBad, "No content provided for #{question}" if answer.empty?
56
+
57
+ answer
58
+ end
59
+
60
+ def description_for(description = nil)
61
+ ask_or_edit description, 'Description'
62
62
  end
63
63
 
64
64
  def title_for(title = nil)
@@ -52,9 +52,12 @@ module Rubyists
52
52
 
53
53
  def find(id_val)
54
54
  camel_name = just_name.camelize :lower
55
+ sym = camel_name.to_sym
55
56
  ff = full_fragment
56
57
  query_data = Api.query(query { __node(camel_name, id: id_val) { ___ ff } })
57
- new query_data[camel_name.to_sym]
58
+ raise NotFoundError, "No #{just_name} found with id #{id_val}" if query_data[sym].nil?
59
+
60
+ new query_data[sym]
58
61
  end
59
62
 
60
63
  def const_added(const)
data/lib/linear.rb CHANGED
@@ -1,9 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require 'pathname'
4
- require 'semantic_logger'
5
- SemanticLogger.default_level = :info
6
- SemanticLogger.add_appender(io: $stderr, formatter: :color)
7
4
 
8
5
  # Add the / operator for path separation
9
6
  class Pathname
@@ -15,7 +12,6 @@ end
15
12
  module Rubyists
16
13
  # Namespace for Linear classes
17
14
  module Linear
18
- include SemanticLogger::Loggable
19
15
  # rubocop:disable Layout/SpaceAroundOperators
20
16
  ROOT = (Pathname(__FILE__)/'../..').expand_path
21
17
  LIBROOT = ROOT/:lib/:linear
@@ -46,6 +42,16 @@ module Rubyists
46
42
  @verbosity ||= 0
47
43
  end
48
44
 
45
+ def self.logger
46
+ return @logger if @logger
47
+
48
+ require 'semantic_logger'
49
+
50
+ SemanticLogger.default_level = :info
51
+ SemanticLogger.add_appender(io: $stderr, formatter: :color)
52
+ @logger = SemanticLogger['Rubyists::Linear']
53
+ end
54
+
49
55
  def self.verbosity=(debug)
50
56
  return verbosity unless debug
51
57
 
@@ -53,6 +59,7 @@ module Rubyists
53
59
  @verbosity = debug
54
60
  level = @verbosity > (DEBUG_LEVELS.size - 1) ? :trace : DEBUG_LEVELS[@verbosity]
55
61
  SemanticLogger.default_level = level
62
+ @verbosity
56
63
  end
57
64
  end
58
65
  end
data/oci/Containerfile ADDED
@@ -0,0 +1,32 @@
1
+ FROM docker.io/ruby:3.3.0-alpine3.19 AS build-env
2
+
3
+
4
+ # Setting env up
5
+ ARG APP_ROOT=/app
6
+ ENV LANG C.UTF-8
7
+ ENV BUNDLE_SILENCE_ROOT_WARNING=1
8
+
9
+ #Install dependencies needed for compilation
10
+ RUN apk --update add bash ruby-dev build-base git sqlite-dev
11
+
12
+ WORKDIR $APP_ROOT
13
+
14
+ COPY . $APP_ROOT
15
+ RUN bundle install && bundle exec rake build
16
+
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
+ ############### Build step done ###############
23
+ FROM docker.io/ruby:3.3.0-alpine3.19
24
+ ARG PACKAGES="bash sqlite sqlite-dev ruby-dev build-base github-cli"
25
+
26
+ # install packages
27
+ RUN apk --update --no-cache add $PACKAGES
28
+ COPY --from=build-env /app/pkg /tmp
29
+ RUN ls /tmp/*.gem && gem install /tmp/*.gem
30
+
31
+ CMD %w[bundle exec lc]
32
+
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.7.7
4
+ version: 0.8.1
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-06 00:00:00.000000000 Z
11
+ date: 2024-02-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: base64
@@ -234,8 +234,13 @@ files:
234
234
  - changelog/0.7.7/added_issue_pr_command.yml
235
235
  - changelog/0.7.7/added_lcomment_alias_to_add_comments_to_issues.yml
236
236
  - changelog/0.7.7/tag.yml
237
+ - changelog/0.8.0/added_containerfile_to_build_oci_image.yml
238
+ - changelog/0.8.0/tag.yml
239
+ - changelog/0.8.1/fixed_problem_with_setting_verbosity.yml
240
+ - changelog/0.8.1/tag.yml
237
241
  - changelog/unreleased/.gitkeep
238
242
  - cinemas/listings.cinema
243
+ - cinemas/listings.cinema.gif
239
244
  - exe/lc
240
245
  - exe/lclose
241
246
  - exe/lcls
@@ -280,7 +285,7 @@ files:
280
285
  - lib/linear/models/workflow_state.rb
281
286
  - lib/linear/version.rb
282
287
  - linear-cli.gemspec
283
- - listings.cinema.gif
288
+ - oci/Containerfile
284
289
  homepage: https://github.com/rubyists/linear-cli
285
290
  licenses:
286
291
  - MIT