pully 0.0.1 → 0.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 +4 -4
- data/.gitignore +1 -0
- data/.travis.yml +1 -1
- data/README.md +18 -19
- data/Rakefile +5 -0
- data/lib/pully.rb +137 -1
- data/lib/pully/version.rb +1 -1
- data/pully.gemspec +3 -2
- data/spec/assets/gh_key.private +27 -0
- data/spec/assets/gh_key.public +1 -0
- data/spec/assets/git_ssh +5 -0
- data/spec/assets/test.yml +5 -0
- data/spec/env_spec.rb +18 -0
- data/spec/lib_spec.rb +52 -0
- data/spec/lib_test_spec.rb +55 -0
- metadata +59 -7
- data/bin/pully +0 -41
- data/spec/cli_spec.rb +0 -15
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ac6ecacdbc362f4fc022fc9fa9fa2d81013a25fa
|
4
|
+
data.tar.gz: 1c878608104e3d72f23702a2f153382c11fccc11
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2c6131eabbc8ba34f82a79c0a39de726c50cfa5716a039921cfb2d3cd84284b7b3ce0d227596a7044ad95e307683ae54369ccdd86a6e0b383d8e12fd21e770d4
|
7
|
+
data.tar.gz: 2497f645f7e725aec7a42812de990f69061f297280ce70ff2483676ce2c2f9bb26363eff0bfabe728696dc111dca677c17920b707a0e1e31a1451f5c01376cc6
|
data/.gitignore
CHANGED
data/.travis.yml
CHANGED
data/README.md
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|

|
2
2
|
|
3
|
-
[](http://badge.fury.io/rb/pully)
|
4
|
+
[](https://travis-ci.org/sotownsend/Pully)
|
5
5
|
[](https://bitdeli.com/free "Bitdeli Badge")
|
6
6
|
[](https://github.com/sotownsend/pully/blob/master/LICENSE)
|
7
7
|
|
@@ -9,33 +9,31 @@
|
|
9
9
|
|
10
10
|
A work in progress
|
11
11
|
|
12
|
-
#
|
13
|
-
|
12
|
+
# Basic usage
|
13
|
+
```ruby
|
14
|
+
require 'pully'
|
14
15
|
|
15
|
-
#
|
16
|
-
|
16
|
+
#Create a new pully object, each pully object targets (1) repository.
|
17
|
+
pully = Pully.new("github_username", "github_password", "my_repository")
|
17
18
|
|
18
|
-
#
|
19
|
-
|
19
|
+
#Create a new pull request to merge 'my_branch' into 'master' with the title 'My pull request' and the message 'Hey XXX...'
|
20
|
+
pull_number = pully.create_pull_request(from:"my_branch", to:"master", subject:"My pull request", message:"Hey XXXX, can you merge this for me?")
|
20
21
|
|
21
|
-
|
22
|
-
|
23
|
-
- send and receive events from a global or internal source.
|
24
|
-
- set interval and timeout timers.
|
25
|
-
- store temporary data in it's own heap '$__'
|
22
|
+
#Comment on that pull request
|
23
|
+
pully.write_comment_to_pull_request(pull_number, "Test Comment")
|
26
24
|
|
27
|
-
|
28
|
-
|
25
|
+
#Get all comments
|
26
|
+
comments = pully.comments_for_pull_request(pull_number)
|
27
|
+
```
|
29
28
|
|
30
29
|
## Requirements
|
31
30
|
|
32
|
-
- Mac OS X 10.9+ (Untested)
|
33
31
|
- Ruby 2.1 or Higher
|
34
32
|
|
35
33
|
## Communication
|
36
34
|
|
37
|
-
- If you **found a bug**,
|
38
|
-
- If you **have a feature request**,
|
35
|
+
- If you **found a bug**, submit a pull request.
|
36
|
+
- If you **have a feature request**, submit a pull request.
|
39
37
|
- If you **want to contribute**, submit a pull request.
|
40
38
|
|
41
39
|
## Installation
|
@@ -48,7 +46,8 @@ Run `sudo gem install pully`
|
|
48
46
|
|
49
47
|
### When should I use pully?
|
50
48
|
|
51
|
-
|
49
|
+
When you want to automate GitHub pull requests. Pully provides the necessary facilities for you to authenticate and control GitHub pull requests in
|
50
|
+
any way you wish. Duplicate the functionality of many popular CI solutions.
|
52
51
|
|
53
52
|
### What's Fittr?
|
54
53
|
|
data/Rakefile
CHANGED
data/lib/pully.rb
CHANGED
@@ -1,5 +1,141 @@
|
|
1
1
|
require "pully/version"
|
2
|
+
require 'ghee'
|
3
|
+
require 'octokit'
|
4
|
+
require 'git'
|
5
|
+
require 'tempfile'
|
2
6
|
|
3
7
|
module Pully
|
4
|
-
|
8
|
+
class Pully
|
9
|
+
def initialize(user:, pass:, repo:)
|
10
|
+
@user = user
|
11
|
+
@pass = pass
|
12
|
+
@repo = repo
|
13
|
+
@repo_selector = "#{@user}/#{@repo}"
|
14
|
+
|
15
|
+
@ghee = Ghee.basic_auth(@user, @pass)
|
16
|
+
@gh_client = Octokit::Client.new(:login => @user, :password => @pass)
|
17
|
+
|
18
|
+
#Test authentication, to_s required to have side-effects
|
19
|
+
@ghee.repos(user, repo).to_s
|
20
|
+
@gh_client.user #throw exception if auth is bad
|
21
|
+
end
|
22
|
+
|
23
|
+
def create_pull_request(from:, to:, subject:, message:)
|
24
|
+
@ghee.repos(@user, @repo).pulls.create(:title => subject, :body => message, :base => to, :head => from)["number"]
|
25
|
+
end
|
26
|
+
|
27
|
+
def comments_for_pull_request pull_number
|
28
|
+
@gh_client.issue_comments(@repo_selector, pull_number)
|
29
|
+
end
|
30
|
+
|
31
|
+
def write_comment_to_pull_request pull_number, comment
|
32
|
+
@gh_client.add_comment(@repo_selector, pull_number, comment)
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
module TestHelpers
|
37
|
+
class Branch
|
38
|
+
module Error
|
39
|
+
class NoSuchRepository < StandardError; end
|
40
|
+
class BadRepoSelector < StandardError; end
|
41
|
+
class BadLogin < StandardError; end
|
42
|
+
class NoSuchCloneURL< StandardError; end
|
43
|
+
end
|
44
|
+
|
45
|
+
#repo_selector is like 'my_user/repo'
|
46
|
+
def initialize(user:, pass:, repo_selector:, clone_url:)
|
47
|
+
@user = user
|
48
|
+
@pass = pass
|
49
|
+
@repo_selector = repo_selector
|
50
|
+
@clone_url = clone_url
|
51
|
+
|
52
|
+
|
53
|
+
#Setup the local git client
|
54
|
+
##############################################################
|
55
|
+
Git.configure do |config|
|
56
|
+
config.git_ssh = "./spec/assets/git_ssh"
|
57
|
+
end
|
58
|
+
##############################################################
|
59
|
+
|
60
|
+
clone_repo
|
61
|
+
|
62
|
+
#Setup Octocat client
|
63
|
+
##############################################################
|
64
|
+
@gh_client = Octokit::Client.new(:login => @user, :password => @pass)
|
65
|
+
begin
|
66
|
+
@gh_client.user #throw exception if auth is bad
|
67
|
+
rescue Octokit::Unauthorized
|
68
|
+
raise Error::BadLogin
|
69
|
+
end
|
70
|
+
|
71
|
+
begin
|
72
|
+
@repo = @gh_client.repo(repo_selector)
|
73
|
+
rescue ArgumentError
|
74
|
+
raise Error::BadRepoSelector
|
75
|
+
rescue Octokit::NotFound
|
76
|
+
raise Error::NoSuchRepository
|
77
|
+
end
|
78
|
+
##############################################################
|
79
|
+
end
|
80
|
+
|
81
|
+
#Will clone down repo and set @gh_client to the new repo
|
82
|
+
def clone_repo
|
83
|
+
#Create a temp path
|
84
|
+
temp_file = Tempfile.new('pully')
|
85
|
+
@path = temp_file.path
|
86
|
+
temp_file.close
|
87
|
+
temp_file.unlink
|
88
|
+
|
89
|
+
#Clone repo
|
90
|
+
begin
|
91
|
+
@git_client = Git.clone(@clone_url, 'pully', :path => @path)
|
92
|
+
@git_client.config("user.name", "pully-test-account")
|
93
|
+
@git_client.config("user.email", "pully-test-account@gmail.com")
|
94
|
+
rescue Git::GitExecuteError => e
|
95
|
+
raise Error::NoSuchCloneURL if e.message =~ /fatal: repository.*does not exist/
|
96
|
+
raise "Unknown git execute error: #{e}"
|
97
|
+
end
|
98
|
+
end
|
99
|
+
|
100
|
+
def create_branch(new_branch_name)
|
101
|
+
#Checkout what ever real master is
|
102
|
+
@git_client.branch(master_branch).checkout
|
103
|
+
|
104
|
+
#Create a new branch
|
105
|
+
@git_client.branch(new_branch_name)
|
106
|
+
@git_client.branch(new_branch_name).checkout
|
107
|
+
end
|
108
|
+
|
109
|
+
def delete_branch(branch_name)
|
110
|
+
@git_client.push("origin", ":#{branch_name}")
|
111
|
+
end
|
112
|
+
|
113
|
+
def list_branches
|
114
|
+
#Re-pull repo from github
|
115
|
+
clone_repo
|
116
|
+
@git_client.branches.remote.map{|e| e.name}
|
117
|
+
end
|
118
|
+
|
119
|
+
def master_branch
|
120
|
+
@repo.default_branch
|
121
|
+
end
|
122
|
+
|
123
|
+
#Create, commit, and push to github
|
124
|
+
def commit_new_random_file(branch_name)
|
125
|
+
#Create a new file
|
126
|
+
Dir.chdir "#{@path}/pully" do
|
127
|
+
File.write branch_name, branch_name
|
128
|
+
end
|
129
|
+
|
130
|
+
#Commit
|
131
|
+
@git_client.add(:all => true)
|
132
|
+
@git_client.commit_all("New branch from Pully Test Suite #{SecureRandom.hex}")
|
133
|
+
@git_client.push("origin", branch_name)
|
134
|
+
end
|
135
|
+
end
|
136
|
+
end
|
137
|
+
|
138
|
+
def self.new(user:, pass:, repo:)
|
139
|
+
Pully.new(user: user, pass: pass, repo: repo)
|
140
|
+
end
|
5
141
|
end
|
data/lib/pully/version.rb
CHANGED
data/pully.gemspec
CHANGED
@@ -22,6 +22,7 @@ Gem::Specification.new do |spec|
|
|
22
22
|
spec.add_development_dependency "rake", "~> 10.3"
|
23
23
|
spec.add_development_dependency "rspec", "~> 3.2"
|
24
24
|
spec.add_runtime_dependency "thor", "~> 0.19"
|
25
|
-
spec.
|
26
|
-
|
25
|
+
spec.add_runtime_dependency "ghee", "~> 0.12.17"
|
26
|
+
spec.add_runtime_dependency "octokit", "~> 3.0"
|
27
|
+
spec.add_runtime_dependency "git", "~> 1.2.9.1"
|
27
28
|
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
-----BEGIN RSA PRIVATE KEY-----
|
2
|
+
MIIEowIBAAKCAQEAsz09BY1HZNOjMH3XmP0NArT6LWmvWOUHgUA2pVO9RrxekJwa
|
3
|
+
OMoS3HQVDwONn1e7p8ROhSr7U9hYRO9ZvPR3pr8olboWDg8IyYXXiy+tY29tZXqb
|
4
|
+
M1tAQinj2qlnZhEn9b1HqwrsLy/fYQaWvlhdEQ690+z7/pHQ1Gy89Ewmvlr7Bl6D
|
5
|
+
KYfe7JIAICYUQeZI2AyaJ3u9ltNE9kA6eHuVJUcFziQrQjKwuWoS0GWfhlbWnhRJ
|
6
|
+
JHH/IEYDg8KUBjFu0nBs2ObLrhLu9XJsMIV8MrwCRL+8hr1VeLhydjP3qcQ44YQx
|
7
|
+
urGmcbgX7km3dVFkPTPPbCxHhv1eVwK2Kqbp8wIDAQABAoIBAG2hNjKwIAvemsDt
|
8
|
+
J7KOjKesNB0UuEiCBV4b/ZCPsISUcK64nB1CE9k9Myg0vynICqJporE3AfRdrlez
|
9
|
+
okq9qHWYFGXIJPdCYNiKAbVDWyUnoVzhag42cQ5G+vPii7jVI4Dd3fkTPDT8bf+1
|
10
|
+
fPw9pebqAleeat9hJr7XJ5exAD2K9s6Wg/VRnhfIFFna3gIb+h8rCVb94npEzfQw
|
11
|
+
yZ9virDBjBIcUJuHKMZjDNHnxwMBFdSf+jwmWDnXmuiSZiCEoMQq0foRRg1lA8bg
|
12
|
+
W6onEZ6pqZlNqr/uWf4/c5452CftGMIznIURPieXHhgodTFk3RfGE5+c7d4NXyqC
|
13
|
+
lGaSvHECgYEA7qdDnCYafQ0jFzGKavIzWUJipCpHF7JwYjhPZs4oftxhKDGWi6Pq
|
14
|
+
J2zutr+20jmvSRUXZsaz6ijTh6n6TbAs8uS2YBJnXWnZsMAqqIlbId86K9k68xat
|
15
|
+
WeaN0sbgj6jl0A7l32tPEpKRBNhMkAggFpizbiK1byoc7e3jyP+YWHkCgYEAwERt
|
16
|
+
SkxBIm8QG+CEqIhGxHgK6poWO5uzVYm9Xb0ODiprnIKt6KEDB+f+Fqhh2jbU2lVx
|
17
|
+
tkrpX4OhYYSxp+vRtCs3ypfyDBVqwyRwPpActNynaEK9WeN4j5rEJEAB5NI7xK7n
|
18
|
+
NixtYc2bfQdSdjD5ft13pA8e5QOx8ctGhDgSUssCgYAnJH39VW6Qxh/URQbb5Z+w
|
19
|
+
ayf8nwaMB3NRWMUFKpkPvZud2QxFGPxlvQMmLCmTL2zlgrUU4VBO/qU7IhDwvw2Q
|
20
|
+
RRz4guw7MQpIaCxW+jhdRNyopnd5uWVzUlI+mOnqBhyzVE41p8cPV8S7U7KzCPIi
|
21
|
+
YqdDUCQL+I9IIvVyWSGmmQKBgHEf0a4Fb81yy2ebknIWvIyclM+0GaC426tYf7LH
|
22
|
+
qZ1sGCTePrTBB6d/OGDccbaSzGoqG93F9cndCPb3vA+xEJGRXCI3hJLXhxmKNwCY
|
23
|
+
iktgCJ+vpPlefXEA/qbVgke/6qquvhuByFnjP7kwtbQU3LdoVxyQSP02T1yU3cit
|
24
|
+
tRpBAoGBAMrHa/DN4x5y+5fyn3qdg9R0mfDm/UVpXTepLIxRjNw/kcmCF8c7/LJZ
|
25
|
+
fRs4sAKruDI1aA/PuydyQUl9Bwx+e4vmBTcBrLOGEcOmFz9Vbs4M5mSjUaDhdBxu
|
26
|
+
iDG0r4yYvCv0N2InWdgOMU2JPaK78WnPKyiVR6P3uJjuE1Kmj75O
|
27
|
+
-----END RSA PRIVATE KEY-----
|
@@ -0,0 +1 @@
|
|
1
|
+
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCzPT0FjUdk06MwfdeY/Q0CtPotaa9Y5QeBQDalU71GvF6QnBo4yhLcdBUPA42fV7unxE6FKvtT2FhE71m89HemvyiVuhYODwjJhdeLL61jb21lepszW0BCKePaqWdmESf1vUerCuwvL99hBpa+WF0RDr3T7Pv+kdDUbLz0TCa+WvsGXoMph97skgAgJhRB5kjYDJone72W00T2QDp4e5UlRwXOJCtCMrC5ahLQZZ+GVtaeFEkkcf8gRgODwpQGMW7ScGzY5suuEu71cmwwhXwyvAJEv7yGvVV4uHJ2M/epxDjhhDG6saZxuBfuSbd1UWQ9M89sLEeG/V5XArYqpunz Seo@imac.local
|
data/spec/assets/git_ssh
ADDED
data/spec/env_spec.rb
ADDED
@@ -0,0 +1,18 @@
|
|
1
|
+
require 'yaml'
|
2
|
+
require 'ghee'
|
3
|
+
require './lib/pully.rb'
|
4
|
+
require 'securerandom'
|
5
|
+
|
6
|
+
RSpec.describe "Test Environment" do
|
7
|
+
it "Can write to a tempfile" do
|
8
|
+
#Create a temp path
|
9
|
+
temp_file = Tempfile.new('pully')
|
10
|
+
@path = temp_file.path
|
11
|
+
temp_file.close
|
12
|
+
temp_file.unlink
|
13
|
+
|
14
|
+
File.write temp_file, "test"
|
15
|
+
str = File.read temp_file
|
16
|
+
expect(str).to eq("test")
|
17
|
+
end
|
18
|
+
end
|
data/spec/lib_spec.rb
ADDED
@@ -0,0 +1,52 @@
|
|
1
|
+
require 'yaml'
|
2
|
+
require 'ghee'
|
3
|
+
require './lib/pully.rb'
|
4
|
+
|
5
|
+
#Get github information
|
6
|
+
def gh_info
|
7
|
+
yaml = YAML.load_file("./spec/assets/test.yml")
|
8
|
+
return yaml["github"]
|
9
|
+
end
|
10
|
+
|
11
|
+
RSpec.describe "Library" do
|
12
|
+
it "Does throw an exception with INcorrect credentials while creating an object" do
|
13
|
+
expect { pully = Pully.new(user: "abcdefgh", pass: "abcdefgh", repo: "abcdefgh") }.to raise_error(Ghee::Unauthorized)
|
14
|
+
end
|
15
|
+
|
16
|
+
it "Does NOT throw an exception with correct credentials while creating an object" do
|
17
|
+
pully = Pully.new(user: gh_info["user"], pass: gh_info["pass"], repo: gh_info["repo"])
|
18
|
+
end
|
19
|
+
|
20
|
+
it "Can call create a new pull request and returns an integer for the pull request #" do
|
21
|
+
#test branch creator
|
22
|
+
new_branch_name = SecureRandom.hex
|
23
|
+
th = Pully::TestHelpers::Branch.new(user: gh_info["user"], pass: gh_info["pass"], repo_selector: repo_selector, clone_url: gh_info["clone_url"])
|
24
|
+
th.create_branch(new_branch_name)
|
25
|
+
th.commit_new_random_file(new_branch_name)
|
26
|
+
|
27
|
+
pully = Pully.new(user: gh_info["user"], pass: gh_info["pass"], repo: gh_info["repo"])
|
28
|
+
n = pully.create_pull_request(from:new_branch_name, to:"master", subject:"My pull request", message:"Hey XXXX, can you merge this for me?")
|
29
|
+
expect(n.class).to be(Fixnum)
|
30
|
+
|
31
|
+
th.delete_branch(new_branch_name)
|
32
|
+
end
|
33
|
+
|
34
|
+
it "Can call create a new pull request and write a comment on that pull request" do
|
35
|
+
#test branch creator
|
36
|
+
new_branch_name = SecureRandom.hex
|
37
|
+
th = Pully::TestHelpers::Branch.new(user: gh_info["user"], pass: gh_info["pass"], repo_selector: repo_selector, clone_url: gh_info["clone_url"])
|
38
|
+
th.create_branch(new_branch_name)
|
39
|
+
th.commit_new_random_file(new_branch_name)
|
40
|
+
|
41
|
+
pully = Pully.new(user: gh_info["user"], pass: gh_info["pass"], repo: gh_info["repo"])
|
42
|
+
pull_number = pully.create_pull_request(from:new_branch_name, to:"master", subject:"My pull request", message:"Hey XXXX, can you merge this for me?")
|
43
|
+
|
44
|
+
before_create = pully.comments_for_pull_request(pull_number).length
|
45
|
+
pully.write_comment_to_pull_request(pull_number, "Test Comment")
|
46
|
+
after_create = pully.comments_for_pull_request(pull_number).length
|
47
|
+
|
48
|
+
expect(after_create).to eq(before_create+1)
|
49
|
+
|
50
|
+
th.delete_branch(new_branch_name)
|
51
|
+
end
|
52
|
+
end
|
@@ -0,0 +1,55 @@
|
|
1
|
+
require 'yaml'
|
2
|
+
require 'ghee'
|
3
|
+
require './lib/pully.rb'
|
4
|
+
require 'securerandom'
|
5
|
+
|
6
|
+
#Get github information
|
7
|
+
def gh_info
|
8
|
+
yaml = YAML.load_file("./spec/assets/test.yml")
|
9
|
+
return yaml["github"]
|
10
|
+
end
|
11
|
+
|
12
|
+
def repo_selector
|
13
|
+
return "#{gh_info["user"]}/#{gh_info["repo"]}"
|
14
|
+
end
|
15
|
+
|
16
|
+
def rand_repo_selector
|
17
|
+
return "#{gh_info["user"]}/#{SecureRandom.hex}"
|
18
|
+
end
|
19
|
+
|
20
|
+
RSpec.describe "Test Library" do
|
21
|
+
it "Fails creation with incorrect credentials" do
|
22
|
+
expect { Pully::TestHelpers::Branch.new(user: SecureRandom.hex, pass: SecureRandom.hex, repo_selector: repo_selector, clone_url: gh_info["clone_url"]) }.to raise_error(Pully::TestHelpers::Branch::Error::BadLogin)
|
23
|
+
end
|
24
|
+
|
25
|
+
it "does not fail creation with incorrect credentials" do
|
26
|
+
Pully::TestHelpers::Branch.new(user: gh_info["user"], pass: gh_info["pass"], repo_selector: repo_selector, clone_url: gh_info["clone_url"])
|
27
|
+
end
|
28
|
+
|
29
|
+
it "does fail creation with bad repo selector if passed a repo_selector without a /" do
|
30
|
+
expect { Pully::TestHelpers::Branch.new(user: gh_info["user"], pass: gh_info["pass"], repo_selector: SecureRandom.hex, clone_url: gh_info["clone_url"]) }.to raise_error(Pully::TestHelpers::Branch::Error::BadRepoSelector)
|
31
|
+
end
|
32
|
+
|
33
|
+
it "does fail creation with unreal repository selector" do
|
34
|
+
expect { Pully::TestHelpers::Branch.new(user: gh_info["user"], pass: gh_info["pass"], repo_selector: rand_repo_selector, clone_url: gh_info["clone_url"]) }.to raise_error(Pully::TestHelpers::Branch::Error::NoSuchRepository)
|
35
|
+
end
|
36
|
+
|
37
|
+
it "does fail creation with bad clone url" do
|
38
|
+
expect { Pully::TestHelpers::Branch.new(user: gh_info["user"], pass: gh_info["pass"], repo_selector: rand_repo_selector, clone_url: "#{SecureRandom.hex}.com") }.to raise_error(Pully::TestHelpers::Branch::Error::NoSuchCloneURL)
|
39
|
+
end
|
40
|
+
|
41
|
+
it "Can create a new branch from our repository and delete it" do
|
42
|
+
new_branch_name = SecureRandom.hex
|
43
|
+
th = Pully::TestHelpers::Branch.new(user: gh_info["user"], pass: gh_info["pass"], repo_selector: repo_selector, clone_url: gh_info["clone_url"])
|
44
|
+
|
45
|
+
th.create_branch(new_branch_name)
|
46
|
+
th.commit_new_random_file(new_branch_name)
|
47
|
+
|
48
|
+
#Make sure the branch is listed in the names
|
49
|
+
expect(th.list_branches).to include(new_branch_name)
|
50
|
+
|
51
|
+
#Delete the branch
|
52
|
+
th.delete_branch(new_branch_name)
|
53
|
+
expect(th.list_branches).not_to include(new_branch_name)
|
54
|
+
end
|
55
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pully
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Seo Townsend
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-03-
|
11
|
+
date: 2015-03-31 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -66,11 +66,52 @@ dependencies:
|
|
66
66
|
- - "~>"
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '0.19'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: ghee
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - "~>"
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: 0.12.17
|
76
|
+
type: :runtime
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - "~>"
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: 0.12.17
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: octokit
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - "~>"
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '3.0'
|
90
|
+
type: :runtime
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - "~>"
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '3.0'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: git
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - "~>"
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: 1.2.9.1
|
104
|
+
type: :runtime
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - "~>"
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: 1.2.9.1
|
69
111
|
description: Create your own pull request GitHub bot with ease
|
70
112
|
email:
|
71
113
|
- seotownsend@icloud.com
|
72
|
-
executables:
|
73
|
-
- pully
|
114
|
+
executables: []
|
74
115
|
extensions: []
|
75
116
|
extra_rdoc_files: []
|
76
117
|
files:
|
@@ -80,12 +121,17 @@ files:
|
|
80
121
|
- LICENSE
|
81
122
|
- README.md
|
82
123
|
- Rakefile
|
83
|
-
- bin/pully
|
84
124
|
- lib/pully.rb
|
85
125
|
- lib/pully/version.rb
|
86
126
|
- logo.png
|
87
127
|
- pully.gemspec
|
88
|
-
- spec/
|
128
|
+
- spec/assets/gh_key.private
|
129
|
+
- spec/assets/gh_key.public
|
130
|
+
- spec/assets/git_ssh
|
131
|
+
- spec/assets/test.yml
|
132
|
+
- spec/env_spec.rb
|
133
|
+
- spec/lib_spec.rb
|
134
|
+
- spec/lib_test_spec.rb
|
89
135
|
homepage: https://github.com/sotownsend/pully
|
90
136
|
licenses:
|
91
137
|
- MIT
|
@@ -111,5 +157,11 @@ signing_key:
|
|
111
157
|
specification_version: 4
|
112
158
|
summary: A ruby library for managing GitHub pull requests
|
113
159
|
test_files:
|
114
|
-
- spec/
|
160
|
+
- spec/assets/gh_key.private
|
161
|
+
- spec/assets/gh_key.public
|
162
|
+
- spec/assets/git_ssh
|
163
|
+
- spec/assets/test.yml
|
164
|
+
- spec/env_spec.rb
|
165
|
+
- spec/lib_spec.rb
|
166
|
+
- spec/lib_test_spec.rb
|
115
167
|
has_rdoc:
|
data/bin/pully
DELETED
@@ -1,41 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
|
3
|
-
require 'pully'
|
4
|
-
require 'thor'
|
5
|
-
|
6
|
-
class PullyCLI < Thor
|
7
|
-
desc "test", "Test the binary, returns 'ok\\n' on stdout"
|
8
|
-
def test
|
9
|
-
puts "ok"
|
10
|
-
end
|
11
|
-
#desc "new <path>", "Create a new flok project and/or module, you may supply an absolute path or relative, the last entry in the path will be the module name and folder name of the project"
|
12
|
-
#def new path
|
13
|
-
#name = File.basename(path)
|
14
|
-
#Dir.chdir File.dirname(path) do
|
15
|
-
#`bundle gem #{name}`
|
16
|
-
|
17
|
-
#Dir.chdir name do
|
18
|
-
#Dir.mkdir "app"
|
19
|
-
#Dir.mkdir "config"
|
20
|
-
#end
|
21
|
-
#end
|
22
|
-
#end
|
23
|
-
|
24
|
-
#option :compress, type: :boolean
|
25
|
-
#desc "build", "Build a flok project, you must be in the root of the project"
|
26
|
-
#def build
|
27
|
-
#Dir.mkdir("./public") unless File.exists?("./public")
|
28
|
-
#FileUtils.touch "./public/application.js"
|
29
|
-
|
30
|
-
#src = Flok::MergeSource.merge_all
|
31
|
-
|
32
|
-
##Compress by writing to a temporary dir, run closure, and then put back
|
33
|
-
#if options["compress"] == true
|
34
|
-
#src = Closure::Compiler.new.compile(src)
|
35
|
-
#end
|
36
|
-
|
37
|
-
#File.write("./public/application.js", src)
|
38
|
-
#end
|
39
|
-
end
|
40
|
-
|
41
|
-
PullyCLI.start(ARGV)
|
data/spec/cli_spec.rb
DELETED
@@ -1,15 +0,0 @@
|
|
1
|
-
require './lib/pully.rb'
|
2
|
-
require 'tempfile'
|
3
|
-
require 'securerandom'
|
4
|
-
|
5
|
-
def ensure_tmp
|
6
|
-
tmp_spec_path = './spec/tmp'
|
7
|
-
Dir.mkdir(tmp_spec_path) unless File.exists?(tmp_spec_path)
|
8
|
-
end
|
9
|
-
|
10
|
-
RSpec.describe "CLI" do
|
11
|
-
it "Runs" do
|
12
|
-
a = `ruby -Ilib ./bin/pully test`
|
13
|
-
expect(a).to eq("ok\n")
|
14
|
-
end
|
15
|
-
end
|