Как я могу использовать Satis для распознавания моих релизов Gitlab вместо тегов? - PullRequest
1 голос
/ 14 января 2020

При наведении на репозиторий Gitlab в качестве удовлетворительного, он выбирает dist url, который отражает исходный URL, вместо того, чтобы находить Gitlab Release и использовать артефакт dist zip.

Допустим, ваше удовлетворительное. json выглядит следующим образом:

{
 "repositories": [
    { "type": "vcs", "url": "git@gitlab.com:group-name/project-name.git" },
  ],
  "require-all": true
}

Когда вы запускаете satis build satis.json, для удовлетворительного создается packages.json, который выглядит следующим образом:

{
    "packages": {
        "group-name/project-name": {
            "v1.0.1": {
                "name": "group-name/project-name",
                "version": "v1.0.1",
                "version_normalized": "1.0.1.0",
                "source": {
                    "type": "git",
                    "url": "git@gitlab.com:group-name/project-name.git",
                    "reference": "68da091ec3d6891e8519095a8066b28eb2261c20"
                },
                "dist": {
                    "type": "zip",
                    "url": "https://gitlab.com/api/v4/projects/group-name%2Fproject-name/repository/archive.zip?sha=68da091ec3d6891e8519095a8066b28eb2261c20",
                    "reference": "68da091ec3d6891e8519095a8066b28eb2261c20",
                    "shasum": ""
                },
                "require": {
                    "composer/installers": "v1.0.6"
                },
                "require-dev": {
                    "wp-coding-standards/wpcs": "^2.2"
                },
                "time": "2020-01-13T04:39:57+00:00",
                "type": "wordpress-plugin"
            }
    }
}

Проблема

dist.url - это просто вызов API для Gitlab, чтобы сгенерировать zip-файл файлов в том виде, в котором они появляются в репо git.

Но я тщательно строю zip-дистрибутив как часть моих сборок CI, который содержит минимизированные javascript, сгенерированные css, et c. Этот распространяемый zip-файл затем присоединяется к Gitlab Release в качестве артефакта.

Я хочу с удовольствием найти свой GitLab Release и использовать zip-артефакт в dist.url. В моем случае это будет выглядеть примерно так:

                "dist": {
                    "type": "zip",
                    "url": "https://gitlab.com/api/v4/projects/11301246/jobs/400678589/artifacts/project-name-1.0.1.zip",
                },
...