bitbar_gitlab 0.1.2 → 0.1.3

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
  SHA1:
3
- metadata.gz: 8f5cef9525f39ce9bc6313fee1dd095756ae43c0
4
- data.tar.gz: 9f55f2a1e70b237f2c8c80f011b917e8a2e572c8
3
+ metadata.gz: f319aadfd9c3e462a7aadaf90ed2e2ce9f5a2967
4
+ data.tar.gz: 8dd4e9cbc1f4f1a7ae7154e4f7cd28905f9e8664
5
5
  SHA512:
6
- metadata.gz: 52a85779e7775d76528fea1e7fd27422b9dc4dc2b7bc42a2d332b869d1b84e6a417871f9985ed9c4f9eafd1349d87f05bb9d15a4f975a9a8d17b6549b5233574
7
- data.tar.gz: a4d05b8736384036635562e88abb0131d05d0643f44445904b395bf14a1c82461f62a984052e636ae1a53a81ffe894905e16febe7c0382ae10f115f7270657bf
6
+ metadata.gz: 0fc286d5ddb18e51b031622f705c8abb4312e384ff50ad517b7b0b0b2fe432bda504e655a2739d60dd3d5358a901536173fecdc50f266c064fd87588bc600fe0
7
+ data.tar.gz: cf1a5ecf6bf88c32d8514e5337465bae884b17a83d283424ae5b5b5e78f8f2e5847ed4ba9fa85f7a9aa08d97f9e5d4391507b4ab982e794b78285e6f158b02df
data/Gemfile CHANGED
@@ -2,3 +2,4 @@ source "https://rubygems.org"
2
2
 
3
3
  # Specify your gem's dependencies in bitbar_gitlab.gemspec
4
4
  gemspec
5
+
data/README.md CHANGED
@@ -2,6 +2,18 @@
2
2
 
3
3
  BitBar GitLab Plugin, giving access to issues and pipelines.
4
4
 
5
+ ## Features
6
+
7
+ - Browse project issues
8
+ - Focus project issues
9
+ - Copy issue title to pasteboard
10
+ - New issue in project
11
+ - Show/hide starred projects
12
+ - Show/hide all projects
13
+ - Focus project pipelines
14
+ - Show pipeline status
15
+ - Notify when pipeline has finished
16
+
5
17
  ## Requirements
6
18
 
7
19
  - macOS
@@ -35,6 +47,8 @@ When finished without problems start BitBar or refresh plugins.
35
47
 
36
48
  The menu's should be self explaining
37
49
 
50
+ ![image](assets/screenie.png)
51
+
38
52
  ## macOS notifications for GitLab CI jobs
39
53
 
40
54
  If you like to have macOS notifications you must install terminal-notifier with brew.
Binary file
@@ -18,16 +18,16 @@ Gem::Specification.new do |spec|
18
18
 
19
19
  # Prevent pushing this gem to RubyGems.org. To allow pushes either set the 'allowed_push_host'
20
20
  # to allow pushing to a single host or delete this section to allow pushing to any host.
21
- if spec.respond_to?(:metadata)
22
- # spec.metadata["allowed_push_host"] = "TODO: Set to 'http://mygemserver.com'"
23
-
24
- spec.metadata["homepage_uri"] = spec.homepage
25
- spec.metadata["source_code_uri"] = "https://github.com/mipmip/bitbar_gitlab"
26
- spec.metadata["changelog_uri"] = "https://github.com/mipmip/mipmip-bitbar_gitlab/blob/master/CHANGELOG.md"
27
- else
28
- raise "RubyGems 2.0 or newer is required to protect against " \
29
- "public gem pushes."
30
- end
21
+ # if spec.respond_to?(:metadata)
22
+ ## spec.metadata["allowed_push_host"] = "TODO: Set to 'http://mygemserver.com'"
23
+ #
24
+ # spec.metadata["homepage_uri"] = spec.homepage
25
+ # spec.metadata["source_code_uri"] = "https://github.com/mipmip/bitbar_gitlab"
26
+ # spec.metadata["changelog_uri"] = "https://github.com/mipmip/mipmip-bitbar_gitlab/blob/master/CHANGELOG.md"
27
+ # else
28
+ # raise "RubyGems 2.0 or newer is required to protect against " \
29
+ # "public gem pushes."
30
+ # end
31
31
 
32
32
  # Specify which files should be added to the gem when it is released.
33
33
  # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
@@ -43,4 +43,5 @@ Gem::Specification.new do |spec|
43
43
  spec.add_development_dependency "minitest", "~> 5.0"
44
44
 
45
45
  spec.add_runtime_dependency "gitlab", "~> 4.5"
46
+ spec.add_runtime_dependency "relative_time"
46
47
  end
@@ -1,6 +1,7 @@
1
1
  def run_main
2
2
 
3
- puts "GitLab"
3
+ puts "| templateImage=iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAAlwSFlzAAAWJQAAFiUBSVIk8AAAAVlpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iPgogICAgICAgICA8dGlmZjpPcmllbnRhdGlvbj4xPC90aWZmOk9yaWVudGF0aW9uPgogICAgICA8L3JkZjpEZXNjcmlwdGlvbj4KICAgPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4KTMInWQAAA/ZJREFUWAm1lsmPTFEUxp82dwwhSFiIIWgSTUxhR6TpGBckhrDBhoUpbBA7O0PC32AIVoZIhJAYEiKmhWGnJcQ8RczT93t1vsrt6iqlOvElX91zz/nOOffed9/rzrK26JC4Ujtx12SmNVK7bJGO4d2gcV3Y9pVNqOJ07lrpNtZS77nEjyOh6qpDV25w7iMFX5YTpD6vdrKcv4PjQlCXCv/Rdk5j1KLmlMh1r8wi/LYXhohhftiOJaGqpnNcgwTXdqxVER/XHXl9AtdD4VirhCoTN7mW1LtbqZ7FHDnNfwWxR4vAmsLs77/WNkjmzfwMe3yk5o/BQo8+rh8SQTC3MLRrAc79rhosACwoDFmrU/WEI2fFXgD25UjwImP618HaS1KV1rsRme5Z3BlH7eNKHwGLGR5JLhzTsoM1wxRl59RM6zEfI4I6xE5ozl1Z9lkjxwWxeVazRNBV7FSFaECTiLa0HjH3ynt7AfcU8AmUjrfJqhG3pC+t4/n9qFXn5zBYjh3hxIfQ4AQ+ijfFLmIa07QNyP8mThB7iJyk+8gs5u+S3YIDbBP35FblnyMKeQfVxqOVy+SR3frdnmouaELRZeHsrtHPulv4ZmpE80XkcpUjMTQ8f0Cu61ATLBHRXBRzDNHvVxEnRRtEQCLw8dXLfiKi41gZU9r3VH60wLmuNUo+epBHz6FcwDkiz5bVIzwhdhZ5/Ygjxv9JPCsCXqtS2IcGLTnkUoNars1IL3rSOzsnIkTkkzgmG3ABAUmALyVa7wLbtM9/cJzjGkdDSw96kXdezHeTFuUGM99KUOA0fJQ9ZT8XifvIU/uF/L1EQA65YIuIzrW9WHzZ+ghakH61ZiAQKOSdHJSNNi1i+5D8AK2bT5eN3nW9CHwbxBxT9dsiurALvpVvQK4ofAUxF4nWMab2YgSCv4b9Zb8RrXHdx/JNE3N4pbwy7MBFuUjYV0Xgx9BH9muRmHeFTaO+IrD2imxiroV9WPSr7d7FS6ZYtkr0SvkCknRABE7kkuJHZ+1x2cCa/bLRuAYXb7Vo+JJ6nr8udo6Q96ZIAX9cVhaVWbY0YukClifxFRF3Ln8XRkacHryaFVE8Fin2iiwCcnkaRTBQfC869kH2IBGMFf06E9+HM5DWtq/s6BtPkP9qXooUeyjWi+Ck6AWcyj1Zxuf2QfjJmRd+hrRm4q5scpG84n6yaUJDN+OueAFrZAMv6rRs3gBADV/K3FHrjxdB3iaRpjuZCFwsPkhgh0hsM5NAmmtfu0YujS/ORNmvxGaRnZ4RZ4v4Jokg1Rc8FX5rPRp2xM3vLbJTLiN4JnJh34nWyPw/8KtK9aagO6Ux+/7LyBGnp4ftR1RTwz+EnjyMz43L0gAAAABJRU5ErkJggg=="
4
+
4
5
  puts "---"
5
6
 
6
7
  puts "Refresh | refresh=true"
@@ -1,3 +1,5 @@
1
+ require 'relative_time'
2
+
1
3
  def shellwrap
2
4
  "#{$conf.get_key :exe_util_dir}/shellwrap.sh"
3
5
  end
@@ -42,17 +44,50 @@ def project_menu pr, level, in_focus = false
42
44
  end
43
45
  end
44
46
 
47
+ def pipeline_color status
48
+ if status == 'failed'
49
+ 'color=red'
50
+ elsif status == 'success'
51
+ 'color=green'
52
+ elsif status == 'running'
53
+ 'color=blue'
54
+ else
55
+ 'color=black'
56
+ end
57
+ end
58
+
59
+ def pipeline_text status
60
+ if status == 'success'
61
+ 'passed'
62
+ elsif status == 'running'
63
+ 'is running'
64
+ else
65
+ status
66
+ end
67
+ end
68
+
45
69
  def pipeline_focus_menu pr, level, in_focus = false
46
70
 
71
+ require "pp"
47
72
  data = []
48
73
  labels = ['id','status','web_url']
49
74
  $gitlab.pipelines(pr.to_hash['id'].to_s,{per_page:3, page:1, state: 'running'}).collect do |iss|
50
75
 
76
+ more = $gitlab.pipeline(pr.to_hash['id'].to_s,iss.to_hash['id'] )
77
+
78
+ #PP.pp (Time.now - Time.parse(more.to_hash['finished_at'])).to_i
79
+
51
80
  d = []
52
81
  labels.each do |l|
53
82
  d << iss.to_hash[l].to_s
54
83
  end
55
84
 
85
+ if more.to_hash['finished_at']
86
+ d << RelativeTime.in_words(Time.now - (Time.now - Time.parse(more.to_hash['finished_at'])).to_i)
87
+ else
88
+ d << ''
89
+ end
90
+
56
91
  data << d
57
92
  end
58
93
 
@@ -61,11 +96,11 @@ def pipeline_focus_menu pr, level, in_focus = false
61
96
  data.each do |d|
62
97
  if i == 0
63
98
  if $conf.get_key(:last_job_id) == d[0] and $conf.get_key(:last_job_status) != d[1]
64
- if d[1] == 'success'
65
- notify "-title 'GitLab Pipeline Passed' -message '#{d[0]} passed' -open '#{d[2]}'"
66
- elsif d[1] == 'failed'
67
- notify "-title 'GitLab Pipeline Failed' -message '#{d[0]} failed' -open '#{d[2]}'"
68
- end
99
+ if d[1] == 'success'
100
+ notify "-title 'GitLab Pipeline Passed' -message '#{d[0]} passed' -open '#{d[2]}'"
101
+ elsif d[1] == 'failed'
102
+ notify "-title 'GitLab Pipeline Failed' -message '#{d[0]} failed' -open '#{d[2]}'"
103
+ end
69
104
  end
70
105
 
71
106
  $conf.set_key :last_job_id, d[0]
@@ -75,21 +110,20 @@ def pipeline_focus_menu pr, level, in_focus = false
75
110
 
76
111
  i+=1
77
112
 
78
- puts "#{indent level}#{d[0]} #{d[1]} | href=#{d[2]}"
113
+ puts "#{indent level}job #{d[0]} #{pipeline_text d[1]} #{d[3]}| href=#{d[2]} #{pipeline_color d[1]}"
79
114
  end
80
115
  end
81
116
 
82
117
  def pipeline_menu pr, level, in_focus = false
83
118
 
119
+ project_info = $gitlab.project(pr.to_hash['id'].to_s)
120
+ return unless project_info.to_hash['jobs_enabled']
121
+
84
122
  data = []
85
- labels = ['id', 'status','web_url']
86
- $gitlab.pipelines(pr.to_hash['id'].to_s,{per_page:3, page:1, state: 'running'}).collect do |iss|
87
123
 
88
- d = []
89
- labels.each do |l|
90
- d << iss.to_hash[l].to_s
91
- end
92
124
 
125
+ $gitlab.pipelines(pr.to_hash['id'].to_s,{per_page:3, page:1, state: 'running'}).collect do |iss|
126
+ d = []
93
127
  data << d
94
128
  end
95
129
 
@@ -105,7 +139,7 @@ def pipeline_menu pr, level, in_focus = false
105
139
  data.each do |d|
106
140
  i+=1
107
141
 
108
- puts "#{indent level}#{d[0]} #{d[1]} | href=#{d[2]}"
142
+ puts "#{indent level}#{d[0]} #{d[1]} | href=#{d[2]} #{pipeline_color d[1]}"
109
143
  end
110
144
  end
111
145
 
@@ -1,3 +1,3 @@
1
1
  module BitbarGitlab
2
- VERSION = "0.1.2"
2
+ VERSION = "0.1.3"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bitbar_gitlab
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Pim Snel
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-02-08 00:00:00.000000000 Z
11
+ date: 2019-02-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -66,6 +66,20 @@ dependencies:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
68
  version: '4.5'
69
+ - !ruby/object:Gem::Dependency
70
+ name: relative_time
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :runtime
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
69
83
  description: BitBar GitLab Plugin, giving access to issues and pipelines.
70
84
  email:
71
85
  - pim@lingewoud.nl
@@ -83,6 +97,7 @@ files:
83
97
  - LICENSE.txt
84
98
  - README.md
85
99
  - Rakefile
100
+ - assets/screenie.png
86
101
  - bin/console
87
102
  - bin/setup
88
103
  - bitbar_gitlab.gemspec
@@ -98,10 +113,7 @@ files:
98
113
  homepage: https://github.com/mipmip/bitbar_gitlab
99
114
  licenses:
100
115
  - MIT
101
- metadata:
102
- homepage_uri: https://github.com/mipmip/bitbar_gitlab
103
- source_code_uri: https://github.com/mipmip/bitbar_gitlab
104
- changelog_uri: https://github.com/mipmip/mipmip-bitbar_gitlab/blob/master/CHANGELOG.md
116
+ metadata: {}
105
117
  post_install_message:
106
118
  rdoc_options: []
107
119
  require_paths: