mirror of
https://github.com/pmmp/PocketMine-MP.git
synced 2025-06-07 12:18:46 +00:00
Ping Discord news subscribers on new releases
This commit is contained in:
parent
3aa40829ae
commit
87a2e0460c
11
.github/workflows/discord-release-embed.php
vendored
11
.github/workflows/discord-release-embed.php
vendored
@ -18,8 +18,9 @@ require dirname(__DIR__, 2) . '/vendor/autoload.php';
|
|||||||
/**
|
/**
|
||||||
* @phpstan-return array<string, mixed>
|
* @phpstan-return array<string, mixed>
|
||||||
*/
|
*/
|
||||||
function generateDiscordEmbed(string $version, string $channel, string $description, string $detailsUrl, string $sourceUrl, string $pharDownloadUrl, string $buildLogUrl) : array{
|
function generateDiscordEmbed(string $version, string $channel, string $description, string $detailsUrl, string $sourceUrl, string $pharDownloadUrl, string $buildLogUrl, int $newsPingRoleId) : array{
|
||||||
return [
|
return [
|
||||||
|
"content" => "<@&$newsPingRoleId> New PocketMine-MP release: $version ($channel)",
|
||||||
"embeds" => [
|
"embeds" => [
|
||||||
[
|
[
|
||||||
"title" => "New PocketMine-MP release: $version ($channel)",
|
"title" => "New PocketMine-MP release: $version ($channel)",
|
||||||
@ -35,11 +36,11 @@ DESCRIPTION,
|
|||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
if(count($argv) !== 5){
|
if(count($argv) !== 6){
|
||||||
fwrite(STDERR, "Required arguments: github repo, version, API token\n");
|
fwrite(STDERR, "Required arguments: github repo, version, API token, webhook URL, ping role ID\n");
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
[, $repo, $tagName, $token, $hookURL] = $argv;
|
[, $repo, $tagName, $token, $hookURL, $newsPingRoleId] = $argv;
|
||||||
|
|
||||||
$result = Internet::getURL('https://api.github.com/repos/' . $repo . '/releases/tags/' . $tagName, extraHeaders: [
|
$result = Internet::getURL('https://api.github.com/repos/' . $repo . '/releases/tags/' . $tagName, extraHeaders: [
|
||||||
'Authorization: token ' . $token
|
'Authorization: token ' . $token
|
||||||
@ -86,7 +87,7 @@ $buildLogUrl = $buildInfoJson["build_log_url"];
|
|||||||
|
|
||||||
$description = $releaseInfoJson["body"];
|
$description = $releaseInfoJson["body"];
|
||||||
|
|
||||||
$discordPayload = generateDiscordEmbed($buildInfoJson["base_version"], $buildInfoJson["channel"], $description, $detailsUrl, $sourceUrl, $pharDownloadUrl, $buildLogUrl);
|
$discordPayload = generateDiscordEmbed($buildInfoJson["base_version"], $buildInfoJson["channel"], $description, $detailsUrl, $sourceUrl, $pharDownloadUrl, $buildLogUrl, (int) $newsPingRoleId);
|
||||||
|
|
||||||
$response = Internet::postURL(
|
$response = Internet::postURL(
|
||||||
$hookURL,
|
$hookURL,
|
||||||
|
2
.github/workflows/discord-release-notify.yml
vendored
2
.github/workflows/discord-release-notify.yml
vendored
@ -35,4 +35,4 @@ jobs:
|
|||||||
run: echo ::set-output name=TAG_NAME::$(echo "${{ github.ref }}" | sed 's{^refs/tags/{{')
|
run: echo ::set-output name=TAG_NAME::$(echo "${{ github.ref }}" | sed 's{^refs/tags/{{')
|
||||||
|
|
||||||
- name: Run webhook post script
|
- name: Run webhook post script
|
||||||
run: php .github/workflows/discord-release-embed.php ${{ github.repository }} ${{ steps.tag-name.outputs.TAG_NAME }} ${{ github.token }} ${{ secrets.DISCORD_RELEASE_WEBHOOK }}
|
run: php .github/workflows/discord-release-embed.php ${{ github.repository }} ${{ steps.tag-name.outputs.TAG_NAME }} ${{ github.token }} ${{ secrets.DISCORD_RELEASE_WEBHOOK }} ${{ secrets.DISCORD_NEWS_PING_ROLE_ID }}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user