github-backup 0.5.0 → 0.6.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (5) hide show
  1. checksums.yaml +7 -0
  2. data/bin/github-backup +0 -5
  3. metadata +39 -63
  4. data/README.md +0 -39
  5. data/lib/github-backup.rb +0 -102
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ !binary "U0hBMQ==":
3
+ metadata.gz: 6f820bf92ef5eebcabd487c13e9c74c609ebd2c2
4
+ data.tar.gz: 1b0f0a15172d22bb5705819f41cd836354944623
5
+ SHA512:
6
+ metadata.gz: da5ce6808118fa2b2839c4addab2bd2a0d47ea9e07813f832bf55f9f405b6631c50e7466981ebe54d790346f96a20b97906616f06497027d18054b254a609d34
7
+ data.tar.gz: 765971e2a3c11202fd951edc858f87f71b99870ec39bfa515c4921c1d81e3c5753f01cd3e06963d18dca9e8b1faf5217bf58ba0d75cf7a74da93dd8b535d168a
data/bin/github-backup CHANGED
@@ -2,7 +2,6 @@
2
2
 
3
3
  $:.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
4
4
 
5
- require 'octopi'
6
5
  require 'github-backup'
7
6
  require 'optparse'
8
7
 
@@ -13,10 +12,6 @@ optionparser = OptionParser.new do |opts|
13
12
  opts.on("-t", "--token TOKEN", "Github API Token") do |t|
14
13
  options[:token] = t
15
14
  end
16
-
17
- opts.on("-u", "--username USER", "Github API Username") do |u|
18
- options[:login] = u
19
- end
20
15
  end
21
16
  optionparser.parse!
22
17
 
metadata CHANGED
@@ -1,83 +1,59 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: github-backup
3
- version: !ruby/object:Gem::Version
4
- prerelease:
5
- version: 0.5.0
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.6.0
6
5
  platform: ruby
7
- authors:
8
- - |
9
- David Dollar
10
-
6
+ authors:
7
+ - David Dollar
11
8
  autorequire:
12
9
  bindir: bin
13
10
  cert_chain: []
14
-
15
- date: 2011-09-05 00:00:00 -04:00
16
- default_executable:
17
- dependencies:
18
- - !ruby/object:Gem::Dependency
19
- name: parka
20
- requirement: &id001 !ruby/object:Gem::Requirement
21
- none: false
22
- requirements:
23
- - - ">="
24
- - !ruby/object:Gem::Version
25
- version: "0"
26
- type: :development
27
- prerelease: false
28
- version_requirements: *id001
29
- - !ruby/object:Gem::Dependency
30
- name: octopi
31
- requirement: &id002 !ruby/object:Gem::Requirement
32
- none: false
33
- requirements:
11
+ date: 2015-01-02 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: octokit
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
34
17
  - - ~>
35
- - !ruby/object:Gem::Version
36
- version: 0.4.5
18
+ - !ruby/object:Gem::Version
19
+ version: '3.7'
37
20
  type: :runtime
38
21
  prerelease: false
39
- version_requirements: *id002
40
- description: Backup your Github repositories
41
- email: |
42
- <ddollar@gmail.com>
43
-
44
- executables:
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ~>
25
+ - !ruby/object:Gem::Version
26
+ version: '3.7'
27
+ description:
28
+ email: david@dollar.io
29
+ executables:
45
30
  - github-backup
46
31
  extensions: []
47
-
48
32
  extra_rdoc_files: []
49
-
50
- files:
33
+ files:
51
34
  - bin/github-backup
52
- - README.md
53
- - lib/github-backup.rb
54
- has_rdoc: true
55
35
  homepage: http://github.com/ddollar/github-backup
56
- licenses: []
57
-
36
+ licenses:
37
+ - MIT
38
+ metadata: {}
58
39
  post_install_message:
59
40
  rdoc_options: []
60
-
61
- require_paths:
41
+ require_paths:
62
42
  - lib
63
- required_ruby_version: !ruby/object:Gem::Requirement
64
- none: false
65
- requirements:
66
- - - ">="
67
- - !ruby/object:Gem::Version
68
- version: "0"
69
- required_rubygems_version: !ruby/object:Gem::Requirement
70
- none: false
71
- requirements:
72
- - - ">="
73
- - !ruby/object:Gem::Version
74
- version: "0"
43
+ required_ruby_version: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ! '>='
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ required_rubygems_version: !ruby/object:Gem::Requirement
49
+ requirements:
50
+ - - ! '>='
51
+ - !ruby/object:Gem::Version
52
+ version: '0'
75
53
  requirements: []
76
-
77
- rubyforge_project: nowarning
78
- rubygems_version: 1.6.2
54
+ rubyforge_project:
55
+ rubygems_version: 2.2.2
79
56
  signing_key:
80
- specification_version: 3
57
+ specification_version: 4
81
58
  summary: Backup your Github repositories
82
59
  test_files: []
83
-
data/README.md DELETED
@@ -1,39 +0,0 @@
1
- # github-backup
2
-
3
- Back up your Github repositories locally.
4
-
5
- To install it as a Gem, just run:
6
-
7
- $ gem install github-backup
8
-
9
- To use it:
10
-
11
- $ github-backup ddollar /path/to/my/backup/root
12
-
13
- ## Authenticated Usage
14
-
15
- ### Seamless authentication using .gitconfig defaults
16
-
17
- You will need a `~/.gitconfig` file in place with a `[github]` section
18
-
19
- See: http://github.com/guides/tell-git-your-user-name-and-email-address
20
-
21
- ### Specify authentication at the command line
22
-
23
- If you don't have a `[github]` section set up in your `~/.gitconfig` file, you
24
- can provide your user name and Github API at the command line.
25
-
26
- ## License
27
-
28
- MIT License
29
-
30
- ## Author
31
-
32
- Created by David Dollar
33
-
34
- Patches contributed by:
35
- Gabriel Gilder
36
-
37
- ## Copyright
38
-
39
- Copyright (c) 2010 David Dollar.
data/lib/github-backup.rb DELETED
@@ -1,102 +0,0 @@
1
- require 'octopi'
2
- require 'pp'
3
-
4
- module Github; end
5
-
6
- class Github::Backup
7
-
8
- VERSION = "0.5.0"
9
-
10
- include Octopi
11
-
12
- attr_reader :backup_root, :debug, :username
13
-
14
- def initialize(username, backup_root, options = {})
15
- @username = username
16
- @backup_root = backup_root
17
- @options = options
18
- if (options[:token] && !options[:login])
19
- options[:login] = @username
20
- end
21
- @debug = false
22
- end
23
-
24
- def execute
25
- backup_all @options
26
-
27
- rescue Errno::ENOENT
28
- puts "Please install git and create a ~/.gitconfig"
29
- puts " See: http://github.com/guides/tell-git-your-user-name-and-email-address"
30
- rescue NoMethodError
31
- puts "Please add a [github] section to your ~/.gitconfig"
32
- puts " See: http://github.com/guides/tell-git-your-user-name-and-email-address"
33
- rescue Octopi::APIError => e
34
- # only handle "Authentication required" errors
35
- unless (e.message =~ /status 401$/)
36
- raise e
37
- end
38
- puts "Github API authentication failed."
39
- puts "Please add a [github] section to your ~/.gitconfig"
40
- puts " See: http://github.com/guides/tell-git-your-user-name-and-email-address"
41
- puts "Or, use the arguments to authenticate with your username and API token."
42
- end
43
-
44
- private ######################################################################
45
-
46
- def github_authenticate(options={})
47
- if (options[:login])
48
- authenticated_with(options) do
49
- yield
50
- end
51
- else
52
- authenticated do
53
- yield
54
- end
55
- end
56
- end
57
-
58
- def backup_directory_for(repository)
59
- File.join(backup_root, repository.name)
60
- end
61
-
62
- def backup_all(options={})
63
- FileUtils::mkdir_p(backup_root)
64
- github_authenticate(options) do
65
- repositories = User.find(username).repositories.sort_by { |r| r.name }
66
- repositories.each do |repository|
67
- puts "Backing up: #{repository.name}"
68
- backup_repository repository
69
- end
70
- end
71
- end
72
-
73
- def backup_repository(repository)
74
- if File.exists?(backup_directory_for(repository))
75
- backup_repository_incremental(repository)
76
- else
77
- backup_repository_initial(repository)
78
- end
79
- end
80
-
81
- def backup_repository_initial(repository)
82
- FileUtils::cd(backup_root) do
83
- shell("git clone -n #{repository.clone_url}")
84
- end
85
- end
86
-
87
- def backup_repository_incremental(repository)
88
- FileUtils::cd(backup_directory_for(repository)) do
89
- shell("git remote update")
90
- end
91
- end
92
-
93
- def shell(command)
94
- puts "EXECUTING: #{command}" if debug
95
- IO.popen(command, 'r') do |io|
96
- output = io.read
97
- puts "OUTPUT:" if debug
98
- puts output if debug
99
- end
100
- end
101
-
102
- end