brownbeagle-gitauth 0.0.3 → 0.0.3.3
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.rdoc +16 -3
- data/USAGE +27 -0
- data/bin/gitauth +14 -0
- data/lib/gitauth/repo.rb +13 -2
- data/lib/gitauth/user.rb +1 -1
- data/lib/gitauth/web_app.rb +6 -2
- data/public/gitauth.css +26 -1
- data/views/index.erb +4 -0
- metadata +4 -1
data/README.rdoc
CHANGED
@@ -7,13 +7,13 @@ At the moment configuration / adding users is done via a single command - +gitau
|
|
7
7
|
=== License
|
8
8
|
|
9
9
|
GitAuth is licensed under AGPL, with parts of the code being derived
|
10
|
-
from Gitorius - http://gitorious.org
|
10
|
+
from Gitorius - http://gitorious.org
|
11
11
|
|
12
12
|
=== Installing GitAuth
|
13
13
|
|
14
14
|
Getting started is relatively simple. First of, you'll need to log onto the remote server / your git host. Next, you'll need to install the gem:
|
15
15
|
|
16
|
-
sudo gem install brownbeagle-gitauth --source
|
16
|
+
sudo gem install brownbeagle-gitauth --source http://gems.github.com/
|
17
17
|
|
18
18
|
Once that's done, the +gitauth+ and +gitauth-shell+ commands should be in your path.
|
19
19
|
Next, you'll want to (in most cases anyway) use a specific +git+ user to host repositories.
|
@@ -99,4 +99,17 @@ to use the full form:
|
|
99
99
|
|
100
100
|
git push origin master
|
101
101
|
|
102
|
-
As it starts as an empty repo.
|
102
|
+
As it starts as an empty repo.
|
103
|
+
|
104
|
+
Alternatively, if you get the error "fatal: no matching remote head" when you
|
105
|
+
clone and it doesn't create a local copy, you'll instead have to do the following
|
106
|
+
on your local PC (due to the way git handles remote repositories):
|
107
|
+
|
108
|
+
mkdir my-repo
|
109
|
+
cd my-repo
|
110
|
+
git init
|
111
|
+
touch README
|
112
|
+
git add .
|
113
|
+
git commit -m "Added blank readme"
|
114
|
+
git add remote origin git@your-server:my-repo.git
|
115
|
+
git push origin master
|
data/USAGE
ADDED
@@ -0,0 +1,27 @@
|
|
1
|
+
GitAuth is an SSH and Ruby based authenticated Git server.
|
2
|
+
|
3
|
+
gitauth install ADMIN_PUBLIC_KEY
|
4
|
+
Pass in a valid SSH public key that will be used by the GitAuth administrator
|
5
|
+
|
6
|
+
gitauth permissions REPO USERORGROUP [PERMISSION=all,read,write]
|
7
|
+
REPO: the repository name you wish to set permissions on
|
8
|
+
USER/GROUP: the user or group name you with to give permissions
|
9
|
+
PERMISSION:
|
10
|
+
Default = all
|
11
|
+
The level of permissions you want to give the user or group on the repository in question
|
12
|
+
all = read/write
|
13
|
+
read = the user can see the repository and pull it, but cannot push changes
|
14
|
+
write = user can push changes but can't pull it.
|
15
|
+
|
16
|
+
gitauth addrepo NAME PATH
|
17
|
+
NAME: the name you want your repository to have
|
18
|
+
PATH: the part path you want the repository to have, will be ~REPOBASE~/PATH
|
19
|
+
|
20
|
+
gitauth adduser [--admin] NAME PUBLIC_KEY
|
21
|
+
NAME: the name of your new user
|
22
|
+
PUBLIC_KEY: a valid path to a copy of the users SSH public key file
|
23
|
+
|
24
|
+
--admin: pass this flag if you want your user to be able to administer the gitauth install
|
25
|
+
|
26
|
+
gitauth addgroup NAME
|
27
|
+
NAME: the name of your new group
|
data/bin/gitauth
CHANGED
@@ -26,6 +26,10 @@ require File.join(File.dirname(__FILE__), "..", "lib", "gitauth")
|
|
26
26
|
|
27
27
|
class GitAuthRunner < Thor
|
28
28
|
|
29
|
+
map "-h" => :help
|
30
|
+
map "--help" => :help
|
31
|
+
map "--usage" => :usage
|
32
|
+
|
29
33
|
# Adding users, groups and repos
|
30
34
|
|
31
35
|
desc "addrepo REPO-NAME [PATH-PART]", "Adds a new repository"
|
@@ -219,6 +223,16 @@ class GitAuthRunner < Thor
|
|
219
223
|
exit! 1
|
220
224
|
end
|
221
225
|
|
226
|
+
def usage
|
227
|
+
counter = 1
|
228
|
+
file = File.new("USAGE", "r")
|
229
|
+
while (line = file.gets)
|
230
|
+
puts line
|
231
|
+
counter = counter + 1
|
232
|
+
end
|
233
|
+
file.close
|
234
|
+
end
|
235
|
+
|
222
236
|
protected
|
223
237
|
|
224
238
|
def read_password
|
data/lib/gitauth/repo.rb
CHANGED
@@ -32,7 +32,7 @@ module GitAuth
|
|
32
32
|
repository = self.new(name, path)
|
33
33
|
return false unless repository.create_repo!
|
34
34
|
self.add_item(repository)
|
35
|
-
return
|
35
|
+
return repository
|
36
36
|
end
|
37
37
|
|
38
38
|
attr_accessor :name, :path, :permissions
|
@@ -89,7 +89,7 @@ module GitAuth
|
|
89
89
|
FileUtils.mkdir_p(path)
|
90
90
|
output = ""
|
91
91
|
Dir.chdir(path) do
|
92
|
-
IO.popen("git
|
92
|
+
IO.popen("git --bare init") { |f| output << f.read }
|
93
93
|
end
|
94
94
|
return !!(output =~ /Initialized empty Git repository/)
|
95
95
|
end
|
@@ -101,5 +101,16 @@ module GitAuth
|
|
101
101
|
self.class.save!
|
102
102
|
end
|
103
103
|
|
104
|
+
def execute_post_create_hook!
|
105
|
+
script = File.expand_path("~/.gitauth/post-create")
|
106
|
+
if File.exist?(script) && File.executable?(script)
|
107
|
+
system(script, @name, @path)
|
108
|
+
return $?.success?
|
109
|
+
else
|
110
|
+
# If there isn't a file, run it ourselves.
|
111
|
+
return true
|
112
|
+
end
|
113
|
+
end
|
114
|
+
|
104
115
|
end
|
105
116
|
end
|
data/lib/gitauth/user.rb
CHANGED
data/lib/gitauth/web_app.rb
CHANGED
@@ -117,8 +117,12 @@ module GitAuth
|
|
117
117
|
name = params[:repo][:name]
|
118
118
|
path = params[:repo][:path]
|
119
119
|
path = name if path.to_s.strip.empty?
|
120
|
-
if GitAuth::Repo.create(name, path)
|
121
|
-
|
120
|
+
if repo = GitAuth::Repo.create(name, path)
|
121
|
+
if repo.execute_post_create_hook!
|
122
|
+
redirect "/repo_name=#{URI.encode(name)}"
|
123
|
+
else
|
124
|
+
redirect root_with_message("Repository added but the post-create hook exited unsuccessfully.")
|
125
|
+
end
|
122
126
|
else
|
123
127
|
redirect root_with_message("There was an error adding the repository.")
|
124
128
|
end
|
data/public/gitauth.css
CHANGED
@@ -217,7 +217,7 @@ div.message {
|
|
217
217
|
background: #17768A;
|
218
218
|
}
|
219
219
|
|
220
|
-
.section ul li a {
|
220
|
+
.section ul li a, #repository-details a {
|
221
221
|
text-decoration: none;
|
222
222
|
color: #395F99;
|
223
223
|
}
|
@@ -261,4 +261,29 @@ br.clear { clear: both; }
|
|
261
261
|
.view ul li a {
|
262
262
|
text-decoration: none;
|
263
263
|
color: #416999;
|
264
|
+
}
|
265
|
+
|
266
|
+
#repository-details {
|
267
|
+
line-height: 1.8em;
|
268
|
+
padding: 0.5em 1em;
|
269
|
+
margin-bottom: 2em;
|
270
|
+
}
|
271
|
+
|
272
|
+
#repository-details h3 {
|
273
|
+
font-weight: bold;
|
274
|
+
font-size: 1.1em;
|
275
|
+
text-align: center;
|
276
|
+
margin-bottom: 0.75em;
|
277
|
+
color: #C55E25;
|
278
|
+
}
|
279
|
+
|
280
|
+
|
281
|
+
#repository-details code {
|
282
|
+
display: block;
|
283
|
+
white-space: pre;
|
284
|
+
padding: 0.5em;
|
285
|
+
font-family: Consolas, Lucida Console, Monaco, monospace;
|
286
|
+
background: #F4F4F4;
|
287
|
+
margin: 0.25em 0;
|
288
|
+
|
264
289
|
}
|
data/views/index.erb
CHANGED
@@ -1,3 +1,7 @@
|
|
1
|
+
<% if params[:repo_name] %>
|
2
|
+
<%= erb :clone_repo, :layout => false %>
|
3
|
+
<% end %>
|
4
|
+
|
1
5
|
<div class="section">
|
2
6
|
<h2>Repositories <a href="#" onclick="showForm('repo'); return false;" title="Add a new repository" id="add-repo-link">[+]</a></h2>
|
3
7
|
<form id="add-repo" action="/repos" method="post" class="hidden">
|
metadata
CHANGED
@@ -1,11 +1,12 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: brownbeagle-gitauth
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.3
|
4
|
+
version: 0.0.3.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Darcy Laycock
|
8
8
|
- Alex Pooley
|
9
|
+
- Matt Didcoe
|
9
10
|
autorequire:
|
10
11
|
bindir: bin
|
11
12
|
cert_chain: []
|
@@ -43,6 +44,7 @@ extensions: []
|
|
43
44
|
extra_rdoc_files:
|
44
45
|
- README.rdoc
|
45
46
|
- LICENSE
|
47
|
+
- USAGE
|
46
48
|
files:
|
47
49
|
- bin/gitauth
|
48
50
|
- bin/gitauth-shell
|
@@ -59,6 +61,7 @@ files:
|
|
59
61
|
- public/gitauth.js
|
60
62
|
- public/jquery.js
|
61
63
|
- README.rdoc
|
64
|
+
- USAGE
|
62
65
|
- views/group.erb
|
63
66
|
- views/index.erb
|
64
67
|
- views/layout.erb
|