Wie erzwinge Composer die Verwendung von https: // anstelle von git: //?

8

Ich habe so etwas

%Vor%

Aber wenn Composer den Repo-Vorgang ausführt, werden die Fernbedienungen ( origin und composer ) in .git/config als git://github.com/me/myrepo.git eingerichtet.

%Vor%

Ich kann nicht darauf drücken, weil Github nicht mit git:// arbeitet. Ich muss das manuell in https:// ändern und dann drücken. Ich habe https:// in der URL angegeben, aber warum wird das nicht respektiert?

    
Patrick Yan 05.09.2013, 13:59
quelle

2 Antworten

17

Sie können das für github verwendete Protokoll mit diesem Befehl ändern:

%Vor%

Dann sollten die Neuinstallations-Anbieter tun, was Sie wollen.

    
Seldaek 05.09.2013 14:17
quelle
4

Die Option github-protocols funktioniert nur mit GitHub, aber es gibt eine andere Möglichkeit, das Problem zu lösen, das nicht von der Verwendung von GitHub für Ihren Git-Server abhängig ist.

Sie weisen Composer einfach an, eine andere URL zu verwenden, so wie Sie es getan hätten, wenn Sie ein Paket gegabelt hätten und Sie sicherstellen wollten, dass Composer Ihre Gabel anstelle des Standardpakets verwendet hat.

Hier ist ein Beispiel, wo ich meine eigene Gabel für ein Paket verwende, und ich zwinge das Protokoll in der URL zu http anstelle von git zu einer anderen:

%Vor%

Im Falle von Laravel4-PHPExcel hatte ich schon früh einen Bug behoben und benötigte meine Korrektur, während ich darauf wartete, dass der Betreuer meine Pull-Anfrage akzeptierte. (Nebenbei bemerkt, er hat seitdem eine Menge Verbesserungen an seinem Code vorgenommen, weshalb ich die Verwendung meines Forks weglasse, aber ich zeige es hier, da es sogar als Beispiel nützlich ist wenn mein Code in der Praxis nicht mehr nützlich ist.)

Im Fall von TCPDF sind sie das einzige Paket, das meine App verwendet und das Git-Protokoll angibt. Daher erschien es lächerlich, das Sicherheitsteam an meinem Client zu bitten, Port 9418 zu öffnen, wenn ich es einfach benutzen konnte HTTP stattdessen, was (meiner Meinung nach) sie früher hätte verwenden sollen. Alles, was ich in der URL geändert habe, ist git durch http zu ersetzen, aber es funktioniert wie jede andere benutzerdefinierte URL, so dass Sie die URL angeben können, die Composer für ein bestimmtes Paket verwendet.

AKTUALISIEREN :

Nur um Vollständigkeit zu erreichen, sollte ich erwähnen, dass Sie das Problem auch auf der Git-Ebene lösen können. Im Fall der App, in der ich mit diesem Problem konfrontiert war, hatte ich das Gefühl, dass es in Composer passender war, aber Ihre Situation kann sich unterscheiden, und Ihre Ansichten darüber, was der beste Ansatz für die Situation ist

Der Git-Ansatz kann viel globaler gestaltet werden, was Sie als Vorteil sehen (oder auch nicht). Der einfache Fall besteht darin, Git anzuweisen, eine URL durch eine andere zu ersetzen:

%Vor%

Sie können Git aber auch sagen, dass er "git: //" immer durch "https: //" ersetzen soll:

%Vor%

In den Beispielen gebe ich es in die globale Konfigurationsdatei des Benutzers ein, aber Sie können --global durch --local ersetzen, um es in die Konfigurationsdatei des Repositorys zu stellen (oder --system , um es in die Konfigurationsdatei des Systems zu schreiben).

    
iconoclast 24.06.2014 17:16
quelle

Tags und Links