namelesscoder/typo3-repository-client

此软件包已被废弃,不再维护。未建议替代软件包。

与官方TYPO3扩展仓库(TER)交互的客户端。包含API和CLI脚本。

2.1.0 2021-09-02 09:12 UTC

This package is auto-updated.

Last update: 2023-02-10 15:28:08 UTC


README

已废弃!

这个库使用了早已弃用并已删除的SOAP API来访问TYPO3扩展仓库。 它已经不再工作!

该库已归档,不再接收更新。它仅保留在此处供后人参考。

替代方案

我推荐使用TYPO3的官方“Tailor”库:https://github.com/TYPO3/tailor

Tailor库允许您使用当前的REST API与TYPO3扩展仓库进行交互。您可以从本地机器或通过CI使用它。一个GitHub动作示例(例如作为.github/workflows/release.yml

on:
  push:
    tags:
      - "**"

jobs:
  release:
    runs-on: ubuntu-20.04
    steps:
      - name: Setup PHP
        uses: shivammathur/setup-php@v2
        with:
          php-version: 8.2
          extensions: mbstring, json
          ini-values: date.timezone="Europe/Copenhagen", opcache.fast_shutdown=0
          tools: composer:v2.2
      - name: "create working directory"
        run: "mkdir tailor"
      - name: "Install Tailor"
        working-directory: tailor
        run: "composer require typo3/tailor"
      - name: "Upload to TER"
        working-directory: tailor
        run: "./vendor/bin/tailor ter:publish $TAG $EXTENSION_KEY --artefact $ARTEFECT_URL --comment \"$MESSAGE\""
        env:
          TYPO3_API_USERNAME: ${{ secrets.TER_USERNAME }}
          TYPO3_API_TOKEN: ${{ secrets.TER_TOKEN }}
          TAG: ${{ github.ref_name }}
          EXTENSION_KEY: testing
          ARTEFECT_URL: "https://github.com/${{ github.repository }}/archive/${{ github.ref }}.zip"
          MESSAGE: "Automatic release built from GitHub. See the CHANGELOG.md file that is shipped with this release for details."

(需要在GitHub仓库中输入两个“秘密”;TER_TOKENTER_USERNAME。有关获取令牌的更多信息,请参阅Tailor的文档。请注意,令牌有有限的有效期,需要刷新。)

此操作的好处是它 不会在CI管道中本地操作工件文件。相反,它将TER指向从GitHub生成的工件中读取文件,每次上传新标签时。如果您需要在发布前操作文件,例如删除某些文件,Thomas Norre提供了一个可替换的GitHub动作,它可以以这种方式工作:https://github.com/tomasnorre/typo3-upload-ter

有关Tailor的其他CI集成和手动使用说明,请参阅Tailor的文档。

再见了,感谢大家所有的支持! ;)

Build Status Coverage Status

TYPO3扩展仓库(TER)客户端库和CLI命令

使用方法

每个可以执行的命令都有一个相应的类,例如 NamelessCoder\TYPO3RepositoryClient\Uploader 和一个作为该类包装器的CLI脚本。传递给每个CLI脚本的参数 必须是类的方法所需相同参数和相同的顺序

上传器

作为组件

$uploader = new \NamelessCoder\TYPO3RepositoryClient\Uploader();
$uploader->upload('/path/to/extension', 'myusername', 'mypassword', 'An optional comment');

和CLI命令

./bin/upload /path/to/extension myusername mypassword "An optional comment"

版本更新器(本地)

作为组件

$versioner = new \NamelessCoder\TYPO3RepositoryClient\Versioner();
$version = $versioner->read('/path/to/extension/');
$version[0] = '1.2.3';
$version[1] = 'beta';
$versioner->write('/path/to/extension/', '1.2.3', 'beta');

和CLI命令

# with all parameters
./bin/setversion 1.2.3 beta /optional/path/to/extension/
# without changing current stability:
./bin/setversion 1.2.3

版本删除器(仅管理员)

作为组件

$deleter = new \NamelessCoder\TYPO3RepositoryClient\VersionDeleter();
$deleter->deleteExtensionVersion('extensionkey', '1.2.3', 'myusername', 'mypassword');

和CLI命令

./bin/rmversion extensionkey 1.2.3 myusername mypassword

常见问题解答

排除的文件和文件夹

  • 点文件(如.editorconfig.php_cs.dist)将被忽略,除了.htpasswd.htaccess文件。
  • 使用.gitignore文件来排除更多文件和文件夹,使其不被包含在最终的TER发布版本中。