pax_global_header 0000666 0000000 0000000 00000000064 13202564773 0014523 g ustar 00root root 0000000 0000000 52 comment=164fe068a55a5b2df60f540386dcc75c939b6e79
slapos-164fe068a55a5b2df60f540386dcc75c939b6e79-software-unstable-gitrepo/ 0000775 0000000 0000000 00000000000 13202564773 0025103 5 ustar 00root root 0000000 0000000 slapos-164fe068a55a5b2df60f540386dcc75c939b6e79-software-unstable-gitrepo/software/ 0000775 0000000 0000000 00000000000 13202564773 0026735 5 ustar 00root root 0000000 0000000 slapos-164fe068a55a5b2df60f540386dcc75c939b6e79-software-unstable-gitrepo/software/unstable/ 0000775 0000000 0000000 00000000000 13202564773 0030552 5 ustar 00root root 0000000 0000000 slapos-164fe068a55a5b2df60f540386dcc75c939b6e79-software-unstable-gitrepo/software/unstable/gitrepo/0000775 0000000 0000000 00000000000 13202564773 0032223 5 ustar 00root root 0000000 0000000 README.rst 0000664 0000000 0000000 00000001206 13202564773 0033632 0 ustar 00root root 0000000 0000000 slapos-164fe068a55a5b2df60f540386dcc75c939b6e79-software-unstable-gitrepo/software/unstable/gitrepo gitrepo
=======
This software release allow you to get a private mono-user git
repository with web interface.
This software release only need one parameter “repos”, which is
a json object of the repos and their description.
It can receive a “title” parameter as well in order to specify
a title for gitweb interface interface.
Example
--------
::
repo = request(
software_release=gitrepo,
partiion_reference="My SlapGit",
partition_parameter_kw={
'repos': """
{
"repo": "description",
"foo": "bar"
}
""",
'title': 'optional title',
}
)
git-http-backend.cgi.in 0000664 0000000 0000000 00000000302 13202564773 0036355 0 ustar 00root root 0000000 0000000 slapos-164fe068a55a5b2df60f540386dcc75c939b6e79-software-unstable-gitrepo/software/unstable/gitrepo #!/usr/bin/env sh
## This is a very dirty hack
export PATH_INFO="$${REDIRECT_URL:-$PATH_INFO}"
GIT_PROJECT_ROOT='${git-repos:base-directory}' GIT_HTTP_EXPORT_ALL= exec '${:githttpbackend}' $@
gitweb.cgi.in 0000664 0000000 0000000 00000000131 13202564773 0034511 0 ustar 00root root 0000000 0000000 slapos-164fe068a55a5b2df60f540386dcc75c939b6e79-software-unstable-gitrepo/software/unstable/gitrepo #!/usr/bin/env sh
GITWEB_CONFIG='${gitweb-conf:output}' exec '${:perl}' '${:gitweb}' $@
gitweb.conf.in 0000664 0000000 0000000 00000000340 13202564773 0034676 0 ustar 00root root 0000000 0000000 slapos-164fe068a55a5b2df60f540386dcc75c939b6e79-software-unstable-gitrepo/software/unstable/gitrepo $projectroot = '${git-repos:base-directory}';
$site_name = '${slap-parameter:title}';
our @git_base_url_list = qw(${:url-list});
# Beautiful URLs
$feature{'pathinfo'}{'default'} = [1];
$feature{'blame'}{'default'} = [1];
httpd.conf.in 0000664 0000000 0000000 00000004056 13202564773 0034550 0 ustar 00root root 0000000 0000000 slapos-164fe068a55a5b2df60f540386dcc75c939b6e79-software-unstable-gitrepo/software/unstable/gitrepo PidFile "${:pid-file}"
Listen ${slap-network-information:global-ipv6}:${:port}
ServerAdmin someone@email
ErrorLog "${:error-log}"
LogLevel warn
ScriptSock "${:cgid-sock}"
AllowOverride None
Order deny,allow
Deny from all
Alias "/static/" "${:gitweb-static-dir}"
Options FollowSymLinks
Order deny,allow
Allow from all
# This is Static Accelerated git pull
AliasMatch "^/(.*/objects/[0-9a-f]{2}/[0-9a-f]{38})$" "${:project-dir}/$1"
AliasMatch "^/(.*/objects/pack/pack-[0-9a-f]{40}.(pack|idx))$" "${:project-dir}/$1"
# When it can't be statically delivered, we rely on git-http-backend
ScriptAliasMatch \
"(?x)^/(.*/(HEAD | \
info/refs | \
objects/info/[^/]+ | \
git-(upload|receive)-pack))(/push)?$" \
"${:git-http-backend}/$1"
# Everything else is gitweb interface
ScriptAlias "/" "${:gitweb-script}/"
Order deny,allow
Allow from all
RewriteEngine On
RewriteCond %{QUERY_STRING} service=git-receive-pack
RewriteRule ^(.*)$ $1/push [END]
AuthType Basic
AuthName "Git Push Access"
AuthBasicProvider file
AuthUserFile "${:passwd-file}"
Require valid-user
SetEnv REMOTE_USER $REDIRECT_REMOTE_USER
LoadModule access_compat_module modules/mod_access_compat.so
LoadModule alias_module modules/mod_alias.so
LoadModule auth_basic_module modules/mod_auth_basic.so
LoadModule authn_core_module modules/mod_authn_core.so
LoadModule authn_file_module modules/mod_authn_file.so
LoadModule authz_core_module modules/mod_authz_core.so
LoadModule authz_user_module modules/mod_authz_user.so
LoadModule autoindex_module modules/mod_autoindex.so
LoadModule cgid_module modules/mod_cgid.so
LoadModule env_module modules/mod_env.so
LoadModule rewrite_module modules/mod_rewrite.so
LoadModule unixd_module modules/mod_unixd.so
instance-gitrepo.cfg 0000664 0000000 0000000 00000006056 13202564773 0036107 0 ustar 00root root 0000000 0000000 slapos-164fe068a55a5b2df60f540386dcc75c939b6e79-software-unstable-gitrepo/software/unstable/gitrepo [buildout]
eggs-directory = ${buildout:eggs-directory}
develop-eggs-directory = ${buildout:develop-eggs-directory}
offline = true
parts =
publish
httpd
httpd-conf
gitweb-conf
gitweb-cgi
gitdaemon
git-http-backend-cgi
htpasswd
git-repos
[publish]
recipe = slapos.cookbook:publish
url = http://[$${slap-network-information:global-ipv6}]:$${httpd-conf:port}/
user = $${pwgen:user}
password = $${pwgen:passwd}
[httpd]
recipe = slapos.cookbook:wrapper
command-line = ${apache:location}/bin/httpd -DFOREGROUND -f "$${httpd-conf:output}"
output = $${basedirectory:services}/httpd
[httpd-conf]
recipe = slapos.recipe.template
url = ${template-httpd-conf:location}/${template-httpd-conf:filename}
output = $${rootdirectory:etc}/httpd.conf
pid-file = $${basedirectory:run}/httpd.pid
error-log = $${basedirectory:log}/httpd-errorlog.log
gitweb-static-dir = ${gitweb:location}/share/gitweb/static/
gitweb-script = $${gitweb-cgi:output}
git-http-backend = $${git-http-backend-cgi:output}
cgid-sock = $${basedirectory:run}/cgid.sock
project-dir = $${git-repos:base-directory}
passwd-file = $${htpasswd:output}
port = 8080
[gitweb-conf]
recipe = slapos.recipe.template
url = ${template-gitweb-conf:location}/${template-gitweb-conf:filename}
output = $${rootdirectory:etc}/gitweb.conf
url-list = http://[$${slap-network-information:global-ipv6}]:$${httpd-conf:port} git://[$${slap-network-information:global-ipv6}]
[gitweb-cgi]
recipe = slapos.recipe.template
url = ${template-gitweb-cgi:location}/${template-gitweb-cgi:filename}
output = $${rootdirectory:bin}/gitweb.cgi
mode = 700
perl = ${perl:location}/bin/perl
gitweb = ${gitweb:location}/share/gitweb/gitweb.cgi
[git-http-backend-cgi]
recipe = slapos.recipe.template
url = ${template-git-http-backend-cgi:location}/${template-git-http-backend-cgi:filename}
output = $${rootdirectory:bin}/git-http-backend.cgi
mode = 700
githttpbackend = ${git:location}/libexec/git-core/git-http-backend
[gitdaemon]
recipe = slapos.cookbook:wrapper
ip = $${slap-network-information:global-ipv6}
port = 9418
command-line = ${git:location}/bin/git daemon --export-all --listen=$${:ip} --port=$${:port} --interpolated-path=$${git-repos:base-directory}/%D
output = $${basedirectory:services}/git-daemon
[htpasswd]
recipe = collective.recipe.cmd
output = $${rootdirectory:etc}/httpd.htpasswd
on_install = true
on_update = true
cmds =
${apache:location}/bin/htpasswd -cb $${:output} $${pwgen:user} $${pwgen:passwd}
[pwgen]
recipe = slapos.cookbook:generate.password
user = slapos
[rootdirectory]
recipe = slapos.cookbook:mkdirectory
etc = $${buildout:directory}/etc/
srv = $${buildout:directory}/srv/
var = $${buildout:directory}/var/
bin = $${buildout:directory}/bin/
[basedirectory]
recipe = slapos.cookbook:mkdirectory
services = $${rootdirectory:etc}/run/
run = $${rootdirectory:var}/run/
git-repos = $${rootdirectory:srv}/git/
log = $${rootdirectory:var}/log/
[git-repos]
recipe = slapos.cookbook:gitinit
base-directory = $${basedirectory:git-repos}
repos = $${slap-parameter:repos}
git-binary = ${git:location}/bin/git
[slap-parameter]
title = GitSlap
instance.cfg 0000664 0000000 0000000 00000000405 13202564773 0034430 0 ustar 00root root 0000000 0000000 slapos-164fe068a55a5b2df60f540386dcc75c939b6e79-software-unstable-gitrepo/software/unstable/gitrepo [buildout]
eggs-directory = ${buildout:eggs-directory}
develop-eggs-directory = ${buildout:develop-eggs-directory}
offline = true
parts =
switch-softwaretype
[switch-softwaretype]
recipe = slapos.cookbook:softwaretype
default = ${template-gitrepo:output}
software.cfg 0000664 0000000 0000000 00000003677 13202564773 0034474 0 ustar 00root root 0000000 0000000 slapos-164fe068a55a5b2df60f540386dcc75c939b6e79-software-unstable-gitrepo/software/unstable/gitrepo [buildout]
extends =
../../component/apache/buildout.cfg
../../component/perl/buildout.cfg
../../component/git/buildout.cfg
../../component/nginx/buildout.cfg
../../component/ruby/buildout.cfg
../../component/icu/buildout.cfg
../../stack/slapos.cfg
parts =
apache
nginx
ruby
perl
git
gitweb
slapos-cookbook
template
template-gitrepo
collective-recipe-cmd
ruby-gems
python-eggs
[template]
recipe = slapos.recipe.template
url = ${:_profile_base_location_}/instance.cfg
md5sum = 5917cf0a9d6cc5d6d184e89ca2d72a91
output = ${buildout:directory}/template.cfg
mode = 0644
[template-gitrepo]
recipe = slapos.recipe.template
url = ${:_profile_base_location_}/instance-gitrepo.cfg
md5sum = 15dd1b7ea3259197b847e94342adf872
output = ${buildout:directory}/template-gitrepo.cfg
mode = 0644
[template-download]
recipe = hexagonit.recipe.download
url = ${:_profile_base_location_}/${:filename}
download-only = true
[template-gitweb-cgi]]
<= template-download
filename = gitweb.cgi.in
md5sum = 5c720202053bfba06eec6e97d8d47cd0
[template-gitweb-conf]
<= template-download
filename = gitweb.conf.in
md5sum = 580d4bd2723f7e0a44ec8fc5b360b429
[template-git-http-backend-cgi]
<= template-download
filename = git-http-backend.cgi.in
md5sum = 7e0562b0ce8d48bc8f6b422850dc53af
[template-httpd-conf]
<= template-download
filename = httpd.conf.in
md5sum = e5e6a6de32323248d11918934f6aad99
[collective-recipe-cmd]
recipe = zc.recipe.egg
eggs =
collective.recipe.cmd
[ruby-gems]
recipe = rubygemsrecipe
url = https://rubygems.org/rubygems/rubygems-2.4.8.zip
ruby-executable = ${ruby:location}/bin/ruby
gems =
charlock_holmes==0.6.8
bundler
rake
rails
railties
gem-options = --with-icu-lib=${icu:location}/lib/ --with-icu-dir=${icu:location}/
environment =
LDFLAGS = -L${icu:location}/lib -Wl,-rpath=${icu:location}/lib
CFLAGS = -I${icu:location}/include
[python-eggs]
recipe = zc.recipe.egg
eggs =
pygments
[version]
slapos.cookbook = 0.64.2