EnglischFranzösischSpanisch

OnWorks-Favicon

git-http-backend – Online in der Cloud

Führen Sie git-http-backend im kostenlosen Hosting-Anbieter OnWorks über Ubuntu Online, Fedora Online, den Windows-Online-Emulator oder den MAC OS-Online-Emulator aus

Dies ist der Befehl git-http-backend, der beim kostenlosen Hosting-Anbieter OnWorks mit einer unserer zahlreichen kostenlosen Online-Workstations wie Ubuntu Online, Fedora Online, dem Windows-Online-Emulator oder dem MAC OS-Online-Emulator ausgeführt werden kann

PROGRAMM:

NAME/FUNKTION


git-http-backend – Serverseitige Implementierung von Git über HTTP

ZUSAMMENFASSUNG


git http-backend

BESCHREIBUNG


Ein einfaches CGI-Programm, um Git-Clients, die darauf zugreifen, den Inhalt eines Git-Repositorys bereitzustellen
das Repository über die Protokolle http:// und https://. Das Programm unterstützt das Abrufen von Clients
Verwendung sowohl des Smart-HTTP-Protokolls als auch des abwärtskompatiblen Dumb-HTTP-Protokolls
sowie Clients, die über das intelligente HTTP-Protokoll pushen.

Es überprüft, ob das Verzeichnis die magische Datei „git-daemon-export-ok“ enthält, und das wird auch der Fall sein
Weigern Sie sich, Git-Verzeichnisse zu exportieren, die nicht ausdrücklich auf diese Weise für den Export markiert wurden
(es sei denn, die Umgebungsvariable GIT_HTTP_EXPORT_ALL ist festgelegt).

Standardmäßig ist nur der Upload-Pack-Dienst aktiviert, der dient git holen-pack und git
ls-remote Clients, von denen aus aufgerufen wird git holen, git ziehen und git klonen. Wenn der
Der Client ist authentifiziert, der Empfangspaketdienst ist aktiviert, der dient git Paket senden
client, der aufgerufen wird von git drücken.

SERVICES


Diese Dienste können mithilfe der Konfigurationsdatei pro Repository aktiviert/deaktiviert werden:

http.getanyfile
Dies dient Git-Clients, die älter als Version 1.6.6 sind und den Upload nicht nutzen können
Packservice. Wenn diese Option aktiviert ist, können Clients jede Datei im Repository lesen.
einschließlich Objekte, die von einem Zweig aus nicht mehr erreichbar sind, aber noch vorhanden sind. Es
ist standardmäßig aktiviert, ein Repository kann es jedoch durch Festlegen dieser Konfiguration deaktivieren
Element auf „false“ setzen.

http.uploadpack
Das dient git holen-pack und git ls-remote Kunden. Es ist standardmäßig aktiviert, aber a
Das Repository kann es deaktivieren, indem dieses Konfigurationselement auf „false“ gesetzt wird.

http.receivepack
Das dient git Paket senden Kunden, die Push ermöglichen. Es ist standardmäßig deaktiviert für
Anonyme Benutzer und standardmäßig für vom Webserver authentifizierte Benutzer aktiviert. Es
kann deaktiviert werden, indem dieses Element auf „false“ gesetzt wird, oder für alle Benutzer aktiviert werden, einschließlich
anonyme Benutzer, indem Sie es auf true setzen.

URL ÜBERSETZUNG


Um den Speicherort des Repositorys auf der Festplatte zu ermitteln, git http-backend verkettet die
Umgebungsvariablen PATH_INFO, die automatisch vom Webserver gesetzt werden, und
GIT_PROJECT_ROOT, das manuell in der Webserverkonfiguration festgelegt werden muss. Wenn
GIT_PROJECT_ROOT ist nicht gesetzt, git http-backend liest PATH_TRANSLATED, was ebenfalls gesetzt ist
automatisch durch den Webserver.

Beispiele:


Alle folgenden Beispiele ordnen http://$hostname/git/foo/bar.git zu
/var/www/git/foo/bar.git.

Apache 2.x.
Stellen Sie sicher, dass mod_cgi, mod_alias und mod_env aktiviert sind, legen Sie GIT_PROJECT_ROOT fest (oder
DocumentRoot) entsprechend und erstellen Sie einen ScriptAlias ​​für das CGI:

SetEnv GIT_PROJECT_ROOT /var/www/git
SetEnv GIT_HTTP_EXPORT_ALL
ScriptAlias ​​/git/ /usr/libexec/git-core/git-http-backend/

Um anonymen Lesezugriff, aber authentifizierten Schreibzugriff zu ermöglichen, ist eine Autorisierung erforderlich
sowohl für die anfängliche Ref-Werbung (die wir über den Dienst als Push erkennen).
Parameter in der Abfragezeichenfolge) und der Empfangspaketaufruf selbst:

RewriteCond %{QUERY_STRING} service=git-receive-pack [ODER]
RewriteCond %{REQUEST_URI} /git-receive-pack$
RewriteRule ^/git/ - [E=AUTHREQUIRED:yes]


Bestellung ablehnen, zulassen
Ablehnen von env=AUTHREQUIRED

AuthType Basic
AuthName „Git Access“
Gruppencommitter sind erforderlich
Befriedigen Sie jeden
...


Wenn mod_rewrite nicht für den Abgleich mit der Abfragezeichenfolge verfügbar ist, ist dies der Fall
ausreichend, um nur git-receive-pack selbst zu schützen, wie zum Beispiel:


AuthType Basic
AuthName „Git Access“
Gruppencommitter sind erforderlich
...


In diesem Modus fordert der Server erst dann eine Authentifizierung an, wenn der Client dies tatsächlich tut
startet die Objektverhandlungsphase des Pushs und nicht während der Initialphase
Kontakt. Aus diesem Grund müssen Sie auch die Konfigurationsoption http.receivepack aktivieren
alle Repositorys, die einen Push akzeptieren sollen. Das Standardverhalten, wenn http.receivepack
nicht gesetzt ist, dient dazu, alle Pushs von nicht authentifizierten Benutzern abzulehnen; Die ursprüngliche Anfrage wird
Melden Sie daher dem Kunden 403 Verboten, ohne überhaupt eine Gelegenheit dazu zu geben
Authentifizierung.

Um eine Authentifizierung sowohl für Lese- als auch für Schreibvorgänge zu erfordern, verwenden Sie eine Location-Direktive
das Repository oder eines seiner übergeordneten Verzeichnisse:


AuthType Basic
AuthName „Privater Git-Zugriff“
Gruppencommitter sind erforderlich
...


Um Gitweb unter derselben URL bereitzustellen, verwenden Sie ein ScriptAliasMatch nur für die URLs, die dies tun git
http-backend kann damit umgehen und den Rest an gitweb weiterleiten:

ScriptAliasMatch \
"(?x)^/git/(.*/(HEAD | \
info/refs | \
Objekte/(info/[^/]+ | \
[0-9a-f]{2}/[0-9a-f]{38} | \
pack/pack-[0-9a-f]{40}\.(pack|idx)) | \
git-(upload|receive)-pack))$" \
/usr/libexec/git-core/git-http-backend/$1

ScriptAlias ​​/git/ /var/www/cgi-bin/gitweb.cgi/

Um mehrere Repositorys aus unterschiedlichen Quellen bereitzustellen gitnamespaces(7) in einem einzigen Repository:

SetEnvIf Request_URI "^/git/([^/]*)" GIT_NAMESPACE=$1
ScriptAliasMatch ^/git/[^/]*(.*) /usr/libexec/git-core/git-http-backend/storage.git$1

Beschleunigtes statisches Apache 2.x
Ähnlich wie oben, aber Apache kann verwendet werden, um statische Dateien zurückzugeben, die darauf gespeichert sind
Scheibe. Auf vielen Systemen ist dies möglicherweise effizienter, da Apache den Kernel zum Kopieren auffordern kann
den Dateiinhalt vom Dateisystem direkt ins Netzwerk:

SetEnv GIT_PROJECT_ROOT /var/www/git

AliasMatch ^/git/(.*/objects/[0-9a-f]{2}/[0-9a-f]{38})$ /var/www/git/$1
AliasMatch ^/git/(.*/objects/pack/pack-[0-9a-f]{40}.(pack|idx))$ /var/www/git/$1
ScriptAlias ​​/git/ /usr/libexec/git-core/git-http-backend/

Dies kann mit der Gitweb-Konfiguration kombiniert werden:

SetEnv GIT_PROJECT_ROOT /var/www/git

AliasMatch ^/git/(.*/objects/[0-9a-f]{2}/[0-9a-f]{38})$ /var/www/git/$1
AliasMatch ^/git/(.*/objects/pack/pack-[0-9a-f]{40}.(pack|idx))$ /var/www/git/$1
ScriptAliasMatch \
"(?x)^/git/(.*/(HEAD | \
info/refs | \
Objekte/Info/[^/]+ | \
git-(upload|receive)-pack))$" \
/usr/libexec/git-core/git-http-backend/$1
ScriptAlias ​​/git/ /var/www/cgi-bin/gitweb.cgi/

Lichttpd
Stellen Sie sicher, dass mod_cgi, mod_alias, mod_auth und mod_setenv geladen und dann festgelegt sind
GIT_PROJECT_ROOT entsprechend und leiten Sie alle Anfragen an das CGI weiter:

alias.url += ( "/git" => "/usr/lib/git-core/git-http-backend")
$HTTP["url"] =~ "^/git" {
cgi.assign = ("" => "")
setenv.add-environment = (
"GIT_PROJECT_ROOT" => "/var/www/git",
"GIT_HTTP_EXPORT_ALL" => ""
)
}

So aktivieren Sie anonymen Lesezugriff, aber authentifizierten Schreibzugriff:

$HTTP["querystring"] =~ "service=git-receive-pack" {
„git-auth.conf“ einschließen
}
$HTTP["url"] =~ "^/git/.*/git-receive-pack$" {
„git-auth.conf“ einschließen
}

Dabei sieht git-auth.conf etwa so aus:

auth.require = (
"/" => (
„Methode“ => „Grundlegend“,
"realm" => "Git Access",
„require“ => „valid-user“
)
)
# ...und hier auth.backend einrichten

So fordern Sie eine Authentifizierung sowohl für Lese- als auch für Schreibvorgänge an:

$HTTP["url"] =~ "^/git/private" {
„git-auth.conf“ einschließen
}


git http-backend basiert auf den CGI-Umgebungsvariablen, die vom aufrufenden Webserver festgelegt werden.
einschließlich:

· PATH_INFO (wenn GIT_PROJECT_ROOT gesetzt ist, andernfalls PATH_TRANSLATED)

· REMOTE_USER

· REMOTE_ADDR

· INHALTSTYP

· QUERY_STRING

· REQUEST_METHOD

Die Umgebungsvariable GIT_HTTP_EXPORT_ALL kann an übergeben werden git-http-backend umgehen
die Prüfung auf die Datei „git-daemon-export-ok“ in jedem Repository, bevor der Export zugelassen wird
dieses Repository.

Die Umgebungsvariable GIT_HTTP_MAX_REQUEST_BUFFER (oder die http.maxRequestBuffer-Konfiguration
Variable) kann so eingestellt werden, dass die größte Ref-Aushandlungsanforderung geändert wird, die Git verarbeiten kann
während eines Abrufs; Jeder Abruf, der einen größeren Puffer erfordert, wird nicht erfolgreich sein. Dieser Wert sollte
Normalerweise muss nicht geändert werden, kann aber hilfreich sein, wenn Sie aus einem Repository abrufen
mit einer extrem großen Anzahl von Schiedsrichtern. Der Wert kann mit einer Einheit angegeben werden (z. B. 100M).
für 100 Megabyte). Der Standardwert ist 10 Megabyte.

Der Backend-Prozess setzt GIT_COMMITTER_NAME auf $REMOTE_USER und GIT_COMMITTER_EMAIL an
${REMOTE_USER}@http.${REMOTE_ADDR}, um sicherzustellen, dass alle von erstellten Reflogs Git-Receive-Pack
enthalten einige identifizierende Informationen des Remote-Benutzers, der den Push durchgeführt hat.

Alle CGI-Umgebungsvariablen stehen jedem der von aufgerufenen Hooks zur Verfügung
Git-Receive-Pack.

GIT


Ein Teil des git(1) Suite

Verwenden Sie git-http-backend online über die Dienste von onworks.net


Kostenlose Server & Workstations

Laden Sie Windows- und Linux-Apps herunter

  • 1
    Hunde
    Hunde
    Psi ist ein plattformübergreifendes, leistungsstarkes XMPP
    Client für erfahrene Benutzer.
    Es sind Builds für MS verfügbar
    Windows, GNU/Linux und macOS. Zielgruppe:
    Endnutzer...
    Laden Sie Psi herunter
  • 2
    Blobby-Volley 2
    Blobby-Volley 2
    Offizielle Fortsetzung des berühmten
    Blobby Volley 1.x Arcade-Spiel.
    Zielgruppe: Endbenutzer/Desktop. Benutzer
    Schnittstelle: OpenGL, SDL. Programmierung
    Sprache: C++, Lua. C...
    Laden Sie Blobby Volley 2 herunter
  • 3
    SuiteCRM
    SuiteCRM
    SuiteCRM ist der preisgekrönte Kunde
    Beziehungsmanagement (CRM)
    Bewerbung, die Ihnen von Autoren zur Verfügung gestellt wird
    und Betreuer, SalesAgility. Es ist der
    Die meisten der Welt...
    Laden Sie SuiteCRM herunter
  • 4
    Poweradmin
    Poweradmin
    Poweradmin ist ein webbasiertes DNS
    Verwaltungstool für PowerDNS-Server.
    Die Schnittstelle bietet für die meisten Funktionen volle Unterstützung
    der Funktionen von PowerDNS. Es ist voll
    Unterstützung...
    Laden Sie Poweradmin herunter
  • 5
    Gin Web-Framework
    Gin Web-Framework
    Gin ist ein unglaublich schnelles Webframework
    in Golang geschrieben, das bis zu leisten kann
    40-mal schneller dank seiner
    Martini-ähnliche API und benutzerdefinierte Version von
    httproute...
    Laden Sie das Gin Web Framework herunter
  • 6
    CEREUS LINUX
    CEREUS LINUX
    CEREUS LINUX basiert auf MX LINUX con
    varios entornos de escritorios. Das ist
    eine Anwendung, die auch abgerufen werden kann
    für
    https://sourceforge.net/projects/cereu...
    Laden Sie CEREUS LINUX herunter
  • Mehr »

Linux-Befehle

Ad