Difference between revisions of "SAC:Git Service"

From OSGeo
Jump to navigation Jump to search
(→‎gitlab: gogs -> gitea)
 
(32 intermediate revisions by 4 users not shown)
Line 1: Line 1:
The [[TracsvnVM]] machine hosts a few git related experimental services.
+
The [[TracsvnVM]] machine hosts a few git related experimental services. This page describes where GIT repositories are and how they can be accessed.
 +
 
  
 
= Repositories =
 
= Repositories =
  
There are currently git repositories under ''/var/www/git/repos'' (served by Apache) and under ''/home/git/gogs-repositories'' (served by Gogs).
+
There are currently git repositories under <code>/var/www/git/repos</code> (served by Apache) and under <code>/home/git/gitea-repositories</code> (served by Gitea).
  
Apache runs as user ''www-data'' and thus user ''www-data'' owns the files in ''/var/www/git/repos''.
+
Apache runs as user ''www-data'' and thus user ''www-data'' owns the files in <code>/var/www/git/repos</code>.
  
[[SAC:Gogs|Gogs]] runs as user ''git'' and thus user ''git'' owns the files in ''/home/git/gogs-repositories''.
+
[[SAC:Gitea|Gitea]] runs as user ''git'' and thus user ''git'' owns the files in <code>/home/git/gitea-repositories</code>.
  
 
There are also a bunch of git repositories used for various system configurations, but they are not exposed to public services as such.
 
There are also a bunch of git repositories used for various system configurations, but they are not exposed to public services as such.
  
= Access methods =
+
Some of the repositories from <code>/var/www/git/repos</code> are being transformed to symlinks to repos under <code>/var/www/git/repos</code>.
 +
These repositories will only be writable by the ``git`` user, but are made readable also by the rest of the world.
 +
 
 +
= GIT Remote URIs =
  
 
== HTTPS (Read/Write) ==
 
== HTTPS (Read/Write) ==
  
Repos in ''/var/www/git/repos'' are served via ''https://git.osgeo.org/git/REPONAME''.
+
{|
 
+
! style="text-align:left;"| Repo
Repos in ''/home/git/gogs-repositories'' are served via ''https://git.osgeo.org/_gogs_/REPONAME''.
+
! URL
 +
|-
 +
|<code>/var/www/git/repos</code>
 +
|<code>https://git.osgeo.org/git/REPONAME</code>
 +
|-
 +
|<code>/home/git/gitea-repositories</code>
 +
|<code>https://git.osgeo.org/gitea/REPONAME</code>
 +
|}
  
 
In both cases, [[SAC:LDAP|LDAP]] authentication is allowed.
 
In both cases, [[SAC:LDAP|LDAP]] authentication is allowed.
For the ''/git/REPONAME'' LDAP authentication is _required_, and you need to use the Git protocol access for an anonymous checkout.
+
For the <code>/git/REPONAME</code> LDAP authentication is _required_, and you need to use the Git protocol access for an anonymous checkout.
  
 
In both cases, ''http'' access redirects to ''https''.
 
In both cases, ''http'' access redirects to ''https''.
 
'''TODO''': write something about gitweb
 
  
 
== GIT protocol (Read Only) ==
 
== GIT protocol (Read Only) ==
  
Repos in ''/var/www/git/repos'' are served via git protocol with ''git://git.osgeo.org/git/REPONAME''
+
Repos in <code>/var/www/git/repos</code> are served via git protocol with <code>git://git.osgeo.org/REPONAME</code> as long as they contain a file named <code>git-daemon-export-ok</code>
 
 
Repos in ''/home/git/gogs-repositories'' are '''NOT accessible''' via git protocol.
 
 
 
 
 
'''OSGeo.org''''
 
git.osgeo.org git infrastructure backend comparisons
 
 
 
 
 
''Misc Links''
 
 
 
=== '''GitLab''' ===
 
"You will be running Sidekiq, Unicorn, Nginx, Ruby (plus all its gems)
 
and then Gitlab itself."
 
 
 
* https://about.gitlab.com/better-than-github/
 
* https://github.com/WebEntity/Installation-guide-for-GitLab-on-OS-X
 
* https://github.com/gitlabhq/gitlabhq/blob/8-0-stable/doc/instal/installation.md#advanced-setup-tips
 
* https://about.gitlab.com/downloads/
 
 
 
 
 
=== '''GOGS''' ===
 
https://gogs.io/
 
http://jbrodriguez.io/gogs-an-alternative-to-gitlab/
 
 
 
 
 
=== '''Github.com''' ===
 
default
 
 
 
 
=== '''Kallithea''' ===
 
https://kallithea-scm.org/
 
https://en.wikipedia.org/wiki/Kallithea_%28software%29
 
 
 
 
 
=== '''cgit''' ===
 
* https://git.zx2c4.com/cgit/
 
* https://wiki.archlinux.org/index.php/Cgit#Configuration_of_Cgit
 
* http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git
 
* https://git.gnome.org/browse/
 
* https://anonscm.debian.org/git/
 
* https://sources.debian.net/stats/
 
 
 
=== '''gitbucket''' - JVM ===
 
* https://gitbucket.github.io/gitbucket-news/about/
 
* https://gitbucket.github.io/gitbucket-news/
 
 
 
=== '''gitblit''' - JVM ===
 
* http://gitblit.com/
 
 
 
=== '''Phabricator + Diffusion''' ===
 
* https://secure.phabricator.com/book/phabricator/article/installation_guide/
 
* https://secure.phabricator.com/book/phabricator/article/diffusion/
 
* https://phabricator.wikimedia.org/T117071#2200208
 
 
 
''twentyafterfour from wikimieda-labs'':
 
 
 
our phabricator accepts ldap logins plus oauth;
 
phabricator might still be a decent way of managing your repositories. It's essentially the same thing as gitolite but with a lot more automation around account management, key management and hooks...
 
you have to deal with account management yourself, phabricator integrates all of that into one package (which can still be somewhat automated / integrated with other tools)
 
 
 
 
 
=== '''gitolite''' ===
 
''twentyafterfour from wikimieda-labs'':
 
likely doesn't support LDAP; certainly a lot lighter weight than Phab stack,
 
if you are comfortable with perl and don't mind doing a bit of integration work
 
 
 
 
 
''Wikimedia-devtools says'':
 
 
we currently use Gerrit for code review (gerrit.wikimedia.org) and gitblit for git.wikimedia.org.  Things are being migrated to phabricator.wikimedia.org though (Diffusion).  You are in the right channel you can git clone all of our server configs btw. it's a puppet repo and all public. you might also be interested in wikitech.wikimedia.org, our labs environment where you can get free virtual machines to test things
 
 
 
  
 +
Repos in <code>/home/git/gitea-repositories</code> are '''NOT accessible''' via git protocol, unless made available via symlinks from <code>/var/www/git/repos</code> (as done for the GEOS repository, for example)
  
=== '''Apache Allura''' ===
+
The handling server is [[SAC:GitDaemon]]
* https://forge-allura.apache.org/docs/getting_started/installation.html#step-by-step-installation
 
* https://forge-allura.apache.org/p/allura/wiki/Feature%20Comparison/
 
  
 +
= Web Interfaces =
  
 +
== gitlab ==
  
''Other Links''
+
GitLab is an alternative to gitea with some extra features. It can be accessed at the url https://git.osgeo.org/gitlab.
* https://wiki.osgeo.org/wiki/SAC
 
* http://jbrodriguez.io/gogs-an-alternative-to-gitlab/
 
* https://git.osgeo.org/_gogs_/org/sac/teams/gogs-service-writers
 
* https://github.com/gogits/go-gogs-client
 
* https://github.com/Soullivaneuh/trac2gitlab
 
* https://discuss.gogs.io/t/how-to-manage-collaborators/87
 
 
  
 +
NOTE: Currently the GitLab installation is experimental and exists for evaluation purposes, it is not on the TracSVN machine but on a VM temporarely provided for the purpose by Vincent Picavet. The TracSVN machine solely acts as a reverse proxy.
  
==== Other Backend Sites ====
+
See [[SAC:GitLab]] for more details.
* http://git.apache.org/ 
 
''Please contact the infrastructure-dev@apache.org mailing list if you have comments or suggestions regarding this service.''
 
  
==== git.osgeo.org ====
+
== gitea ==
  https://git.osgeo.org/_gogs_/explore/repos
 
  
 +
Gitea allows anyone with an OSGeo Userid to create public or private repositories, manage access to them (individual or organization based), manage git hooks on the repositories and much more. It can be
 +
accessed at the url https://git.osgeo.org/gitea
 +
See [[SAC:Gitea]] for more details.
  
 +
== trac ==
  
 +
Any [[Trac_Instances|trac instance]] administrator can expose any git repository on the system by simply referencing full path to it from the repository section of the administration panel. This may be a problem for private repositories if trac instance administrators are not careful.
  
==== General Attributes ====
+
Commits in a so-mapped git repository can be referenced in trac ticket comments, and git commit logs can update trac tickets. Creating a git repository via Trac is not possible at the time of writing (2016-04-19)
------------------------------------
 
Implementation Language
 
License
 
Resource Usage
 
  
 +
== gitweb ==
  
 +
Gitweb gives a read-only view into repositories in <code>/var/www/git/repos</code>.
 +
The entry point url is https://git.osgeo.org/gitweb/ where only selected repositories are shown (TODO: selected where?). But knowing the url template you can access any repository under the given base directory, following symlinks, like https://git.osgeo.org/gitweb/?p=geos
  
==== Common Features ====
+
= See Also =
------------------------------------
 
Dashboard & File Browser
 
Issue Tracking, Milestones & Commit keywords
 
Organizations support
 
Wiki
 
Code Review
 
GIST
 
Web Hooks
 
  
 +
* [[GitInfrastructureComparison]]
 +
* [[GitServiceRequirement]]
  
  
==== Feature Comparison ====
+
[[Category:Infrastructure]]
------------------------------------
+
[[Category:Services]]
login via LDAP           
 
private repositories     
 
external issue tracker   
 
internal issue tracker   
 
tool to migrate from trac
 
external wiki           
 
internal wiki           
 
organization management 
 
comment issues via mail 
 
PostgreSQL backend       
 
Multilanguage           
 
Comments on diff lines   
 
Pull requests           
 
Webhooks                 
 
CL                 
 
tracking of forks
 

Latest revision as of 04:07, 17 December 2017

The TracsvnVM machine hosts a few git related experimental services. This page describes where GIT repositories are and how they can be accessed.


Repositories

There are currently git repositories under /var/www/git/repos (served by Apache) and under /home/git/gitea-repositories (served by Gitea).

Apache runs as user www-data and thus user www-data owns the files in /var/www/git/repos.

Gitea runs as user git and thus user git owns the files in /home/git/gitea-repositories.

There are also a bunch of git repositories used for various system configurations, but they are not exposed to public services as such.

Some of the repositories from /var/www/git/repos are being transformed to symlinks to repos under /var/www/git/repos. These repositories will only be writable by the ``git`` user, but are made readable also by the rest of the world.

GIT Remote URIs

HTTPS (Read/Write)

Repo URL
/var/www/git/repos https://git.osgeo.org/git/REPONAME
/home/git/gitea-repositories https://git.osgeo.org/gitea/REPONAME

In both cases, LDAP authentication is allowed. For the /git/REPONAME LDAP authentication is _required_, and you need to use the Git protocol access for an anonymous checkout.

In both cases, http access redirects to https.

GIT protocol (Read Only)

Repos in /var/www/git/repos are served via git protocol with git://git.osgeo.org/REPONAME as long as they contain a file named git-daemon-export-ok

Repos in /home/git/gitea-repositories are NOT accessible via git protocol, unless made available via symlinks from /var/www/git/repos (as done for the GEOS repository, for example)

The handling server is SAC:GitDaemon

Web Interfaces

gitlab

GitLab is an alternative to gitea with some extra features. It can be accessed at the url https://git.osgeo.org/gitlab.

NOTE: Currently the GitLab installation is experimental and exists for evaluation purposes, it is not on the TracSVN machine but on a VM temporarely provided for the purpose by Vincent Picavet. The TracSVN machine solely acts as a reverse proxy.

See SAC:GitLab for more details.

gitea

Gitea allows anyone with an OSGeo Userid to create public or private repositories, manage access to them (individual or organization based), manage git hooks on the repositories and much more. It can be accessed at the url https://git.osgeo.org/gitea See SAC:Gitea for more details.

trac

Any trac instance administrator can expose any git repository on the system by simply referencing full path to it from the repository section of the administration panel. This may be a problem for private repositories if trac instance administrators are not careful.

Commits in a so-mapped git repository can be referenced in trac ticket comments, and git commit logs can update trac tickets. Creating a git repository via Trac is not possible at the time of writing (2016-04-19)

gitweb

Gitweb gives a read-only view into repositories in /var/www/git/repos. The entry point url is https://git.osgeo.org/gitweb/ where only selected repositories are shown (TODO: selected where?). But knowing the url template you can access any repository under the given base directory, following symlinks, like https://git.osgeo.org/gitweb/?p=geos

See Also