terraspace_ci_github 0.1.2 → 0.1.3

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: be87b221c869bf7120973ee64ba9614681c976f6c6830e5741443b56ff6c02fa
4
- data.tar.gz: 987eb74b850d82e39c73b109b9bf74c10fdad044a03c0f007ff241e485821253
3
+ metadata.gz: bd1bc2f04e34e6cb7e0cc58e2d87f4dd393b28043f383fffe6f7e6e842da38fb
4
+ data.tar.gz: f53bedc944ff116d042877f47e1f3768a1549a6ab0c97956c7ad38e40a13f996
5
5
  SHA512:
6
- metadata.gz: 8029c0e98286792f837ef41c4dbdab70d564b6bd46a8ce6c90e4898ce1b4a9d29025f5fd6434a38797c964dca2367107091e5c513fd32c729ecfebc86c205c3b
7
- data.tar.gz: 7f01a5350218a79a9beb2c1d4becc82e6b75912d62df59917b1112cc17984b3cffda59f545e034bb522bd54b7ce9fb545119477a5f1fb9a5f811be0376938ad0
6
+ metadata.gz: 31ffa1b4da8351b72a49c6fc0f95afd6679f1a0b936538ce0509a1fe97bea21737ee09a51da821a8f8e232b73d279f8340de3b8237b5df30d9f77be0a5094b63
7
+ data.tar.gz: 4b693db74e2d5aa7dab995039cde20909e7ad3f8b35a49585f58fb49b1e8bb48cb894ee3245bde054b2077cb3f4898eea271f64554d4a0e2c919ee05869d4922
data/CHANGELOG.md CHANGED
@@ -3,6 +3,9 @@
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
+
6
9
  ## [0.1.2] - 2022-06-15
7
10
  - [#1](https://github.com/boltops-tools/terraspace_ci_github/pull/1) add faraday-retry gem to get rid of warning
8
11
 
@@ -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']
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module TerraspaceCiGithub
4
- VERSION = "0.1.2"
4
+ VERSION = "0.1.3"
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: terraspace_ci_github
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tung Nguyen