gitosis_easy_conf 0.0.3
Sign up to get free protection for your applications and to get access to all the features.
- data/.document +5 -0
- data/.rvmrc +1 -0
- data/Gemfile +3 -0
- data/LICENSE.txt +20 -0
- data/README.rdoc +72 -0
- data/Rakefile +62 -0
- data/VERSION +1 -0
- data/examples/Rakefile +179 -0
- data/examples/gitosis.complex.conf +138 -0
- data/examples/gitosis.concise.conf +18 -0
- data/examples/gitosis.readme.conf +122 -0
- data/gitosis_easy_conf.gemspec +187 -0
- data/lib/gitosis_easy_conf/config.rb +26 -0
- data/lib/gitosis_easy_conf/forkers.rb +45 -0
- data/lib/gitosis_easy_conf/groups.rb +69 -0
- data/lib/gitosis_easy_conf/repositories.rb +88 -0
- data/lib/gitosis_easy_conf.rb +60 -0
- data/test/helper.rb +40 -0
- data/test/test_gitosis_config.rb +99 -0
- data/test/test_gitosis_forker.rb +96 -0
- data/test/test_gitosis_groups.rb +100 -0
- data/test/test_gitosis_repositories.rb +371 -0
- metadata +547 -0
data/.document
ADDED
data/.rvmrc
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
rvm use --create ruby-1.9.2-p180@gitosiseasyconf
|
data/Gemfile
ADDED
data/LICENSE.txt
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
Copyright (c) 2011 Gerrit Riessen
|
2
|
+
|
3
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
4
|
+
a copy of this software and associated documentation files (the
|
5
|
+
"Software"), to deal in the Software without restriction, including
|
6
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
7
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
8
|
+
permit persons to whom the Software is furnished to do so, subject to
|
9
|
+
the following conditions:
|
10
|
+
|
11
|
+
The above copyright notice and this permission notice shall be
|
12
|
+
included in all copies or substantial portions of the Software.
|
13
|
+
|
14
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
15
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
16
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
17
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
18
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
19
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
20
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.rdoc
ADDED
@@ -0,0 +1,72 @@
|
|
1
|
+
= gitosis_easy_conf
|
2
|
+
|
3
|
+
== Work in Progress
|
4
|
+
|
5
|
+
This is still work in progress and the author makes no guarantee that it
|
6
|
+
will ever be completed.
|
7
|
+
|
8
|
+
== Description
|
9
|
+
|
10
|
+
Because we're using Redmine and Gitosis and are aiming to have a workflow similar to
|
11
|
+
github, i.e. fork, commit, push, pull-request, we need a repo for each developer for
|
12
|
+
every project. I.e. 2 rails apps, 3 developers would mean that we have 8 repos.
|
13
|
+
Having 8 repos, each with their own permissions and naming gets confusing using a gitosis
|
14
|
+
config, hence this gem.
|
15
|
+
|
16
|
+
Scenario:
|
17
|
+
|
18
|
+
Four developers and 3 rails applications. Two developers (dev1 & dev2) are owners can can
|
19
|
+
push commits to the master repositories, the other two developers can't deploy and commit
|
20
|
+
to the master repositories. There are also two servers to which all the applications can
|
21
|
+
be deployed to.
|
22
|
+
|
23
|
+
The following config.rb is an example:
|
24
|
+
|
25
|
+
Gitosis.config do
|
26
|
+
fork_naming_convention do |repo, forker|
|
27
|
+
"#{forker}_#{repo}"
|
28
|
+
end
|
29
|
+
filename "gitosis.readme.conf"
|
30
|
+
end
|
31
|
+
|
32
|
+
Gitosis.forkers do
|
33
|
+
developer1 'dev.one'
|
34
|
+
developer2 'dev.two'
|
35
|
+
developer3 'dev.three'
|
36
|
+
developer4 'dev.four'
|
37
|
+
end
|
38
|
+
|
39
|
+
Gitosis.groups do
|
40
|
+
admins Forker[:developer1], Forker[:developer2]
|
41
|
+
developers Forker[:developer3], Forker[:developer4]
|
42
|
+
deployers 'app1.deploy', 'app2.deploy'
|
43
|
+
all_developers :admins, :developers
|
44
|
+
end
|
45
|
+
|
46
|
+
Gitosis.repositories do
|
47
|
+
with_base_configuration( :writable => :admins,
|
48
|
+
:readable => [:all_developers, :deployers],
|
49
|
+
:forks => :all ) do
|
50
|
+
rails_app_one
|
51
|
+
rails_app_two
|
52
|
+
rails_app_three
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
56
|
+
The result of this configuration can be found in the examples directory.
|
57
|
+
|
58
|
+
== Contributing to gitosis_easy_conf
|
59
|
+
|
60
|
+
* Check out the latest master to make sure the feature hasn't been implemented or the bug hasn't been fixed yet
|
61
|
+
* Check out the issue tracker to make sure someone already hasn't requested it and/or contributed it
|
62
|
+
* Fork the project
|
63
|
+
* Start a feature/bugfix branch
|
64
|
+
* Commit and push until you are happy with your contribution
|
65
|
+
* Make sure to add tests for it. This is important so I don't break it in a future version unintentionally.
|
66
|
+
* Please try not to mess with the Rakefile, version, or history. If you want to have your own version, or is otherwise necessary, that is fine, but please isolate to its own commit so I can cherry-pick around it.
|
67
|
+
|
68
|
+
== Copyright
|
69
|
+
|
70
|
+
Copyright (c) 2011 Gerrit Riessen. See LICENSE.txt for
|
71
|
+
further details.
|
72
|
+
|
data/Rakefile
ADDED
@@ -0,0 +1,62 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
require 'rubygems'
|
4
|
+
require 'bundler'
|
5
|
+
begin
|
6
|
+
Bundler.setup(:default, :development)
|
7
|
+
rescue Bundler::BundlerError => e
|
8
|
+
$stderr.puts e.message
|
9
|
+
$stderr.puts "Run `bundle install` to install missing gems"
|
10
|
+
exit e.status_code
|
11
|
+
end
|
12
|
+
|
13
|
+
require 'jeweler'
|
14
|
+
Jeweler::Tasks.new do |gem|
|
15
|
+
# gem is a Gem::Specification... see http://docs.rubygems.org/read/chapter/20 for more options
|
16
|
+
gem.name = "gitosis_easy_conf"
|
17
|
+
gem.homepage = "https://github.com/gorenje/gitosis_easy_conf"
|
18
|
+
gem.license = "MIT"
|
19
|
+
gem.summary = %Q{Make writing a gitosis configuration easier}
|
20
|
+
gem.description = %Q{Easy gitosis configuration}
|
21
|
+
gem.email = "gerrit.riessen@gmail.com"
|
22
|
+
gem.authors = ["Gerrit Riessen"]
|
23
|
+
|
24
|
+
gem.add_development_dependency "shoulda", ">= 0"
|
25
|
+
gem.add_development_dependency "rake", ">= 0"
|
26
|
+
gem.add_development_dependency "jeweler", ">= 0"
|
27
|
+
gem.add_development_dependency "inifile", ">= 0"
|
28
|
+
gem.add_development_dependency "rdoc", ">= 0"
|
29
|
+
gem.add_development_dependency "rcov", ">= 0"
|
30
|
+
gem.add_development_dependency "rr", ">= 0"
|
31
|
+
|
32
|
+
gem.add_runtime_dependency "inifile", ">= 0"
|
33
|
+
# dependencies defined in Gemfile
|
34
|
+
end
|
35
|
+
Jeweler::RubygemsDotOrgTasks.new
|
36
|
+
|
37
|
+
require 'rake/testtask'
|
38
|
+
Rake::TestTask.new(:test) do |test|
|
39
|
+
test.libs << 'lib' << 'test'
|
40
|
+
test.pattern = 'test/**/test_*.rb'
|
41
|
+
test.verbose = true
|
42
|
+
end
|
43
|
+
|
44
|
+
require 'rcov/rcovtask'
|
45
|
+
Rcov::RcovTask.new do |test|
|
46
|
+
test.libs << 'test'
|
47
|
+
test.pattern = 'test/**/test_*.rb'
|
48
|
+
test.verbose = true
|
49
|
+
test.rcov_opts << '--exclude "gems/*"'
|
50
|
+
end
|
51
|
+
|
52
|
+
task :default => :test
|
53
|
+
|
54
|
+
require 'rdoc/task'
|
55
|
+
Rake::RDocTask.new do |rdoc|
|
56
|
+
version = File.exist?('VERSION') ? File.read('VERSION') : ""
|
57
|
+
|
58
|
+
rdoc.rdoc_dir = 'rdoc'
|
59
|
+
rdoc.title = "gitosis_easy_conf #{version}"
|
60
|
+
rdoc.rdoc_files.include('README*')
|
61
|
+
rdoc.rdoc_files.include('lib/**/*.rb')
|
62
|
+
end
|
data/VERSION
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
0.0.3
|
data/examples/Rakefile
ADDED
@@ -0,0 +1,179 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
require 'bundler'
|
3
|
+
begin
|
4
|
+
Bundler.setup(:default, :development)
|
5
|
+
rescue Bundler::BundlerError => e
|
6
|
+
$stderr.puts e.message
|
7
|
+
$stderr.puts "Run `bundle install` to install missing gems"
|
8
|
+
exit e.status_code
|
9
|
+
end
|
10
|
+
|
11
|
+
require 'inifile'
|
12
|
+
|
13
|
+
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
|
14
|
+
$LOAD_PATH.unshift(File.dirname(__FILE__))
|
15
|
+
require 'gitosis_easy_conf'
|
16
|
+
|
17
|
+
namespace :gitosis_easy_conf do
|
18
|
+
namespace :examples do
|
19
|
+
|
20
|
+
desc <<-EOF
|
21
|
+
Concise example.
|
22
|
+
EOF
|
23
|
+
task :concise do
|
24
|
+
Gitosis.setup("gitosis.concise.conf") do
|
25
|
+
config do
|
26
|
+
fork_naming_convention do |repo,forker|
|
27
|
+
"#{repo}_been_forked_by_#{forker}"
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
forkers do
|
32
|
+
dev1 "dev.one"
|
33
|
+
dev2 "dev.two"
|
34
|
+
end
|
35
|
+
|
36
|
+
repositories do
|
37
|
+
test_one :writable => Forker[:dev1], :forks => :dev2, :readable => Forker[:dev2]
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
desc <<-EOF
|
43
|
+
From the readme.
|
44
|
+
|
45
|
+
Four developers, three rails application and two servers to which the applications
|
46
|
+
are deployed. Developers One and Two are committers and can push to master repositories,
|
47
|
+
developers Three and Four each have their own forks of all three rails application.
|
48
|
+
EOF
|
49
|
+
task :readme do
|
50
|
+
Gitosis.config do
|
51
|
+
fork_naming_convention do |repo, forker|
|
52
|
+
"#{forker}_#{repo}"
|
53
|
+
end
|
54
|
+
filename "gitosis.readme.conf"
|
55
|
+
end
|
56
|
+
|
57
|
+
Gitosis.forkers do
|
58
|
+
developer1 'dev.one'
|
59
|
+
developer2 'dev.two'
|
60
|
+
developer3 'dev.three'
|
61
|
+
developer4 'dev.four'
|
62
|
+
end
|
63
|
+
|
64
|
+
Gitosis.groups do
|
65
|
+
admins Forker[:developer1], Forker[:developer2]
|
66
|
+
developers Forker[:developer3], Forker[:developer4]
|
67
|
+
deployers 'app1.deploy', 'app2.deploy'
|
68
|
+
all_developers :admins, :developers
|
69
|
+
end
|
70
|
+
|
71
|
+
Gitosis.repositories do
|
72
|
+
with_base_configuration( :writable => :admins,
|
73
|
+
:readable => [:all_developers, :deployers],
|
74
|
+
:forks => :all ) do
|
75
|
+
rails_app_one
|
76
|
+
rails_app_two
|
77
|
+
rails_app_three
|
78
|
+
end
|
79
|
+
end
|
80
|
+
end
|
81
|
+
|
82
|
+
desc <<-EOF
|
83
|
+
Complex example.
|
84
|
+
|
85
|
+
Following setup:
|
86
|
+
- 3 application repos: blog_app, www_app, api_app
|
87
|
+
- 1 repo for common db configuration: db_config
|
88
|
+
- 1 repo with common gem used across all rails apps: common_gem
|
89
|
+
- 2 admin repos: chef, gitosis-admin
|
90
|
+
|
91
|
+
Team consists of a cto, lead developer, 4 developers and one unix admin. What we
|
92
|
+
want is that each developer has a fork of the rails applications on which they
|
93
|
+
are working but only the cto and lead developer can commit to the master repositories
|
94
|
+
of the rails applicatoins. The cto does not have a fork repo but the leader developer
|
95
|
+
as a fork of all three rails applications.
|
96
|
+
|
97
|
+
The four developers can fork and access the common_gem and can commit to the master
|
98
|
+
repositoty of the common_gem.
|
99
|
+
|
100
|
+
Only the cto and lead developer can commit to the db_config repo. Also only the deployers
|
101
|
+
can read the db_config repo (the deployers are the deploy users on the servers and
|
102
|
+
not physical people). The developers can't read nor write to db_config. (db_config
|
103
|
+
contains the production configuration for databases and API keys.)
|
104
|
+
|
105
|
+
The unix admin, cto and lead developer can commit to the chef and gitosis-admin repos.
|
106
|
+
The developers can read them but don't have a fork of either.
|
107
|
+
|
108
|
+
We'll end up with the following 17 repositories:
|
109
|
+
blog_app
|
110
|
+
dev_fours_fork_of_blog_app
|
111
|
+
dev_threes_fork_of_blog_app
|
112
|
+
dev_lead_devs_fork_of_blog_app
|
113
|
+
www_app
|
114
|
+
dev_fours_fork_of_www_app
|
115
|
+
dev_twos_fork_of_www_app
|
116
|
+
dev_lead_devs_fork_of_www_app
|
117
|
+
api_app
|
118
|
+
dev_ones_fork_of_api_app
|
119
|
+
dev_threes_fork_of_api_app
|
120
|
+
dev_twos_fork_of_api_app
|
121
|
+
dev_lead_devs_fork_of_api_app
|
122
|
+
common_gem
|
123
|
+
chef
|
124
|
+
gitosis-admin
|
125
|
+
db_config
|
126
|
+
EOF
|
127
|
+
task :complex do
|
128
|
+
Gitosis.config do
|
129
|
+
filename "gitosis.complex.conf"
|
130
|
+
fork_naming_convention do |repo, forker|
|
131
|
+
"#{forker}s_fork_of_#{repo}"
|
132
|
+
end
|
133
|
+
end
|
134
|
+
|
135
|
+
Gitosis.forkers do
|
136
|
+
dev_cto 'dev_cto.key'
|
137
|
+
dev_lead_dev 'dev_lead_dev.key'
|
138
|
+
|
139
|
+
dev_one 'dev_one.key'
|
140
|
+
dev_two 'dev_two.key'
|
141
|
+
dev_three 'dev_three.key'
|
142
|
+
dev_four 'dev_four.key'
|
143
|
+
end
|
144
|
+
|
145
|
+
Gitosis.roles do
|
146
|
+
committers Forker[:dev_cto], Forker[:dev_lead_dev]
|
147
|
+
admins 'unix.admin', :committers
|
148
|
+
|
149
|
+
blog_developers Forker[:dev_four], Forker[:dev_three]
|
150
|
+
www_developers Forker[:dev_four], Forker[:dev_two]
|
151
|
+
api_developers Forker[:dev_one], Forker[:dev_three], Forker[:dev_two]
|
152
|
+
|
153
|
+
all_developers :blog_developers, :committers, :www_developers, :api_developers
|
154
|
+
deployers 'app1.deploy', 'app2.deploy', 'app3.deploy'
|
155
|
+
end
|
156
|
+
|
157
|
+
Gitosis.repositories do
|
158
|
+
# rails applications (blog, www and api) and common gem.
|
159
|
+
with_base_configuration(:writable => :committers,
|
160
|
+
:readable => [:all_developers, :deployers]) do
|
161
|
+
blog_app :forks => [:dev_four, :dev_three, :dev_lead_dev]
|
162
|
+
www_app :forks => [:dev_four, :dev_two, :dev_lead_dev]
|
163
|
+
api_app :forks => [:dev_one, :dev_three, :dev_two, :dev_lead_dev]
|
164
|
+
common_gem :writable => :all_developers
|
165
|
+
end
|
166
|
+
|
167
|
+
# chef and gitosis-admin. Note there are no forks these repos, only master.
|
168
|
+
with_base_configuration(:writable => :admins,
|
169
|
+
:readable => :all_developers) do
|
170
|
+
chef
|
171
|
+
gitosis_admin :name => 'gitosis-admin'
|
172
|
+
end
|
173
|
+
|
174
|
+
# production database configuration
|
175
|
+
db_config :writable => :committers, :readable => :deployers
|
176
|
+
end
|
177
|
+
end
|
178
|
+
end
|
179
|
+
end
|
@@ -0,0 +1,138 @@
|
|
1
|
+
[gitosis]
|
2
|
+
|
3
|
+
[group blog_app.writable]
|
4
|
+
members = dev_cto.key dev_lead_dev.key
|
5
|
+
writable = blog_app
|
6
|
+
|
7
|
+
[group blog_app.readonly]
|
8
|
+
members = dev_four.key dev_three.key dev_cto.key dev_lead_dev.key dev_two.key dev_one.key app1.deploy app2.deploy app3.deploy
|
9
|
+
readonly = blog_app
|
10
|
+
|
11
|
+
[group fork.blog_app.dev_four.writable]
|
12
|
+
members = dev_four.key
|
13
|
+
writable = dev_fours_fork_of_blog_app
|
14
|
+
|
15
|
+
[group fork.blog_app.dev_four.readonly]
|
16
|
+
members = dev_four.key dev_three.key dev_cto.key dev_lead_dev.key dev_two.key dev_one.key app1.deploy app2.deploy app3.deploy
|
17
|
+
readonly = dev_fours_fork_of_blog_app
|
18
|
+
|
19
|
+
[group fork.blog_app.dev_three.writable]
|
20
|
+
members = dev_three.key
|
21
|
+
writable = dev_threes_fork_of_blog_app
|
22
|
+
|
23
|
+
[group fork.blog_app.dev_three.readonly]
|
24
|
+
members = dev_four.key dev_three.key dev_cto.key dev_lead_dev.key dev_two.key dev_one.key app1.deploy app2.deploy app3.deploy
|
25
|
+
readonly = dev_threes_fork_of_blog_app
|
26
|
+
|
27
|
+
[group fork.blog_app.dev_lead_dev.writable]
|
28
|
+
members = dev_lead_dev.key
|
29
|
+
writable = dev_lead_devs_fork_of_blog_app
|
30
|
+
|
31
|
+
[group fork.blog_app.dev_lead_dev.readonly]
|
32
|
+
members = dev_four.key dev_three.key dev_cto.key dev_lead_dev.key dev_two.key dev_one.key app1.deploy app2.deploy app3.deploy
|
33
|
+
readonly = dev_lead_devs_fork_of_blog_app
|
34
|
+
|
35
|
+
[group www_app.writable]
|
36
|
+
members = dev_cto.key dev_lead_dev.key
|
37
|
+
writable = www_app
|
38
|
+
|
39
|
+
[group www_app.readonly]
|
40
|
+
members = dev_four.key dev_three.key dev_cto.key dev_lead_dev.key dev_two.key dev_one.key app1.deploy app2.deploy app3.deploy
|
41
|
+
readonly = www_app
|
42
|
+
|
43
|
+
[group fork.www_app.dev_four.writable]
|
44
|
+
members = dev_four.key
|
45
|
+
writable = dev_fours_fork_of_www_app
|
46
|
+
|
47
|
+
[group fork.www_app.dev_four.readonly]
|
48
|
+
members = dev_four.key dev_three.key dev_cto.key dev_lead_dev.key dev_two.key dev_one.key app1.deploy app2.deploy app3.deploy
|
49
|
+
readonly = dev_fours_fork_of_www_app
|
50
|
+
|
51
|
+
[group fork.www_app.dev_two.writable]
|
52
|
+
members = dev_two.key
|
53
|
+
writable = dev_twos_fork_of_www_app
|
54
|
+
|
55
|
+
[group fork.www_app.dev_two.readonly]
|
56
|
+
members = dev_four.key dev_three.key dev_cto.key dev_lead_dev.key dev_two.key dev_one.key app1.deploy app2.deploy app3.deploy
|
57
|
+
readonly = dev_twos_fork_of_www_app
|
58
|
+
|
59
|
+
[group fork.www_app.dev_lead_dev.writable]
|
60
|
+
members = dev_lead_dev.key
|
61
|
+
writable = dev_lead_devs_fork_of_www_app
|
62
|
+
|
63
|
+
[group fork.www_app.dev_lead_dev.readonly]
|
64
|
+
members = dev_four.key dev_three.key dev_cto.key dev_lead_dev.key dev_two.key dev_one.key app1.deploy app2.deploy app3.deploy
|
65
|
+
readonly = dev_lead_devs_fork_of_www_app
|
66
|
+
|
67
|
+
[group api_app.writable]
|
68
|
+
members = dev_cto.key dev_lead_dev.key
|
69
|
+
writable = api_app
|
70
|
+
|
71
|
+
[group api_app.readonly]
|
72
|
+
members = dev_four.key dev_three.key dev_cto.key dev_lead_dev.key dev_two.key dev_one.key app1.deploy app2.deploy app3.deploy
|
73
|
+
readonly = api_app
|
74
|
+
|
75
|
+
[group fork.api_app.dev_one.writable]
|
76
|
+
members = dev_one.key
|
77
|
+
writable = dev_ones_fork_of_api_app
|
78
|
+
|
79
|
+
[group fork.api_app.dev_one.readonly]
|
80
|
+
members = dev_four.key dev_three.key dev_cto.key dev_lead_dev.key dev_two.key dev_one.key app1.deploy app2.deploy app3.deploy
|
81
|
+
readonly = dev_ones_fork_of_api_app
|
82
|
+
|
83
|
+
[group fork.api_app.dev_three.writable]
|
84
|
+
members = dev_three.key
|
85
|
+
writable = dev_threes_fork_of_api_app
|
86
|
+
|
87
|
+
[group fork.api_app.dev_three.readonly]
|
88
|
+
members = dev_four.key dev_three.key dev_cto.key dev_lead_dev.key dev_two.key dev_one.key app1.deploy app2.deploy app3.deploy
|
89
|
+
readonly = dev_threes_fork_of_api_app
|
90
|
+
|
91
|
+
[group fork.api_app.dev_two.writable]
|
92
|
+
members = dev_two.key
|
93
|
+
writable = dev_twos_fork_of_api_app
|
94
|
+
|
95
|
+
[group fork.api_app.dev_two.readonly]
|
96
|
+
members = dev_four.key dev_three.key dev_cto.key dev_lead_dev.key dev_two.key dev_one.key app1.deploy app2.deploy app3.deploy
|
97
|
+
readonly = dev_twos_fork_of_api_app
|
98
|
+
|
99
|
+
[group fork.api_app.dev_lead_dev.writable]
|
100
|
+
members = dev_lead_dev.key
|
101
|
+
writable = dev_lead_devs_fork_of_api_app
|
102
|
+
|
103
|
+
[group fork.api_app.dev_lead_dev.readonly]
|
104
|
+
members = dev_four.key dev_three.key dev_cto.key dev_lead_dev.key dev_two.key dev_one.key app1.deploy app2.deploy app3.deploy
|
105
|
+
readonly = dev_lead_devs_fork_of_api_app
|
106
|
+
|
107
|
+
[group common_gem.writable]
|
108
|
+
members = dev_cto.key dev_lead_dev.key dev_four.key dev_three.key dev_cto.key dev_lead_dev.key dev_two.key dev_one.key
|
109
|
+
writable = common_gem
|
110
|
+
|
111
|
+
[group common_gem.readonly]
|
112
|
+
members = dev_four.key dev_three.key dev_cto.key dev_lead_dev.key dev_two.key dev_one.key app1.deploy app2.deploy app3.deploy
|
113
|
+
readonly = common_gem
|
114
|
+
|
115
|
+
[group chef.writable]
|
116
|
+
members = unix.admin dev_cto.key dev_lead_dev.key
|
117
|
+
writable = chef
|
118
|
+
|
119
|
+
[group chef.readonly]
|
120
|
+
members = dev_four.key dev_three.key dev_cto.key dev_lead_dev.key dev_two.key dev_one.key
|
121
|
+
readonly = chef
|
122
|
+
|
123
|
+
[group gitosis-admin.writable]
|
124
|
+
members = unix.admin dev_cto.key dev_lead_dev.key
|
125
|
+
writable = gitosis-admin
|
126
|
+
|
127
|
+
[group gitosis-admin.readonly]
|
128
|
+
members = dev_four.key dev_three.key dev_cto.key dev_lead_dev.key dev_two.key dev_one.key
|
129
|
+
readonly = gitosis-admin
|
130
|
+
|
131
|
+
[group db_config.writable]
|
132
|
+
members = dev_cto.key dev_lead_dev.key
|
133
|
+
writable = db_config
|
134
|
+
|
135
|
+
[group db_config.readonly]
|
136
|
+
members = app1.deploy app2.deploy app3.deploy
|
137
|
+
readonly = db_config
|
138
|
+
|
@@ -0,0 +1,18 @@
|
|
1
|
+
[gitosis]
|
2
|
+
|
3
|
+
[group test_one.writable]
|
4
|
+
members = dev.one
|
5
|
+
writable = test_one
|
6
|
+
|
7
|
+
[group test_one.readonly]
|
8
|
+
members = dev.two
|
9
|
+
readonly = test_one
|
10
|
+
|
11
|
+
[group fork.test_one.dev2.writable]
|
12
|
+
members = dev.two
|
13
|
+
writable = test_one_been_forked_by_dev2
|
14
|
+
|
15
|
+
[group fork.test_one.dev2.readonly]
|
16
|
+
members = dev.two
|
17
|
+
readonly = test_one_been_forked_by_dev2
|
18
|
+
|
@@ -0,0 +1,122 @@
|
|
1
|
+
[gitosis]
|
2
|
+
|
3
|
+
[group rails_app_one.writable]
|
4
|
+
members = dev.one dev.two
|
5
|
+
writable = rails_app_one
|
6
|
+
|
7
|
+
[group rails_app_one.readonly]
|
8
|
+
members = dev.one dev.two dev.three dev.four app1.deploy app2.deploy
|
9
|
+
readonly = rails_app_one
|
10
|
+
|
11
|
+
[group fork.rails_app_one.developer1.writable]
|
12
|
+
members = dev.one
|
13
|
+
writable = developer1_rails_app_one
|
14
|
+
|
15
|
+
[group fork.rails_app_one.developer1.readonly]
|
16
|
+
members = dev.one dev.two dev.three dev.four app1.deploy app2.deploy
|
17
|
+
readonly = developer1_rails_app_one
|
18
|
+
|
19
|
+
[group fork.rails_app_one.developer2.writable]
|
20
|
+
members = dev.two
|
21
|
+
writable = developer2_rails_app_one
|
22
|
+
|
23
|
+
[group fork.rails_app_one.developer2.readonly]
|
24
|
+
members = dev.one dev.two dev.three dev.four app1.deploy app2.deploy
|
25
|
+
readonly = developer2_rails_app_one
|
26
|
+
|
27
|
+
[group fork.rails_app_one.developer3.writable]
|
28
|
+
members = dev.three
|
29
|
+
writable = developer3_rails_app_one
|
30
|
+
|
31
|
+
[group fork.rails_app_one.developer3.readonly]
|
32
|
+
members = dev.one dev.two dev.three dev.four app1.deploy app2.deploy
|
33
|
+
readonly = developer3_rails_app_one
|
34
|
+
|
35
|
+
[group fork.rails_app_one.developer4.writable]
|
36
|
+
members = dev.four
|
37
|
+
writable = developer4_rails_app_one
|
38
|
+
|
39
|
+
[group fork.rails_app_one.developer4.readonly]
|
40
|
+
members = dev.one dev.two dev.three dev.four app1.deploy app2.deploy
|
41
|
+
readonly = developer4_rails_app_one
|
42
|
+
|
43
|
+
[group rails_app_two.writable]
|
44
|
+
members = dev.one dev.two
|
45
|
+
writable = rails_app_two
|
46
|
+
|
47
|
+
[group rails_app_two.readonly]
|
48
|
+
members = dev.one dev.two dev.three dev.four app1.deploy app2.deploy
|
49
|
+
readonly = rails_app_two
|
50
|
+
|
51
|
+
[group fork.rails_app_two.developer1.writable]
|
52
|
+
members = dev.one
|
53
|
+
writable = developer1_rails_app_two
|
54
|
+
|
55
|
+
[group fork.rails_app_two.developer1.readonly]
|
56
|
+
members = dev.one dev.two dev.three dev.four app1.deploy app2.deploy
|
57
|
+
readonly = developer1_rails_app_two
|
58
|
+
|
59
|
+
[group fork.rails_app_two.developer2.writable]
|
60
|
+
members = dev.two
|
61
|
+
writable = developer2_rails_app_two
|
62
|
+
|
63
|
+
[group fork.rails_app_two.developer2.readonly]
|
64
|
+
members = dev.one dev.two dev.three dev.four app1.deploy app2.deploy
|
65
|
+
readonly = developer2_rails_app_two
|
66
|
+
|
67
|
+
[group fork.rails_app_two.developer3.writable]
|
68
|
+
members = dev.three
|
69
|
+
writable = developer3_rails_app_two
|
70
|
+
|
71
|
+
[group fork.rails_app_two.developer3.readonly]
|
72
|
+
members = dev.one dev.two dev.three dev.four app1.deploy app2.deploy
|
73
|
+
readonly = developer3_rails_app_two
|
74
|
+
|
75
|
+
[group fork.rails_app_two.developer4.writable]
|
76
|
+
members = dev.four
|
77
|
+
writable = developer4_rails_app_two
|
78
|
+
|
79
|
+
[group fork.rails_app_two.developer4.readonly]
|
80
|
+
members = dev.one dev.two dev.three dev.four app1.deploy app2.deploy
|
81
|
+
readonly = developer4_rails_app_two
|
82
|
+
|
83
|
+
[group rails_app_three.writable]
|
84
|
+
members = dev.one dev.two
|
85
|
+
writable = rails_app_three
|
86
|
+
|
87
|
+
[group rails_app_three.readonly]
|
88
|
+
members = dev.one dev.two dev.three dev.four app1.deploy app2.deploy
|
89
|
+
readonly = rails_app_three
|
90
|
+
|
91
|
+
[group fork.rails_app_three.developer1.writable]
|
92
|
+
members = dev.one
|
93
|
+
writable = developer1_rails_app_three
|
94
|
+
|
95
|
+
[group fork.rails_app_three.developer1.readonly]
|
96
|
+
members = dev.one dev.two dev.three dev.four app1.deploy app2.deploy
|
97
|
+
readonly = developer1_rails_app_three
|
98
|
+
|
99
|
+
[group fork.rails_app_three.developer2.writable]
|
100
|
+
members = dev.two
|
101
|
+
writable = developer2_rails_app_three
|
102
|
+
|
103
|
+
[group fork.rails_app_three.developer2.readonly]
|
104
|
+
members = dev.one dev.two dev.three dev.four app1.deploy app2.deploy
|
105
|
+
readonly = developer2_rails_app_three
|
106
|
+
|
107
|
+
[group fork.rails_app_three.developer3.writable]
|
108
|
+
members = dev.three
|
109
|
+
writable = developer3_rails_app_three
|
110
|
+
|
111
|
+
[group fork.rails_app_three.developer3.readonly]
|
112
|
+
members = dev.one dev.two dev.three dev.four app1.deploy app2.deploy
|
113
|
+
readonly = developer3_rails_app_three
|
114
|
+
|
115
|
+
[group fork.rails_app_three.developer4.writable]
|
116
|
+
members = dev.four
|
117
|
+
writable = developer4_rails_app_three
|
118
|
+
|
119
|
+
[group fork.rails_app_three.developer4.readonly]
|
120
|
+
members = dev.one dev.two dev.three dev.four app1.deploy app2.deploy
|
121
|
+
readonly = developer4_rails_app_three
|
122
|
+
|