Pakiety prywatnego kompozytora - nie znaleziono poprawnego composer.json

Próbuję załadować bibliotekę, którą hostowałem w BitBucket, używając kompozytora, jak wyjaśniono woficjalna dokumentacja itutaj, ale otrzymuj następujący błąd:

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

Tutaj jest mójprojekt composer.json:

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

A oto composer.json w moim zdalnym repozytorium (którego najwyraźniej nie można znaleźć):

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

Powinienem wspomnieć, że oba pliki composer.json znajdują się w katalogu głównym, tak jak powinny być.

Kilka innych rzeczy do odnotowania:

Próbowałem również podejścia „pakietu nie-kompozytorskiego”, w którym określam informacje o pakiecie w moim projekcie kompozytor.json i pomijam kompozytor.json z mojego zdalnego repozytorium, jak opisano wdokumentacja. Powoduje to sklonowanie gałęzi głównej, ale powoduje następujący błąd:

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

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

Jednak pakiet jest pobierany do / dostawcy zgodnie z oczekiwaniami, więc nie jestem pewien, dlaczego próbuje ponownie pobrać master.

Nie jest to sposób, w jaki chciałbym rozwiązać ten problem (wolałbym skorzystać z composer.json w zdalnym repozytorium), ale może pomóc w zidentyfikowaniu problemu w innym miejscu.

Dzięki za pomoc.

EDYTOWAĆ

Udało mi się go uruchomić, odwołując się do pakietu.json przez HTTP:

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

Wygląda na to, że pakiety package.json:

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

Czy to jedyny sposób, aby to zadziałało? Hostowanie własnego pliku packages.json wydaje się nieco przesadne, jeśli będę używać tylko jednego lub dwóch pakietów wewnętrznych.

Niezależnie od tego, daje mi to taki sam błąd Git, jak wcześniej wspomniałem.

EDYCJA 2

Wymuszenie błędu (nieprawidłowe hasło SSH) daje to:

[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

Widzę więc wyraźnie, co tutaj robi. Wydaje się jednakpo to polecenie uruchamia tocds do.git katalog i próby uruchomienia:

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

Przypuszczalnie, aby pozbyć się instancji kompozytora, którą pociągnął. Jednak uruchamia to w niewłaściwym katalogu i nie mogę zrozumieć, dlaczego ..

questionAnswers(4)

yourAnswerToTheQuestion