簡體   English   中英

Composer 無法克隆 git repo

[英]Composer failed to clone git repo

我正在嘗試在我的私人 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

因此,它似乎確實會檢查 repo 以獲取最新提交 (4d135f4b01dc896ffc722d8e24cc106d38cb4602) - 但克隆時失敗。

我可以手動克隆項目,所以它似乎不是權限:

git clone git.amh.net.au:/var/opt/gitlab/git-data/repositories/amh-framework/amh-framework.git

我能做些什么來解決這個問題?

根據作曲家的文檔,您只需要:

{
    "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"
        }
     ]
}

確保使用實際分支作為版本。

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 --------------^ Expecting 'EOF', '}', ',', '] ', 得到 ':'

錯誤:第 17 行解析錯誤:...k": "dev-develop", }} ----------------------^ 期待 'STRING',得到'}'

問題是由於存儲庫的排序 - 我們使用 satis 作為私有包服務器。 出於某種原因,satis 說 dev-master 分支可用,但不會正確提供它(盡管它適用於標簽)。

通過更改文件以便 git repo 列在 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"
    }
}

就我而言,這是因為我缺少 git 能夠獲取存儲庫的auth.json憑據,因為它們是私有的。

像:

{
  "github-oauth": {
    "github.com": "personal-access-key"
  }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM