easy-auto 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.gitignore +39 -0
- data/Gemfile +4 -0
- data/Gemfile.lock +27 -0
- data/LICENSE.txt +22 -0
- data/README.md +55 -0
- data/Rakefile +11 -0
- data/bin/create-branch +8 -0
- data/bin/create-repo +5 -0
- data/bin/easy-authorize +5 -0
- data/bin/easy-setup +5 -0
- data/bin/pull-request +5 -0
- data/easy-auto.gemspec +25 -0
- data/lib/easy_auto.rb +13 -0
- data/lib/easy_auto/authorize.rb +49 -0
- data/lib/easy_auto/client_wrapper.rb +21 -0
- data/lib/easy_auto/config_manager.rb +60 -0
- data/lib/easy_auto/config_manager_wrapper.rb +9 -0
- data/lib/easy_auto/create_branch.rb +53 -0
- data/lib/easy_auto/create_repo.rb +75 -0
- data/lib/easy_auto/easy_setup.rb +58 -0
- data/lib/easy_auto/easy_utilities.rb +14 -0
- data/lib/easy_auto/git.rb +57 -0
- data/lib/easy_auto/git_wrapper.rb +9 -0
- data/lib/easy_auto/pull_request.rb +68 -0
- data/lib/easy_auto/set_upstream.rb +16 -0
- data/lib/easy_auto/system_helper.rb +29 -0
- data/lib/easy_auto/version.rb +3 -0
- data/test/lib/easy_auto/authorize_test.rb +17 -0
- data/test/lib/easy_auto/create_branch_test.rb +74 -0
- data/test/lib/easy_auto/create_repo_test.rb +51 -0
- data/test/lib/easy_auto/easy_setup_test.rb +32 -0
- data/test/lib/easy_auto/easy_utilities_test.rb +20 -0
- data/test/lib/easy_auto/git_test.rb +69 -0
- data/test/lib/easy_auto/git_wrapper_test.rb +20 -0
- data/test/lib/easy_auto/pull_request_test.rb +78 -0
- data/test/lib/easy_auto/set_upstream_test.rb +41 -0
- data/test/lib/easy_auto/version_test.rb +7 -0
- data/test/test_helper.rb +3 -0
- data/todo.md +3 -0
- metadata +141 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 302736908a8008b2d9d655b7938cd7690848358f
|
4
|
+
data.tar.gz: c3c942cad430f85b818fdfd40f771d39b5a76232
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: d5b11abe9489b52174b7fd341049e80a1d9aec6a65ca2d03edd1620ff2191450b8acd6ab14c8f6461240b17628c437a421992ffd8ba8df59e02b69bb58700a4a
|
7
|
+
data.tar.gz: 2591f2414be1ea0112b7c4422c898429394879ce09c5b5f4a49c8f48d95827819db7b8cc091adc25baee7ec02a4cd28c710d5d47ea133d00efc8c28bf2d19231
|
data/.gitignore
ADDED
@@ -0,0 +1,39 @@
|
|
1
|
+
*.gem
|
2
|
+
# Compiled source #
|
3
|
+
###################
|
4
|
+
*.com
|
5
|
+
*.class
|
6
|
+
*.dll
|
7
|
+
*.exe
|
8
|
+
*.o
|
9
|
+
*.so
|
10
|
+
|
11
|
+
# Packages #
|
12
|
+
############
|
13
|
+
# it's better to unpack these files and commit the raw source
|
14
|
+
# git has its own built in compression methods
|
15
|
+
*.7z
|
16
|
+
*.dmg
|
17
|
+
*.gz
|
18
|
+
*.iso
|
19
|
+
*.jar
|
20
|
+
*.rar
|
21
|
+
*.tar
|
22
|
+
*.zip
|
23
|
+
|
24
|
+
# Logs and databases #
|
25
|
+
######################
|
26
|
+
*.log
|
27
|
+
*.sql
|
28
|
+
*.sqlite
|
29
|
+
|
30
|
+
# OS generated files #
|
31
|
+
######################
|
32
|
+
.DS_Store
|
33
|
+
.DS_Store?
|
34
|
+
._*
|
35
|
+
.Spotlight-V100
|
36
|
+
.Trashes
|
37
|
+
Icon?
|
38
|
+
ehthumbs.db
|
39
|
+
Thumbs.db
|
data/Gemfile
ADDED
data/Gemfile.lock
ADDED
@@ -0,0 +1,27 @@
|
|
1
|
+
PATH
|
2
|
+
remote: .
|
3
|
+
specs:
|
4
|
+
easy-auto (0.0.1)
|
5
|
+
octokit (~> 2.0)
|
6
|
+
|
7
|
+
GEM
|
8
|
+
remote: https://rubygems.org/
|
9
|
+
specs:
|
10
|
+
faraday (0.8.8)
|
11
|
+
multipart-post (~> 1.2.0)
|
12
|
+
multipart-post (1.2.0)
|
13
|
+
octokit (2.0.0)
|
14
|
+
sawyer (~> 0.3.0)
|
15
|
+
rake (10.1.0)
|
16
|
+
sawyer (0.3.0)
|
17
|
+
faraday (~> 0.8, < 0.10)
|
18
|
+
uri_template (~> 0.5.0)
|
19
|
+
uri_template (0.5.3)
|
20
|
+
|
21
|
+
PLATFORMS
|
22
|
+
ruby
|
23
|
+
|
24
|
+
DEPENDENCIES
|
25
|
+
bundler (~> 1.3)
|
26
|
+
easy-auto!
|
27
|
+
rake
|
data/LICENSE.txt
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
Copyright (c) 2013 Stuart Nelson
|
2
|
+
|
3
|
+
MIT License
|
4
|
+
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
6
|
+
a copy of this software and associated documentation files (the
|
7
|
+
"Software"), to deal in the Software without restriction, including
|
8
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
9
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
10
|
+
permit persons to whom the Software is furnished to do so, subject to
|
11
|
+
the following conditions:
|
12
|
+
|
13
|
+
The above copyright notice and this permission notice shall be
|
14
|
+
included in all copies or substantial portions of the Software.
|
15
|
+
|
16
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
17
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
18
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
19
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
20
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
21
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
22
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.md
ADDED
@@ -0,0 +1,55 @@
|
|
1
|
+
# EasyAuto
|
2
|
+
|
3
|
+
Simple CLI for git and github
|
4
|
+
|
5
|
+
## Installation
|
6
|
+
|
7
|
+
Add this line to your application's Gemfile:
|
8
|
+
|
9
|
+
gem 'easy-auto'
|
10
|
+
|
11
|
+
And then execute:
|
12
|
+
|
13
|
+
$ bundle
|
14
|
+
|
15
|
+
Or install it yourself as:
|
16
|
+
|
17
|
+
$ gem install easy-auto
|
18
|
+
|
19
|
+
## Setup
|
20
|
+
|
21
|
+
Configure your computer for easy-auto:
|
22
|
+
|
23
|
+
$ easy-authorize
|
24
|
+
|
25
|
+
Follow the prompts, then confirm the install worked:
|
26
|
+
|
27
|
+
$ easy-setup
|
28
|
+
|
29
|
+
## Usage
|
30
|
+
|
31
|
+
To create a repo on github from your current project:
|
32
|
+
|
33
|
+
$ create-repo
|
34
|
+
|
35
|
+
Follow the instructions.
|
36
|
+
|
37
|
+
Create a new branch:
|
38
|
+
|
39
|
+
$ create-branch <new-branch-name> <OPTIONAL: branch-to-track>
|
40
|
+
|
41
|
+
The new branch is made from master if no second branch name is given.
|
42
|
+
|
43
|
+
To open a pull-request:
|
44
|
+
|
45
|
+
$ pull-request
|
46
|
+
|
47
|
+
Follow the prompts.
|
48
|
+
|
49
|
+
## Contributing
|
50
|
+
|
51
|
+
1. Fork it
|
52
|
+
2. Create your feature branch (`git checkout -b my-new-feature`)
|
53
|
+
3. Commit your changes (`git commit -am 'Add some feature'`)
|
54
|
+
4. Push to the branch (`git push origin my-new-feature`)
|
55
|
+
5. Create new Pull Request
|
data/Rakefile
ADDED
data/bin/create-branch
ADDED
data/bin/create-repo
ADDED
data/bin/easy-authorize
ADDED
data/bin/easy-setup
ADDED
data/bin/pull-request
ADDED
data/easy-auto.gemspec
ADDED
@@ -0,0 +1,25 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
lib = File.expand_path('../lib', __FILE__)
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
+
require 'easy_auto/version'
|
5
|
+
|
6
|
+
Gem::Specification.new do |spec|
|
7
|
+
spec.name = "easy-auto"
|
8
|
+
spec.version = EasyAuto::VERSION
|
9
|
+
spec.authors = ["Stuart Nelson"]
|
10
|
+
spec.email = ["stuartnelson3@gmail.com"]
|
11
|
+
spec.description = %q{Easy access to git commands}
|
12
|
+
spec.summary = %q{Use the command line to simplify interacting with git}
|
13
|
+
spec.homepage = "https://github.com/stuartnelson3/easy-auto"
|
14
|
+
spec.license = "MIT"
|
15
|
+
|
16
|
+
spec.files = `git ls-files`.split($/)
|
17
|
+
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
18
|
+
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
19
|
+
spec.require_paths = ["lib"]
|
20
|
+
|
21
|
+
spec.add_development_dependency "bundler", "~> 1.3"
|
22
|
+
spec.add_development_dependency "rake"
|
23
|
+
|
24
|
+
spec.add_dependency "octokit", "~> 2.0"
|
25
|
+
end
|
data/lib/easy_auto.rb
ADDED
@@ -0,0 +1,13 @@
|
|
1
|
+
require 'octokit'
|
2
|
+
|
3
|
+
trap("INT") { puts "\nexiting"; exit 1 }
|
4
|
+
|
5
|
+
module EasyAuto; end
|
6
|
+
|
7
|
+
require "easy_auto/version"
|
8
|
+
require "easy_auto/create_repo"
|
9
|
+
require "easy_auto/pull_request"
|
10
|
+
require "easy_auto/set_upstream"
|
11
|
+
require "easy_auto/create_branch"
|
12
|
+
require "easy_auto/authorize"
|
13
|
+
require "easy_auto/easy_setup"
|
@@ -0,0 +1,49 @@
|
|
1
|
+
require 'json'
|
2
|
+
require 'easy_auto/system_helper'
|
3
|
+
require 'easy_auto/config_manager_wrapper'
|
4
|
+
require 'easy_auto/easy_utilities'
|
5
|
+
|
6
|
+
module EasyAuto
|
7
|
+
class Authorize
|
8
|
+
include EasyUtilities
|
9
|
+
include SystemHelper
|
10
|
+
include ConfigManagerWrapper
|
11
|
+
attr_accessor :email
|
12
|
+
attr_accessor :password
|
13
|
+
attr_accessor :token
|
14
|
+
|
15
|
+
def run
|
16
|
+
get_credentials
|
17
|
+
generate_token
|
18
|
+
store_token
|
19
|
+
end
|
20
|
+
|
21
|
+
def store_token
|
22
|
+
config_manager.set :github_email, email
|
23
|
+
config_manager.set :github_token, token
|
24
|
+
end
|
25
|
+
|
26
|
+
def get_credentials
|
27
|
+
self.email = get_email
|
28
|
+
self.password = get_password
|
29
|
+
end
|
30
|
+
|
31
|
+
def get_email
|
32
|
+
puts "what is your github email account?"
|
33
|
+
gets.strip
|
34
|
+
end
|
35
|
+
|
36
|
+
def get_password
|
37
|
+
puts "enter your password for #{email}. this will not be stored."
|
38
|
+
hidden_input
|
39
|
+
end
|
40
|
+
|
41
|
+
def generate_token
|
42
|
+
self.token = JSON.parse(github_curl)['token']
|
43
|
+
end
|
44
|
+
|
45
|
+
def github_curl
|
46
|
+
cli_send %Q(curl -u '#{email}:#{password}' -d '{"scopes": ["repo"], "notes": "Easy Auto"}' https://api.github.com/authorizations)
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
require 'easy_auto/config_manager_wrapper'
|
2
|
+
|
3
|
+
module EasyAuto
|
4
|
+
class Github
|
5
|
+
extend ConfigManagerWrapper
|
6
|
+
|
7
|
+
def self.client
|
8
|
+
Octokit::Client.new login: config_manager.github_email, access_token: config_manager.github_token
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
module ClientWrapper
|
13
|
+
def client
|
14
|
+
Github.client
|
15
|
+
end
|
16
|
+
|
17
|
+
def username
|
18
|
+
client.login.split('@').first
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,60 @@
|
|
1
|
+
require 'yaml'
|
2
|
+
|
3
|
+
module EasyAuto
|
4
|
+
class ConfigManager
|
5
|
+
attr_accessor :config
|
6
|
+
attr_accessor :github_email
|
7
|
+
attr_accessor :github_token
|
8
|
+
|
9
|
+
def initialize config_contents
|
10
|
+
self.config = config_contents
|
11
|
+
config.each do |k,v|
|
12
|
+
# e.g., foo: "bar" translates to self.foo = "bar"
|
13
|
+
setter = "#{k}="
|
14
|
+
send(setter, v) if respond_to? setter
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
def self.read_yml
|
19
|
+
new load_config
|
20
|
+
end
|
21
|
+
|
22
|
+
def set key, value
|
23
|
+
send("#{key}=", value)
|
24
|
+
config.merge!(key => value)
|
25
|
+
File.write self.class.config_file, YAML.dump(config)
|
26
|
+
end
|
27
|
+
|
28
|
+
def self.load_config
|
29
|
+
YAML.load_file config_file
|
30
|
+
rescue Errno::ENOENT
|
31
|
+
create_config_file
|
32
|
+
{}
|
33
|
+
end
|
34
|
+
|
35
|
+
def self.create_config_file
|
36
|
+
check_dir_existence
|
37
|
+
check_file_existence
|
38
|
+
end
|
39
|
+
|
40
|
+
def self.check_dir_existence
|
41
|
+
unless Dir.exists? config_dir
|
42
|
+
Dir.mkdir config_dir
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
def self.config_dir
|
47
|
+
File.expand_path "~/.easy-auto"
|
48
|
+
end
|
49
|
+
|
50
|
+
def self.check_file_existence
|
51
|
+
unless File.exists? config_file
|
52
|
+
File.write config_file, YAML.dump({})
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
56
|
+
def self.config_file
|
57
|
+
File.join config_dir, "config.yml"
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
@@ -0,0 +1,53 @@
|
|
1
|
+
require 'easy_auto/set_upstream'
|
2
|
+
require 'easy_auto/git'
|
3
|
+
require 'easy_auto/easy_utilities'
|
4
|
+
|
5
|
+
module EasyAuto
|
6
|
+
class CreateBranch
|
7
|
+
include GitWrapper
|
8
|
+
include EasyUtilities
|
9
|
+
attr_reader :new_branch
|
10
|
+
attr_reader :origin_branch
|
11
|
+
|
12
|
+
def initialize new_branch = nil, origin_branch = nil
|
13
|
+
@new_branch = new_branch
|
14
|
+
@origin_branch = origin_branch
|
15
|
+
end
|
16
|
+
|
17
|
+
def run
|
18
|
+
return usage if wrong_usage || help_request?
|
19
|
+
checkout_master
|
20
|
+
pull
|
21
|
+
git.create_and_switch_to new_branch, origin_branch
|
22
|
+
new_branch_message if set_upstream
|
23
|
+
end
|
24
|
+
|
25
|
+
def wrong_usage
|
26
|
+
[new_branch, origin_branch].all?(&:nil?)
|
27
|
+
end
|
28
|
+
|
29
|
+
def help_request?
|
30
|
+
%w{-h --help}.include? new_branch
|
31
|
+
end
|
32
|
+
|
33
|
+
def usage
|
34
|
+
puts 'usage: create-branch <new-branch> <OPTIONAL: branch-to-track>.'
|
35
|
+
end
|
36
|
+
|
37
|
+
def checkout_master
|
38
|
+
git.checkout_master
|
39
|
+
end
|
40
|
+
|
41
|
+
def pull
|
42
|
+
git.pull
|
43
|
+
end
|
44
|
+
|
45
|
+
def set_upstream
|
46
|
+
SetUpstream.new(new_branch).set
|
47
|
+
end
|
48
|
+
|
49
|
+
def new_branch_message
|
50
|
+
puts "successfully created branch and set upstream remote!"
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|