tachikoma 3.0.1 → 3.0.2

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
  SHA1:
3
- metadata.gz: 5831a8f436e996a753de8fc6a391c7f372902725
4
- data.tar.gz: b8355eba94d70b0902e4a313a3e9f9006f6a6dbc
3
+ metadata.gz: 10078550dec162c6f28dc1b64a42b98d2f364952
4
+ data.tar.gz: 388bb16cb73f62cce0ceb293f004cae16f54890b
5
5
  SHA512:
6
- metadata.gz: eacae9f226657cf252527f3266d91c8ace937182aed4514ed308aa90f4ae28e55aa0236e859c236bdfa3c9e5fd28373fd50455be4b44fd34b7b8bc25cfd8936e
7
- data.tar.gz: e24be4920aabea89393a85c55427bd6cedefa52b8166097554c66da0103e996565a8af6f8e3dcd8733e74d9e5f4c3d50bc289dddf81ee0f61496a94ca2c77491
6
+ metadata.gz: 16ae1f0ba56bc5940e052908a6dc205434e7a8dd622fb6b28a2dc7e6876dbab0de0e780e684a484778a1aaf663940ff123b4de03722dcf426bcd09e57c5638f0
7
+ data.tar.gz: e577b30d83bbda8df93cbfb58cc956f3a35c892bbb0920d5fe5932bb1199adb34e8bba201dbb0884588f24c18c1e2886f72a098f62dc2400f11daf27142bf354
@@ -1,3 +1,3 @@
1
1
  module Tachikoma
2
- VERSION = "3.0.1"
2
+ VERSION = "3.0.2"
3
3
  end
@@ -1,8 +1,7 @@
1
- require 'httparty'
2
- require 'multi_json'
3
1
  require 'safe_yaml'
4
2
  require 'uri'
5
3
  require 'tachikoma'
4
+ require 'octokit'
6
5
 
7
6
  namespace :tachikoma do
8
7
  # deprecated, this will be removed v3.1.0
@@ -28,11 +27,6 @@ namespace :tachikoma do
28
27
  path.sub(%r!^/[^/]+!) { '/' + github_account }
29
28
  end
30
29
 
31
- def target_url(fetch_url)
32
- uri = URI.parse(fetch_url)
33
- 'https://api.github.com/repos/' + uri.path.sub(%r!^/(.*)\.git$!) { $1 } + '/pulls'
34
- end
35
-
36
30
  def target_repository_user(type, fetch_url, github_account)
37
31
  if type == 'fork'
38
32
  github_account
@@ -44,6 +38,10 @@ namespace :tachikoma do
44
38
  end
45
39
  end
46
40
 
41
+ def repository_identity(url)
42
+ %r!((?:[^/]*?)/(?:[^/]*?))(?:\.git)?$!.match(url)[1]
43
+ end
44
+
47
45
  task :load do
48
46
  @build_for = ENV['BUILD_FOR']
49
47
  @github_token = ENV[github_token_key(@build_for)]
@@ -64,28 +62,19 @@ namespace :tachikoma do
64
62
  @commiter_name = @configure['commiter_name']
65
63
  @commiter_email = @configure['commiter_email']
66
64
  @github_account = @configure['github_account']
67
- @fetch_url = @configure['url']
65
+ @url = @configure['url']
66
+ @type = @configure['type']
68
67
  @base_remote_branch = @configure['base_remote_branch']
69
- @authorized_url = authorized_url_with_type(@fetch_url, @configure['type'], @github_token, @github_account)
68
+ @authorized_url = authorized_url_with_type(@url, @type, @github_token, @github_account)
70
69
  @timestamp_format = @configure['timestamp_format'] || @default_timestamp_format
71
70
  @readable_time = Time.now.utc.strftime(@timestamp_format)
72
71
 
73
- @target_url = target_url(@fetch_url)
74
- @headers = {
75
- 'User-Agent' => "Tachikoma #{@github_account}",
76
- 'Authorization' => "token #{@github_token}",
77
- 'Accept' => 'application/json',
78
- 'Content-type' => 'application/json',
79
- }
80
- @target_head = target_repository_user(@configure['type'], @fetch_url, @github_account)
72
+ @target_head = target_repository_user(@type, @url, @github_account)
73
+ @pull_request_url = repository_identity(@url)
81
74
  @pull_request_body = @configure['pull_request_body']
82
75
  @pull_request_base = @configure['pull_request_base']
83
- @body = MultiJson.dump({
84
- title: "Bundle update #{@readable_time}",
85
- body: @pull_request_body,
86
- head: "#{@target_head}:feature/bundle-#{@readable_time}",
87
- base: @pull_request_base,
88
- })
76
+ @pull_request_head = "#{@target_head}:feature/bundle-#{@readable_time}"
77
+ @pull_request_title = "Bundle update #{@readable_time}"
89
78
  end
90
79
 
91
80
  task :clean do
@@ -95,13 +84,14 @@ namespace :tachikoma do
95
84
 
96
85
  desc 'fetch'
97
86
  task fetch: :clean do
98
- sh "git clone #{@fetch_url} #{Tachikoma.repos_path.to_s}/#{@build_for}"
87
+ sh "git clone #{@url} #{Tachikoma.repos_path.to_s}/#{@build_for}"
99
88
  end
100
89
 
101
90
  desc 'bundle'
102
91
  task :bundle do
103
92
  Dir.chdir("#{Tachikoma.repos_path.to_s}/#{@build_for}") do
104
93
  Bundler.with_clean_env do
94
+ sh %Q!sed -i -e 's/^ruby/#ruby/' Gemfile!
105
95
  sh "git config user.name #{@commiter_name}"
106
96
  sh "git config user.email #{@commiter_email}"
107
97
  sh "git checkout -b feature/bundle-#{@readable_time} #{@base_remote_branch}"
@@ -116,11 +106,7 @@ namespace :tachikoma do
116
106
 
117
107
  desc 'pull_request'
118
108
  task :pull_request do
119
- puts @headers
120
- puts @body
121
- response = HTTParty.post(@target_url, headers: @headers, body: @body)
122
- unless response.created?
123
- fail "Do not create pull request yet. #{response.code} #{response.message} #{response.body}"
124
- end
109
+ @client = Octokit::Client.new(login: @github_account, oauth_token: @github_token)
110
+ @client.create_pull_request(@pull_request_url, @pull_request_base, @pull_request_head, @pull_request_title, @pull_request_body)
125
111
  end
126
112
  end
@@ -18,10 +18,9 @@ Gem::Specification.new do |spec|
18
18
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
19
  spec.require_paths = ["lib"]
20
20
 
21
- spec.add_dependency 'httparty'
22
- spec.add_dependency 'multi_json'
23
21
  spec.add_dependency 'safe_yaml'
24
22
  spec.add_dependency 'rake'
23
+ spec.add_dependency 'octokit'
25
24
 
26
25
  spec.add_development_dependency "bundler", "~> 1.3"
27
26
  spec.add_development_dependency 'dotenv'
metadata CHANGED
@@ -1,31 +1,17 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tachikoma
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.0.1
4
+ version: 3.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - sanemat
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-07-10 00:00:00.000000000 Z
11
+ date: 2013-07-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: httparty
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'
27
- - !ruby/object:Gem::Dependency
28
- name: multi_json
14
+ name: safe_yaml
29
15
  requirement: !ruby/object:Gem::Requirement
30
16
  requirements:
31
17
  - - '>='
@@ -39,7 +25,7 @@ dependencies:
39
25
  - !ruby/object:Gem::Version
40
26
  version: '0'
41
27
  - !ruby/object:Gem::Dependency
42
- name: safe_yaml
28
+ name: rake
43
29
  requirement: !ruby/object:Gem::Requirement
44
30
  requirements:
45
31
  - - '>='
@@ -53,7 +39,7 @@ dependencies:
53
39
  - !ruby/object:Gem::Version
54
40
  version: '0'
55
41
  - !ruby/object:Gem::Dependency
56
- name: rake
42
+ name: octokit
57
43
  requirement: !ruby/object:Gem::Requirement
58
44
  requirements:
59
45
  - - '>='