从 GitLab 安装自定义作曲器包



我创建了一个简单的测试wordpress插件。该插件由一个php文件(kreplach.php(和一个composer.json组成:

克雷普拉赫.php

<?php
    /*
    Plugin Name: kreplach
    Plugin URI: http://gitlab.example.com/sales/kreplach
    Description: just a test
    Author: Foo Bartok
    Version: 1.0
    Author URI: http://example.com
    */
?>

作曲家.json

{
    "license": "MIT",
    "name": "sales/kreplach",
    "type": "wordpress-plugin",
    "description": "just a test",
    "authors": [
        {
            "name": "Foo Bartok",
            "email": "foo@example.com",
            "homepage": "example.com"
        }
    ],
    "require": {
        "composer/installers": "*"
    }
}

在我的开发服务器上,我有以下作曲家.json

服务器的作曲家.json

{
    "repositories": [
        {
            "type": "composer",
            "url": "https://wpackagist.org"
        },
        {
            "type": "vcs",
            "url": "git@gitlab.example.com:sales/kreplach.git"
        }
    ],
    "require": {
        "php": ">=5.4",
        "wpackagist-plugin/akismet": "*",
        "wpackagist-plugin/contact-form-7": "*",
        "wpackagist-plugin/wordpress-importer": "*",
        "sales/kreplach": "master",
        "johnpbloch/wordpress": "4.*",
        "composer/installers": "*"
    },
    "extra": {
        "wordpress-install-dir": "wp"
    }
}

我认为应该发生什么:

  1. 作曲家在 git 存储库中查找 composer.json
  2. 作曲家匹配构建主机的 composer.json 中的名称"sales/kreplach">
  3. 作曲家将主分支的内容复制到我的构建主机上的wp-content/plugins/kreplach中。
  4. 我的假插件没有按照设计执行任何操作。

实际发生的情况:

苦涩,苦涩的失败。

Loading composer repositories with package information Updating dependencies (including require-dev)
Your requirements could not be resolved to an installable set of packages.
  Problem 1
    - The requested package sales/kreplach could not be found in any version, there may be a typo in the package name.
Potential causes:
 - A typo in the package name
 - The package is not available in a stable-enough version according to your minimum-stability setting
     see <https://getcomposer.org/doc/04-schema.md#minimum-stability> for more details.
Read <https://getcomposer.org/doc/articles/troubleshooting.md> for further common problems.

我已经测试了将sales/kreplach存储库克隆到我尝试安装插件的同一主机上。

为了确保作曲家实际上正在从 git 存储库中读取 composer.json 文件,我引入了一个错别字(是的,完全是故意的,就像(抛出了一个"嘿,这个 json 文件坏了,泡沫头"错误。

我的 gitlab 版本是综合版 8.6.4(今天安装(。

我已经成功地用pip/requirements完成了同样的技巧.txt安装自定义python模块,所以我并不习惯遵循指示。我是否错过了一个步骤,或者某种不明显的(至少对我来说(命名法?

2021 年更新,5 年后,自 GitLab 13.3(2020 年 8 月(以来,GitLab(即使在免费版中(也有一个包注册表,将 GitLab 建立为私有存储库。

您可以在其中发布 作曲家包,并使用 GitLab 13.11(2021 年 4 月(:

将 Composer v2 与 GitLab 包注册表一起使用

您可以使用 Composer 发布、共享 PHP 依赖项并将其下载到 GitLab 项目。六个月前,Composer 的新主要版本 (v2( 发布,其中包含各种更改,包括显著的性能改进、体系结构更新和运行时功能><。您可以在此处阅读有关更改的更多信息。

直到最近,你还无法利用这些改进,因为 GitLab 注册表不支持 Composer v2.
这阻止了你们中的一些人使用 GitLab 注册表。

作为 MVC,我们专注于添加对强制参数 metadata-URL 的支持。我们添加了一个新的端点GET group/:id/-/packages/composer/p2/:package_name,它返回存储库中所有包的元数据.
当 Composer 查找包时,它会将%package%替换为包名称并获取该 URL。

这意味着我们添加了一个新的端点GET group/:id/-/packages/composer/p2/:package_name它将返回存储库中所有包的元数据。

请注意,有两个参数被认为是可选的.
我们在添加对providers-apilist-api参数的支持方面存在问题。我们希望在即将到来的里程碑中优先考虑它们。

请参阅文档和问题。

并且(仍然是 GitLab 13.11,2021 年 4 月(:

从版本控制下载编辑器依赖项

下载 Composer 依赖项时,您有两个选项:sourcedist 。对于稳定版本,Composer 默认使用 dist 并将依赖项下载为zip文件。

但是,您也可以直接从版本控制.
下载它。如果启用了--prefer-source,Composer 会将依赖项下载为 Git 克隆,而不是打包的zip文件。

如果要为项目进行错误修复并直接获取依赖项的本地 Git 克隆,这将非常有用。

直到最近,在下载 Composer 依赖项时,您还无法使用 prefer-source 和相关preferred-install命令和配置.
这阻止了你们中的许多人将 GitLab 包注册表用于您的 Composer 依赖项。

我们很高兴地宣布,您现在可以从 source.
下载您的作曲家依赖项只需将 prefer-source 选项添加到安装命令中即可,如下所示:composer update --prefer-source .

请参阅文档和问题。

我没有使用过gitlab,但在Bitbucket和GitHub上用过这种方法。

您需要在服务器的 composer.json 中指定"sales/kreplach": "dev-master" - 请注意,分支名称必须以"dev-"为前缀。

显然,Composer 对 GitHub 和 BitBucket 有特殊的支持,而 Gitlab 可能不存在。因此,您可能需要将git指定为存储库类型,而不是vcs

祝你好运!

裁判:

  • https://lornajane.net/posts/2014/use-a-github-branch-as-a-composer-dependency
  • https://getcomposer.org/doc/05-repositories.md#vcs
  • https://getcomposer.org/doc/05-repositories.md#git-alternatives

相关内容

  • 没有找到相关文章

最新更新