linear-cli 0.9.2 → 0.9.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 75ce37ab15aa10df291b3d4f0be968cb0dd4dda493500344f624d6661bd69ef0
4
- data.tar.gz: 3a81df1dae83cf68b1a36d2da40d92e124c83de422be451734d7205ca9150ef9
3
+ metadata.gz: 459cfc694409e9f569943bcb817c349f227804c8fe065d9be1477a40adff7c33
4
+ data.tar.gz: 30013d6fd8b64af8ec527ea855561d1dbecd0afc43179df6a264a391ab67fb11
5
5
  SHA512:
6
- metadata.gz: 6f39181677f3db9870c58d35a8aea9c1f0cd28d4db8dab8bcfdea879cc4fa3f30a87913cc3b1b540874dc7c944929833b6204628a78c737162fafbb46db2aa2c
7
- data.tar.gz: 3f5c77b697562de79d80a305e7216ac3c588fdfad29aec2d570125c06c92b55470f0cff2a1c4916ad48f80fa84c5f198b1341c9e248ef9a3d7364bb2d4d08a2b
6
+ metadata.gz: c0432a0d1df1a9f3cc2265438ac7ed37b8d335c9bec47bae11c303c51d9ba5f2e9c225d86d314a1b7a42621e62a4e2f2c0443e6d8606c6725db11b404a2d730a
7
+ data.tar.gz: b164919a840f1618cc19172ff0014b7b5d05c8e560a9f2fd133db95474ac95638512d35b4288fe142b08e0cc22b45be5485c8c81640ace9b86db467583bad05d
data/CHANGELOG.md CHANGED
@@ -2,6 +2,14 @@
2
2
 
3
3
  ## [Unreleased]
4
4
 
5
+ ## [0.9.4] - 2024-02-07
6
+ ### Fixed
7
+ - Fixed issue with canceled issues showing up in lcls (@bougyman)
8
+
9
+ ## [0.9.3] - 2024-02-07
10
+ ### Fixed
11
+ - Fixed probblem with tempfile for editing operations (@bougyman)
12
+
5
13
  ## [0.9.1] - 2024-02-06
6
14
  ### Fixed
7
15
  - Fixed wrapper to be more normal about help when listing leaf commands (@bougyman)
@@ -75,8 +83,10 @@
75
83
  ### Added
76
84
  - Added new changelog management system (changelog-rb) (@bougyman)
77
85
 
78
- [Unreleased]: https://github.com/rubyists/linear-cli/compare/0.9.1...HEAD
79
- [0.9.1]: https://github.com/rubyists/linear-cli/compare/v0.9.0...0.9.1
86
+ [Unreleased]: https://github.com/rubyists/linear-cli/compare/0.9.4...HEAD
87
+ [0.9.4]: https://github.com/rubyists/linear-cli/compare/v0.9.3...0.9.4
88
+ [0.9.3]: https://github.com/rubyists/linear-cli/compare/v0.9.1...v0.9.3
89
+ [0.9.1]: https://github.com/rubyists/linear-cli/compare/v0.9.0...v0.9.1
80
90
  [0.9.0]: https://github.com/rubyists/linear-cli/compare/v0.8.6...v0.9.0
81
91
  [0.8.6]: https://github.com/rubyists/linear-cli/compare/v0.8.4...v0.8.6
82
92
  [0.8.4]: https://github.com/rubyists/linear-cli/compare/v0.8.1...v0.8.4
@@ -0,0 +1,4 @@
1
+ type: Fixed
2
+ title: >
3
+ Fixed probblem with tempfile for editing operations
4
+ author: bougyman
@@ -0,0 +1 @@
1
+ date: 2024-02-07
@@ -0,0 +1,4 @@
1
+ type: Fixed
2
+ title: >
3
+ Fixed issue with canceled issues showing up in lcls
4
+ author: bougyman
@@ -0,0 +1 @@
1
+ date: 2024-02-07
@@ -21,10 +21,6 @@ module Rubyists
21
21
  end
22
22
 
23
23
  def choose_a_team!(teams)
24
- prompt.on(:keypress) do |event|
25
- prompt.trigger(:keydown) if event.value == 'j'
26
- prompt.trigger(:keyup) if event.value == 'k'
27
- end
28
24
  key = prompt.select('Choose a team', teams.to_h { |t| [t.name, t.key] })
29
25
  Rubyists::Linear::Team.find key
30
26
  end
@@ -50,6 +46,10 @@ module Rubyists
50
46
  git.current_branch
51
47
  end
52
48
 
49
+ def branch_for(branch_name)
50
+ git.branches.local.detect { |b| b.name == branch_name } || git.branch(branch_name)
51
+ end
52
+
53
53
  # Horrible way to do this, but it is working for now
54
54
  def pull_or_push_new_branch!(branch_name)
55
55
  git.pull
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Rubyists
4
4
  module Linear
5
- VERSION = '0.9.2'
5
+ VERSION = '0.9.4'
6
6
  end
7
7
  end
@@ -51,7 +51,7 @@ module Rubyists
51
51
  answer = prompt.ask("#{question}: ('-' to open an editor)", default: '-')
52
52
  return answer unless answer == '-'
53
53
 
54
- answer = editor_for [thing, '.md']
54
+ answer = editor_for [question.downcase, '.md']
55
55
  raise SmellsBad, "No content provided for #{question}" if answer.empty?
56
56
 
57
57
  answer
@@ -78,11 +78,11 @@ module Rubyists
78
78
  projects.select { |p| p.match_score?(search_term).positive? }.sort_by { |p| p.match_score?(search_term) }
79
79
  end
80
80
 
81
- def project_for(team, project = nil)
81
+ def project_for(team, project = nil) # rubocop:disable Metrics/AbcSize
82
82
  projects = team.projects
83
83
  return nil if projects.empty?
84
84
 
85
- possibles = project_scores(projects, project)
85
+ possibles = project ? project_scores(projects, project) : []
86
86
  return ask_for_projects(projects, search: project) if possibles.empty?
87
87
 
88
88
  first = possibles.first
data/lib/linear/cli.rb CHANGED
@@ -24,6 +24,7 @@ module Dry
24
24
  out.puts Completely::Completions.new(
25
25
  Input.new(@registry, @program_name).call(include_aliases:)
26
26
  ).script
27
+ # Here is the only change in our monkeypatch! Lame, right?
27
28
  out.puts 'complete -F _linear-cli_completions lc'
28
29
  out.string
29
30
  end
@@ -44,6 +45,7 @@ module Rubyists
44
45
  return @prompt if @prompt
45
46
 
46
47
  @prompt = TTY::Prompt.new
48
+ # This gives ex/vim style navigation to menus
47
49
  @prompt.on(:keypress) do |event|
48
50
  @prompt.trigger(:keydown) if event.value == 'j'
49
51
  @prompt.trigger(:keyup) if event.value == 'k'
@@ -92,8 +94,8 @@ module Rubyists
92
94
  module Linear
93
95
  # Open this back up to register 3rd party/other commands
94
96
  module CLI
95
- register 'completion', Dry::CLI::Completion::Command[self]
96
97
  # NOTE: We have monkeypatched the Generator to add our 'lc' alias
98
+ register 'completion', Dry::CLI::Completion::Command[self]
97
99
  end
98
100
  end
99
101
  end
@@ -0,0 +1,31 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'gqli'
4
+
5
+ module Rubyists
6
+ # Namespace for Linear
7
+ module Linear
8
+ M :base_model
9
+ Comment = Class.new(BaseModel)
10
+ # The Comment class represents a Linear issue comment.
11
+ class Comment
12
+ include SemanticLogger::Loggable
13
+
14
+ Base = fragment('BaseComment', 'Comment') do
15
+ id
16
+ body
17
+ url
18
+ createdAt
19
+ updatedAt
20
+ end
21
+
22
+ def to_s
23
+ format('%<id>-12s %<url>s', id:, url:)
24
+ end
25
+
26
+ def inspection
27
+ format('id: "%<id>s" url: "%<url>s"', id:, url:)
28
+ end
29
+ end
30
+ end
31
+ end
@@ -3,7 +3,7 @@
3
3
  module Rubyists
4
4
  # Namespace for Linear
5
5
  module Linear
6
- M :user, :team
6
+ M :user, :team, :comment
7
7
  # The Issue class represents a Linear issue.
8
8
  class Issue
9
9
  # Class methods for Issue
@@ -21,6 +21,7 @@ module Rubyists
21
21
  ___ Base
22
22
  assignee { ___ User.full_fragment }
23
23
  team { ___ Team.full_fragment }
24
+ comments { nodes { ___ Comment.base_fragment } }
24
25
  end
25
26
  end
26
27
 
@@ -13,9 +13,10 @@ module Rubyists
13
13
  include SemanticLogger::Loggable
14
14
  extend ClassMethods
15
15
  many_to_one :assignee, :User
16
- many_to_one :team, :Team
16
+ many_to_one :team
17
+ one_to_many :comments
17
18
 
18
- BASIC_FILTER = { completedAt: { null: true } }.freeze
19
+ BASIC_FILTER = { completedAt: { null: true }, canceledAt: { null: true } }.freeze
19
20
 
20
21
  Base = fragment('BaseIssue', 'Issue') do
21
22
  id
@@ -117,9 +118,17 @@ module Rubyists
117
118
  "Description was unparsable: #{description}\n"
118
119
  end
119
120
 
121
+ def display_comments
122
+ comments.map { |c| "--- #{c.createdAt} ---\n#{TTY::Markdown.parse(c.body)}" }.join("\n")
123
+ end
124
+
120
125
  def full
121
126
  sep = '-' * to_s.length
122
- format("%<to_s>s\n%<sep>s\n%<description>s\n", sep:, to_s:, description: parsed_description)
127
+ format("%<to_s>s\n%<sep>s\n%<description>s\n%<comments>s",
128
+ sep:,
129
+ to_s:,
130
+ description: parsed_description,
131
+ comments: display_comments)
123
132
  end
124
133
 
125
134
  def display(options)
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: linear-cli
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.2
4
+ version: 0.9.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tj (bougyman) Vanderpoel
@@ -246,6 +246,10 @@ files:
246
246
  - changelog/0.9.0/tag.yml
247
247
  - changelog/0.9.1/fixed_wrapper_to_be_more_normal_about_help_when_listing_leaf_commands.yml
248
248
  - changelog/0.9.1/tag.yml
249
+ - changelog/0.9.3/fixed_probblem_with_tempfile_for_editing_operations.yml
250
+ - changelog/0.9.3/tag.yml
251
+ - changelog/0.9.4/fixed_issue_with_canceled_issues_showing_up_in_lcls.yml
252
+ - changelog/0.9.4/tag.yml
249
253
  - changelog/unreleased/.gitkeep
250
254
  - cinemas/listings.cinema
251
255
  - cinemas/listings.cinema.gif
@@ -285,6 +289,7 @@ files:
285
289
  - lib/linear/models/base_model.rb
286
290
  - lib/linear/models/base_model/class_methods.rb
287
291
  - lib/linear/models/base_model/method_magic.rb
292
+ - lib/linear/models/comment.rb
288
293
  - lib/linear/models/issue.rb
289
294
  - lib/linear/models/issue/class_methods.rb
290
295
  - lib/linear/models/label.rb