tachikoma 3.0.1 → 3.0.2

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
  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
  - - '>='