namelesscoder / typo3-repository-client
此软件包已被废弃,不再维护。未建议替代软件包。
与官方TYPO3扩展仓库(TER)交互的客户端。包含API和CLI脚本。
2.1.0
2021-09-02 09:12 UTC
Requires
- php: ^7.0
- ext-soap: *
Requires (Dev)
- mikey179/vfsstream: ~1.3.0
- phpunit/phpunit: ^6.5
- satooshi/php-coveralls: ^2.2
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_TOKEN
和TER_USERNAME
。有关获取令牌的更多信息,请参阅Tailor的文档。请注意,令牌有有限的有效期,需要刷新。)
此操作的好处是它 不会在CI管道中本地操作工件文件。相反,它将TER指向从GitHub生成的工件中读取文件,每次上传新标签时。如果您需要在发布前操作文件,例如删除某些文件,Thomas Norre提供了一个可替换的GitHub动作,它可以以这种方式工作:https://github.com/tomasnorre/typo3-upload-ter
有关Tailor的其他CI集成和手动使用说明,请参阅Tailor的文档。
再见了,感谢大家所有的支持! ;)
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发布版本中。