gaf 0.1.2 → 1.1.1

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: 82a34556af458822ef7eb344c2e35e974d79b846906b7b49578f31de73acfc07
4
- data.tar.gz: 68f37dea2c2f943acec9cc4feeb30de618ad201c828754d2f9726d8e3e689f9b
3
+ metadata.gz: d7e7785b4b8995025577b5f92db805750159e67fe005bce157345d5e0903666a
4
+ data.tar.gz: 9ff876cad54a7d02c716e8a5ecab53da7c4d59c355b360ac780d3fd8931dfec9
5
5
  SHA512:
6
- metadata.gz: d4a88467ecfe330144d0127833f07e51af22e5bd1828fb9c01499abd3e38377f3fbf484ea95b219fe33adf19c614effc47e72089d559a8820fb0e90704f1d9ee
7
- data.tar.gz: 9e4a08dc67e6ab09a946a06c82cc8427ef26e713435168f50e32b2058c6de9426e5c4334a3a8cd15c0c8295b5241ba02c2c124dd640ef1998b35898c55f41935
6
+ metadata.gz: fc9280553eaa668502e22c112fd63468b47ccc4a85332e3d851a127f317a6fb8f8c1545632cbcd7741bd39241eedd3cb4c11c2c4e3110c5e1ece07461477cb38
7
+ data.tar.gz: 9b6afdf01e66902d9a2aee87a90aef2b7df5efaf3da03a12b36bc10be9934de40366f340d0863d1bedf2e7586eff93ca9b7a5eb41834f297de2633fa7180f79f
data/lib/gaf/processor.rb CHANGED
@@ -1,17 +1,12 @@
1
+ require "pry"
2
+ require_relative "worksheet/update_worksheet"
3
+
1
4
  module Gaf
2
5
  module Processor
3
- extend ActiveSupport::Concern
4
- include Worksheet::LoadWorksheet
5
-
6
- included do
7
- attr_reader :branch, :pull_request_link, :sprint, :user
8
- before_action :load_branch, :load_pull_request_link, only: :hook_event_github
9
- end
10
-
11
6
  def hook_event_github
12
7
  return if request.headers["X-GitHub-Event"] != "pull_request"
13
8
  init_or_create_user
14
- update_ws
9
+ Gaf::Worksheet::UpdateWorksheet.new(params).update_ws
15
10
  end
16
11
 
17
12
  private
@@ -20,108 +15,5 @@ module Gaf
20
15
  user_params = params["pull_request"]["user"]
21
16
  @user = User.find_or_create_by(name: user_params["login"], github_id: user_params["id"])
22
17
  end
23
-
24
- def pull_request?
25
- request.headers["X-GitHub-Event"] == "pull_request" && params["hook_github"]["action"] == "opened"
26
- end
27
-
28
- def merged?
29
- request.headers["X-GitHub-Event"] == "pull_request" && params["hook_github"]["action"] == "closed" &&
30
- params["pull_request"]["merged_at"].present?
31
- end
32
-
33
-
34
- array_main_branchs.each do |branch|
35
- define_method("pr_merge_to_#{branch}?") do
36
- pull_request? && params_branch == branch
37
- end
38
-
39
- define_method("merged_pull_#{branch}?") do
40
- merged? && params_branch == branch
41
- end
42
-
43
- define_method("pull_merge_to_#{branch}") do |row, ws|
44
- col_pr_merged = hash_row_title["pr_merge_#{branch}"]
45
- pr_present = ws[row, col_pr_merged].present?
46
- ws[row, col_pr_merged] = format_pull_request_link pr_present, ws[row, col_pr_merged]
47
- ws.save
48
- end
49
-
50
- define_method("update_status_merged_to_#{branch}") do |row, ws|
51
- col_merged = hash_row_title["merged_#{branch}"]
52
- ws[row, col_merged] = "Done"
53
- ws.save
54
- end
55
- end
56
-
57
- def update_ws
58
- ref_branch_merge = params["pull_request"]["title"][/\[(.*?)\]/, 1]
59
- (1..worksheet.num_rows).each do |row|
60
- if [branch, ref_branch_merge].include? worksheet[row, 2].delete("\n")
61
- array_main_branchs.each do |branch|
62
- send("update_status_merged_to_#{branch}", row, worksheet) if send("merged_pull_#{branch}?")
63
- send("pull_merge_to_#{branch}", row, worksheet) if send("pr_merge_to_#{branch}?")
64
- end
65
- update_pull_request_for_branch(row, worksheet) if pr_merge_to_branch?
66
- update_status_merged_to_ticket(row, worksheet) if merged_pr?
67
- break
68
- end
69
- end
70
- end
71
-
72
- def update_pull_request_for_branch row, ws
73
- col_pr = hash_row_title["PR"]
74
- ticket = params["pull_request"]["head"]["ref"][/([0-9]+)(?=[^\/]*$)/,1]
75
- array_main_branchs.each do |branch|
76
- col_merged = hash_row_title["merged_#{branch}"]
77
- col_deployed = hash_row_title["deployed_#{branch}"]
78
- ws[row, col_merged] = "N/A"
79
- ws[row, col_deployed] = "N/A"
80
- end
81
- col_ticket = hash_row_title["Ticket"]
82
- pr_present = ws[row, col_pr].present?
83
- ws[row, col_pr] = format_pull_request_link pr_present, ws[row, col_pr]
84
- ws[row, col_ticket] = col_ticket.present? ? ws[row, col_ticket] + "\n#{ticket}" : ticket
85
- ticket_by_user ticket
86
- ws.save
87
- end
88
-
89
- def ticket_by_user ticket
90
- Ticket.create user_id: user.id, sprint_id: sprint.id, ticket_id: ticket
91
- end
92
-
93
- def format_pull_request_link pr_present, previous_prs_link
94
- return previous_prs_link + "\n\n#{pull_request_link}" if pr_present
95
-
96
- pull_request_link
97
- end
98
-
99
- def update_status_merged_to_ticket row, ws
100
- col_ticket = hash_row_title["Ticket"]
101
- ticket = params["pull_request"]["head"]["ref"][/([0-9]+)(?=[^\/]*$)/,1]
102
- arr_ticket = ws[row, col_ticket].split("\n").map{|tick| tick == ticket ? tick + "(merged)" : tick}
103
- ws[row, col_ticket] = arr_ticket.join("\n")
104
- ws.save
105
- end
106
-
107
- def pr_merge_to_branch?
108
- pull_request? && array_main_branchs.exclude?(params_branch)
109
- end
110
-
111
- def merged_pr?
112
- merged? && array_main_branchs.exclude?(params_branch)
113
- end
114
-
115
- def params_branch
116
- params["pull_request"]["base"]["ref"]
117
- end
118
-
119
- def load_pull_request_link
120
- @pull_request_link = params["pull_request"]["html_url"]
121
- end
122
-
123
- def load_branch
124
- @branch = params["pull_request"]["base"]["ref"]
125
- end
126
18
  end
127
19
  end
data/lib/gaf/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Gaf
4
- VERSION = "0.1.2"
4
+ VERSION = "1.1.1"
5
5
  end
@@ -1,20 +1,17 @@
1
1
  module Gaf
2
2
  module Worksheet
3
3
  class CreateWorksheet
4
- ROWS = ["STT", "Feature Branch", "Note", "Note Release", "PR feature branch", "Ticket"].freeze
5
- def initialize
6
- @array_main_branchs = Gaf.config.array_main_branchs
7
- arr_rows
8
- end
4
+ ROWS = ["STT", "Feature Branch", "Note", "Note Release", "PR feature branch", "Ticket"]
9
5
 
10
- def self.create
6
+ def create
7
+ arr_rows
11
8
  session = GoogleDrive::Session.from_config(Gaf.config.google_application_credential)
12
9
  spreadsheet = session.spreadsheet_by_title(Gaf.config.title_worksheet)
13
- @worksheet = spreadsheet.worksheets.first
10
+ worksheet = spreadsheet.worksheets.first
14
11
  rows.each_with_index do |row, index |
15
- @worksheet[1, index] = row
12
+ worksheet[1, index+1] = row
16
13
  end
17
- @worksheet.save
14
+ worksheet.save
18
15
  end
19
16
 
20
17
  private
@@ -22,6 +19,7 @@ module Gaf
22
19
 
23
20
  def arr_rows
24
21
  @rows = ROWS
22
+ @array_main_branchs = Gaf.config.array_main_branchs
25
23
  array_main_branchs.each do |main_branch|
26
24
  need_rows = ["pr_merge_#{main_branch}", "merged_#{main_branch}", "deployed_#{main_branch}"]
27
25
  rows << need_rows
@@ -1,19 +1,11 @@
1
1
  module Gaf
2
2
  module Worksheet
3
3
  module LoadWorksheet
4
- extend ActiveSupport::Concern
5
- attr_reader :worksheet, :hash_row_title
6
-
7
- included do
8
- before_action :worksheet, :get_first_row
9
- end
10
-
11
- private
12
- def worksheet
4
+ def load_worksheet
13
5
  session = GoogleDrive::Session.from_config(Gaf.config.google_application_credential)
14
6
  spreadsheet = session.spreadsheet_by_title(Gaf.config.title_worksheet)
15
- @worksheet = spreadsheet.worksheets.last
16
- @sprint = Sprint.find_or_create_by name: worksheet.title
7
+ @worksheet ||= spreadsheet.worksheets.last
8
+ @sprint ||= Sprint.find_or_create_by name: worksheet.title
17
9
  end
18
10
 
19
11
  def get_first_row
@@ -25,3 +17,4 @@ module Gaf
25
17
  end
26
18
  end
27
19
  end
20
+
data/lib/gaf.rb CHANGED
@@ -1,13 +1,12 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require_relative "gaf/version"
4
- require "gaf/worksheet/create_worksheet"
5
- require "gaf/worksheet/load_worksheet"
6
- require "gaf/processor"
7
3
  require "gaf/config"
4
+ require "gaf/version"
8
5
 
9
6
 
10
7
  module Gaf
8
+ autoload :Processor, "gaf/processor"
9
+
11
10
  class Error < StandardError; end
12
11
 
13
12
  def self.configure
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gaf
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 1.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - DiHu
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-10-24 00:00:00.000000000 Z
11
+ date: 2021-10-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: google_drive
@@ -86,7 +86,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
86
86
  - !ruby/object:Gem::Version
87
87
  version: '0'
88
88
  requirements: []
89
- rubygems_version: 3.2.3
89
+ rubygems_version: 3.0.3
90
90
  signing_key:
91
91
  specification_version: 4
92
92
  summary: Create githook webhook and management pull request on worksheet