terraspace_ci_github 0.1.0 → 0.1.3

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: 8d88b062ab17176d868d4f0b6f11a8a4b614c1e1396922186e4356264be0e069
4
- data.tar.gz: 58b57b162da756f2e3aa63c055c8980ab58aa846489ac6378263fa72bfc1101c
3
+ metadata.gz: bd1bc2f04e34e6cb7e0cc58e2d87f4dd393b28043f383fffe6f7e6e842da38fb
4
+ data.tar.gz: f53bedc944ff116d042877f47e1f3768a1549a6ab0c97956c7ad38e40a13f996
5
5
  SHA512:
6
- metadata.gz: ccae205902e9717ca80ee2335238052217e9e4e553ebbe2c1afec8274c7aeda317ed73a04eeb611f9406af4964af5f12074a6da69f77614add44697613d34134
7
- data.tar.gz: 2f24c1dd359f4856e4f67b5681777417647dc6f60d514d4b82400d631d34611a9b30f505ccb2b65dbb319800121c58a1920a8336e0c56b680aea27a84c5be3e1
6
+ metadata.gz: 31ffa1b4da8351b72a49c6fc0f95afd6679f1a0b936538ce0509a1fe97bea21737ee09a51da821a8f8e232b73d279f8340de3b8237b5df30d9f77be0a5094b63
7
+ data.tar.gz: 4b693db74e2d5aa7dab995039cde20909e7ad3f8b35a49585f58fb49b1e8bb48cb894ee3245bde054b2077cb3f4898eea271f64554d4a0e2c919ee05869d4922
data/CHANGELOG.md CHANGED
@@ -3,6 +3,16 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  This project *tries* to adhere to [Semantic Versioning](http://semver.org/).
5
5
 
6
+ ## [0.1.3] - 2022-06-15
7
+ - [#2](https://github.com/boltops-tools/terraspace_ci_github/pull/2) get pr url from push commit message
8
+
9
+ ## [0.1.2] - 2022-06-15
10
+ - [#1](https://github.com/boltops-tools/terraspace_ci_github/pull/1) add faraday-retry gem to get rid of warning
11
+
12
+ ## [0.1.1] - 2022-06-09
13
+
14
+ - Fix branch name
15
+
6
16
  ## [0.1.0] - 2022-06-09
7
17
 
8
18
  - Initial release
@@ -1,3 +1,5 @@
1
+ require "faraday"
2
+ require "faraday/retry"
1
3
  require "octokit"
2
4
 
3
5
  module TerraspaceCiGithub
@@ -1,11 +1,11 @@
1
1
  module TerraspaceCiGithub
2
2
  class Pr < Base
3
3
  def comment(url)
4
- return unless ENV['GITHUB_EVENT_NAME'] == 'pull_request'
4
+ return unless pull_request_available?
5
5
  return unless github_token?
6
6
 
7
7
  repo = ENV['GITHUB_REPOSITORY'] # org/repo
8
- number = ENV['GITHUB_REF_NAME'].split('/').first # IE: 2/merge
8
+ number = pr_number
9
9
  marker = "<!-- terraspace marker -->"
10
10
  body = marker + "\n"
11
11
  body << "Terraspace Cloud Url #{url}"
@@ -25,5 +25,17 @@ module TerraspaceCiGithub
25
25
  rescue Octokit::Unauthorized => e
26
26
  puts "WARN: #{e.message}. Unable to create pull request comment. Please double check your github token"
27
27
  end
28
+
29
+ def pull_request_available?
30
+ !!pr_number
31
+ end
32
+
33
+ def pr_number
34
+ if ENV['GITHUB_EVENT_NAME'] == 'pull_request'
35
+ ENV['GITHUB_REF_NAME'].split('/').first # IE: 2/merge
36
+ else
37
+ Vars.new.pr_number
38
+ end
39
+ end
28
40
  end
29
41
  end
@@ -12,7 +12,7 @@ module TerraspaceCiGithub
12
12
  build_url: build_url,
13
13
  # additional properties
14
14
  build_type: build_type, # required IE: pull_request or push
15
- pr_number: pr['number'], # set when build_type=pull_request
15
+ pr_number: pr_number, # set when build_type=pull_request
16
16
  sha: sha,
17
17
  # additional properties
18
18
  commit_message: commit_message,
@@ -25,8 +25,27 @@ module TerraspaceCiGithub
25
25
  ENV['GITHUB_SERVER_URL'] || 'https://github.com'
26
26
  end
27
27
 
28
+ COMMIT_PATTERN = %r{Merge pull request #(\d) from (.*)}
28
29
  def pr_url
29
- "#{host}/#{full_repo}/pull/#{pr['number']}" if pr['number']
30
+ if pr['number']
31
+ "#{host}/#{full_repo}/pull/#{pr['number']}"
32
+ elsif md = commit_message.match(COMMIT_PATTERN)
33
+ # git push commit has commit with PR info
34
+ # IE: Merge pull request #4 from tongueroo/feature
35
+ number = md[1]
36
+ org_branch = md[2]
37
+ org = org_branch.split('/').first
38
+ repo = ENV['GITHUB_REPOSITORY'].split('/').last # IE: tongueroo/infra-ci
39
+ "#{host}/#{org}/#{repo}/pull/#{number}"
40
+ end
41
+ end
42
+
43
+ def pr_number
44
+ if pr['number']
45
+ pr['number']
46
+ elsif md = commit_message.match(COMMIT_PATTERN)
47
+ md[1] # number
48
+ end
30
49
  end
31
50
 
32
51
  def build_url
@@ -46,6 +65,7 @@ module TerraspaceCiGithub
46
65
  rescue Octokit::Unauthorized => e
47
66
  puts "WARN: #{e.message}. Error getting commit message. Please double check your github token"
48
67
  end
68
+ memoize :commit_message
49
69
 
50
70
  def full_repo
51
71
  ENV['GITHUB_REPOSITORY']
@@ -67,7 +87,7 @@ module TerraspaceCiGithub
67
87
  if build_type == "pull_request"
68
88
  pr.dig('pull_request','head','ref')
69
89
  else # push
70
- ENV['GITHUB_REF']
90
+ ENV['GITHUB_REF_NAME']
71
91
  end
72
92
  end
73
93
 
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module TerraspaceCiGithub
4
- VERSION = "0.1.0"
4
+ VERSION = "0.1.3"
5
5
  end
@@ -28,6 +28,7 @@ Gem::Specification.new do |spec|
28
28
  spec.executables = spec.files.grep(%r{\Aexe/}) { |f| File.basename(f) }
29
29
  spec.require_paths = ["lib"]
30
30
 
31
+ spec.add_dependency "faraday-retry"
31
32
  spec.add_dependency "memoist"
32
33
  spec.add_dependency "octokit"
33
34
  spec.add_dependency "zeitwerk"
metadata CHANGED
@@ -1,15 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: terraspace_ci_github
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tung Nguyen
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-06-10 00:00:00.000000000 Z
11
+ date: 2022-06-15 00:00:00.000000000 Z
12
12
  dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: faraday-retry
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
13
27
  - !ruby/object:Gem::Dependency
14
28
  name: memoist
15
29
  requirement: !ruby/object:Gem::Requirement