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 +4 -4
- data/lib/gaf/processor.rb +4 -112
- data/lib/gaf/version.rb +1 -1
- data/lib/gaf/worksheet/create_worksheet.rb +7 -9
- data/lib/gaf/worksheet/load_worksheet.rb +4 -11
- data/lib/gaf.rb +3 -4
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d7e7785b4b8995025577b5f92db805750159e67fe005bce157345d5e0903666a
|
4
|
+
data.tar.gz: 9ff876cad54a7d02c716e8a5ecab53da7c4d59c355b360ac780d3fd8931dfec9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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,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"]
|
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
|
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
|
-
|
10
|
+
worksheet = spreadsheet.worksheets.first
|
14
11
|
rows.each_with_index do |row, index |
|
15
|
-
|
12
|
+
worksheet[1, index+1] = row
|
16
13
|
end
|
17
|
-
|
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
|
-
|
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
|
16
|
-
@sprint
|
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:
|
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-
|
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.
|
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
|