reaplced the git service code (main gitbackendinterface()) with a new
[gwvp.git] / README
1 READ THIS FIRST
2 ===============
3
4 WARNING WARNING WARNING
5
6 This code is not ready for anything other thing playing with. It has some functionality, like you can create
7 some repos and you can even pull from them, however this code IS dangerous. there is no input validation so
8 its likely everything can suffer from all kinds of injections and malicious code. There is alot of error
9 checking missing and its only been running on an ubuntu 10.10 laptop, alot of the functionality is actually
10 here, but dont get excited.
11
12 If you want to play with it, clone it and follow the install, but dont put it somewhere its generally
13 accessible (i.e. from the internet) unless you hate your computer.
14
15
16
17
18
19 GWVP
20 ====
21
22 Git over Web Via PHP is a project to do something i've wanted to have a long time - a web based git remote 
23 with administration and all git related activities happening over http/https. Git has this now, its called
24 git-http-backend and its quite broken. If you read its man page it'll tell you this:
25
26         To enable anonymous read access but authenticated write access,
27         require authorization with a LocationMatch directive:
28         
29                 <LocationMatch "^/git/.*/git-receive-pack$">
30                         AuthType Basic
31                         AuthName "Git Access"
32                         Require group committers
33                         ...
34                 </LocationMatch>
35
36 This will never work in a month of sundays, but yet its been in the man page and been un-fixed now for a year.
37 Aside from that though, i wanted an application capable of handling my repo's without having to deal with the
38 ssh fluff i tend to deal with its annoying when it can be done with user/password auth over https.
39
40 Thats what the project is designed to do - give people the ability to administrate a set of a git repo's via
41 a web interface and have the same web interface for pull and push.
42
43 What you will ultimately be able to do is:
44 1) get list of git repos (with an interface like gitweb)
45 2) create users and assign permissions into repo's
46 3) create repos
47 4) import repos
48
49 but most importantly:
50 git add remote origin https://username@server/git/myrepo.git
51 git push origin master
52
53 Ultimately I want people to be able to install this app, create a directory where it can save its files (db),
54 create another directory for storing git repos then allow people to login to the web interface and control
55 everything, for example:
56 1) create a user and control what they can see
57 2) allow users to control who can push to their repos
58 3) control how many repo's a user can create
59 4) import code into a repo (via git bundle for eg)
60 5) setup a group heirachy
61 I think that describes the places i'd like this app to go
62
63 How it Works
64 ============
65 Initially this thing will have a fairly boring interface for creating/contorlling users and repos while
66 also pushing directly back to git-http-backend AND providing the authentication interface IT needs to function
67
68 Gitweb.cgi may also be incorporated as the git view tool - but thats less important at this point and will
69 probably be just a portion of the php code designed to show something similar to gitweb.cgi with more control