Watches games for new releases of their dedicated game server clients and creates GitHub releases on a relevant repository.
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
app
bootstrap
config
database
infrastructure
public
resources/views
storage
tests
.dockerignore
.env.example
.gitignore
.travis.yml
README.md
artisan
composer.json
composer.lock
docker-compose.yml
phpunit.xml
test.sh

README.md

Game Watcher

Watches games for new releases of their dedicated game server clients and creates GitHub releases on a relevant repository.

Supported Games

Installation

  • Run the latest version's docker container

  • Set the following environment variables:

    • RELEASER_NAME & RELEASER_EMAIL - The github account that will be credited with releases
    • GITHUB_TOKEN - Token with access to create releases on the github repositories
    • PRIVATE_KEY - Used when interacting with GitHub repositories
    • Each of the game-specific environment variables listed below to signify the GitHub repository to attach releases for.

Factorio

  • FACTORIO_GITHUB_NAMESPACE
  • FACTORIO_GITHUB_REPOSITORY

Adding a game

  • Configure a GitHub "connection" for the game in config/github.php.
  • Configure a destination repository for new version release notifications and configure it within config/games.php with any additional game-specific configuration.
  • Add a namespace for the game under app/Games with a game file that's named after the namespace and implements the ReleasesVersions interface. Here's an example:
<?php

namespace App\Games\Factorio;

use App\Games\PublishesVersions;
use Illuminate\Support\Collection;

class Factorio extends PublishesVersions
{
    const NAME = 'factorio';

    /**
     * @return Version[]
     */
    public function unreleasedVersions() : Collection
    {
       // code to determine the unreleased versions
    }
    
    public function name() : string
    {
       return self::NAME;
    }
}