#php #svn #composer-php
#php #svn #composer-php
Вопрос:
Я новичок в Composer, я уже следил https://getcomposer.org/doc/05-repositories.md#subversion-options структура для создания примера с использованием Composer.
Однако я получаю следующее сообщение об ошибке с Composer и SVN при использовании команды composer install:
[InvalidArgumentException]
Не найден драйвер для обработки репозитория VCS http://myexamplesvn/MyCommon-1.0 /…..
Вот моя настройка:
"repositories": [
{
"type": "vcs",
"url": "http://myexamplesvn/MyCommon-1.0/"
}
],
"require": {
"my-common/my-common":"*"
}
Не могли бы вы предоставить мне какую-либо идею или предложение?
Ответ №1:
У меня была аналогичная проблема с репозиторием github при использовании адреса HTTPS:
{
"type": "vcs",
"url": "https://github.com:<user>/<repo>"
}
но использование .git
пути SSH сработало для меня:
{
"type": "vcs",
"url": "git@github.com:<user>/<repo>.git"
}
Если в используемом вами репозитории нет a composer.json
, то a composer.json
с таким кодом может работать:
"require": {
"<user>/<repo>": "dev-<branch>"
},
"repositories": [
{
"type": "package",
"package": {
"name": "<user>/<repo>",
"version": "dev-<branch>",
"dist": {
"url": "https://github.com/<user>/<repo>/archive/<branch>.zip",
"type": "zip"
}
}
}
]
Ответ №2:
Если вы извлекаете пакет локально, убедитесь, что
git init
и зафиксируйте
Ответ №3:
У этого может быть много разных возможностей, но это также случается, когда ваш репозиторий связан с закрытыми / открытыми ключами ssh, а ваш закрытый ключ не защищен. Решение состоит в том, чтобы установить его на 600, пример ниже:
sudo chmod 600 ~/.ssh/id_rsa
Ответ №4:
Как я только что узнал, другим источником этой проблемы могут быть просто права доступа к целевому репозиторию SVN.
У меня была следующая настройка в composer.json для подключения к репозиторию:
"repositories": [
{
"type": "vcs",
"url": "https://host.com/RepositoryName/",
"trunk-path": "trunk",
"branches-path": "branches",
"tags-path": "tags"
}
],
"http-basic": {
"host.com": {
"username": "(username)",
"password": "(password)"
}
},
"require": {
"company/project": "dev-branchname"
},
Проблема заключалась в том, что пользователь, определенный в разделе http-basic, не был авторизован для просмотра всего репозитория. Администратор SVN ограничил доступ только к целевой ветке.
Это, безусловно, крайний случай, но я считаю, что все же неплохо проверить права доступа к репозиторию, прежде чем пытаться искать более экзотические причины.