git-lighttp 0.3.0 → 0.3.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/LICENSE.txt +21 -0
- data/README.md +90 -0
- data/README.pt-BR.md +96 -0
- data/doc/releases/{v0.1.0.rdoc → v0.1.0.md} +4 -4
- data/doc/releases/{v0.2.0.rdoc → v0.2.0.md} +3 -5
- data/doc/releases/{v0.3.0.rdoc → v0.3.0.md} +3 -3
- data/doc/releases/v0.3.1.md +12 -0
- data/git-lighttp.gemspec +34 -21
- data/lib/git/lighttp.rb +100 -97
- data/lib/git/lighttp/extensions.rb +26 -30
- data/lib/git/lighttp/http_backend.rb +20 -20
- data/lib/git/lighttp/treeish.rb +2 -2
- data/lib/git/lighttp/version.rb +3 -3
- metadata +79 -71
- data/Gemfile +0 -11
- data/Makefile +0 -41
- data/README.pt-BR.rdoc +0 -81
- data/README.rdoc +0 -75
- data/Rakefile +0 -50
- data/test/all.rb +0 -12
- data/test/config_test.rb +0 -43
- data/test/fixtures/config.yml +0 -13
- data/test/fixtures/htgroup +0 -3
- data/test/fixtures/htpasswd +0 -4
- data/test/fixtures/mycode.git/HEAD +0 -1
- data/test/fixtures/mycode.git/config +0 -4
- data/test/fixtures/mycode.git/description +0 -1
- data/test/fixtures/mycode.git/hooks/applypatch-msg.sample +0 -15
- data/test/fixtures/mycode.git/hooks/commit-msg.sample +0 -24
- data/test/fixtures/mycode.git/hooks/post-commit.sample +0 -8
- data/test/fixtures/mycode.git/hooks/post-receive.sample +0 -15
- data/test/fixtures/mycode.git/hooks/post-update.sample +0 -8
- data/test/fixtures/mycode.git/hooks/pre-applypatch.sample +0 -14
- data/test/fixtures/mycode.git/hooks/pre-commit.sample +0 -46
- data/test/fixtures/mycode.git/hooks/pre-rebase.sample +0 -169
- data/test/fixtures/mycode.git/hooks/prepare-commit-msg.sample +0 -36
- data/test/fixtures/mycode.git/hooks/update.sample +0 -128
- data/test/fixtures/mycode.git/info/exclude +0 -6
- data/test/fixtures/mycode.git/info/refs +0 -3
- data/test/fixtures/mycode.git/objects/02/83eb96425444e17b97182e1ba9f216cc67c132 +0 -0
- data/test/fixtures/mycode.git/objects/03/9927042df267a1bc606fc4485b7a79b6a9e3cd +0 -1
- data/test/fixtures/mycode.git/objects/0d/eed0a56fa8f5f2a788d58b3ea235afd547b828 +0 -2
- data/test/fixtures/mycode.git/objects/4b/825dc642cb6eb9a060e54bf8d69288fbee4904 +0 -0
- data/test/fixtures/mycode.git/objects/5e/54a0767e0c380f3baab17938d68c7f464cf171 +0 -1
- data/test/fixtures/mycode.git/objects/63/9b96262e7e19ca2169575e797b234098b8a72e +0 -0
- data/test/fixtures/mycode.git/objects/71/6e9568eed27d5ee4378b3ecf6dd095a547bde9 +0 -1
- data/test/fixtures/mycode.git/objects/b6/f3f0fabeaaaaf2db22b8ef98f59115baec7ef9 +0 -0
- data/test/fixtures/mycode.git/objects/be/118435b9d908fd4a689cd8b0cc98059911a31a +0 -0
- data/test/fixtures/mycode.git/objects/db/aefcb5bde664671c73b99515c386dcbc7f22b6 +0 -0
- data/test/fixtures/mycode.git/objects/eb/669b878d2013ac70aa5dee75e6357ea81d16ea +0 -0
- data/test/fixtures/mycode.git/objects/ed/10cfcf72862e140c97fe899cba2a55f4cb4c20 +0 -0
- data/test/fixtures/mycode.git/objects/ed/1c3a255ab3fce056dc31cd82df9f61a4d9fa22 +0 -0
- data/test/fixtures/mycode.git/objects/info/alternates +0 -0
- data/test/fixtures/mycode.git/objects/info/http-alternates +0 -0
- data/test/fixtures/mycode.git/objects/info/packs +0 -2
- data/test/fixtures/mycode.git/objects/pack/pack-40a8636b62258fffd78ec1e8d254116e72d385a9.idx +0 -0
- data/test/fixtures/mycode.git/objects/pack/pack-40a8636b62258fffd78ec1e8d254116e72d385a9.pack +0 -0
- data/test/fixtures/mycode.git/packed-refs +0 -4
- data/test/fixtures/mycode.git/refs/heads/master +0 -1
- data/test/fixtures/mycode.git/refs/tags/v0.1.0 +0 -1
- data/test/helpers.rb +0 -53
- data/test/htgroup_test.rb +0 -29
- data/test/htpasswd_test.rb +0 -63
- data/test/http_backend_authentication_test.rb +0 -61
- data/test/http_backend_test.rb +0 -123
- data/test/project_handler_test.rb +0 -45
- data/test/treeish_test.rb +0 -33
data/README.pt-BR.rdoc
DELETED
@@ -1,81 +0,0 @@
|
|
1
|
-
= Git-Lighttp - Web mais esperta para o Git
|
2
|
-
|
3
|
-
{<img src="https://badge.fury.io/rb/git-lighttp.svg" alt="Gem Version" />}[https://badge.fury.io/rb/git-lighttp]
|
4
|
-
|
5
|
-
== DESCRIÇÃO
|
6
|
-
|
7
|
-
Este projeto foi inspirado no {Grack}[http://github.com/schacon/grack], um
|
8
|
-
servidor de processos Smart-HTTP (escrito por
|
9
|
-
{Scott Chacon}[http://github.com/schacon]), mas projetado usando
|
10
|
-
{Sinatra}[http://www.sinatrarb.com] e visa substituir o `git-http-backend`
|
11
|
-
original incluindo novas funcionalidades.
|
12
|
-
|
13
|
-
O objetivo principal do <b>Git-Lighttp</b> é implementar as seguintes
|
14
|
-
funcionalidades:
|
15
|
-
|
16
|
-
- Smart-HTTP, baseado no _git-http-backend_.
|
17
|
-
- Autenticação flexível baseado em banco de dados ou arquivo de configuração
|
18
|
-
como <tt>.htpasswd</tt>.
|
19
|
-
- API para obter informações sobre o repositório (_Treeish_).
|
20
|
-
|
21
|
-
== SINOPSE
|
22
|
-
|
23
|
-
Instale o Git-Lighttp usando {Rubygems}[http://rubygems.org/gems/git-lighttp].
|
24
|
-
|
25
|
-
gem install git-lighttp
|
26
|
-
|
27
|
-
Ou faça um _checkout_ do projeto hospedado no
|
28
|
-
{Github}[http://github.com/hallison/git-lighttp].
|
29
|
-
|
30
|
-
git clone https://github.com/hallison/git-lighttp.git
|
31
|
-
...
|
32
|
-
cd git-lighttp
|
33
|
-
rake install
|
34
|
-
|
35
|
-
Configure o arquivo Rackup (<tt>config.ru</tt>) usando as seguintes instruções:
|
36
|
-
|
37
|
-
# config.ru
|
38
|
-
require "git/lighttp"
|
39
|
-
|
40
|
-
Git::Lighttp::HttpBackend.configure do |server|
|
41
|
-
server.project_root = "/home/git/repositories"
|
42
|
-
server.git_path = "/usr/bin/git"
|
43
|
-
server.get_any_file = true
|
44
|
-
server.upload_pack = true
|
45
|
-
server.receive_pack = false
|
46
|
-
server.authenticate = true
|
47
|
-
end
|
48
|
-
|
49
|
-
$ rackup --port 2011 --daemonize
|
50
|
-
$ git clone http://localhost:2011/mycode.git
|
51
|
-
|
52
|
-
Você poderá usar o arquivo <tt>.netrc</tt> para melhorar sua conexão. Coloque
|
53
|
-
isso:
|
54
|
-
|
55
|
-
machine <servidor> login <usuario> password <senha>
|
56
|
-
|
57
|
-
O Git-Lighttp está em desenvolvimento, então ainda há muitas melhorias a serem
|
58
|
-
feitas. Por favor, nos ajude a melhorar o projeto enviando seu comentário nos
|
59
|
-
{problemas}[http://github.com/hallison/git-lighttp/issues] encontrados ou
|
60
|
-
enviando um email para
|
61
|
-
{hallisonbatista@gmail.com}[mailto:hallisonbatista@gmail.com].
|
62
|
-
|
63
|
-
Discuta no {Google Groups}[http://groups.google.com/group/git-lighttp].
|
64
|
-
|
65
|
-
== AUTORES
|
66
|
-
|
67
|
-
Escrito por Hallison Batista <hallisonbatista@gmail.com>.
|
68
|
-
|
69
|
-
== ERROS
|
70
|
-
|
71
|
-
Se você encontrar um erro, por favor, informe no
|
72
|
-
{gerenciador de erros}[http://github.com/hallison/git-lighttp] do projeto
|
73
|
-
Git-Lighttp no Github.
|
74
|
-
|
75
|
-
== LICENÇA
|
76
|
-
|
77
|
-
Git-Lighttp é Copyright (c) 2011-2015 Hallison Batista.
|
78
|
-
|
79
|
-
Este é um _software_ livre e pode ser redistribuído sob os termos
|
80
|
-
especificados em LICENSE.txt.
|
81
|
-
|
data/README.rdoc
DELETED
@@ -1,75 +0,0 @@
|
|
1
|
-
= Git-Lighttp - Web smarty for Git
|
2
|
-
|
3
|
-
{<img src="https://badge.fury.io/rb/git-lighttp.svg" alt="Gem Version" />}[https://badge.fury.io/rb/git-lighttp]
|
4
|
-
|
5
|
-
== DESCRIPTION
|
6
|
-
|
7
|
-
This project was inspired in the {Grack}[http://github.com/schacon/grack]
|
8
|
-
Smart-HTTP server handler (written by
|
9
|
-
{Scott Chacon}[http://github.com/schacon]) but developed using
|
10
|
-
{Sinatra}[http://www.sinatrarb.com] and aims replace the original
|
11
|
-
`git-http-backend` including new features.
|
12
|
-
|
13
|
-
The main goal of the <b>Git-Lighttp</b> is implement the following useful features.
|
14
|
-
|
15
|
-
- Smart-HTTP, based on _git-http-backend_.
|
16
|
-
- Authentication flexible based on database or configuration file like .+htpasswd+.
|
17
|
-
- API to get information about repository (_Treeish_).
|
18
|
-
|
19
|
-
== SINOPSIS
|
20
|
-
|
21
|
-
Install the Git-Lighttp using {Rubygems}[http://rubygems.org/gems/git-lighttp].
|
22
|
-
|
23
|
-
gem install git-lighttp
|
24
|
-
|
25
|
-
Or checkout the project hosted on {Github}[http://github.com/hallison/git-lighttp].
|
26
|
-
|
27
|
-
git clone https://github.com/hallison/git-lighttp.git
|
28
|
-
...
|
29
|
-
cd git-lighttp
|
30
|
-
rake install
|
31
|
-
|
32
|
-
Configure the Rackup file (<tt>config.ru</tt>) using the following instructions:
|
33
|
-
|
34
|
-
# config.ru
|
35
|
-
require "git/lighttp"
|
36
|
-
|
37
|
-
Git::Lighttp::HttpBackend.configure do |server|
|
38
|
-
server.project_root = "/home/git/repositories"
|
39
|
-
server.git_path = "/usr/bin/git"
|
40
|
-
server.get_any_file = true
|
41
|
-
server.upload_pack = true
|
42
|
-
server.receive_pack = false
|
43
|
-
server.authenticate = true
|
44
|
-
end
|
45
|
-
|
46
|
-
$ rackup --port 2011 --daemonize
|
47
|
-
$ git clone http://localhost:2011/mycode.git
|
48
|
-
|
49
|
-
You can use the <tt>.netrc</tt> for improve your connection. Put this:
|
50
|
-
|
51
|
-
machine <host> login <username> password <password>
|
52
|
-
|
53
|
-
The Git-Lighttp is under development, so there are still many improvements to be
|
54
|
-
made. Please, help us to improve the project sending your feedback to
|
55
|
-
{issues}[http://github.com/hallison/git-lighttp] or sending email to
|
56
|
-
{hallisonbatista@gmail.com}[mailto:hallisonbatista@gmail.com].
|
57
|
-
|
58
|
-
Discuss in {Google Groups}[http://groups.google.com/group/git-lighttp].
|
59
|
-
|
60
|
-
== AUTHORS
|
61
|
-
|
62
|
-
Written by Hallison Batista <hallisonbatista@gmail.com>.
|
63
|
-
|
64
|
-
== BUGS
|
65
|
-
|
66
|
-
If you find a bug, please report it at the Git-Lighttp project's
|
67
|
-
{issues tracker}[http://github.com/hallison/git-lighttp] on Github.
|
68
|
-
|
69
|
-
== LICENSE
|
70
|
-
|
71
|
-
Git-Lighttp is Copyright (c) 2011-2015 Hallison Batista.
|
72
|
-
|
73
|
-
This is free software, and may be redistributed under the terms specified in
|
74
|
-
LICENSE.txt.
|
75
|
-
|
data/Rakefile
DELETED
@@ -1,50 +0,0 @@
|
|
1
|
-
require "git/lighttp"
|
2
|
-
|
3
|
-
def spec
|
4
|
-
@spec ||= Gem::Specification.load("git-lighttp.gemspec")
|
5
|
-
end
|
6
|
-
|
7
|
-
desc "Run tests"
|
8
|
-
task :test, [:file] do |spec, args|
|
9
|
-
Dir["test/#{args.file}*_test.rb"].each do |file|
|
10
|
-
sh "ruby #{file}"
|
11
|
-
end
|
12
|
-
end
|
13
|
-
|
14
|
-
desc "API Documentation (RDoc)"
|
15
|
-
task :doc do
|
16
|
-
sh "rdoc -o doc/api -H -f hanna -m README.rdoc"
|
17
|
-
end
|
18
|
-
|
19
|
-
desc "Build tags"
|
20
|
-
task :tags do
|
21
|
-
rbalias = '/.*alias(_method)?[[:space:]]+:([[:alnum:]_=!?]+),?[[:space:]]+:([[:alnum:]_=!]+)/\\2/f/'
|
22
|
-
sh "ctags", "--recurse=yes",
|
23
|
-
"--tag-relative=yes",
|
24
|
-
"--totals=yes",
|
25
|
-
"--extra=+f",
|
26
|
-
"--fields=+iaS",
|
27
|
-
"--regex-ruby="+rbalias
|
28
|
-
end
|
29
|
-
|
30
|
-
desc "Build #{spec.file_name}"
|
31
|
-
task :build => "#{spec.name}.gemspec" do
|
32
|
-
sh "gem build #{spec.name}.gemspec"
|
33
|
-
end
|
34
|
-
|
35
|
-
desc "Release #{spec.file_name}"
|
36
|
-
task :release => :build do
|
37
|
-
sh "gem push #{spec.file_name}"
|
38
|
-
end
|
39
|
-
|
40
|
-
desc "Install gem file #{spec.file_name}"
|
41
|
-
task :install => :build do
|
42
|
-
sh "gem install -l #{spec.file_name}"
|
43
|
-
end
|
44
|
-
|
45
|
-
desc "Uninstall gem #{spec.name} v#{spec.version}"
|
46
|
-
task :uninstall do
|
47
|
-
sh "gem uninstall #{spec.name} -v #{spec.version}"
|
48
|
-
end
|
49
|
-
|
50
|
-
task :default => :test
|
data/test/all.rb
DELETED
data/test/config_test.rb
DELETED
@@ -1,43 +0,0 @@
|
|
1
|
-
describe 'Configuration' do
|
2
|
-
before do
|
3
|
-
@config = {
|
4
|
-
:default => {
|
5
|
-
:project_root => '/var/git/repos',
|
6
|
-
:git_path => '/usr/local/bin/git'
|
7
|
-
},
|
8
|
-
:treeish => {
|
9
|
-
:authenticate => true
|
10
|
-
},
|
11
|
-
:http_backend => {
|
12
|
-
:authenticate => true,
|
13
|
-
:get_any_file => true,
|
14
|
-
:upload_pack => true,
|
15
|
-
:receive_pack => false,
|
16
|
-
}
|
17
|
-
}
|
18
|
-
end
|
19
|
-
|
20
|
-
it 'configure by application' do
|
21
|
-
Git::Lighttp.configure do |app|
|
22
|
-
app.default.project_root = '/var/git/repos'
|
23
|
-
app.default.git_path = '/usr/local/bin/git'
|
24
|
-
app.treeish.authenticate = true
|
25
|
-
end
|
26
|
-
|
27
|
-
@config.keys.each do |app|
|
28
|
-
@config[app].each do |option, value|
|
29
|
-
assert_equal value, Git::Lighttp.config[app][option]
|
30
|
-
end
|
31
|
-
end
|
32
|
-
end
|
33
|
-
|
34
|
-
it 'load from YAML file' do
|
35
|
-
yaml = YAML.load_file(fixtures('config.yml')).symbolize_keys
|
36
|
-
config = Git::Lighttp.load_config_file(fixtures('config.yml'))
|
37
|
-
yaml.keys.each do |app|
|
38
|
-
yaml[app].each do |option, value|
|
39
|
-
assert_equal value, config[app][option]
|
40
|
-
end
|
41
|
-
end
|
42
|
-
end
|
43
|
-
end
|
data/test/fixtures/config.yml
DELETED
data/test/fixtures/htgroup
DELETED
data/test/fixtures/htpasswd
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
ref: refs/heads/master
|
@@ -1 +0,0 @@
|
|
1
|
-
Unnamed repository; edit this file 'description' to name the repository.
|
@@ -1,15 +0,0 @@
|
|
1
|
-
#!/bin/sh
|
2
|
-
#
|
3
|
-
# An example hook script to check the commit log message taken by
|
4
|
-
# applypatch from an e-mail message.
|
5
|
-
#
|
6
|
-
# The hook should exit with non-zero status after issuing an
|
7
|
-
# appropriate message if it wants to stop the commit. The hook is
|
8
|
-
# allowed to edit the commit message file.
|
9
|
-
#
|
10
|
-
# To enable this hook, rename this file to "applypatch-msg".
|
11
|
-
|
12
|
-
. git-sh-setup
|
13
|
-
test -x "$GIT_DIR/hooks/commit-msg" &&
|
14
|
-
exec "$GIT_DIR/hooks/commit-msg" ${1+"$@"}
|
15
|
-
:
|
@@ -1,24 +0,0 @@
|
|
1
|
-
#!/bin/sh
|
2
|
-
#
|
3
|
-
# An example hook script to check the commit log message.
|
4
|
-
# Called by "git commit" with one argument, the name of the file
|
5
|
-
# that has the commit message. The hook should exit with non-zero
|
6
|
-
# status after issuing an appropriate message if it wants to stop the
|
7
|
-
# commit. The hook is allowed to edit the commit message file.
|
8
|
-
#
|
9
|
-
# To enable this hook, rename this file to "commit-msg".
|
10
|
-
|
11
|
-
# Uncomment the below to add a Signed-off-by line to the message.
|
12
|
-
# Doing this in a hook is a bad idea in general, but the prepare-commit-msg
|
13
|
-
# hook is more suited to it.
|
14
|
-
#
|
15
|
-
# SOB=$(git var GIT_AUTHOR_IDENT | sed -n 's/^\(.*>\).*$/Signed-off-by: \1/p')
|
16
|
-
# grep -qs "^$SOB" "$1" || echo "$SOB" >> "$1"
|
17
|
-
|
18
|
-
# This example catches duplicate Signed-off-by lines.
|
19
|
-
|
20
|
-
test "" = "$(grep '^Signed-off-by: ' "$1" |
|
21
|
-
sort | uniq -c | sed -e '/^[ ]*1[ ]/d')" || {
|
22
|
-
echo >&2 Duplicate Signed-off-by lines.
|
23
|
-
exit 1
|
24
|
-
}
|
@@ -1,15 +0,0 @@
|
|
1
|
-
#!/bin/sh
|
2
|
-
#
|
3
|
-
# An example hook script for the "post-receive" event.
|
4
|
-
#
|
5
|
-
# The "post-receive" script is run after receive-pack has accepted a pack
|
6
|
-
# and the repository has been updated. It is passed arguments in through
|
7
|
-
# stdin in the form
|
8
|
-
# <oldrev> <newrev> <refname>
|
9
|
-
# For example:
|
10
|
-
# aa453216d1b3e49e7f6f98441fa56946ddcd6a20 68f7abf4e6f922807889f52bc043ecd31b79f814 refs/heads/master
|
11
|
-
#
|
12
|
-
# see contrib/hooks/ for a sample, or uncomment the next line and
|
13
|
-
# rename the file to "post-receive".
|
14
|
-
|
15
|
-
#. /usr/share/doc/git-core/contrib/hooks/post-receive-email
|
@@ -1,14 +0,0 @@
|
|
1
|
-
#!/bin/sh
|
2
|
-
#
|
3
|
-
# An example hook script to verify what is about to be committed
|
4
|
-
# by applypatch from an e-mail message.
|
5
|
-
#
|
6
|
-
# The hook should exit with non-zero status after issuing an
|
7
|
-
# appropriate message if it wants to stop the commit.
|
8
|
-
#
|
9
|
-
# To enable this hook, rename this file to "pre-applypatch".
|
10
|
-
|
11
|
-
. git-sh-setup
|
12
|
-
test -x "$GIT_DIR/hooks/pre-commit" &&
|
13
|
-
exec "$GIT_DIR/hooks/pre-commit" ${1+"$@"}
|
14
|
-
:
|
@@ -1,46 +0,0 @@
|
|
1
|
-
#!/bin/sh
|
2
|
-
#
|
3
|
-
# An example hook script to verify what is about to be committed.
|
4
|
-
# Called by "git commit" with no arguments. The hook should
|
5
|
-
# exit with non-zero status after issuing an appropriate message if
|
6
|
-
# it wants to stop the commit.
|
7
|
-
#
|
8
|
-
# To enable this hook, rename this file to "pre-commit".
|
9
|
-
|
10
|
-
if git rev-parse --verify HEAD >/dev/null 2>&1
|
11
|
-
then
|
12
|
-
against=HEAD
|
13
|
-
else
|
14
|
-
# Initial commit: diff against an empty tree object
|
15
|
-
against=4b825dc642cb6eb9a060e54bf8d69288fbee4904
|
16
|
-
fi
|
17
|
-
|
18
|
-
# If you want to allow non-ascii filenames set this variable to true.
|
19
|
-
allownonascii=$(git config hooks.allownonascii)
|
20
|
-
|
21
|
-
# Cross platform projects tend to avoid non-ascii filenames; prevent
|
22
|
-
# them from being added to the repository. We exploit the fact that the
|
23
|
-
# printable range starts at the space character and ends with tilde.
|
24
|
-
if [ "$allownonascii" != "true" ] &&
|
25
|
-
# Note that the use of brackets around a tr range is ok here, (it's
|
26
|
-
# even required, for portability to Solaris 10's /usr/bin/tr), since
|
27
|
-
# the square bracket bytes happen to fall in the designated range.
|
28
|
-
test "$(git diff --cached --name-only --diff-filter=A -z $against |
|
29
|
-
LC_ALL=C tr -d '[ -~]\0')"
|
30
|
-
then
|
31
|
-
echo "Error: Attempt to add a non-ascii file name."
|
32
|
-
echo
|
33
|
-
echo "This can cause problems if you want to work"
|
34
|
-
echo "with people on other platforms."
|
35
|
-
echo
|
36
|
-
echo "To be portable it is advisable to rename the file ..."
|
37
|
-
echo
|
38
|
-
echo "If you know what you are doing you can disable this"
|
39
|
-
echo "check using:"
|
40
|
-
echo
|
41
|
-
echo " git config hooks.allownonascii true"
|
42
|
-
echo
|
43
|
-
exit 1
|
44
|
-
fi
|
45
|
-
|
46
|
-
exec git diff-index --check --cached $against --
|