gaf 0.1.2 → 1.1.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: 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