【问题标题】:Load composer package from private gitlab从私有 gitlab 加载 composer 包
【发布时间】:2018-02-20 23:33:47
【问题描述】:

在我的作曲家设置中,我从 2 个存储库加载包。一个作曲家回购和一个私人 gitlab 回购。当我尝试在本地 Windows 机器上安装 composer 时,我收到以下错误消息:

GitLab:找不到您要查找的项目。致命的: 无法从远程存储库中读取。请确保您拥有 正确的访问权限和存储库存在。 ...所要求的 在任何版本中都找不到包 sv-test/testextension,有 可能是包名中的拼写错误。

身份验证是通过本地 ssh-key 和密码完成的,t seem to be the problem. Whats 我的设置有问题吗?

项目的composer.json长这样:

{
    "repositories": [
        {
            "type": "composer",
            "url": "https://composer.typo3.org/"
        },
        {
            "type": "git",
            "url": "git@gitlab.xydevbox.de:sv-test/Testproject.git"
        }
    ],
    "name": "svdev/master-dev-box",
    "description": "",
    "type": "project",
    "license": "MIT",
    "homepage": "https://www.xydevbox.de/",
    "authors": [
        {
            "name": "Sacha Vorbeck",
            "email": "sacha.vorbeck@xydevbox.de",
            "homepage": "https://www.xydevbox.de/",
            "role": "Developer"
        }
    ],
    "require": {
        "sv-testbox/testextension": "*",
        "helhum/typo3-console": "^4.5",
        "typo3/cms": "^8.7"
    },
    "config": {
        "sort-packages": true,
        "process-timeout": 2000,
        "preferred-install": {
            "typo3/cms": "source",
            "*": "dist"
        }
    },
    "extra": {
        "typo3/cms": {
            "cms-package-dir": "{$vendor-dir}/typo3/cms",
            "web-dir": "web"
        }
    }
}

要从 gitlab 私有仓库中包含的包中的 composer.json 如下所示:

{
  "name": "sv-testbox/testextension",
  "type": "typo3-cms-extension",
  "description": "",
  "homepage": "https://www.xydevbox.de/",
  "license": ["GPL-2.0+"],
  "keywords": ["TYPO3 CMS"],
  "version": "master",
  "dist": {
    "url": "git@gitlab.xydevbox.de:sv-test/Testproject.git",
    "type": "git"
  }
}

【问题讨论】:

标签: json git composer-php typo3


【解决方案1】:

谢谢 Georg 和 NextThursday。在 TYPO3 slack 上的一些帮助下,我终于让它运行起来了。更换零件丢失。我还了解到,不应手动编辑 composer.json 文件 - 始终使用命令行选项来修改它。这个例子:https://github.com/TYPO3-Console/TYPO3-Console/blob/master/composer.json 也很有帮助。

项目composer.json:

{
    "repositories": [
        {
            "type": "composer",
            "url": "https://composer.typo3.org/"
        },
        {
            "type": "vcs",
            "url": "https://github.com/svorbeck/masterconfig"
        }
    ],
    "name": "svorbeck/demo",
    "description": "",
    "type": "project",
    "license": "MIT",
    "homepage": "https://xydevbox.de/",
    "authors": [
        {
            "name": "Sacha Vorbeck",
            "email": "sacha.vorbeck@xydevbox.de",
            "role": "Developer"
        }
    ],
    "require": {
        "svorbeck/masterconfig": "dev-master",
        "typo3/cms": "^8.7"
    },
    "config": {
        "sort-packages": true,
        "process-timeout": 2000,
        "preferred-install": {
            "typo3/cms": "source",
            "svorbeck/masterconfig": "source",
            "*": "dist"
        }
    },
    "extra": {
        "typo3/cms": {
            "cms-package-dir": "{$vendor-dir}/typo3/cms",
            "web-dir": "web"
        },
        "helhum/typo3-console": {
            "install-extension-dummy": "0"
        }
    }
}

ext composer.json:

{
    "name": "svorbeck/masterconfig",
    "type": "typo3-cms-extension",
    "description": "svorbeck master configuration",
    "require": {
        "typo3/cms-core": "^8.7"
    },
    "replace": {
        "masterconfig": "self.version",
        "svorbeck/masterconfig": "self.version"
    }
}

【讨论】:

    【解决方案2】:

    如果您查看发行说明,也许最新的 composer 版本 1.5.2 适合您

    • 修复了 GitLabDriver 在某些情况下无限循环的问题
    • 已修复 GitLabDriver 支持未经身份验证的请求
    • 修复了 GitLab 压缩包 如果未经身份验证,下载不会触发凭据提示
    • 已修复 COMPOSER_ROOT_VERSION 的路径存储库支持,它现在适用于 同一 git 存储库中的所有路径存储库
    • 固定路径存储库 处理副本以避免复制 VCS 文件和其他文件
    • 已修复 子目录调用也忽略 list 和 create-project 命令 使用 --working-dir 调用 Composer
    • 修复了无效警告 在不稳定的包上调用 remove 时出现

    https://github.com/composer/composer/releases

    【讨论】:

    • 谢谢,我已经运行了最新版本。同时,我发现有一种类型“gitlab”可以用来代替“git”。我还在这里找到了一些有用的信息:stackoverflow.com/questions/34784809/… 现在 git 的扩展名被复制到供应商目录,但没有复制到 web/typo3conf/ext/ 中。我是否必须为此进行配置?
    • 通常类型“typo3-cms-extension”负责将包复制到typo3conf/ext/
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-05-27
    • 1970-01-01
    • 2016-07-25
    • 2023-02-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-12
    相关资源
    最近更新 更多