Composer无法克隆Git仓库。

5
我将会把这段内容翻译成中文:

我正在尝试获取我私有 GitLab 存储库中模块的开发版本。

根据 其他答案中所述,我的项目的 composer.json 文件如下:

{
    "repositories": [
        {
            "type": "composer",
            "url": "https://git.amh.net.au"
        },
        {
            "type": "package",
            "package": {
                "name": "amh-framework/amh-framework",
                "version": "dev-develop",
                "type": "package",
                "source": {
                    "url": "git.amh.net.au:/var/opt/gitlab/git-data/repositories/amh-framework/amh-framework.git",
                    "type": "git",
                    "reference": "master"
                }
            }
        }
    ],

    "require": {
        "amh-framework/amh-framework": "dev-develop",
    }
}

但是当我运行composer update时,它会抛出一个RuntimeException:

Failed to execute git clone --no-checkout '' '/var/checkouts/reports/reporter/vendor/amh-framework/amh-framework' && cd '/var/checkouts/reports/reporter/vendor/amh-framework/amh-framework' && git remote add composer '' && git fetch composer                                                                                                                                                                                                                                                

fatal: repository '' does not exist

composer update -vvv 的输出结果如下:

Resolving dependencies through SAT
Dependency resolution completed in 0.001 seconds
  - Installing amh-framework/amh-framework (dev-develop 4d135f4)
Executing command (CWD): git --version
    Cloning 4d135f4b01dc896ffc722d8e24cc106d38cb4602
Executing command (CWD): git clone --no-checkout '' '/var/checkouts/reports/reporter/vendor/amh-framework/amh-framework' && cd '/var/checkouts/reports/reporter/vendor/amh-framework/amh-framework' && git remote add composer '' && git fetch composer
Executing command (CWD): git --version
Failed: [RuntimeException] Failed to execute git clone --no-checkout '' '/var/checkouts/reports/reporter/vendor/amh-framework/amh-framework' && cd '/var/checkouts/reports/reporter/vendor/amh-framework/amh-framework' && git remote add composer '' && git fetch composer

fatal: repository '' does not exist

所以,它似乎会检查存储库以获取最新提交记录(4d135f4b01dc896ffc722d8e24cc106d38cb4602)- 但在克隆时失败了。
我可以手动克隆项目,因此看起来不是权限的问题:
git clone git.amh.net.au:/var/opt/gitlab/git-data/repositories/amh-framework/amh-framework.git

我该怎么做才能修复这个问题?


你的composer.json文件是否完整?因为将其验证为json文件时,我得到了两个错误。 - user2031271
现在我已经完全封闭了这个对象,它工作得更好了吗? - HorusKol
是的,在删除第17行末尾的逗号后,它可以正常工作。那么,为什么你的不起作用呢? - user2031271
1
如果我知道的话,我就不会在这里问了。 - HorusKol
4个回答

0
git clone ''
fatal: repository '' does not exist

看起来在上面的例子中,Composer 正试图克隆一个不存在的存储库。

git clone --no-checkout ---> '' <--- '/var/checkouts/reports/reporter/v...

所以也许你的 composer.json 文件中的某个 url 是空的。

此外,我在上面的 composer.json 文件中发现了至少两个问题。

错误:第 1 行解析错误:"repositories": [{ "type": "packa --------------^ 预期 'EOF'、'}'、',' 或 ']',但得到了 ':'

错误:第 17 行解析错误:...k": "dev-develop", }} ----------------------^ 预期 'STRING',但得到了 '}'


0
根据composer文档,你所需的全部内容只有:
{
    "require": {
        "amh-framework/amh-framework": "dev-develop"
    },
    "repositories": [ 
        {
            "type": "vcs",
            "url": "git@git.amh.net.au:/var/opt/gitlab/git-data/repositories/amh-framework/amh-framework.git"
        }
     ]
}

请确保使用实际的分支版本。


我仍然收到错误提示 - 这是我最初尝试的内容。在阅读其他人在这里提出的问题后,我才尝试了当前的方法。 - HorusKol

0
问题是由于存储库的排序 - 我们使用Satis作为私有软件包服务器。由于某种原因,Satis表示可用dev-master分支,但无法正确提供它(尽管对标签有效)。
通过更改文件,使得Git存储库在Satis之前列出,问题得以解决:
{
    "repositories": [
        {
            "type": "vcs",
            "url": "git@git.amh.net.au:amh-framework/amh-test.git"
        },
        {
            "type": "composer",
            "url": "https://svn.amh.net.au:8002"
        }
    ],
    "require": {
        "amh-framework/amh-test": "dev-master"
    }
}

0
在我的情况下,这是因为我缺少了auth.json凭据,以便Git能够获取私有存储库。
{
  "github-oauth": {
    "github.com": "personal-access-key"
  }
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接