User page code for user/group admin
[gwvp.git] / README
1 GWVP
2 ====
3
4 Note - this is barely (currently) proof-of-concept code and simply does a thru-php proxy of git-http-backend
5 it is not in the least bit useful for anything, yet.
6
7 Git over Web Via PHP is a project to do something i've wanted to have a long time - a web based git remote 
8 with administration and all git related activities happening over http/https. Git has this now, its called
9 git-http-backend and its quite broken. If you read its man page it'll tell you this:
10
11         To enable anonymous read access but authenticated write access,
12         require authorization with a LocationMatch directive:
13         
14                 <LocationMatch "^/git/.*/git-receive-pack$">
15                         AuthType Basic
16                         AuthName "Git Access"
17                         Require group committers
18                         ...
19                 </LocationMatch>
20
21 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.
22 Aside from that though, i wanted an application capable of handling my repo's without having to deal with the
23 ssh fluff i tend to deal with its annoying when it can be done with user/password auth over https.
24
25 Thats what the project is designed to do - give people the ability to administrate a set of a git repo's via
26 a web interface and have the same web interface for pull and push.
27
28 What you will ultimately be able to do is:
29 1) get list of git repos (with an interface like gitweb)
30 2) create users and assign permissions into repo's
31 3) create repos
32 4) import repos
33
34 but most importantly:
35 git add remote origin https://username@server/git/myrepo.git
36 git push origin master
37
38 Ultimately I want people to be able to install this app, create a directory where it can save its files (db),
39 create another directory for storing git repos then allow people to login to the web interface and control
40 everything, for example:
41 1) create a user and control what they can see
42 2) allow users to control who can push to their repos
43 3) control how many repo's a user can create
44 4) import code into a repo (via git bundle for eg)
45 5) setup a group heirachy
46 I think that describes the places i'd like this app to go
47
48 How it Works
49 ============
50 Initially this thing will have a fairly boring interface for creating/contorlling users and repos while
51 also pushing directly back to git-http-backend AND providing the authentication interface IT needs to function
52
53 Gitweb.cgi may also be incorporated as the git view tool - but thats less important at this point and will
54 probably be just a portion of the php code designed to show something similar to gitweb.cgi with more control