gitolite 1.0.0 → 1.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/README.markdown +2 -2
- data/lib/gitolite/config.rb +2 -0
- data/lib/gitolite/version.rb +1 -1
- data/spec/config_spec.rb +38 -0
- metadata +2 -2
data/README.markdown
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# gitolite #
|
2
2
|
|
3
|
-
This gem is designed to provide a Ruby interface to the
|
3
|
+
This gem is designed to provide a Ruby interface to the [gitolite](https://github.com/sitaramc/gitolite) git backend system. I am aiming to provide all management functionality that is available via the gitolite-admin repository (like SSH keys, repository permissions, etc)
|
4
4
|
|
5
5
|
This gem can still have problems. Please file an issue if you encounter a bug. If you have a feature request, file one please.
|
6
6
|
|
@@ -14,7 +14,7 @@ This gem can still have problems. Please file an issue if you encounter a bug.
|
|
14
14
|
|
15
15
|
## Requirements ##
|
16
16
|
* Ruby 1.8.x or 1.9.x
|
17
|
-
* a working
|
17
|
+
* a working [gitolite](https://github.com/sitaramc/gitolite) installation
|
18
18
|
* the <tt>gitolite-admin</tt> repository checked out locally
|
19
19
|
|
20
20
|
## Installation ##
|
data/lib/gitolite/config.rb
CHANGED
@@ -207,6 +207,8 @@ module Gitolite
|
|
207
207
|
|
208
208
|
# Add each group to the graph
|
209
209
|
@groups.each_value do |group|
|
210
|
+
dp.add_vertex! group
|
211
|
+
|
210
212
|
# Select group names from the users
|
211
213
|
subgroups = group.users.select {|u| u =~ /^#{Group::PREPEND_CHAR}.*$/}
|
212
214
|
.map{|g| get_group g.gsub(Group::PREPEND_CHAR, '') }
|
data/lib/gitolite/version.rb
CHANGED
data/spec/config_spec.rb
CHANGED
@@ -381,6 +381,44 @@ describe Gitolite::Config do
|
|
381
381
|
# Attempt to write the config file
|
382
382
|
lambda{ c.to_file('/tmp')}.should raise_error(Gitolite::Config::GroupDependencyError)
|
383
383
|
end
|
384
|
+
|
385
|
+
it 'should resolve group dependencies even when there are disconnected portions of the graph' do
|
386
|
+
c = Gitolite::Config.init
|
387
|
+
c.filename = "test_deptree.conf"
|
388
|
+
|
389
|
+
# Build some groups out of order
|
390
|
+
g = Gitolite::Config::Group.new "groupa"
|
391
|
+
g.add_users "bob", "timmy", "stephanie"
|
392
|
+
c.add_group(g)
|
393
|
+
|
394
|
+
g = Gitolite::Config::Group.new "groupb"
|
395
|
+
g.add_users "joe", "sam", "susan", "andrew"
|
396
|
+
c.add_group(g)
|
397
|
+
|
398
|
+
g = Gitolite::Config::Group.new "groupc"
|
399
|
+
g.add_users "jane", "earl", "brandon", "@groupa"
|
400
|
+
c.add_group(g)
|
401
|
+
|
402
|
+
g = Gitolite::Config::Group.new "groupd"
|
403
|
+
g.add_users "larry", "chris", "emily"
|
404
|
+
c.add_group(g)
|
405
|
+
|
406
|
+
# Write the config to a file
|
407
|
+
file = c.to_file('/tmp')
|
408
|
+
|
409
|
+
# Read the conf and make sure our order is correct
|
410
|
+
f = File.read(file)
|
411
|
+
lines = f.lines.map {|l| l.strip}
|
412
|
+
|
413
|
+
# Compare the file lines. Spacing is important here since we are doing a direct comparision
|
414
|
+
lines[0].should == "@groupd = chris emily larry"
|
415
|
+
lines[1].should == "@groupb = andrew joe sam susan"
|
416
|
+
lines[2].should == "@groupa = bob stephanie timmy"
|
417
|
+
lines[3].should == "@groupc = @groupa brandon earl jane"
|
418
|
+
|
419
|
+
# Cleanup
|
420
|
+
File.unlink(file)
|
421
|
+
end
|
384
422
|
end
|
385
423
|
|
386
424
|
describe "#cleanup_config_line" do
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gitolite
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.1
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-
|
12
|
+
date: 2012-05-15 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rspec
|