定制 flashtag/subsplit-service 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

flashtag/subsplit-service

最新稳定版本:v0.3.1

Composer 安装命令:

composer create-project flashtag/subsplit-service

包简介

Flashtag services...

README 文档

README

version license

Webhook and Scheduler

Have you ever wanted to split some of your code from your project into components... maybe read-only github repositories like Symfony and Laravel?

Well, I certainly did. It took me a while to find a good way to do it and now I'm going to help you do the same. This subsplit project will help you to automate the process with webhooks and/or scheduled commands.

Webhooks

git push webhook that runs the subtree split command from a github, bitbucket, or gitlab webhook

Scheduled commands

A flashtag:subsplit command will run the subtree split command and publish to the subtree repositories.

Install

Install with composer:

composer create-project flashtag/subsplit-service --prefer-dist

From the project directory:

cd .git-subsplit; ./install.sh

Setup

Edit the build/flashtag-subsplit.sh file to match your repo, and this package should actually just work almost out-of-the-box for your own repos as well.

git subsplit init git@github.com:flashtag/flashtag.git
git subsplit publish --heads="master" app/Admin:git@github.com:flashtag/admin.git
git subsplit publish --heads="master" app/Api:git@github.com:flashtag/api.git
git subsplit publish --heads="master" app/Client:git@github.com:flashtag/client.git
git subsplit publish --heads="master" app/Cms:git@github.com:flashtag/cms.git
git subsplit publish --heads="master" app/Data:git@github.com:flashtag/data.git
rm -rf .subsplit/

Would change to look like:

git subsplit init git@github.com:Foobar/Parent.git
git subsplit publish --heads="master" src/One:git@github.com:Foobar/one.git
git subsplit publish --heads="master" src/Two:git@github.com:Foobar/two.git
git subsplit publish --heads="master" src/Three:git@github.com:Foobar/three.git
# . . .
# etc.
# . . .
rm -rf .subsplit/

For webhooks:

Copy the example environment file cp .env.example .env and change the appropriate properties.

Uncomment the line corresponding to the service you are using to send the webhook in app/Http/routes/php and comment out any you aren't using.

Currently, the gitlab route is commented out by default because I don't know of any way to validate the request.

// Github
$app->post('github', [
    'middleware' => 'github',
    'uses' => 'App\Http\Controllers\WebhooksController@push',
]);

// Bitbucket
$app->post('bitbucket', [
    'middleware' => 'bitbucket',
    'uses' => 'App\Http\Controllers\WebhooksController@push',
]);

// // Gitlab
// $app->post('gitlab', [
//     'middleware' => 'gitlab',
//     'uses' => 'App\Http\Controllers\WebhooksController@push',
// ]);
GITHUB

The WEBHOOK_SECRET is what you will also set the secret property to in the github webhook setup:

Github add webhook

Your github push webhook payload url path is /webhooks/github so an example webhook url would look something like https://subsplit.whateveryourdomain.com/webhooks/github

BITBUCKET

Your bitbucket push webhook url path is /webhooks/bitbucket so an example webhook url would look something like https://subsplit.whateveryourdomain.com/webhooks/bitbucket

GITLAB

Your gitlab push webhook url path is /webhooks/gitlab so an example webhook url would look something like https://subsplit.whateveryourdomain.com/webhooks/gitlab

For the scheduled command:

You can either use the scheduler as lumen intended in the app/Console/Kernel, by setting up this cron job:

* * * * * php /path/to/project/artisan schedule:run

or schedule the command yourself. For my own project, I've set up this cron job to just execute this every night:

0 0 * * * php /path/to/project/artisan flashtag:subsplit

Powered by

Sometimes re-inventing the wheel is a good idea and sometimes you have great packages like:

统计信息

  • 总下载量: 25
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 39
  • 点击次数: 0
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 38
  • Watchers: 4
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2015-11-06