mygit 0.0.1

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.
Files changed (3) hide show
  1. data/README.md +59 -0
  2. data/bin/mygit +72 -0
  3. metadata +66 -0
data/README.md ADDED
@@ -0,0 +1,59 @@
1
+ mygit
2
+ =====
3
+
4
+ A wrapper around some GitHub API commands to allow quicker access to do stuff.
5
+
6
+
7
+ Setup
8
+ -----
9
+
10
+ Put config file where I can find it :-
11
+
12
+ cp .mygit-example ~/.mygit
13
+
14
+ And then edit it to add your details
15
+
16
+ Setup a symlink to a directory in your path (I have ~/bin in mine)
17
+
18
+ ln -s <full-path>/mygit/mygit ~/bin/mygit
19
+
20
+ (Of course you can alias it to anything you like!)
21
+
22
+
23
+ Usage
24
+ -----
25
+
26
+ Git a list of all repos :-
27
+
28
+ $ mygit list
29
+ ...
30
+ urlybird git@github.com:globaldev/urlybird.git
31
+ ...
32
+
33
+
34
+ Find info on a repo :-
35
+
36
+ $ mygit find urlybird
37
+ {"language"=>"Ruby",
38
+ "description"=>"Fetches all your URIs in one fell swoop.",
39
+ "ssh_url"=>"git@github.com:globaldev/urlybird.git",
40
+ "html_url"=>"https://github.com/globaldev/urlybird",
41
+ "pushed_at"=>"2012-05-30T11:13:54Z",
42
+ "created_at"=>"2012-05-16T08:19:38Z",
43
+ ....
44
+ (tons more)
45
+
46
+ Clone a repo by name :-
47
+
48
+ $ mygit clone urlybird
49
+ Cloning into 'urlybird'...
50
+ ...
51
+
52
+ Open the GitHub project page :-
53
+
54
+ $ mygit open urlybird
55
+
56
+ or from within the repo
57
+
58
+ $ mygit open
59
+
data/bin/mygit ADDED
@@ -0,0 +1,72 @@
1
+ #!/usr/bin/env ruby -wKU
2
+ # curl -u "github@ianvaughan.co.uk:password" https://api.github.com/orgs/globaldev/repos
3
+
4
+ require 'httparty'
5
+ require 'pp'
6
+
7
+ class GitHub
8
+ include HTTParty
9
+ base_uri 'https://api.github.com'
10
+
11
+ def initialize(u, p)
12
+ @auth = {:username => u, :password => p}
13
+ end
14
+
15
+ def repos repo
16
+ self.class.get("/orgs/#{repo}/repos", {:basic_auth => @auth})
17
+ end
18
+
19
+ end
20
+
21
+ class Access
22
+ def initialize
23
+ conf = YAML.load_file File.expand_path '~/.mygit'
24
+ @repo = GitHub.new(conf['user'], conf['pass']).repos(conf['repo'])
25
+ end
26
+
27
+ def keys
28
+ puts @repo.first.each_key { |k| puts k }
29
+ end
30
+
31
+ def list
32
+ @repo.each do |r|
33
+ spaces = ' ' * (30 - r['name'].size)
34
+ puts "#{r['name']} #{spaces} #{r['ssh_url']}"
35
+ end
36
+ end
37
+
38
+ def find name
39
+ found = nil
40
+ @repo.each do |r|
41
+ found = r if r['name'] == name
42
+ end
43
+ found
44
+ end
45
+ end
46
+
47
+ # git clone name -> looks up git@ ssh, then cd
48
+
49
+ access = Access.new
50
+
51
+ cmd = ARGV.shift
52
+ case cmd
53
+ when 'list' # dumps a list of all repos found
54
+ access.list
55
+ when 'find' # find a repo by name
56
+ pp access.find ARGV.shift
57
+ when 'clone' # clone a repo by name
58
+ p = access.find ARGV.shift
59
+ cmd = "git clone #{p['ssh_url']}"
60
+ system cmd
61
+ when 'open' # Opens either the current pwd, or a supplied project, GitHub project page in a browser
62
+ opt = ARGV.shift
63
+ opt = File.basename(Dir.getwd) if opt.nil?
64
+ p = access.find opt
65
+ system "open #{p['html_url']}"
66
+ else
67
+ puts 'Unknown or no command given! Options are :-'
68
+ File.open(__FILE__).each_line do |line|
69
+ puts " " + line.sub('when','').sub('#', '->').gsub('\'','') if line.include? 'when'
70
+ break if line.include? 'else'
71
+ end
72
+ end
metadata ADDED
@@ -0,0 +1,66 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: mygit
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Ian Vaughan
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2012-05-31 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: httparty
16
+ requirement: !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: '0'
30
+ description: Allows you to do cool things from the CLI with GitHub
31
+ email:
32
+ - mygit@ianvaughan.co.uk
33
+ executables:
34
+ - mygit
35
+ extensions: []
36
+ extra_rdoc_files: []
37
+ files:
38
+ - README.md
39
+ - bin/mygit
40
+ homepage: http://github.com/ianvaughan/mygit
41
+ licenses:
42
+ - MIT
43
+ post_install_message:
44
+ rdoc_options: []
45
+ require_paths:
46
+ - lib
47
+ required_ruby_version: !ruby/object:Gem::Requirement
48
+ none: false
49
+ requirements:
50
+ - - ! '>='
51
+ - !ruby/object:Gem::Version
52
+ version: '1.9'
53
+ required_rubygems_version: !ruby/object:Gem::Requirement
54
+ none: false
55
+ requirements:
56
+ - - ! '>='
57
+ - !ruby/object:Gem::Version
58
+ version: '0'
59
+ requirements: []
60
+ rubyforge_project:
61
+ rubygems_version: 1.8.24
62
+ signing_key:
63
+ specification_version: 3
64
+ summary: Some CLI commands to talk to GitHub
65
+ test_files: []
66
+ has_rdoc: