code_review_notifier 0.1.3 → 0.2.0

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: d6de431ed11fa0855c6ed44e294a4b8a76bd69ad845c1ea9bfacdd9a326e0b66
4
- data.tar.gz: 0b084e6c55eda7ee644232ad770ad2bde38b43f12c1bea6f209d2ebce816b6dd
3
+ metadata.gz: 69b61c9f19daf4e8a85cfef15ffe035d232a5352a7240b326fadc8930b85bf9f
4
+ data.tar.gz: 1e2f0b33a43e4db336fc20a2ee99a9c5e79b3da9856f48b15ac04daa87f180fd
5
5
  SHA512:
6
- metadata.gz: 28eae7ef98c923678e89c54d3a23c73dd4ff649ce55fcb7ee9f51a80ea0e74e331aae31f878c432fdb6657e27f275afffce16001ffd5bdeb341f095235207f0c
7
- data.tar.gz: b586a847bca12814d570e2f73ace4d5860cf144e0024ea503994cdc5846e489f88416f3b0847731a6feb6f40cc90714fa96aca2afb6f3c1ac17782ac44f9e175
6
+ metadata.gz: 3fe2b9b7ef4e7b40b2e8e3581ba8ba73b7e8c93686a32c93be4f5dfd6ab9534c7aaf8016d59994ebd9bd7ec45df9260d62e91d000ba459425309b8dd2eecd5d4
7
+ data.tar.gz: f79a7ab782fd1f7d73fb6ceead88144523cb39ea7cb7228563ff2393d7941bf296083af15e66ac563dd41d8ffffa4ee65fcba82781e7d59b891d4020ad93f34b
@@ -10,6 +10,10 @@ end
10
10
  class BaseApi
11
11
  include HTTParty
12
12
 
13
+ def self.token
14
+ @token ||= DB.get_setting("api_token") || self.authenticate
15
+ end
16
+
13
17
  def self.authenticate
14
18
  raise NotImplementedError
15
19
  end
@@ -4,6 +4,7 @@ require_relative "./models/code_change_activity.rb"
4
4
 
5
5
  class GerritApi < BaseApi
6
6
  def self.authenticate
7
+ @token = nil
7
8
  res = post("/login/", {
8
9
  body: "username=#{username}&password=#{URI.escape(password)}&rememberme=1",
9
10
  headers: {
@@ -12,11 +13,14 @@ class GerritApi < BaseApi
12
13
  follow_redirects: false
13
14
  })
14
15
  set_cookie_header = res.headers["set-cookie"] || ""
15
- @token = set_cookie_header.match("GerritAccount=(.*?);")&.to_a&.fetch(1)
16
- if @token.nil?
16
+ token = set_cookie_header.match("GerritAccount=(.*?);")&.to_a&.fetch(1)
17
+ if token.nil?
17
18
  Notifier.notify("Incorrect Credentials", "Trying running `code_review_notifier --setup` again.")
18
19
  sleep(120)
19
20
  exit
21
+ else
22
+ DB.save_setting("api_token", token, is_secret: true)
23
+ token
20
24
  end
21
25
  end
22
26
 
@@ -24,7 +28,7 @@ class GerritApi < BaseApi
24
28
  wrap_with_authentication do
25
29
  get("/changes/?S=0&q=is%3Aopen%20owner%3Aself%20-is%3Awip%20-is%3Aignored%20limit%3A25&q=is%3Aopen%20owner%3Aself%20is%3Awip%20limit%3A25&q=is%3Aopen%20-owner%3Aself%20-is%3Awip%20-is%3Aignored%20reviewer%3Aself%20limit%3A25&q=is%3Aclosed%20-is%3Aignored%20%28-is%3Awip%20OR%20owner%3Aself%29%20%28owner%3Aself%20OR%20reviewer%3Aself%29%20-age%3A4w%20limit%3A10&o=DETAILED_ACCOUNTS&o=MESSAGES", {
26
30
  headers: {
27
- "Cookie" => "GerritAccount=#{@token};"
31
+ "Cookie" => "GerritAccount=#{token};"
28
32
  }
29
33
  })
30
34
  end.parsed_response.flat_map { |js| js.map { |j| code_change_from_json(j) } }
@@ -10,7 +10,7 @@ class CodeChange
10
10
  @id = id
11
11
  @owner = owner
12
12
  @project = project
13
- @subject = subject.gsub("'", "")
13
+ @subject = subject.gsub("'", "")
14
14
  @updated_at = updated_at
15
15
  end
16
16
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: code_review_notifier
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.3
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kyle Grinstead