Private Composer-Pakete - Es wurde keine gültige composer.json gefunden

Ich versuche, eine Bibliothek, die ich auf BitBucket gehostet habe, mithilfe von Composer zu laden, wie in den beiden Abschnitten erläutertoffizielle Dokumentation undHier, aber weiterhin die folgende Fehlermeldung erhalten:

[Composer\Repository\InvalidRepositoryException]
No valid composer.json was found in any branch or tag of [repository URL], could not load a package from it.

Hier ist meinProjekt composer.json:

{
    "name": "Project name",
    "require": {
        "my-vendor/my-package": "dev-master"
    },
    "repositories": [
        {
            "type": "vcs",
            "url": [repository URL]
        }
    ]
}

Und hier ist die composer.json in meinem Remote-Repository (die anscheinend nicht gefunden werden kann):

{
    "name": "my-vendor/my-package",
    "version": "0.3",
    "autoload": {
        "psr-0": {
            "NS_": "src"
        }
    }
}

Ich sollte erwähnen, dass sich beide composer.json-Dateien im Stammverzeichnis befinden, wie sie sein sollten.

Einige andere Dinge zu beachten:

Ich habe auch den Ansatz "Nicht-Composer-Paket" ausprobiert, bei dem ich die Paketinformationen in meinem Projekt composer.json angebe und die Datei composer.json aus meinem Remote-Repository auslasse, wie in der beschriebenDokumentation. Dadurch wird der Hauptzweig erfolgreich geklont, es wird jedoch der folgende Fehler ausgegeben:

[RuntimeException]
Failed to execute git checkout "master" && git reset --hard "master"

fatal: Not a git repository (or any of the parent directories): .git

Das Paket wird jedoch wie erwartet auf / vendor heruntergeladen, sodass ich nicht sicher bin, warum es versucht, master erneut auszuchecken.

Auf diese Weise möchte ich dieses Problem nicht lösen (da ich lieber eine composer.json im Remote-Repository verwenden möchte), aber es könnte hilfreich sein, ein Problem an einer anderen Stelle zu identifizieren.

Danke für jede Hilfe.

BEARBEITEN

Ich habe es geschafft, es zum Laufen zu bringen, indem ich auf eine package.json über HTTP verwiesen habe:

"repositories": [
    {
        "type": "composer",
        "url": "http://localhost/packages.json"
    }
]

Die Datei packages.json sieht folgendermaßen aus:

{
    "packages": {
        "vendor/my-package": {
            "dev-master": {
                "name": "vendor/my-package",
                "version": "dev-master",
                "source": {
                    "url": [repository URL],
                    "type": "git",
                    "reference": "master"
                }
            }
        }
    }
}

Ist dies der einzige Weg, um dies zum Laufen zu bringen? Es scheint ein bisschen übertrieben, meine eigene Datei packages.json zu hosten, wenn ich nur ein oder zwei interne Pakete verwende.

Ungeachtet dessen gibt mir dies den gleichen Git-Fehler, den ich zuvor erwähnt habe.

BEARBEITEN 2

Das Erzwingen eines Fehlers (ungültige SSH-Passphrase) lautet wie folgt:

[RuntimeException]
Failed to execute git clone "[repository URL]" "C:\workspace\DFv3\vendor\vendor/my-package" && cd /D "C:\workspace\DFv3\vendor\vendor/my-package" && git remote add composer "[repository URL]" && git fetch composer

So kann ich klar sehen, was es hier tut. Es scheint jedochnach dem Dieser Befehl führt es auscds in die.git Verzeichnis und versucht auszuführen:

git checkout "master" && git reset --hard "master"

Vermutlich, um die Komponisteninstanz loszuwerden, die sie gezogen hat. Es läuft jedoch im falschen Verzeichnis und ich kann nicht herausfinden, warum ..

Antworten auf die Frage(4)

Ihre Antwort auf die Frage