rohsyl/github-auto-release

该包已被废弃,不再维护。未建议替代包。
关于该包最新版本(v0.0.1)没有可用的许可信息。

一个用于自动创建应用更新仓库的github webhook

v0.0.1 2019-04-16 11:51 UTC

This package is auto-updated.

Last update: 2023-07-17 00:51:52 UTC


README

该库的目的是帮助您为您的应用构建一个更新服务器,并自动化新版本的应用发布。

让我们想象您有一个Web服务器(https://update.yourdomain.tld)并且您想要提供一个包含有关应用最新发布信息的current.json文件。

但是您是一个懒惰的人,不想手动完成。

使用Github Auto Release,它将自动完成。您只需配置一个webhook,然后在github上创建您的发布,然后.json文件将自动生成。

current.json示例

{
  "name": "My amazing release - v1.0.3",
  "version": "v1.0.3",
  "archive": "https://api.github.com/repos/rohsyl/github-auto-release/zipball/v0.0.1",
  "description": "A brief description of the release",
  "url": "https://github.com/rohsyl/github-auto-release/releases/tag/v0.0.1"
}

创建webhook

前往您的github仓库并转到设置 > Webhooks。

然后创建一个新的webhook。

负载URL设置为您的Web服务器URL(推荐使用SSL)。

内容类型设置为application/json

使用一个漂亮的随机令牌设置密钥。不要忘记它,因为我们还需要它来配置应用程序。

您希望触发此webhook的事件设置为仅releases

勾选激活复选框并保存。

安装

要安装此库,请在您的服务器上运行以下命令。

composer require rohsyl/github-auto-release

配置

如果不存在,请在项目根目录下创建一个.env文件。

并设置以下值

ENABLE_DEBUG=true

GITHUB_SECRET_TOKEN=...

LOG_PATH=logs/app.log

JSON_VERSION_PATH=./

ENABLE_DEBUG定义是否启用或禁用调试。

GITHUB_SECRET_TOKEN是在创建github webhook时定义的密钥。

LOG_PATH是日志文件的路径。此条目是可选的。默认情况下日志位于logs/app.log下。

JSON_VERSION_PATH是存储有关每个发布的json文件的路径。此条目是可选的。默认情况下文件存储在当前目录下。

基本应用

创建一个包含以下内容的index.php文件

<?php
require __DIR__ . '/vendor/autoload.php';

use rohsyl\GithubAutoRelease\AutoRelease;

define('ROOT', __DIR__);

$autorelease = new AutoRelease(ROOT);
$autorelease->handle();

测试webhook

要测试webhook,可以在github上发送测试有效负载。

前往您的github仓库,转到设置 > Webhooks > 编辑您的webhook。

在页面底部有一个包含所有已发送有效负载的列表。点击...显示有效负载的详细信息,然后点击重新发送以再次发送并测试。

享受吧!

现在Github Auto Release运行良好后,您可以想象通过在项目中创建一些函数来扩展它,这些函数将请求https://update.yourdomain.tld/current.json来获取有关项目最新版本的信息。然后您可以下载archive并将其本地解压。然后您可以替换所有文件为存档中的文件。

如果您在使用Laravel,也可以使用这个库 rohsyl/laraupdater