git-comitter 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.
- data/History.txt +4 -0
- data/Manifest.txt +23 -0
- data/README.rdoc +51 -0
- data/Rakefile +25 -0
- data/bin/git-comitter +20 -0
- data/lib/git-comitter.rb +14 -0
- data/lib/git-comitter/branch.rb +6 -0
- data/lib/git-comitter/commit.rb +21 -0
- data/lib/git-comitter/cruise.rb +60 -0
- data/lib/git-comitter/globals.rb +18 -0
- data/lib/git-comitter/primitives.rb +17 -0
- data/lib/git-comitter/selector.rb +13 -0
- data/script/console +10 -0
- data/script/destroy +14 -0
- data/script/generate +14 -0
- data/spec/branch_spec.rb +13 -0
- data/spec/commit_spec.rb +33 -0
- data/spec/globals_spec.rb +24 -0
- data/spec/primitives_spec.rb +27 -0
- data/spec/selector_spec.rb +35 -0
- data/spec/spec.opts +1 -0
- data/spec/spec_helper.rb +32 -0
- data/tasks/rspec.rake +21 -0
- metadata +123 -0
data/History.txt
ADDED
data/Manifest.txt
ADDED
@@ -0,0 +1,23 @@
|
|
1
|
+
History.txt
|
2
|
+
Manifest.txt
|
3
|
+
README.rdoc
|
4
|
+
Rakefile
|
5
|
+
bin/git-comitter
|
6
|
+
lib/git-comitter.rb
|
7
|
+
lib/git-comitter/branch.rb
|
8
|
+
lib/git-comitter/commit.rb
|
9
|
+
lib/git-comitter/cruise.rb
|
10
|
+
lib/git-comitter/globals.rb
|
11
|
+
lib/git-comitter/primitives.rb
|
12
|
+
lib/git-comitter/selector.rb
|
13
|
+
script/console
|
14
|
+
script/destroy
|
15
|
+
script/generate
|
16
|
+
spec/branch_spec.rb
|
17
|
+
spec/commit_spec.rb
|
18
|
+
spec/globals_spec.rb
|
19
|
+
spec/primitives_spec.rb
|
20
|
+
spec/selector_spec.rb
|
21
|
+
spec/spec.opts
|
22
|
+
spec/spec_helper.rb
|
23
|
+
tasks/rspec.rake
|
data/README.rdoc
ADDED
@@ -0,0 +1,51 @@
|
|
1
|
+
= git-committer
|
2
|
+
|
3
|
+
* http://github.com/gja/git-comitter
|
4
|
+
|
5
|
+
== DESCRIPTION:
|
6
|
+
|
7
|
+
* A gem that helps define rules to write git update hooks
|
8
|
+
|
9
|
+
== FEATURES/PROBLEMS:
|
10
|
+
|
11
|
+
* Still quite basic
|
12
|
+
|
13
|
+
== SYNOPSIS:
|
14
|
+
|
15
|
+
The following script will allow if the commit's author matches tejasd or srshti
|
16
|
+
|
17
|
+
allow_if all_authors_match /tejasd/, /srshti/
|
18
|
+
deny
|
19
|
+
|
20
|
+
== REQUIREMENTS:
|
21
|
+
|
22
|
+
* git
|
23
|
+
|
24
|
+
== INSTALL:
|
25
|
+
|
26
|
+
* sudo gem install git-committer
|
27
|
+
|
28
|
+
== LICENSE:
|
29
|
+
|
30
|
+
(The MIT License)
|
31
|
+
|
32
|
+
Copyright (c) 2010 Tejas Dinkar
|
33
|
+
|
34
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
35
|
+
a copy of this software and associated documentation files (the
|
36
|
+
'Software'), to deal in the Software without restriction, including
|
37
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
38
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
39
|
+
permit persons to whom the Software is furnished to do so, subject to
|
40
|
+
the following conditions:
|
41
|
+
|
42
|
+
The above copyright notice and this permission notice shall be
|
43
|
+
included in all copies or substantial portions of the Software.
|
44
|
+
|
45
|
+
THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
|
46
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
47
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
48
|
+
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
49
|
+
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
50
|
+
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
51
|
+
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/Rakefile
ADDED
@@ -0,0 +1,25 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
gem 'hoe', '>= 2.1.0'
|
3
|
+
require 'hoe'
|
4
|
+
require 'fileutils'
|
5
|
+
require './lib/git-comitter'
|
6
|
+
|
7
|
+
Hoe.plugin :newgem
|
8
|
+
# Hoe.plugin :website
|
9
|
+
# Hoe.plugin :cucumberfeatures
|
10
|
+
|
11
|
+
# Generate all the Rake tasks
|
12
|
+
# Run 'rake -T' to see list of generated tasks (from gem root directory)
|
13
|
+
$hoe = Hoe.spec 'git-comitter' do
|
14
|
+
self.developer 'Tejas Dinkar', 'tejas@gja.in'
|
15
|
+
self.rubyforge_name = self.name # TODO this is default value
|
16
|
+
# self.extra_deps = [['activesupport','>= 2.0.2']]
|
17
|
+
|
18
|
+
end
|
19
|
+
|
20
|
+
require 'newgem/tasks'
|
21
|
+
Dir['tasks/**/*.rake'].each { |t| load t }
|
22
|
+
|
23
|
+
# TODO - want other tests/tasks run by default? Add them to the list
|
24
|
+
# remove_task :default
|
25
|
+
# task :default => [:spec, :features]
|
data/bin/git-comitter
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require 'rubygems'
|
4
|
+
require 'git-comitter'
|
5
|
+
|
6
|
+
module GitComitter
|
7
|
+
def _accept
|
8
|
+
exit 0
|
9
|
+
end
|
10
|
+
|
11
|
+
def _deny
|
12
|
+
exit 1
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
include GitComitter
|
17
|
+
|
18
|
+
setup_globals(Git.bare(Dir.pwd), ARGV[1], ARGV[2], ARGV[3])
|
19
|
+
|
20
|
+
load ARGV[0]
|
data/lib/git-comitter.rb
ADDED
@@ -0,0 +1,14 @@
|
|
1
|
+
$:.unshift(File.dirname(__FILE__)) unless
|
2
|
+
$:.include?(File.dirname(__FILE__)) || $:.include?(File.expand_path(File.dirname(__FILE__)))
|
3
|
+
|
4
|
+
module GitCommitter
|
5
|
+
VERSION = '0.0.1'
|
6
|
+
end
|
7
|
+
|
8
|
+
require 'git'
|
9
|
+
require 'git-comitter/globals.rb'
|
10
|
+
require 'git-comitter/primitives.rb'
|
11
|
+
require 'git-comitter/commit.rb'
|
12
|
+
require 'git-comitter/selector.rb'
|
13
|
+
require 'git-comitter/branch.rb'
|
14
|
+
require 'git-comitter/cruise.rb'
|
@@ -0,0 +1,21 @@
|
|
1
|
+
module GitComitter
|
2
|
+
class PatternMatcher
|
3
|
+
def initialize(patterns, &block)
|
4
|
+
@patterns = patterns
|
5
|
+
@commit_property = block
|
6
|
+
end
|
7
|
+
|
8
|
+
def match(commits)
|
9
|
+
messages = commits.map{|c| @commit_property.call c}
|
10
|
+
return messages.all? {|message| @patterns.any?{ |pattern| message =~ pattern } }
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
def matches_email(*patterns)
|
15
|
+
PatternMatcher.new(patterns) {|c| c.author.email}
|
16
|
+
end
|
17
|
+
|
18
|
+
def matches_message(*patterns)
|
19
|
+
PatternMatcher.new(patterns) {|c| c.message}
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,60 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
require 'json'
|
3
|
+
require 'net/http'
|
4
|
+
require 'ftools'
|
5
|
+
|
6
|
+
class Array
|
7
|
+
def second
|
8
|
+
self[1]
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
module GitComitter
|
13
|
+
def cruise_is_red(args = {})
|
14
|
+
cruise_url = args[:cruise_url]
|
15
|
+
pipelines = args[:pipelines]
|
16
|
+
pipelines.each_pair do |pipeline_name, stage_name|
|
17
|
+
stage = Stage.new(cruise_url, pipeline_name, stage_name)
|
18
|
+
return true if stage.should_not_checkin?
|
19
|
+
end
|
20
|
+
false
|
21
|
+
end
|
22
|
+
|
23
|
+
class Pipeline
|
24
|
+
def initialize(cruise_url, pipeline)
|
25
|
+
@pipe = pipeline
|
26
|
+
@cruise_url = cruise_url
|
27
|
+
end
|
28
|
+
|
29
|
+
def status(stage)
|
30
|
+
url = "#{@cruise_url}?pipelineName=#{@pipe}&stageName=#{stage}&perPage=2"
|
31
|
+
urlObj = URI.parse(url)
|
32
|
+
req = Net::HTTP::Get.new(urlObj.path + '?' + urlObj.query)
|
33
|
+
res = Net::HTTP.start(urlObj.host, urlObj.port) {|http| http.request(req)}
|
34
|
+
|
35
|
+
history = JSON.parse(res.body)["history"]
|
36
|
+
|
37
|
+
status = history.first["current_status"]
|
38
|
+
status = history.second["current_status"] if status == 'building'
|
39
|
+
status
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
class Stage
|
44
|
+
def initialize(cruise_url, pipeline_name, stage_name)
|
45
|
+
@cruise = Pipeline.new(cruise_url, pipeline_name)
|
46
|
+
@stage_name = stage_name
|
47
|
+
end
|
48
|
+
|
49
|
+
def should_not_checkin?
|
50
|
+
stage_status != 'passed'
|
51
|
+
end
|
52
|
+
|
53
|
+
:private
|
54
|
+
def stage_status
|
55
|
+
@stage_status=@cruise.status @stage_name if @stage_status == nil
|
56
|
+
@stage_status
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
@@ -0,0 +1,18 @@
|
|
1
|
+
module GitComitter
|
2
|
+
attr_reader :full_branch, :old_sha, :new_sha
|
3
|
+
|
4
|
+
def setup_globals(git, full_branch, old_sha, new_sha)
|
5
|
+
@git = git
|
6
|
+
@full_branch = full_branch
|
7
|
+
@old_sha = old_sha
|
8
|
+
@new_sha = new_sha
|
9
|
+
end
|
10
|
+
|
11
|
+
def branch
|
12
|
+
full_branch.split("/").last
|
13
|
+
end
|
14
|
+
|
15
|
+
def commits
|
16
|
+
@git.log.between(old_sha, new_sha).to_a
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
module GitComitter
|
2
|
+
class Always
|
3
|
+
def evaluate_match
|
4
|
+
true
|
5
|
+
end
|
6
|
+
end
|
7
|
+
|
8
|
+
def accept(args = {})
|
9
|
+
print(args[:message]) if args[:message]
|
10
|
+
_accept
|
11
|
+
end
|
12
|
+
|
13
|
+
def deny(args = {})
|
14
|
+
print(args[:message]) if args[:message]
|
15
|
+
_deny
|
16
|
+
end
|
17
|
+
end
|
data/script/console
ADDED
@@ -0,0 +1,10 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# File: script/console
|
3
|
+
irb = RUBY_PLATFORM =~ /(:?mswin|mingw)/ ? 'irb.bat' : 'irb'
|
4
|
+
|
5
|
+
libs = " -r irb/completion"
|
6
|
+
# Perhaps use a console_lib to store any extra methods I may want available in the cosole
|
7
|
+
# libs << " -r #{File.dirname(__FILE__) + '/../lib/console_lib/console_logger.rb'}"
|
8
|
+
libs << " -r #{File.dirname(__FILE__) + '/../lib/git-comitter.rb'}"
|
9
|
+
puts "Loading git-comitter gem"
|
10
|
+
exec "#{irb} #{libs} --simple-prompt"
|
data/script/destroy
ADDED
@@ -0,0 +1,14 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
APP_ROOT = File.expand_path(File.join(File.dirname(__FILE__), '..'))
|
3
|
+
|
4
|
+
begin
|
5
|
+
require 'rubigen'
|
6
|
+
rescue LoadError
|
7
|
+
require 'rubygems'
|
8
|
+
require 'rubigen'
|
9
|
+
end
|
10
|
+
require 'rubigen/scripts/destroy'
|
11
|
+
|
12
|
+
ARGV.shift if ['--help', '-h'].include?(ARGV[0])
|
13
|
+
RubiGen::Base.use_component_sources! [:rubygems, :newgem, :newgem_theme, :test_unit]
|
14
|
+
RubiGen::Scripts::Destroy.new.run(ARGV)
|
data/script/generate
ADDED
@@ -0,0 +1,14 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
APP_ROOT = File.expand_path(File.join(File.dirname(__FILE__), '..'))
|
3
|
+
|
4
|
+
begin
|
5
|
+
require 'rubigen'
|
6
|
+
rescue LoadError
|
7
|
+
require 'rubygems'
|
8
|
+
require 'rubigen'
|
9
|
+
end
|
10
|
+
require 'rubigen/scripts/generate'
|
11
|
+
|
12
|
+
ARGV.shift if ['--help', '-h'].include?(ARGV[0])
|
13
|
+
RubiGen::Base.use_component_sources! [:rubygems, :newgem, :newgem_theme, :test_unit]
|
14
|
+
RubiGen::Scripts::Generate.new.run(ARGV)
|
data/spec/branch_spec.rb
ADDED
@@ -0,0 +1,13 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/spec_helper.rb'
|
2
|
+
|
3
|
+
describe GitComitter do
|
4
|
+
before(:each) do
|
5
|
+
clear_flags
|
6
|
+
end
|
7
|
+
|
8
|
+
it "Should be able to determine if a branch is in a particular list" do
|
9
|
+
self.stub!(:full_branch).and_return("refs/heads/master")
|
10
|
+
branch_is_in("master", "foo").should == true
|
11
|
+
branch_is_in("foo", "bar").should == false
|
12
|
+
end
|
13
|
+
end
|
data/spec/commit_spec.rb
ADDED
@@ -0,0 +1,33 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/spec_helper.rb'
|
2
|
+
|
3
|
+
describe GitComitter do
|
4
|
+
before(:each) do
|
5
|
+
clear_flags
|
6
|
+
end
|
7
|
+
|
8
|
+
def mock_commit(email)
|
9
|
+
mock(:author => mock(:email => email))
|
10
|
+
end
|
11
|
+
|
12
|
+
it "should be able to match author of a single commit" do
|
13
|
+
self.stub!(:commits).and_return([mock_commit("tejas@gja.in")])
|
14
|
+
all_commits(matches_email(/tejas/)).should == true
|
15
|
+
all_commits(matches_email(/somethingelse/)).should == false
|
16
|
+
end
|
17
|
+
|
18
|
+
it "should not match unless all authors match pattern" do
|
19
|
+
self.stub!(:commits).and_return([mock_commit("tejas@gja.in"), mock_commit("spam@gja.in")])
|
20
|
+
all_commits(matches_email(/tejas/)).should == false
|
21
|
+
end
|
22
|
+
|
23
|
+
it "should be able to take a list of patterns" do
|
24
|
+
self.stub!(:commits).and_return([mock_commit("tejas@gja.in"), mock_commit("spam@gja.in")])
|
25
|
+
all_commits(matches_email(/tejas/, /spam/)).should == true
|
26
|
+
end
|
27
|
+
|
28
|
+
it "should be able to match message of last commit" do
|
29
|
+
self.stub!(:commits).and_return([mock(:message => "Fixing Build"), mock(:message => "Some config")])
|
30
|
+
latest_commit(matches_message(/fixing build/i)).should == true
|
31
|
+
latest_commit(matches_message(/foobar/i)).should == false
|
32
|
+
end
|
33
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/spec_helper.rb'
|
2
|
+
|
3
|
+
# These tests are run against the current git repository
|
4
|
+
|
5
|
+
describe GitComitter do
|
6
|
+
before(:each) do
|
7
|
+
setup_globals Git.open("."), 'refs/heads/master', '32d1f0b9ed4abe7fd51a2678b7c8dd709fe6f34d', '291dcd04238998b9a901188689e20ba42be83672'
|
8
|
+
end
|
9
|
+
|
10
|
+
it "should have set up branch and sha as global constants" do
|
11
|
+
full_branch.should == 'refs/heads/master'
|
12
|
+
old_sha.should == '32d1f0b9ed4abe7fd51a2678b7c8dd709fe6f34d'
|
13
|
+
new_sha.should == '291dcd04238998b9a901188689e20ba42be83672'
|
14
|
+
end
|
15
|
+
|
16
|
+
it "should get the short name of the branch" do
|
17
|
+
branch.should == 'master'
|
18
|
+
end
|
19
|
+
|
20
|
+
it "should get a list of commits" do
|
21
|
+
commits.should have(5).things
|
22
|
+
commits.map{|c| c.sha}.should == ["291dcd04238998b9a901188689e20ba42be83672", "c57f9601dac033bda72e20d39d31670785ebc472", "dc905cb24791a16c940b4b685be4e459f63177f4", "552192da1cb0e951dfc3f88c2da15c7e457be4cc", "6f68bef6dd15c560042e6eda4722868b0ed99550"]
|
23
|
+
end
|
24
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/spec_helper.rb'
|
2
|
+
|
3
|
+
describe GitComitter do
|
4
|
+
before(:each) do
|
5
|
+
clear_flags
|
6
|
+
end
|
7
|
+
|
8
|
+
it "Should be able to accept a push" do
|
9
|
+
accept
|
10
|
+
state.should == :accepted
|
11
|
+
end
|
12
|
+
|
13
|
+
it "Should print out a message when accepting" do
|
14
|
+
accept :message => "Dude, you can commit"
|
15
|
+
message.should == "Dude, you can commit"
|
16
|
+
end
|
17
|
+
|
18
|
+
it "Should be able to deny a commit" do
|
19
|
+
deny
|
20
|
+
state.should == :denied
|
21
|
+
end
|
22
|
+
|
23
|
+
it "Should print out a message when denying" do
|
24
|
+
deny :message => "Dude, you can't commit"
|
25
|
+
message.should == "Dude, you can't commit"
|
26
|
+
end
|
27
|
+
end
|
@@ -0,0 +1,35 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/spec_helper.rb'
|
2
|
+
|
3
|
+
class MockMatcher
|
4
|
+
def match(commits)
|
5
|
+
@commits = commits
|
6
|
+
end
|
7
|
+
|
8
|
+
attr_reader :commits
|
9
|
+
end
|
10
|
+
|
11
|
+
describe GitComitter do
|
12
|
+
before(:each) do
|
13
|
+
@commit1 = mock("commit1")
|
14
|
+
@commit2 = mock("commit2")
|
15
|
+
@commit3 = mock("commit3")
|
16
|
+
|
17
|
+
self.stub!(:commits).and_return([@commit1, @commit2, @commit3])
|
18
|
+
@matcher = MockMatcher.new
|
19
|
+
end
|
20
|
+
|
21
|
+
it "should be able to match against all commits" do
|
22
|
+
all_commits @matcher
|
23
|
+
@matcher.commits.should == commits
|
24
|
+
end
|
25
|
+
|
26
|
+
it "should be able to match the latest commit" do
|
27
|
+
latest_commit @matcher
|
28
|
+
@matcher.commits.should == [@commit1]
|
29
|
+
end
|
30
|
+
|
31
|
+
it "should be able to match the first commit" do
|
32
|
+
first_commit @matcher
|
33
|
+
@matcher.commits.should == [@commit3]
|
34
|
+
end
|
35
|
+
end
|
data/spec/spec.opts
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
--colour
|
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,32 @@
|
|
1
|
+
begin
|
2
|
+
require 'spec'
|
3
|
+
rescue LoadError
|
4
|
+
require 'rubygems' unless ENV['NO_RUBYGEMS']
|
5
|
+
gem 'rspec'
|
6
|
+
require 'spec'
|
7
|
+
end
|
8
|
+
|
9
|
+
$:.unshift(File.dirname(__FILE__) + '/../lib')
|
10
|
+
require 'git-comitter'
|
11
|
+
|
12
|
+
include GitComitter
|
13
|
+
|
14
|
+
module GitComitter
|
15
|
+
attr_accessor :state, :message
|
16
|
+
|
17
|
+
def clear_flags
|
18
|
+
@state = :neutral
|
19
|
+
end
|
20
|
+
|
21
|
+
def _accept
|
22
|
+
@state = :accepted
|
23
|
+
end
|
24
|
+
|
25
|
+
def _deny
|
26
|
+
@state = :denied
|
27
|
+
end
|
28
|
+
|
29
|
+
def print(message)
|
30
|
+
@message = message
|
31
|
+
end
|
32
|
+
end
|
data/tasks/rspec.rake
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
begin
|
2
|
+
require 'spec'
|
3
|
+
rescue LoadError
|
4
|
+
require 'rubygems' unless ENV['NO_RUBYGEMS']
|
5
|
+
require 'spec'
|
6
|
+
end
|
7
|
+
begin
|
8
|
+
require 'spec/rake/spectask'
|
9
|
+
rescue LoadError
|
10
|
+
puts <<-EOS
|
11
|
+
To use rspec for testing you must install rspec gem:
|
12
|
+
gem install rspec
|
13
|
+
EOS
|
14
|
+
exit(0)
|
15
|
+
end
|
16
|
+
|
17
|
+
desc "Run the specs under spec/models"
|
18
|
+
Spec::Rake::SpecTask.new do |t|
|
19
|
+
t.spec_opts = ['--options', "spec/spec.opts"]
|
20
|
+
t.spec_files = FileList['spec/**/*_spec.rb']
|
21
|
+
end
|
metadata
ADDED
@@ -0,0 +1,123 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: git-comitter
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
hash: 29
|
5
|
+
prerelease: false
|
6
|
+
segments:
|
7
|
+
- 0
|
8
|
+
- 0
|
9
|
+
- 1
|
10
|
+
version: 0.0.1
|
11
|
+
platform: ruby
|
12
|
+
authors:
|
13
|
+
- Tejas Dinkar
|
14
|
+
autorequire:
|
15
|
+
bindir: bin
|
16
|
+
cert_chain: []
|
17
|
+
|
18
|
+
date: 2010-11-18 00:00:00 +05:30
|
19
|
+
default_executable:
|
20
|
+
dependencies:
|
21
|
+
- !ruby/object:Gem::Dependency
|
22
|
+
name: rubyforge
|
23
|
+
prerelease: false
|
24
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ">="
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
hash: 7
|
30
|
+
segments:
|
31
|
+
- 2
|
32
|
+
- 0
|
33
|
+
- 4
|
34
|
+
version: 2.0.4
|
35
|
+
type: :development
|
36
|
+
version_requirements: *id001
|
37
|
+
- !ruby/object:Gem::Dependency
|
38
|
+
name: hoe
|
39
|
+
prerelease: false
|
40
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - ">="
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
hash: 23
|
46
|
+
segments:
|
47
|
+
- 2
|
48
|
+
- 6
|
49
|
+
- 0
|
50
|
+
version: 2.6.0
|
51
|
+
type: :development
|
52
|
+
version_requirements: *id002
|
53
|
+
description: "* A gem that helps define rules to write git update hooks"
|
54
|
+
email:
|
55
|
+
- tejas@gja.in
|
56
|
+
executables:
|
57
|
+
- git-comitter
|
58
|
+
extensions: []
|
59
|
+
|
60
|
+
extra_rdoc_files:
|
61
|
+
- History.txt
|
62
|
+
- Manifest.txt
|
63
|
+
files:
|
64
|
+
- History.txt
|
65
|
+
- Manifest.txt
|
66
|
+
- README.rdoc
|
67
|
+
- Rakefile
|
68
|
+
- bin/git-comitter
|
69
|
+
- lib/git-comitter.rb
|
70
|
+
- lib/git-comitter/branch.rb
|
71
|
+
- lib/git-comitter/commit.rb
|
72
|
+
- lib/git-comitter/cruise.rb
|
73
|
+
- lib/git-comitter/globals.rb
|
74
|
+
- lib/git-comitter/primitives.rb
|
75
|
+
- lib/git-comitter/selector.rb
|
76
|
+
- script/console
|
77
|
+
- script/destroy
|
78
|
+
- script/generate
|
79
|
+
- spec/branch_spec.rb
|
80
|
+
- spec/commit_spec.rb
|
81
|
+
- spec/globals_spec.rb
|
82
|
+
- spec/primitives_spec.rb
|
83
|
+
- spec/selector_spec.rb
|
84
|
+
- spec/spec.opts
|
85
|
+
- spec/spec_helper.rb
|
86
|
+
- tasks/rspec.rake
|
87
|
+
has_rdoc: true
|
88
|
+
homepage: http://github.com/gja/git-comitter
|
89
|
+
licenses: []
|
90
|
+
|
91
|
+
post_install_message:
|
92
|
+
rdoc_options:
|
93
|
+
- --main
|
94
|
+
- README.rdoc
|
95
|
+
require_paths:
|
96
|
+
- lib
|
97
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
98
|
+
none: false
|
99
|
+
requirements:
|
100
|
+
- - ">="
|
101
|
+
- !ruby/object:Gem::Version
|
102
|
+
hash: 3
|
103
|
+
segments:
|
104
|
+
- 0
|
105
|
+
version: "0"
|
106
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
107
|
+
none: false
|
108
|
+
requirements:
|
109
|
+
- - ">="
|
110
|
+
- !ruby/object:Gem::Version
|
111
|
+
hash: 3
|
112
|
+
segments:
|
113
|
+
- 0
|
114
|
+
version: "0"
|
115
|
+
requirements: []
|
116
|
+
|
117
|
+
rubyforge_project: git-comitter
|
118
|
+
rubygems_version: 1.3.7
|
119
|
+
signing_key:
|
120
|
+
specification_version: 3
|
121
|
+
summary: "* A gem that helps define rules to write git update hooks"
|
122
|
+
test_files: []
|
123
|
+
|