git_httpsable-push 0.0.1.beta → 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.rubocop.yml +17 -0
- data/CHANGELOG.md +6 -0
- data/Gemfile +2 -0
- data/README.md +72 -6
- data/exe/git-httpsable-push +2 -0
- data/git_httpsable-push.gemspec +5 -0
- data/lib/git_httpsable/push.rb +21 -1
- data/lib/git_httpsable/push/cli.rb +64 -0
- data/lib/git_httpsable/push/error.rb +17 -0
- data/lib/git_httpsable/push/mask_logger.rb +21 -0
- data/lib/git_httpsable/push/repository.rb +76 -0
- data/lib/git_httpsable/push/version.rb +1 -1
- metadata +66 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d1b5925cced6faeef5e5a123474739743d4d2a24
|
4
|
+
data.tar.gz: 8aef2e3b5fd5106156f0572e8b0e090d99a4eeec
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d557dad3c3b6b192843ef58529d108e08860f6cbf40bf1c113c762ba05355122d83094d2888250dcae09802f5142db743b86d83d17ec1078a08ad233961af897
|
7
|
+
data.tar.gz: 1b863f6d2e91e22f98bf118a991a0d3fd963cb39f75326c8fccce4485c15d3313d0ecc896d234cc5862c2f302ae4757f17966ff962358e500a5dadf05c176698
|
data/.rubocop.yml
ADDED
data/CHANGELOG.md
ADDED
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -3,9 +3,79 @@
|
|
3
3
|
[![Gem Version](http://img.shields.io/gem/v/git_httpsable-push.svg?style=flat)](http://badge.fury.io/rb/git_httpsable-push)
|
4
4
|
[![Build Status](http://img.shields.io/travis/packsaddle/ruby-git_httpsable-push/master.svg?style=flat)](https://travis-ci.org/packsaddle/ruby-git_httpsable-push)
|
5
5
|
|
6
|
-
|
6
|
+
## Description
|
7
7
|
|
8
|
-
|
8
|
+
* Easy to set up `git push` via `https://...`.
|
9
|
+
* Keep your `git push` via https **Safely**.
|
10
|
+
|
11
|
+
## Usage
|
12
|
+
|
13
|
+
require `GITHUB_ACEESS_TOKEN`.
|
14
|
+
|
15
|
+
```bash
|
16
|
+
# like git push
|
17
|
+
$ git httpsable-push origin master
|
18
|
+
```
|
19
|
+
|
20
|
+
Whether you set `git://...` or `https://...` or `git@...`, you can push via `https://...`.
|
21
|
+
|
22
|
+
And this always masks your token.
|
23
|
+
|
24
|
+
e.g.
|
25
|
+
|
26
|
+
```
|
27
|
+
$ git config --get remote.origin.url
|
28
|
+
git@github.com:packsaddle/ruby-git_httpsable-push.git
|
29
|
+
# GITHUB_ACCESS_TOKEN=__MY_TOKEN__
|
30
|
+
|
31
|
+
# success
|
32
|
+
$ git httpsable-push origin refactor/logger-to-class --verbose
|
33
|
+
I, [2015-03-06T19:29:54.250481 #33391] INFO -- GitHttpsable::Push: Starting Git
|
34
|
+
I, [2015-03-06T19:29:54.270408 #33391] INFO -- GitHttpsable::Push: git '--git-dir=/Users/sane/work/ruby-study/git_httpsable-push/.git' '--work-tree=/Users/sane/work/ruby-study/git_httpsable-push' config '--list' 2>&1
|
35
|
+
I, [2015-03-06T19:29:54.281424 #33391] INFO -- GitHttpsable::Push: git '--git-dir=/Users/sane/work/ruby-study/git_httpsable-push/.git' '--work-tree=/Users/sane/work/ruby-study/git_httpsable-push' config '--list' 2>&1
|
36
|
+
I, [2015-03-06T19:29:56.632766 #33391] INFO -- GitHttpsable::Push: git '--git-dir=/Users/sane/work/ruby-study/git_httpsable-push/.git' '--work-tree=/Users/sane/work/ruby-study/git_httpsable-push' push 'https://MASKED@github.com/packsaddle/ruby-git_httpsable-push.git' 'refactor/logger-to-class' 2>&1
|
37
|
+
I, [2015-03-06T19:29:56.632944 #33391] INFO -- GitHttpsable::Push: {:output=>nil}
|
38
|
+
|
39
|
+
# error occurs
|
40
|
+
$ git httpsable-push origin refactor/logger-to-class --verbose
|
41
|
+
I, [2015-03-06T19:33:47.692967 #34984] INFO -- GitHttpsable::Push: Starting Git
|
42
|
+
I, [2015-03-06T19:33:47.701617 #34984] INFO -- GitHttpsable::Push: git '--git-dir=/Users/sane/work/ruby-study/git_httpsable-push/.git' '--work-tree=/Users/sane/work/ruby-study/git_httpsable-push' config '--list' 2>&1
|
43
|
+
I, [2015-03-06T19:33:47.711167 #34984] INFO -- GitHttpsable::Push: git '--git-dir=/Users/sane/work/ruby-study/git_httpsable-push/.git' '--work-tree=/Users/sane/work/ruby-study/git_httpsable-push' config '--list' 2>&1
|
44
|
+
I, [2015-03-06T19:33:50.657268 #34984] INFO -- GitHttpsable::Push: git '--git-dir=/Users/sane/work/ruby-study/git_httpsable-push/.git' '--work-tree=/Users/sane/work/ruby-study/git_httpsable-push' push 'https://MASKED@github.com/packsaddle/ruby-git_httpsable-push.git' 'refactor/logger-to-class' 2>&1
|
45
|
+
E, [2015-03-06T19:33:50.657632 #34984] ERROR -- GitHttpsable::Push: Have a question? Please ask us:
|
46
|
+
E, [2015-03-06T19:33:50.657667 #34984] ERROR -- GitHttpsable::Push: https://github.com/packsaddle/ruby-git_httpsable-push/issues/new
|
47
|
+
E, [2015-03-06T19:33:50.657711 #34984] ERROR -- GitHttpsable::Push: options:
|
48
|
+
E, [2015-03-06T19:33:50.657778 #34984] ERROR -- GitHttpsable::Push: {"debug"=>false, "verbose"=>true, "force"=>false, "tags"=>false}
|
49
|
+
/Users/sane/work/ruby-study/git_httpsable-push/vendor/bundle/ruby/2.2.0/gems/git-1.2.9.1/lib/git/lib.rb:917:in `command': (Git::GitExecuteError) git '--git-dir=/Users/sane/work/ruby-study/git_httpsable-push/.git' '--work-tree=/Users/sane/work/ruby-study/git_httpsable-push' push 'https://MASKED@github.com/packsaddle/ruby-git_httpsable-push.git' 'refactor/logger-to-class' 2>&1:remote: Invalid username or password. (GitHttpsable::Push::GitHttpsablePushError)
|
50
|
+
fatal: Authentication failed for 'https://MASKED@github.com/packsaddle/ruby-git_httpsable-push.git/'
|
51
|
+
from /Users/sane/work/ruby-study/git_httpsable-push/vendor/bundle/ruby/2.2.0/gems/git-1.2.9.1/lib/git/lib.rb:727:in `push'
|
52
|
+
from /Users/sane/work/ruby-study/git_httpsable-push/vendor/bundle/ruby/2.2.0/gems/git-1.2.9.1/lib/git/base.rb:329:in `push'
|
53
|
+
from /Users/sane/work/ruby-study/git_httpsable-push/lib/git_httpsable/push/repository.rb:24:in `push'
|
54
|
+
from /Users/sane/work/ruby-study/git_httpsable-push/lib/git_httpsable/push/cli.rb:29:in `push'
|
55
|
+
from /Users/sane/work/ruby-study/git_httpsable-push/vendor/bundle/ruby/2.2.0/gems/thor-0.19.1/lib/thor/command.rb:27:in `run'
|
56
|
+
from /Users/sane/work/ruby-study/git_httpsable-push/vendor/bundle/ruby/2.2.0/gems/thor-0.19.1/lib/thor/invocation.rb:126:in `invoke_command'
|
57
|
+
from /Users/sane/work/ruby-study/git_httpsable-push/vendor/bundle/ruby/2.2.0/gems/thor-0.19.1/lib/thor.rb:359:in `dispatch'
|
58
|
+
from /Users/sane/work/ruby-study/git_httpsable-push/vendor/bundle/ruby/2.2.0/gems/thor-0.19.1/lib/thor/base.rb:440:in `start'
|
59
|
+
from /Users/sane/work/ruby-study/git_httpsable-push/lib/git_httpsable/push/cli.rb:59:in `method_missing'
|
60
|
+
from /Users/sane/work/ruby-study/git_httpsable-push/vendor/bundle/ruby/2.2.0/gems/thor-0.19.1/lib/thor/command.rb:29:in `run'
|
61
|
+
from /Users/sane/work/ruby-study/git_httpsable-push/vendor/bundle/ruby/2.2.0/gems/thor-0.19.1/lib/thor/command.rb:126:in `run'
|
62
|
+
from /Users/sane/work/ruby-study/git_httpsable-push/vendor/bundle/ruby/2.2.0/gems/thor-0.19.1/lib/thor/invocation.rb:126:in `invoke_command'
|
63
|
+
from /Users/sane/work/ruby-study/git_httpsable-push/vendor/bundle/ruby/2.2.0/gems/thor-0.19.1/lib/thor.rb:359:in `dispatch'
|
64
|
+
from /Users/sane/work/ruby-study/git_httpsable-push/vendor/bundle/ruby/2.2.0/gems/thor-0.19.1/lib/thor/base.rb:440:in `start'
|
65
|
+
from exe/git-httpsable-push:5:in `<main>'
|
66
|
+
```
|
67
|
+
|
68
|
+
## VS.
|
69
|
+
|
70
|
+
* `git push --quiet`, set remote url manually, error to `/dev/null`
|
71
|
+
|
72
|
+
```
|
73
|
+
$ git push --quiet https://$GH_TOKEN@github.com/<repos_name>.git gh-pages 2> /dev/null
|
74
|
+
```
|
75
|
+
|
76
|
+
This can push safely,
|
77
|
+
but if you forgot `--quiet` or `2> /dev/null`,
|
78
|
+
then you open your token to the world :(
|
9
79
|
|
10
80
|
## Installation
|
11
81
|
|
@@ -23,10 +93,6 @@ Or install it yourself as:
|
|
23
93
|
|
24
94
|
$ gem install git_httpsable-push
|
25
95
|
|
26
|
-
## Usage
|
27
|
-
|
28
|
-
TODO: Write usage instructions here
|
29
|
-
|
30
96
|
## Development
|
31
97
|
|
32
98
|
After checking out the repo, run `bin/setup` to install dependencies. Then, run `bin/console` for an interactive prompt that will allow you to experiment. Run `bundle exec git_httpsable-push` to use the code located in this directory, ignoring other installed copies of this gem.
|
data/exe/git-httpsable-push
CHANGED
data/git_httpsable-push.gemspec
CHANGED
@@ -29,7 +29,12 @@ Gem::Specification.new do |spec|
|
|
29
29
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
30
30
|
spec.require_paths = ['lib']
|
31
31
|
|
32
|
+
spec.add_runtime_dependency 'thor'
|
33
|
+
spec.add_runtime_dependency 'git'
|
34
|
+
spec.add_runtime_dependency 'git_clone_url'
|
35
|
+
|
32
36
|
spec.add_development_dependency 'bundler', '~> 1.8'
|
33
37
|
spec.add_development_dependency 'rake', '~> 10.0'
|
34
38
|
spec.add_development_dependency 'test-unit'
|
39
|
+
spec.add_development_dependency 'mocha'
|
35
40
|
end
|
data/lib/git_httpsable/push.rb
CHANGED
@@ -1,7 +1,27 @@
|
|
1
|
+
require 'logger'
|
2
|
+
require 'git'
|
3
|
+
require 'uri'
|
4
|
+
require 'git_clone_url'
|
5
|
+
|
6
|
+
require 'git_httpsable/push/error'
|
7
|
+
require 'git_httpsable/push/mask_logger'
|
8
|
+
require 'git_httpsable/push/repository'
|
1
9
|
require 'git_httpsable/push/version'
|
2
10
|
|
3
11
|
module GitHttpsable
|
4
12
|
module Push
|
5
|
-
|
13
|
+
ISSUE_URL = 'https://github.com/packsaddle/ruby-git_httpsable-push/issues/new'
|
14
|
+
def self.default_logger
|
15
|
+
MaskLogger.new($stderr)
|
16
|
+
end
|
17
|
+
|
18
|
+
def self.logger
|
19
|
+
return @logger if @logger
|
20
|
+
@logger = default_logger
|
21
|
+
end
|
22
|
+
|
23
|
+
class << self
|
24
|
+
attr_writer :logger
|
25
|
+
end
|
6
26
|
end
|
7
27
|
end
|
@@ -0,0 +1,64 @@
|
|
1
|
+
require 'thor'
|
2
|
+
|
3
|
+
module GitHttpsable
|
4
|
+
module Push
|
5
|
+
class CLI < Thor
|
6
|
+
def self.exit_on_failure?
|
7
|
+
true
|
8
|
+
end
|
9
|
+
|
10
|
+
desc 'version', 'Show the GitHttpsable::Push version'
|
11
|
+
map %w(-v --version) => :version
|
12
|
+
|
13
|
+
def version
|
14
|
+
puts "GitHttpsable::Push version #{::GitHttpsable::Push::VERSION}"
|
15
|
+
end
|
16
|
+
|
17
|
+
desc 'push', 'Git Push via HTTPS'
|
18
|
+
option :debug, type: :boolean, default: false
|
19
|
+
option :verbose, type: :boolean, default: false
|
20
|
+
option :force, type: :boolean, default: false, aliases: '-f'
|
21
|
+
option :tags, type: :boolean, default: false
|
22
|
+
def push(*args)
|
23
|
+
setup_logger(options)
|
24
|
+
params = {
|
25
|
+
force: options[:force],
|
26
|
+
tags: options[:tags]
|
27
|
+
}
|
28
|
+
repo = Repository.new('.')
|
29
|
+
repo.push(args[0], args[1], params)
|
30
|
+
rescue StandardError => e
|
31
|
+
suggest_messages(options)
|
32
|
+
raise e
|
33
|
+
end
|
34
|
+
default_command :push
|
35
|
+
|
36
|
+
no_commands do
|
37
|
+
def logger
|
38
|
+
::GitHttpsable::Push.logger
|
39
|
+
end
|
40
|
+
|
41
|
+
def setup_logger(options)
|
42
|
+
if options[:debug]
|
43
|
+
logger.level = Logger::DEBUG
|
44
|
+
elsif options[:verbose]
|
45
|
+
logger.level = Logger::INFO
|
46
|
+
end
|
47
|
+
logger.debug(options)
|
48
|
+
end
|
49
|
+
|
50
|
+
def suggest_messages(options)
|
51
|
+
logger.error 'Have a question? Please ask us:'
|
52
|
+
logger.error ISSUE_URL
|
53
|
+
logger.error 'options:'
|
54
|
+
logger.error options
|
55
|
+
end
|
56
|
+
|
57
|
+
# http://stackoverflow.com/a/23955971/104080
|
58
|
+
def method_missing(method, *args)
|
59
|
+
self.class.start([self.class.default_command, method.to_s] + args)
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end
|
63
|
+
end
|
64
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
module GitHttpsable
|
2
|
+
module Push
|
3
|
+
class GitHttpsablePushError < StandardError
|
4
|
+
def initialize(message = nil)
|
5
|
+
return super unless message
|
6
|
+
super(mask_token(message.to_s))
|
7
|
+
end
|
8
|
+
|
9
|
+
def mask_token(text)
|
10
|
+
text.gsub(%r{://[^/@]*@}) { '://MASKED@' }
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
class NotExistRemoteUrlError < GitHttpsablePushError; end
|
15
|
+
class NoAuthDataError < GitHttpsablePushError; end
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
module GitHttpsable
|
2
|
+
module Push
|
3
|
+
class MaskLogger < Logger
|
4
|
+
def initialize(*args)
|
5
|
+
super(*args)
|
6
|
+
self.progname = "GitHttpsable::Push/#{VERSION}"
|
7
|
+
self.level = Logger::WARN
|
8
|
+
self.formatter = proc do |severity, datetime, progname, msg|
|
9
|
+
@default_formatter.call(
|
10
|
+
severity,
|
11
|
+
datetime,
|
12
|
+
progname,
|
13
|
+
msg.to_s.gsub(%r{://[^/@]*@}) { '://MASKED@' }
|
14
|
+
)
|
15
|
+
end
|
16
|
+
|
17
|
+
self
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,76 @@
|
|
1
|
+
module GitHttpsable
|
2
|
+
module Push
|
3
|
+
class Repository
|
4
|
+
def initialize(path, options = {})
|
5
|
+
@path = path
|
6
|
+
@options = { log: logger }.merge(options)
|
7
|
+
end
|
8
|
+
|
9
|
+
def push(remote = 'origin', branch = 'master', options = {})
|
10
|
+
logger.debug(remote: remote, branch: branch, options: options)
|
11
|
+
# check current branch's upstream remote and branch?
|
12
|
+
url = remote_url(remote)
|
13
|
+
fail NotExistRemoteUrlError, %(no "#{remote}" url) unless url
|
14
|
+
parsed = GitCloneUrl.parse(url)
|
15
|
+
|
16
|
+
converted_url = \
|
17
|
+
URI::Generic.build(
|
18
|
+
scheme: scheme,
|
19
|
+
userinfo: userinfo,
|
20
|
+
host: host(parsed.host),
|
21
|
+
port: port,
|
22
|
+
path: parsed.path
|
23
|
+
)
|
24
|
+
git.push(converted_url.to_s, branch, options)
|
25
|
+
rescue StandardError => e
|
26
|
+
raise e if e.is_a?(GitHttpsablePushError)
|
27
|
+
|
28
|
+
exception = GitHttpsablePushError.new('(' + e.class.name + ') ' + e.message)
|
29
|
+
exception.set_backtrace(e.backtrace)
|
30
|
+
raise exception
|
31
|
+
end
|
32
|
+
|
33
|
+
def logger
|
34
|
+
::GitHttpsable::Push.logger
|
35
|
+
end
|
36
|
+
|
37
|
+
def git
|
38
|
+
@git ||= ::Git.open(@path, @options)
|
39
|
+
end
|
40
|
+
|
41
|
+
def remote_url(remote)
|
42
|
+
git.remote(remote) && git.remote(remote).url
|
43
|
+
end
|
44
|
+
|
45
|
+
def env_github_access_token
|
46
|
+
ENV['GITHUB_ACCESS_TOKEN']
|
47
|
+
end
|
48
|
+
|
49
|
+
def env_git_access_token
|
50
|
+
ENV['GIT_SERVER_ACCESS_TOKEN']
|
51
|
+
end
|
52
|
+
|
53
|
+
def userinfo
|
54
|
+
if env_git_access_token
|
55
|
+
env_git_access_token
|
56
|
+
elsif env_github_access_token
|
57
|
+
"#{env_github_access_token}:x-oauth-basic"
|
58
|
+
else
|
59
|
+
fail NoAuthDataError
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
63
|
+
def scheme
|
64
|
+
ENV['GIT_SERVER_SCHEME'] || 'https'
|
65
|
+
end
|
66
|
+
|
67
|
+
def host(host)
|
68
|
+
ENV['GIT_SERVER_HOST'] || host
|
69
|
+
end
|
70
|
+
|
71
|
+
def port
|
72
|
+
ENV['GIT_SERVER_PORT'] || nil
|
73
|
+
end
|
74
|
+
end
|
75
|
+
end
|
76
|
+
end
|
metadata
CHANGED
@@ -1,15 +1,57 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: git_httpsable-push
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- sanemat
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-03-
|
11
|
+
date: 2015-03-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: thor
|
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: git
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: git_clone_url
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ">="
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
48
|
+
type: :runtime
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ">="
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
13
55
|
- !ruby/object:Gem::Dependency
|
14
56
|
name: bundler
|
15
57
|
requirement: !ruby/object:Gem::Requirement
|
@@ -52,6 +94,20 @@ dependencies:
|
|
52
94
|
- - ">="
|
53
95
|
- !ruby/object:Gem::Version
|
54
96
|
version: '0'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: mocha
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - ">="
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '0'
|
104
|
+
type: :development
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - ">="
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '0'
|
55
111
|
description: "`git push` to https repo securely."
|
56
112
|
email:
|
57
113
|
- o.gata.ken@gmail.com
|
@@ -61,6 +117,8 @@ extensions: []
|
|
61
117
|
extra_rdoc_files: []
|
62
118
|
files:
|
63
119
|
- ".gitignore"
|
120
|
+
- ".rubocop.yml"
|
121
|
+
- CHANGELOG.md
|
64
122
|
- CODE_OF_CONDUCT.md
|
65
123
|
- Gemfile
|
66
124
|
- LICENSE.txt
|
@@ -71,6 +129,10 @@ files:
|
|
71
129
|
- exe/git-httpsable-push
|
72
130
|
- git_httpsable-push.gemspec
|
73
131
|
- lib/git_httpsable/push.rb
|
132
|
+
- lib/git_httpsable/push/cli.rb
|
133
|
+
- lib/git_httpsable/push/error.rb
|
134
|
+
- lib/git_httpsable/push/mask_logger.rb
|
135
|
+
- lib/git_httpsable/push/repository.rb
|
74
136
|
- lib/git_httpsable/push/version.rb
|
75
137
|
homepage: https://github.com/packsaddle/ruby-git_httpsable-push
|
76
138
|
licenses:
|
@@ -87,9 +149,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
87
149
|
version: '0'
|
88
150
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
89
151
|
requirements:
|
90
|
-
- - "
|
152
|
+
- - ">="
|
91
153
|
- !ruby/object:Gem::Version
|
92
|
-
version:
|
154
|
+
version: '0'
|
93
155
|
requirements: []
|
94
156
|
rubyforge_project:
|
95
157
|
rubygems_version: 2.4.5
|