webiny/github-subtree-tool

一个基于提供的父仓库自动更新只读github仓库的工具。

v1.0.4 2016-08-23 19:26 UTC

This package is not auto-updated.

Last update: 2024-09-14 16:55:35 UTC


README

此工具用于半自动管理依赖于提供的父仓库的只读git仓库。

安装

composer --global require webiny/github-subtree-tool

运行工具

只需从终端运行以下命令,然后按照流程操作

$ cd vendor/webiny/github-subtree-tool/
$ php cli.php

需求

配置

GIT_ACC

GIT_REPO

GIT_USER

  • 你的github用户名
  • 应该有对GIT_REPO的写访问权限

GIT_PASS

  • GIT_ACC的github密码

GIT_SUBTREE

  • 子树组件所在的路径,位于master仓库内
  • 示例:src/Webiny/Components

结构和仓库名称

最重要的要求之一是组件仓库名称与父仓库中的GIT_SUBTREE路径上的名称相匹配。

例如:https://github.com/Webiny/Framework/tree/master/src/Webiny/Component/**Annotations** 匹配:https://github.com/Webiny/**Annotations**

工具背后的故事

以我们的Webiny Framework为例。

Framework 仓库包含多个组件,如StorageEntityMailer等。

这些组件位于Framework仓库内的src/Webiny/Component下。

但这些组件也有自己的github仓库

这是因为这是一个模块化框架,意味着你可以使用任何组件而不必使用整个框架。而如今,安装PHP组件的最佳方式是通过composer,这意味着你需要为每个组件有一个单独的仓库。

我们总是在Framework仓库内进行开发,这意味着随着时间的推移,我们需要将更改同步到组件仓库中,包括创建分支、发布和更新composer.json文件。

我们创建了此工具来自动化这项工作。

工作原理

它首先从你的父仓库检出指定的分支,在我们的例子中是Framework仓库。

然后,它检查该仓库中包含哪些组件,在定义的路径下,在我们的例子中是src/Webiny/Components

之后,它会检出组件分支并将父仓库的更改复制过来。

最后,它在组件仓库和父仓库上创建所需的分支或标签。可选地,它还可以更新composer.json文件

安全性

此工具与你的github仓库进行通信,所以请确保你了解你在做什么。

为了安全起见,工具将在过程的最后要求你确认是否要推送所有更改。在此确认之前,不会对仓库进行任何更改。

错误和改进

只需在问题下报告它们,或者更好的是,发送一个pull request :)