diff --git a/.codacy.yml b/.codacy.yml
deleted file mode 100644
index a44432b..0000000
--- a/.codacy.yml
+++ /dev/null
@@ -1,4 +0,0 @@
----
-exclude_paths:
- - '*.md'
- - '**/tests/**'
diff --git a/.gitattributes b/.gitattributes
index 28e0dea..6ac0710 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -2,9 +2,9 @@
# https://www.kernel.org/pub/software/scm/git/docs/gitattributes.html
# Ignore all test and documentation with "export-ignore".
-/.gitattributes export-ignore
-/.gitignore export-ignore
-/phpunit.xml.dist export-ignore
-/.styleci.yml export-ignore
-/tests export-ignore
-/.editorconfig export-ignore
+/.gitattributes export-ignore
+/.gitignore export-ignore
+/phpunit.xml.dist export-ignore
+/.styleci.yml export-ignore
+/tests export-ignore
+/.editorconfig export-ignore
diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml
deleted file mode 100644
index 547e061..0000000
--- a/.github/FUNDING.yml
+++ /dev/null
@@ -1 +0,0 @@
-github: codedge
diff --git a/.github/dependabot.yml b/.github/dependabot.yml
deleted file mode 100644
index e843796..0000000
--- a/.github/dependabot.yml
+++ /dev/null
@@ -1,29 +0,0 @@
-version: 2
-
-updates:
-
- # Update to composer packages
- - package-ecosystem: "composer"
- commit-message:
- include: "scope"
- prefix: "composer"
- directory: "/"
- labels:
- - "dependency"
- open-pull-requests-limit: 10
- schedule:
- interval: "daily"
- versioning-strategy: "increase"
-
- # Workflow files stored in the
- - package-ecosystem: "github-actions"
- commit-message:
- include: "scope"
- prefix: "github-actions"
- # default location of `.github/workflows`
- directory: "/"
- labels:
- - "dependency"
- open-pull-requests-limit: 10
- schedule:
- interval: "daily"
\ No newline at end of file
diff --git a/.github/workflows/auto-merge.yml b/.github/workflows/auto-merge.yml
deleted file mode 100644
index 51412ff..0000000
--- a/.github/workflows/auto-merge.yml
+++ /dev/null
@@ -1,31 +0,0 @@
-name: Auto merge
-
-on:
- workflow_run:
- types:
- - completed
- workflows:
- - 'Tests'
-
-jobs:
- merge-me:
- name: Auto merge
-
- runs-on: ubuntu-latest
-
- steps:
- - name: Auto merge
- if: ${{ github.event.workflow_run.conclusion == 'success' }}
- uses: ridedott/merge-me-action@v2
- with:
- # Depending on branch protection rules, a manually populated
- # `GITHUB_TOKEN_WORKAROUND` secret with permissions to push to
- # a protected branch must be used.
- #
- # When using a custom token, it is recommended to leave the following
- # comment for other developers to be aware of the reasoning behind it:
- #
- # This must be used as GitHub Actions token does not support pushing
- # to protected branches.
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- PRESET: DEPENDABOT_MINOR
diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml
deleted file mode 100644
index 2a8f2e3..0000000
--- a/.github/workflows/tests.yml
+++ /dev/null
@@ -1,58 +0,0 @@
-name: Tests
-on: [push]
-jobs:
- run:
- runs-on: ubuntu-latest
- strategy:
- matrix:
- php: ['8.1', '8.2']
- laravel: [10.*]
- dependency-version: [prefer-stable]
- include:
- - laravel: 10.*
- testbench: 8.*
- name: P${{ matrix.php }} - L${{ matrix.laravel }} - ${{ matrix.dependency-version }}
- steps:
- - name: Checkout code
- uses: actions/checkout@v4
-
- - name: Setup PHP
- uses: shivammathur/setup-php@2.27.0
- with:
- php-version: ${{ matrix.php }}
- extensions: mbstring, intl, json, zip
- coverage: xdebug
-
- - name: Get Composer Cache Directory
- id: composer-cache
- run: echo "::set-output name=dir::$(composer config cache-files-dir)"
-
- - name: Cache dependencies
- uses: actions/cache@v3
- with:
- path: ~/.composer/cache/files
- key: dependencies-laravel-${{ matrix.laravel }}-php-${{ matrix.php }}-composer-${{ hashFiles('composer.json') }}
-
- - name: Install dependencies
- run: |
- composer require "laravel/framework:${{ matrix.laravel }}" "orchestra/testbench:${{ matrix.testbench }}" --no-interaction --no-update
- composer update --${{ matrix.dependency-version }} --prefer-dist --no-interaction
- env:
- APP_ENV: testing
-
- - name: Run PHPStan
- run: ./vendor/bin/phpstan
-
- - name: Run tests
- run: ./vendor/bin/phpunit
- env:
- APP_ENV: testing
-
- - uses: codecov/codecov-action@v3
- name: Push coverage to codecov
- with:
- token: ${{ secrets.CODECOV_TOKEN }}
- file: ./clover.xml
- flags: unittests
- name: codecov-umbrella
- fail_ci_if_error: true
diff --git a/.gitignore b/.gitignore
index 97b99ee..ff1ef40 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,5 +1,4 @@
build
clover.xml
-composer.lock
vendor
.phpunit.result.cache
diff --git a/.styleci.yml b/.styleci.yml
deleted file mode 100644
index b27b2c2..0000000
--- a/.styleci.yml
+++ /dev/null
@@ -1,6 +0,0 @@
-preset: recommended
-risky: true
-version: 8.0
-enabled:
- - declare_strict_types
- - no_superfluous_phpdoc_tags
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
deleted file mode 100644
index eab57ce..0000000
--- a/CONTRIBUTING.md
+++ /dev/null
@@ -1,14 +0,0 @@
-# Contributing
-
-Contributions are welcome, and are accepted via pull requests.
-Please review these guidelines before submitting any pull requests.
-
-- Please follow the [PSR-2 Coding Standard](https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-2-coding-style-guide.md)
- and [PHP-FIG Naming Conventions](https://github.com/php-fig/fig-standards/blob/master/bylaws/002-psr-naming-conventions.md).
-- Remember to follow [SemVer](http://semver.org). If you are changing the behavior,
- or the public api, you may need to update the docs.
-- Make sure that the current tests pass, and if you have added something new, add the tests where relevant.
-- Send a coherent commit history, making sure each individual commit in your pull request is meaningful. If you had to make multiple intermediate commits while developing, please [squash](http://git-scm.com/book/en/Git-Tools-Rewriting-History) them before submitting.
-- You may also need to [rebase](http://git-scm.com/book/en/Git-Branching-Rebasing) to avoid merge conflicts.
-
-StyleCI is set up to automatically check and fix any code style issues.
diff --git a/README.md b/README.md
index 796d042..87592af 100644
--- a/README.md
+++ b/README.md
@@ -1,12 +1,5 @@
# Laravel Application Self-Updater
-[![Latest Stable Version](https://poser.pugx.org/codedge/laravel-selfupdater/v/stable?format=flat-square)](https://packagist.org/packages/codedge/laravel-selfupdater)
-[![Total Downloads](https://poser.pugx.org/codedge/laravel-selfupdater/downloads?format=flat-square)](https://packagist.org/packages/codedge/laravel-selfupdater)
-[![](https://github.com/codedge/laravel-selfupdater/workflows/Tests/badge.svg)](https://github.com/codedge/laravel-selfupdater/actions)
-[![StyleCI](https://styleci.io/repos/64463948/shield)](https://styleci.io/repos/64463948)
-[![Codacy Badge](https://api.codacy.com/project/badge/Grade/dd836e58656b4e25b34b2a4ac8197142)](https://www.codacy.com/app/codedge/laravel-selfupdater?utm_source=github.com&utm_medium=referral&utm_content=codedge/laravel-selfupdater)
-[![codecov](https://codecov.io/gh/codedge/laravel-selfupdater/branch/master/graph/badge.svg)](https://codecov.io/gh/codedge/laravel-selfupdater)
-
This package provides some basic methods to implement a self updating
functionality for your Laravel application.
@@ -18,14 +11,14 @@ functionality for your Laravel application.
- Http-based archives
Usually you need this when distributing a self-hosted Laravel application
-that needs some updating mechanism without [Composer](https://getcomposer.org/).
+that needs some updating mechanism without Composer.
## Install
-To install the latest version from the master using [Composer](https://getcomposer.org/):
+To install the latest version from the master using Composer:
```sh
-$ composer require codedge/laravel-selfupdater
+$ composer require qopiku/laravel-selfupdater
```
## Configuration
@@ -33,7 +26,7 @@ $ composer require codedge/laravel-selfupdater
After installing the package you need to publish the configuration file via
```sh
-$ php artisan vendor:publish --provider="Codedge\Updater\UpdaterServiceProvider"
+$ php artisan vendor:publish --provider="Qopiku\Updater\UpdaterServiceProvider"
```
**Note:** Please enter correct value for vendor and repository name in your `config/self-updater.php` if you want to use Github as source for your updates.
@@ -111,11 +104,9 @@ a `private_access_token` field, where you can set the token.
To start an update process, i. e. in a controller, just use:
```php
-Route::get('/', function (\Codedge\Updater\UpdaterManager $updater) {
-
+Route::get('/', function (\Qopiku\Updater\UpdaterManager $updater) {
// Check if new version is available
if($updater->source()->isNewVersionAvailable()) {
-
// Get the current installed version
echo $updater->source()->getVersionInstalled();
@@ -127,11 +118,9 @@ Route::get('/', function (\Codedge\Updater\UpdaterManager $updater) {
// Run the update process
$updater->source()->update($release);
-
} else {
echo "No new version available.";
}
-
});
```
@@ -152,7 +141,7 @@ This is the default. Updates will be fetched by using a tagged commit, aka relea
#### Branch-based updates
-Select the branch that should be used via the `use_branch` setting [inside the configuration](https://github.com/codedge/laravel-selfupdater/blob/master/config/self-update.php).
+Select the branch that should be used via the `use_branch` setting [inside the configuration](https://github.com/qopiku/laravel-selfupdater/blob/master/config/self-update.php).
```php
// ...
diff --git a/composer.json b/composer.json
index 966e629..643b577 100644
--- a/composer.json
+++ b/composer.json
@@ -1,5 +1,5 @@
{
- "name": "codedge/laravel-selfupdater",
+ "name": "qopiku/laravel-selfupdater",
"description": "Providing an auto-updating functionality for your self-hosted Laravel application.",
"license": "MIT",
"keywords": [
@@ -21,31 +21,22 @@
}
],
"support": {
- "issues": "https://github.com/codedge/laravel-selfupdater/issues",
- "source": "https://github.com/codedge/laravel-selfupdater"
+ "issues": "https://github.com/qopiku/laravel-selfupdater/issues",
+ "source": "https://github.com/qopiku/laravel-selfupdater"
},
"require": {
"php": "^8.1",
"ext-json": "*",
"ext-zip": "*",
- "guzzlehttp/guzzle": "^7.5.0",
- "illuminate/support": "^10",
- "league/uri": "~6.7 || ~6.8",
- "phpstan/extension-installer": "^1.2",
- "phpstan/phpstan-phpunit": "^1.2"
- },
- "require-dev": {
- "dg/bypass-finals": "^1.4",
- "mikey179/vfsstream": "^1.6",
- "mockery/mockery": "^1.5",
- "orchestra/testbench": "^8.1",
- "phpunit/phpunit": "^9.5.26"
+ "guzzlehttp/guzzle": "^7.2",
+ "illuminate/support": "^10.0",
+ "league/uri": "^7.0"
},
"minimum-stability": "dev",
"prefer-stable": true,
"autoload": {
"psr-4": {
- "Codedge\\Updater\\": "src/"
+ "Qopiku\\Updater\\": "src/"
},
"files": [
"src/helpers.php"
@@ -53,29 +44,23 @@
},
"autoload-dev": {
"psr-4": {
- "Codedge\\Updater\\Tests\\": "tests/"
+ "Qopiku\\Updater\\Tests\\": "tests/"
}
},
"config": {
"allow-plugins": {
- "ergebnis/composer-normalize": true,
- "phpstan/extension-installer": true
+ "ergebnis/composer-normalize": true
},
"sort-packages": true
},
"extra": {
"laravel": {
"aliases": {
- "Updater": "Codedge\\Updater\\UpdaterFacade"
+ "Updater": "Qopiku\\Updater\\UpdaterFacade"
},
"providers": [
- "Codedge\\Updater\\UpdaterServiceProvider"
+ "Qopiku\\Updater\\UpdaterServiceProvider"
]
}
- },
- "scripts": {
- "phpstan": "./vendor/bin/phpstan",
- "test": "./vendor/bin/phpunit",
- "test-coverage": "XDEBUG_MODE=coverage ./vendor/bin/phpunit --coverage-html=build/coverage-html"
}
}
diff --git a/composer.lock b/composer.lock
new file mode 100644
index 0000000..a106f33
--- /dev/null
+++ b/composer.lock
@@ -0,0 +1,1885 @@
+{
+ "_readme": [
+ "This file locks the dependencies of your project to a known state",
+ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
+ "This file is @generated automatically"
+ ],
+ "content-hash": "ef197af977a9f0f261c71d304bc7c127",
+ "packages": [
+ {
+ "name": "carbonphp/carbon-doctrine-types",
+ "version": "3.2.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/CarbonPHP/carbon-doctrine-types.git",
+ "reference": "18ba5ddfec8976260ead6e866180bd5d2f71aa1d"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/CarbonPHP/carbon-doctrine-types/zipball/18ba5ddfec8976260ead6e866180bd5d2f71aa1d",
+ "reference": "18ba5ddfec8976260ead6e866180bd5d2f71aa1d",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^8.1"
+ },
+ "conflict": {
+ "doctrine/dbal": "<4.0.0 || >=5.0.0"
+ },
+ "require-dev": {
+ "doctrine/dbal": "^4.0.0",
+ "nesbot/carbon": "^2.71.0 || ^3.0.0",
+ "phpunit/phpunit": "^10.3"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Carbon\\Doctrine\\": "src/Carbon/Doctrine/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "KyleKatarn",
+ "email": "kylekatarnls@gmail.com"
+ }
+ ],
+ "description": "Types to use Carbon in Doctrine",
+ "keywords": [
+ "carbon",
+ "date",
+ "datetime",
+ "doctrine",
+ "time"
+ ],
+ "support": {
+ "issues": "https://github.com/CarbonPHP/carbon-doctrine-types/issues",
+ "source": "https://github.com/CarbonPHP/carbon-doctrine-types/tree/3.2.0"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/kylekatarnls",
+ "type": "github"
+ },
+ {
+ "url": "https://opencollective.com/Carbon",
+ "type": "open_collective"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/nesbot/carbon",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-02-09T16:56:22+00:00"
+ },
+ {
+ "name": "doctrine/inflector",
+ "version": "2.0.10",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/doctrine/inflector.git",
+ "reference": "5817d0659c5b50c9b950feb9af7b9668e2c436bc"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/doctrine/inflector/zipball/5817d0659c5b50c9b950feb9af7b9668e2c436bc",
+ "reference": "5817d0659c5b50c9b950feb9af7b9668e2c436bc",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.2 || ^8.0"
+ },
+ "require-dev": {
+ "doctrine/coding-standard": "^11.0",
+ "phpstan/phpstan": "^1.8",
+ "phpstan/phpstan-phpunit": "^1.1",
+ "phpstan/phpstan-strict-rules": "^1.3",
+ "phpunit/phpunit": "^8.5 || ^9.5",
+ "vimeo/psalm": "^4.25 || ^5.4"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Doctrine\\Inflector\\": "lib/Doctrine/Inflector"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Guilherme Blanco",
+ "email": "guilhermeblanco@gmail.com"
+ },
+ {
+ "name": "Roman Borschel",
+ "email": "roman@code-factory.org"
+ },
+ {
+ "name": "Benjamin Eberlei",
+ "email": "kontakt@beberlei.de"
+ },
+ {
+ "name": "Jonathan Wage",
+ "email": "jonwage@gmail.com"
+ },
+ {
+ "name": "Johannes Schmitt",
+ "email": "schmittjoh@gmail.com"
+ }
+ ],
+ "description": "PHP Doctrine Inflector is a small library that can perform string manipulations with regard to upper/lowercase and singular/plural forms of words.",
+ "homepage": "https://www.doctrine-project.org/projects/inflector.html",
+ "keywords": [
+ "inflection",
+ "inflector",
+ "lowercase",
+ "manipulation",
+ "php",
+ "plural",
+ "singular",
+ "strings",
+ "uppercase",
+ "words"
+ ],
+ "support": {
+ "issues": "https://github.com/doctrine/inflector/issues",
+ "source": "https://github.com/doctrine/inflector/tree/2.0.10"
+ },
+ "funding": [
+ {
+ "url": "https://www.doctrine-project.org/sponsorship.html",
+ "type": "custom"
+ },
+ {
+ "url": "https://www.patreon.com/phpdoctrine",
+ "type": "patreon"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/doctrine%2Finflector",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-02-18T20:23:39+00:00"
+ },
+ {
+ "name": "guzzlehttp/guzzle",
+ "version": "7.8.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/guzzle/guzzle.git",
+ "reference": "41042bc7ab002487b876a0683fc8dce04ddce104"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/guzzle/guzzle/zipball/41042bc7ab002487b876a0683fc8dce04ddce104",
+ "reference": "41042bc7ab002487b876a0683fc8dce04ddce104",
+ "shasum": ""
+ },
+ "require": {
+ "ext-json": "*",
+ "guzzlehttp/promises": "^1.5.3 || ^2.0.1",
+ "guzzlehttp/psr7": "^1.9.1 || ^2.5.1",
+ "php": "^7.2.5 || ^8.0",
+ "psr/http-client": "^1.0",
+ "symfony/deprecation-contracts": "^2.2 || ^3.0"
+ },
+ "provide": {
+ "psr/http-client-implementation": "1.0"
+ },
+ "require-dev": {
+ "bamarni/composer-bin-plugin": "^1.8.2",
+ "ext-curl": "*",
+ "php-http/client-integration-tests": "dev-master#2c025848417c1135031fdf9c728ee53d0a7ceaee as 3.0.999",
+ "php-http/message-factory": "^1.1",
+ "phpunit/phpunit": "^8.5.36 || ^9.6.15",
+ "psr/log": "^1.1 || ^2.0 || ^3.0"
+ },
+ "suggest": {
+ "ext-curl": "Required for CURL handler support",
+ "ext-intl": "Required for Internationalized Domain Name (IDN) support",
+ "psr/log": "Required for using the Log middleware"
+ },
+ "type": "library",
+ "extra": {
+ "bamarni-bin": {
+ "bin-links": true,
+ "forward-command": false
+ }
+ },
+ "autoload": {
+ "files": [
+ "src/functions_include.php"
+ ],
+ "psr-4": {
+ "GuzzleHttp\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Graham Campbell",
+ "email": "hello@gjcampbell.co.uk",
+ "homepage": "https://github.com/GrahamCampbell"
+ },
+ {
+ "name": "Michael Dowling",
+ "email": "mtdowling@gmail.com",
+ "homepage": "https://github.com/mtdowling"
+ },
+ {
+ "name": "Jeremy Lindblom",
+ "email": "jeremeamia@gmail.com",
+ "homepage": "https://github.com/jeremeamia"
+ },
+ {
+ "name": "George Mponos",
+ "email": "gmponos@gmail.com",
+ "homepage": "https://github.com/gmponos"
+ },
+ {
+ "name": "Tobias Nyholm",
+ "email": "tobias.nyholm@gmail.com",
+ "homepage": "https://github.com/Nyholm"
+ },
+ {
+ "name": "Márk Sági-Kazár",
+ "email": "mark.sagikazar@gmail.com",
+ "homepage": "https://github.com/sagikazarmark"
+ },
+ {
+ "name": "Tobias Schultze",
+ "email": "webmaster@tubo-world.de",
+ "homepage": "https://github.com/Tobion"
+ }
+ ],
+ "description": "Guzzle is a PHP HTTP client library",
+ "keywords": [
+ "client",
+ "curl",
+ "framework",
+ "http",
+ "http client",
+ "psr-18",
+ "psr-7",
+ "rest",
+ "web service"
+ ],
+ "support": {
+ "issues": "https://github.com/guzzle/guzzle/issues",
+ "source": "https://github.com/guzzle/guzzle/tree/7.8.1"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/GrahamCampbell",
+ "type": "github"
+ },
+ {
+ "url": "https://github.com/Nyholm",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/guzzle",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2023-12-03T20:35:24+00:00"
+ },
+ {
+ "name": "guzzlehttp/promises",
+ "version": "2.0.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/guzzle/promises.git",
+ "reference": "bbff78d96034045e58e13dedd6ad91b5d1253223"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/guzzle/promises/zipball/bbff78d96034045e58e13dedd6ad91b5d1253223",
+ "reference": "bbff78d96034045e58e13dedd6ad91b5d1253223",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.2.5 || ^8.0"
+ },
+ "require-dev": {
+ "bamarni/composer-bin-plugin": "^1.8.2",
+ "phpunit/phpunit": "^8.5.36 || ^9.6.15"
+ },
+ "type": "library",
+ "extra": {
+ "bamarni-bin": {
+ "bin-links": true,
+ "forward-command": false
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "GuzzleHttp\\Promise\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Graham Campbell",
+ "email": "hello@gjcampbell.co.uk",
+ "homepage": "https://github.com/GrahamCampbell"
+ },
+ {
+ "name": "Michael Dowling",
+ "email": "mtdowling@gmail.com",
+ "homepage": "https://github.com/mtdowling"
+ },
+ {
+ "name": "Tobias Nyholm",
+ "email": "tobias.nyholm@gmail.com",
+ "homepage": "https://github.com/Nyholm"
+ },
+ {
+ "name": "Tobias Schultze",
+ "email": "webmaster@tubo-world.de",
+ "homepage": "https://github.com/Tobion"
+ }
+ ],
+ "description": "Guzzle promises library",
+ "keywords": [
+ "promise"
+ ],
+ "support": {
+ "issues": "https://github.com/guzzle/promises/issues",
+ "source": "https://github.com/guzzle/promises/tree/2.0.2"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/GrahamCampbell",
+ "type": "github"
+ },
+ {
+ "url": "https://github.com/Nyholm",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/promises",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2023-12-03T20:19:20+00:00"
+ },
+ {
+ "name": "guzzlehttp/psr7",
+ "version": "2.6.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/guzzle/psr7.git",
+ "reference": "45b30f99ac27b5ca93cb4831afe16285f57b8221"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/guzzle/psr7/zipball/45b30f99ac27b5ca93cb4831afe16285f57b8221",
+ "reference": "45b30f99ac27b5ca93cb4831afe16285f57b8221",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.2.5 || ^8.0",
+ "psr/http-factory": "^1.0",
+ "psr/http-message": "^1.1 || ^2.0",
+ "ralouphie/getallheaders": "^3.0"
+ },
+ "provide": {
+ "psr/http-factory-implementation": "1.0",
+ "psr/http-message-implementation": "1.0"
+ },
+ "require-dev": {
+ "bamarni/composer-bin-plugin": "^1.8.2",
+ "http-interop/http-factory-tests": "^0.9",
+ "phpunit/phpunit": "^8.5.36 || ^9.6.15"
+ },
+ "suggest": {
+ "laminas/laminas-httphandlerrunner": "Emit PSR-7 responses"
+ },
+ "type": "library",
+ "extra": {
+ "bamarni-bin": {
+ "bin-links": true,
+ "forward-command": false
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "GuzzleHttp\\Psr7\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Graham Campbell",
+ "email": "hello@gjcampbell.co.uk",
+ "homepage": "https://github.com/GrahamCampbell"
+ },
+ {
+ "name": "Michael Dowling",
+ "email": "mtdowling@gmail.com",
+ "homepage": "https://github.com/mtdowling"
+ },
+ {
+ "name": "George Mponos",
+ "email": "gmponos@gmail.com",
+ "homepage": "https://github.com/gmponos"
+ },
+ {
+ "name": "Tobias Nyholm",
+ "email": "tobias.nyholm@gmail.com",
+ "homepage": "https://github.com/Nyholm"
+ },
+ {
+ "name": "Márk Sági-Kazár",
+ "email": "mark.sagikazar@gmail.com",
+ "homepage": "https://github.com/sagikazarmark"
+ },
+ {
+ "name": "Tobias Schultze",
+ "email": "webmaster@tubo-world.de",
+ "homepage": "https://github.com/Tobion"
+ },
+ {
+ "name": "Márk Sági-Kazár",
+ "email": "mark.sagikazar@gmail.com",
+ "homepage": "https://sagikazarmark.hu"
+ }
+ ],
+ "description": "PSR-7 message implementation that also provides common utility methods",
+ "keywords": [
+ "http",
+ "message",
+ "psr-7",
+ "request",
+ "response",
+ "stream",
+ "uri",
+ "url"
+ ],
+ "support": {
+ "issues": "https://github.com/guzzle/psr7/issues",
+ "source": "https://github.com/guzzle/psr7/tree/2.6.2"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/GrahamCampbell",
+ "type": "github"
+ },
+ {
+ "url": "https://github.com/Nyholm",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/psr7",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2023-12-03T20:05:35+00:00"
+ },
+ {
+ "name": "illuminate/collections",
+ "version": "v10.45.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/illuminate/collections.git",
+ "reference": "04c24117515ab9b701e4b28506d3f3c15d14bd5f"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/illuminate/collections/zipball/04c24117515ab9b701e4b28506d3f3c15d14bd5f",
+ "reference": "04c24117515ab9b701e4b28506d3f3c15d14bd5f",
+ "shasum": ""
+ },
+ "require": {
+ "illuminate/conditionable": "^10.0",
+ "illuminate/contracts": "^10.0",
+ "illuminate/macroable": "^10.0",
+ "php": "^8.1"
+ },
+ "suggest": {
+ "symfony/var-dumper": "Required to use the dump method (^6.2)."
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "10.x-dev"
+ }
+ },
+ "autoload": {
+ "files": [
+ "helpers.php"
+ ],
+ "psr-4": {
+ "Illuminate\\Support\\": ""
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Taylor Otwell",
+ "email": "taylor@laravel.com"
+ }
+ ],
+ "description": "The Illuminate Collections package.",
+ "homepage": "https://laravel.com",
+ "support": {
+ "issues": "https://github.com/laravel/framework/issues",
+ "source": "https://github.com/laravel/framework"
+ },
+ "time": "2024-02-13T21:55:58+00:00"
+ },
+ {
+ "name": "illuminate/conditionable",
+ "version": "v10.45.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/illuminate/conditionable.git",
+ "reference": "d0958e4741fc9d6f516a552060fd1b829a85e009"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/illuminate/conditionable/zipball/d0958e4741fc9d6f516a552060fd1b829a85e009",
+ "reference": "d0958e4741fc9d6f516a552060fd1b829a85e009",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^8.0.2"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "10.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Illuminate\\Support\\": ""
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Taylor Otwell",
+ "email": "taylor@laravel.com"
+ }
+ ],
+ "description": "The Illuminate Conditionable package.",
+ "homepage": "https://laravel.com",
+ "support": {
+ "issues": "https://github.com/laravel/framework/issues",
+ "source": "https://github.com/laravel/framework"
+ },
+ "time": "2023-02-03T08:06:17+00:00"
+ },
+ {
+ "name": "illuminate/contracts",
+ "version": "v10.45.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/illuminate/contracts.git",
+ "reference": "8d7152c4a1f5d9cf7da3e8b71f23e4556f6138ac"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/illuminate/contracts/zipball/8d7152c4a1f5d9cf7da3e8b71f23e4556f6138ac",
+ "reference": "8d7152c4a1f5d9cf7da3e8b71f23e4556f6138ac",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^8.1",
+ "psr/container": "^1.1.1|^2.0.1",
+ "psr/simple-cache": "^1.0|^2.0|^3.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "10.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Illuminate\\Contracts\\": ""
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Taylor Otwell",
+ "email": "taylor@laravel.com"
+ }
+ ],
+ "description": "The Illuminate Contracts package.",
+ "homepage": "https://laravel.com",
+ "support": {
+ "issues": "https://github.com/laravel/framework/issues",
+ "source": "https://github.com/laravel/framework"
+ },
+ "time": "2024-01-15T18:52:32+00:00"
+ },
+ {
+ "name": "illuminate/macroable",
+ "version": "v10.45.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/illuminate/macroable.git",
+ "reference": "dff667a46ac37b634dcf68909d9d41e94dc97c27"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/illuminate/macroable/zipball/dff667a46ac37b634dcf68909d9d41e94dc97c27",
+ "reference": "dff667a46ac37b634dcf68909d9d41e94dc97c27",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^8.1"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "10.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Illuminate\\Support\\": ""
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Taylor Otwell",
+ "email": "taylor@laravel.com"
+ }
+ ],
+ "description": "The Illuminate Macroable package.",
+ "homepage": "https://laravel.com",
+ "support": {
+ "issues": "https://github.com/laravel/framework/issues",
+ "source": "https://github.com/laravel/framework"
+ },
+ "time": "2023-06-05T12:46:42+00:00"
+ },
+ {
+ "name": "illuminate/support",
+ "version": "v10.45.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/illuminate/support.git",
+ "reference": "ef80b6c0d0faec648d0625f1bd2b604b61cba5e5"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/illuminate/support/zipball/ef80b6c0d0faec648d0625f1bd2b604b61cba5e5",
+ "reference": "ef80b6c0d0faec648d0625f1bd2b604b61cba5e5",
+ "shasum": ""
+ },
+ "require": {
+ "doctrine/inflector": "^2.0",
+ "ext-ctype": "*",
+ "ext-filter": "*",
+ "ext-mbstring": "*",
+ "illuminate/collections": "^10.0",
+ "illuminate/conditionable": "^10.0",
+ "illuminate/contracts": "^10.0",
+ "illuminate/macroable": "^10.0",
+ "nesbot/carbon": "^2.67",
+ "php": "^8.1",
+ "voku/portable-ascii": "^2.0"
+ },
+ "conflict": {
+ "tightenco/collect": "<5.5.33"
+ },
+ "suggest": {
+ "illuminate/filesystem": "Required to use the composer class (^10.0).",
+ "league/commonmark": "Required to use Str::markdown() and Stringable::markdown() (^2.0.2).",
+ "ramsey/uuid": "Required to use Str::uuid() (^4.7).",
+ "symfony/process": "Required to use the composer class (^6.2).",
+ "symfony/uid": "Required to use Str::ulid() (^6.2).",
+ "symfony/var-dumper": "Required to use the dd function (^6.2).",
+ "vlucas/phpdotenv": "Required to use the Env class and env helper (^5.4.1)."
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "10.x-dev"
+ }
+ },
+ "autoload": {
+ "files": [
+ "helpers.php"
+ ],
+ "psr-4": {
+ "Illuminate\\Support\\": ""
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Taylor Otwell",
+ "email": "taylor@laravel.com"
+ }
+ ],
+ "description": "The Illuminate Support package.",
+ "homepage": "https://laravel.com",
+ "support": {
+ "issues": "https://github.com/laravel/framework/issues",
+ "source": "https://github.com/laravel/framework"
+ },
+ "time": "2024-02-16T10:04:27+00:00"
+ },
+ {
+ "name": "league/uri",
+ "version": "7.4.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/thephpleague/uri.git",
+ "reference": "bf414ba956d902f5d98bf9385fcf63954f09dce5"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/thephpleague/uri/zipball/bf414ba956d902f5d98bf9385fcf63954f09dce5",
+ "reference": "bf414ba956d902f5d98bf9385fcf63954f09dce5",
+ "shasum": ""
+ },
+ "require": {
+ "league/uri-interfaces": "^7.3",
+ "php": "^8.1"
+ },
+ "conflict": {
+ "league/uri-schemes": "^1.0"
+ },
+ "suggest": {
+ "ext-bcmath": "to improve IPV4 host parsing",
+ "ext-fileinfo": "to create Data URI from file contennts",
+ "ext-gmp": "to improve IPV4 host parsing",
+ "ext-intl": "to handle IDN host with the best performance",
+ "jeremykendall/php-domain-parser": "to resolve Public Suffix and Top Level Domain",
+ "league/uri-components": "Needed to easily manipulate URI objects components",
+ "php-64bit": "to improve IPV4 host parsing",
+ "symfony/polyfill-intl-idn": "to handle IDN host via the Symfony polyfill if ext-intl is not present"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "7.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "League\\Uri\\": ""
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Ignace Nyamagana Butera",
+ "email": "nyamsprod@gmail.com",
+ "homepage": "https://nyamsprod.com"
+ }
+ ],
+ "description": "URI manipulation library",
+ "homepage": "https://uri.thephpleague.com",
+ "keywords": [
+ "data-uri",
+ "file-uri",
+ "ftp",
+ "hostname",
+ "http",
+ "https",
+ "middleware",
+ "parse_str",
+ "parse_url",
+ "psr-7",
+ "query-string",
+ "querystring",
+ "rfc3986",
+ "rfc3987",
+ "rfc6570",
+ "uri",
+ "uri-template",
+ "url",
+ "ws"
+ ],
+ "support": {
+ "docs": "https://uri.thephpleague.com",
+ "forum": "https://thephpleague.slack.com",
+ "issues": "https://github.com/thephpleague/uri-src/issues",
+ "source": "https://github.com/thephpleague/uri/tree/7.4.0"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sponsors/nyamsprod",
+ "type": "github"
+ }
+ ],
+ "time": "2023-12-01T06:24:25+00:00"
+ },
+ {
+ "name": "league/uri-interfaces",
+ "version": "7.4.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/thephpleague/uri-interfaces.git",
+ "reference": "bd8c487ec236930f7bbc42b8d374fa882fbba0f3"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/thephpleague/uri-interfaces/zipball/bd8c487ec236930f7bbc42b8d374fa882fbba0f3",
+ "reference": "bd8c487ec236930f7bbc42b8d374fa882fbba0f3",
+ "shasum": ""
+ },
+ "require": {
+ "ext-filter": "*",
+ "php": "^8.1",
+ "psr/http-factory": "^1",
+ "psr/http-message": "^1.1 || ^2.0"
+ },
+ "suggest": {
+ "ext-bcmath": "to improve IPV4 host parsing",
+ "ext-gmp": "to improve IPV4 host parsing",
+ "ext-intl": "to handle IDN host with the best performance",
+ "php-64bit": "to improve IPV4 host parsing",
+ "symfony/polyfill-intl-idn": "to handle IDN host via the Symfony polyfill if ext-intl is not present"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "7.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "League\\Uri\\": ""
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Ignace Nyamagana Butera",
+ "email": "nyamsprod@gmail.com",
+ "homepage": "https://nyamsprod.com"
+ }
+ ],
+ "description": "Common interfaces and classes for URI representation and interaction",
+ "homepage": "https://uri.thephpleague.com",
+ "keywords": [
+ "data-uri",
+ "file-uri",
+ "ftp",
+ "hostname",
+ "http",
+ "https",
+ "parse_str",
+ "parse_url",
+ "psr-7",
+ "query-string",
+ "querystring",
+ "rfc3986",
+ "rfc3987",
+ "rfc6570",
+ "uri",
+ "url",
+ "ws"
+ ],
+ "support": {
+ "docs": "https://uri.thephpleague.com",
+ "forum": "https://thephpleague.slack.com",
+ "issues": "https://github.com/thephpleague/uri-src/issues",
+ "source": "https://github.com/thephpleague/uri-interfaces/tree/7.4.0"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sponsors/nyamsprod",
+ "type": "github"
+ }
+ ],
+ "time": "2023-11-24T15:40:42+00:00"
+ },
+ {
+ "name": "nesbot/carbon",
+ "version": "2.72.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/briannesbitt/Carbon.git",
+ "reference": "0c6fd108360c562f6e4fd1dedb8233b423e91c83"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/0c6fd108360c562f6e4fd1dedb8233b423e91c83",
+ "reference": "0c6fd108360c562f6e4fd1dedb8233b423e91c83",
+ "shasum": ""
+ },
+ "require": {
+ "carbonphp/carbon-doctrine-types": "*",
+ "ext-json": "*",
+ "php": "^7.1.8 || ^8.0",
+ "psr/clock": "^1.0",
+ "symfony/polyfill-mbstring": "^1.0",
+ "symfony/polyfill-php80": "^1.16",
+ "symfony/translation": "^3.4 || ^4.0 || ^5.0 || ^6.0"
+ },
+ "provide": {
+ "psr/clock-implementation": "1.0"
+ },
+ "require-dev": {
+ "doctrine/dbal": "^2.0 || ^3.1.4 || ^4.0",
+ "doctrine/orm": "^2.7 || ^3.0",
+ "friendsofphp/php-cs-fixer": "^3.0",
+ "kylekatarnls/multi-tester": "^2.0",
+ "ondrejmirtes/better-reflection": "*",
+ "phpmd/phpmd": "^2.9",
+ "phpstan/extension-installer": "^1.0",
+ "phpstan/phpstan": "^0.12.99 || ^1.7.14",
+ "phpunit/php-file-iterator": "^2.0.5 || ^3.0.6",
+ "phpunit/phpunit": "^7.5.20 || ^8.5.26 || ^9.5.20",
+ "squizlabs/php_codesniffer": "^3.4"
+ },
+ "bin": [
+ "bin/carbon"
+ ],
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-3.x": "3.x-dev",
+ "dev-master": "2.x-dev"
+ },
+ "laravel": {
+ "providers": [
+ "Carbon\\Laravel\\ServiceProvider"
+ ]
+ },
+ "phpstan": {
+ "includes": [
+ "extension.neon"
+ ]
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Carbon\\": "src/Carbon/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Brian Nesbitt",
+ "email": "brian@nesbot.com",
+ "homepage": "https://markido.com"
+ },
+ {
+ "name": "kylekatarnls",
+ "homepage": "https://github.com/kylekatarnls"
+ }
+ ],
+ "description": "An API extension for DateTime that supports 281 different languages.",
+ "homepage": "https://carbon.nesbot.com",
+ "keywords": [
+ "date",
+ "datetime",
+ "time"
+ ],
+ "support": {
+ "docs": "https://carbon.nesbot.com/docs",
+ "issues": "https://github.com/briannesbitt/Carbon/issues",
+ "source": "https://github.com/briannesbitt/Carbon"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sponsors/kylekatarnls",
+ "type": "github"
+ },
+ {
+ "url": "https://opencollective.com/Carbon#sponsor",
+ "type": "opencollective"
+ },
+ {
+ "url": "https://tidelift.com/subscription/pkg/packagist-nesbot-carbon?utm_source=packagist-nesbot-carbon&utm_medium=referral&utm_campaign=readme",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-01-25T10:35:09+00:00"
+ },
+ {
+ "name": "psr/clock",
+ "version": "1.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/php-fig/clock.git",
+ "reference": "e41a24703d4560fd0acb709162f73b8adfc3aa0d"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/php-fig/clock/zipball/e41a24703d4560fd0acb709162f73b8adfc3aa0d",
+ "reference": "e41a24703d4560fd0acb709162f73b8adfc3aa0d",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.0 || ^8.0"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Psr\\Clock\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "PHP-FIG",
+ "homepage": "https://www.php-fig.org/"
+ }
+ ],
+ "description": "Common interface for reading the clock.",
+ "homepage": "https://github.com/php-fig/clock",
+ "keywords": [
+ "clock",
+ "now",
+ "psr",
+ "psr-20",
+ "time"
+ ],
+ "support": {
+ "issues": "https://github.com/php-fig/clock/issues",
+ "source": "https://github.com/php-fig/clock/tree/1.0.0"
+ },
+ "time": "2022-11-25T14:36:26+00:00"
+ },
+ {
+ "name": "psr/container",
+ "version": "2.0.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/php-fig/container.git",
+ "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/php-fig/container/zipball/c71ecc56dfe541dbd90c5360474fbc405f8d5963",
+ "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.4.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.0.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Psr\\Container\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "PHP-FIG",
+ "homepage": "https://www.php-fig.org/"
+ }
+ ],
+ "description": "Common Container Interface (PHP FIG PSR-11)",
+ "homepage": "https://github.com/php-fig/container",
+ "keywords": [
+ "PSR-11",
+ "container",
+ "container-interface",
+ "container-interop",
+ "psr"
+ ],
+ "support": {
+ "issues": "https://github.com/php-fig/container/issues",
+ "source": "https://github.com/php-fig/container/tree/2.0.2"
+ },
+ "time": "2021-11-05T16:47:00+00:00"
+ },
+ {
+ "name": "psr/http-client",
+ "version": "1.0.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/php-fig/http-client.git",
+ "reference": "bb5906edc1c324c9a05aa0873d40117941e5fa90"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/php-fig/http-client/zipball/bb5906edc1c324c9a05aa0873d40117941e5fa90",
+ "reference": "bb5906edc1c324c9a05aa0873d40117941e5fa90",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.0 || ^8.0",
+ "psr/http-message": "^1.0 || ^2.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.0.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Psr\\Http\\Client\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "PHP-FIG",
+ "homepage": "https://www.php-fig.org/"
+ }
+ ],
+ "description": "Common interface for HTTP clients",
+ "homepage": "https://github.com/php-fig/http-client",
+ "keywords": [
+ "http",
+ "http-client",
+ "psr",
+ "psr-18"
+ ],
+ "support": {
+ "source": "https://github.com/php-fig/http-client"
+ },
+ "time": "2023-09-23T14:17:50+00:00"
+ },
+ {
+ "name": "psr/http-factory",
+ "version": "1.0.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/php-fig/http-factory.git",
+ "reference": "e616d01114759c4c489f93b099585439f795fe35"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/php-fig/http-factory/zipball/e616d01114759c4c489f93b099585439f795fe35",
+ "reference": "e616d01114759c4c489f93b099585439f795fe35",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.0.0",
+ "psr/http-message": "^1.0 || ^2.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.0.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Psr\\Http\\Message\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "PHP-FIG",
+ "homepage": "https://www.php-fig.org/"
+ }
+ ],
+ "description": "Common interfaces for PSR-7 HTTP message factories",
+ "keywords": [
+ "factory",
+ "http",
+ "message",
+ "psr",
+ "psr-17",
+ "psr-7",
+ "request",
+ "response"
+ ],
+ "support": {
+ "source": "https://github.com/php-fig/http-factory/tree/1.0.2"
+ },
+ "time": "2023-04-10T20:10:41+00:00"
+ },
+ {
+ "name": "psr/http-message",
+ "version": "2.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/php-fig/http-message.git",
+ "reference": "402d35bcb92c70c026d1a6a9883f06b2ead23d71"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/php-fig/http-message/zipball/402d35bcb92c70c026d1a6a9883f06b2ead23d71",
+ "reference": "402d35bcb92c70c026d1a6a9883f06b2ead23d71",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.2 || ^8.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.0.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Psr\\Http\\Message\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "PHP-FIG",
+ "homepage": "https://www.php-fig.org/"
+ }
+ ],
+ "description": "Common interface for HTTP messages",
+ "homepage": "https://github.com/php-fig/http-message",
+ "keywords": [
+ "http",
+ "http-message",
+ "psr",
+ "psr-7",
+ "request",
+ "response"
+ ],
+ "support": {
+ "source": "https://github.com/php-fig/http-message/tree/2.0"
+ },
+ "time": "2023-04-04T09:54:51+00:00"
+ },
+ {
+ "name": "psr/simple-cache",
+ "version": "3.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/php-fig/simple-cache.git",
+ "reference": "764e0b3939f5ca87cb904f570ef9be2d78a07865"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/php-fig/simple-cache/zipball/764e0b3939f5ca87cb904f570ef9be2d78a07865",
+ "reference": "764e0b3939f5ca87cb904f570ef9be2d78a07865",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.0.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "3.0.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Psr\\SimpleCache\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "PHP-FIG",
+ "homepage": "https://www.php-fig.org/"
+ }
+ ],
+ "description": "Common interfaces for simple caching",
+ "keywords": [
+ "cache",
+ "caching",
+ "psr",
+ "psr-16",
+ "simple-cache"
+ ],
+ "support": {
+ "source": "https://github.com/php-fig/simple-cache/tree/3.0.0"
+ },
+ "time": "2021-10-29T13:26:27+00:00"
+ },
+ {
+ "name": "ralouphie/getallheaders",
+ "version": "3.0.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/ralouphie/getallheaders.git",
+ "reference": "120b605dfeb996808c31b6477290a714d356e822"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/ralouphie/getallheaders/zipball/120b605dfeb996808c31b6477290a714d356e822",
+ "reference": "120b605dfeb996808c31b6477290a714d356e822",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.6"
+ },
+ "require-dev": {
+ "php-coveralls/php-coveralls": "^2.1",
+ "phpunit/phpunit": "^5 || ^6.5"
+ },
+ "type": "library",
+ "autoload": {
+ "files": [
+ "src/getallheaders.php"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Ralph Khattar",
+ "email": "ralph.khattar@gmail.com"
+ }
+ ],
+ "description": "A polyfill for getallheaders.",
+ "support": {
+ "issues": "https://github.com/ralouphie/getallheaders/issues",
+ "source": "https://github.com/ralouphie/getallheaders/tree/develop"
+ },
+ "time": "2019-03-08T08:55:37+00:00"
+ },
+ {
+ "name": "symfony/deprecation-contracts",
+ "version": "v3.4.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/deprecation-contracts.git",
+ "reference": "7c3aff79d10325257a001fcf92d991f24fc967cf"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/7c3aff79d10325257a001fcf92d991f24fc967cf",
+ "reference": "7c3aff79d10325257a001fcf92d991f24fc967cf",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.1"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "3.4-dev"
+ },
+ "thanks": {
+ "name": "symfony/contracts",
+ "url": "https://github.com/symfony/contracts"
+ }
+ },
+ "autoload": {
+ "files": [
+ "function.php"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "A generic function and convention to trigger deprecation notices",
+ "homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/deprecation-contracts/tree/v3.4.0"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2023-05-23T14:45:45+00:00"
+ },
+ {
+ "name": "symfony/polyfill-mbstring",
+ "version": "v1.29.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/polyfill-mbstring.git",
+ "reference": "9773676c8a1bb1f8d4340a62efe641cf76eda7ec"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/9773676c8a1bb1f8d4340a62efe641cf76eda7ec",
+ "reference": "9773676c8a1bb1f8d4340a62efe641cf76eda7ec",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.1"
+ },
+ "provide": {
+ "ext-mbstring": "*"
+ },
+ "suggest": {
+ "ext-mbstring": "For best performance"
+ },
+ "type": "library",
+ "extra": {
+ "thanks": {
+ "name": "symfony/polyfill",
+ "url": "https://github.com/symfony/polyfill"
+ }
+ },
+ "autoload": {
+ "files": [
+ "bootstrap.php"
+ ],
+ "psr-4": {
+ "Symfony\\Polyfill\\Mbstring\\": ""
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony polyfill for the Mbstring extension",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "compatibility",
+ "mbstring",
+ "polyfill",
+ "portable",
+ "shim"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.29.0"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-01-29T20:11:03+00:00"
+ },
+ {
+ "name": "symfony/polyfill-php80",
+ "version": "v1.29.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/polyfill-php80.git",
+ "reference": "87b68208d5c1188808dd7839ee1e6c8ec3b02f1b"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/87b68208d5c1188808dd7839ee1e6c8ec3b02f1b",
+ "reference": "87b68208d5c1188808dd7839ee1e6c8ec3b02f1b",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.1"
+ },
+ "type": "library",
+ "extra": {
+ "thanks": {
+ "name": "symfony/polyfill",
+ "url": "https://github.com/symfony/polyfill"
+ }
+ },
+ "autoload": {
+ "files": [
+ "bootstrap.php"
+ ],
+ "psr-4": {
+ "Symfony\\Polyfill\\Php80\\": ""
+ },
+ "classmap": [
+ "Resources/stubs"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Ion Bazan",
+ "email": "ion.bazan@gmail.com"
+ },
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "compatibility",
+ "polyfill",
+ "portable",
+ "shim"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/polyfill-php80/tree/v1.29.0"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-01-29T20:11:03+00:00"
+ },
+ {
+ "name": "symfony/translation",
+ "version": "v6.4.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/translation.git",
+ "reference": "637c51191b6b184184bbf98937702bcf554f7d04"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/translation/zipball/637c51191b6b184184bbf98937702bcf554f7d04",
+ "reference": "637c51191b6b184184bbf98937702bcf554f7d04",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.1",
+ "symfony/deprecation-contracts": "^2.5|^3",
+ "symfony/polyfill-mbstring": "~1.0",
+ "symfony/translation-contracts": "^2.5|^3.0"
+ },
+ "conflict": {
+ "symfony/config": "<5.4",
+ "symfony/console": "<5.4",
+ "symfony/dependency-injection": "<5.4",
+ "symfony/http-client-contracts": "<2.5",
+ "symfony/http-kernel": "<5.4",
+ "symfony/service-contracts": "<2.5",
+ "symfony/twig-bundle": "<5.4",
+ "symfony/yaml": "<5.4"
+ },
+ "provide": {
+ "symfony/translation-implementation": "2.3|3.0"
+ },
+ "require-dev": {
+ "nikic/php-parser": "^4.18|^5.0",
+ "psr/log": "^1|^2|^3",
+ "symfony/config": "^5.4|^6.0|^7.0",
+ "symfony/console": "^5.4|^6.0|^7.0",
+ "symfony/dependency-injection": "^5.4|^6.0|^7.0",
+ "symfony/finder": "^5.4|^6.0|^7.0",
+ "symfony/http-client-contracts": "^2.5|^3.0",
+ "symfony/http-kernel": "^5.4|^6.0|^7.0",
+ "symfony/intl": "^5.4|^6.0|^7.0",
+ "symfony/polyfill-intl-icu": "^1.21",
+ "symfony/routing": "^5.4|^6.0|^7.0",
+ "symfony/service-contracts": "^2.5|^3",
+ "symfony/yaml": "^5.4|^6.0|^7.0"
+ },
+ "type": "library",
+ "autoload": {
+ "files": [
+ "Resources/functions.php"
+ ],
+ "psr-4": {
+ "Symfony\\Component\\Translation\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Provides tools to internationalize your application",
+ "homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/translation/tree/v6.4.3"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-01-29T13:11:52+00:00"
+ },
+ {
+ "name": "symfony/translation-contracts",
+ "version": "v3.4.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/translation-contracts.git",
+ "reference": "06450585bf65e978026bda220cdebca3f867fde7"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/06450585bf65e978026bda220cdebca3f867fde7",
+ "reference": "06450585bf65e978026bda220cdebca3f867fde7",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.1"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "3.4-dev"
+ },
+ "thanks": {
+ "name": "symfony/contracts",
+ "url": "https://github.com/symfony/contracts"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Contracts\\Translation\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Test/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Generic abstractions related to translation",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "abstractions",
+ "contracts",
+ "decoupling",
+ "interfaces",
+ "interoperability",
+ "standards"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/translation-contracts/tree/v3.4.1"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2023-12-26T14:02:43+00:00"
+ },
+ {
+ "name": "voku/portable-ascii",
+ "version": "2.0.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/voku/portable-ascii.git",
+ "reference": "b56450eed252f6801410d810c8e1727224ae0743"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/voku/portable-ascii/zipball/b56450eed252f6801410d810c8e1727224ae0743",
+ "reference": "b56450eed252f6801410d810c8e1727224ae0743",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.0.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "~6.0 || ~7.0 || ~9.0"
+ },
+ "suggest": {
+ "ext-intl": "Use Intl for transliterator_transliterate() support"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "voku\\": "src/voku/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Lars Moelleken",
+ "homepage": "http://www.moelleken.org/"
+ }
+ ],
+ "description": "Portable ASCII library - performance optimized (ascii) string functions for php.",
+ "homepage": "https://github.com/voku/portable-ascii",
+ "keywords": [
+ "ascii",
+ "clean",
+ "php"
+ ],
+ "support": {
+ "issues": "https://github.com/voku/portable-ascii/issues",
+ "source": "https://github.com/voku/portable-ascii/tree/2.0.1"
+ },
+ "funding": [
+ {
+ "url": "https://www.paypal.me/moelleken",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/voku",
+ "type": "github"
+ },
+ {
+ "url": "https://opencollective.com/portable-ascii",
+ "type": "open_collective"
+ },
+ {
+ "url": "https://www.patreon.com/voku",
+ "type": "patreon"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/voku/portable-ascii",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2022-03-08T17:03:00+00:00"
+ }
+ ],
+ "packages-dev": [],
+ "aliases": [],
+ "minimum-stability": "dev",
+ "stability-flags": [],
+ "prefer-stable": true,
+ "prefer-lowest": false,
+ "platform": {
+ "php": "^8.1",
+ "ext-json": "*",
+ "ext-zip": "*"
+ },
+ "platform-dev": [],
+ "plugin-api-version": "2.6.0"
+}
diff --git a/config/self-update.php b/config/self-update.php
index e613195..10e47e5 100644
--- a/config/self-update.php
+++ b/config/self-update.php
@@ -1,7 +1,5 @@
[
'github' => [
- 'type' => 'github',
- 'repository_vendor' => env('SELF_UPDATER_REPO_VENDOR', ''),
- 'repository_name' => env('SELF_UPDATER_REPO_NAME', ''),
- 'repository_url' => '',
- 'download_path' => env('SELF_UPDATER_DOWNLOAD_PATH', '/tmp'),
+ 'type' => 'github',
+ 'repository_vendor' => env('SELF_UPDATER_REPO_VENDOR', ''),
+ 'repository_name' => env('SELF_UPDATER_REPO_NAME', ''),
+ 'repository_url' => '',
+ 'download_path' => env('SELF_UPDATER_DOWNLOAD_PATH', '/tmp'),
'private_access_token' => env('SELF_UPDATER_GITHUB_PRIVATE_ACCESS_TOKEN', ''),
- 'use_branch' => env('SELF_UPDATER_USE_BRANCH', ''),
+ 'use_branch' => env('SELF_UPDATER_USE_BRANCH', ''),
],
'gitlab' => [
- 'base_url' => '',
- 'type' => 'gitlab',
- 'repository_id' => env('SELF_UPDATER_REPO_URL', ''),
- 'download_path' => env('SELF_UPDATER_DOWNLOAD_PATH', '/tmp'),
+ 'base_url' => '',
+ 'type' => 'gitlab',
+ 'repository_id' => env('SELF_UPDATER_REPO_URL', ''),
+ 'download_path' => env('SELF_UPDATER_DOWNLOAD_PATH', '/tmp'),
'private_access_token' => env('SELF_UPDATER_GITLAB_PRIVATE_ACCESS_TOKEN', ''),
],
'http' => [
- 'type' => 'http',
- 'repository_url' => env('SELF_UPDATER_REPO_URL', ''),
- 'pkg_filename_format' => env('SELF_UPDATER_PKG_FILENAME_FORMAT', 'v_VERSION_'),
- 'download_path' => env('SELF_UPDATER_DOWNLOAD_PATH', '/tmp'),
+ 'type' => 'http',
+ 'repository_url' => env('SELF_UPDATER_REPO_URL', ''),
+ 'pkg_filename_format' => env('SELF_UPDATER_PKG_FILENAME_FORMAT', 'v_VERSION_'),
+ 'download_path' => env('SELF_UPDATER_DOWNLOAD_PATH', '/tmp'),
'private_access_token' => env('SELF_UPDATER_HTTP_PRIVATE_ACCESS_TOKEN', ''),
],
'gitea' => [
- 'type' => 'gitea',
- 'repository_vendor' => env('SELF_UPDATER_REPO_VENDOR', ''),
- 'gitea_url' => env('SELF_UPDATER_GITEA_URL', ''),
- 'repository_name' => env('SELF_UPDATER_REPO_NAME', ''),
- 'download_path' => env('SELF_UPDATER_DOWNLOAD_PATH', '/tmp'),
+ 'type' => 'gitea',
+ 'repository_vendor' => env('SELF_UPDATER_REPO_VENDOR', ''),
+ 'gitea_url' => env('SELF_UPDATER_GITEA_URL', ''),
+ 'repository_name' => env('SELF_UPDATER_REPO_NAME', ''),
+ 'download_path' => env('SELF_UPDATER_DOWNLOAD_PATH', '/tmp'),
'private_access_token' => env('SELF_UPDATER_GITEA_PRIVATE_ACCESS_TOKEN', ''),
],
],
@@ -131,26 +129,26 @@
'notifications' => [
'notifications' => [
- \Codedge\Updater\Notifications\Notifications\UpdateSucceeded::class => ['mail'],
- \Codedge\Updater\Notifications\Notifications\UpdateFailed::class => ['mail'],
- \Codedge\Updater\Notifications\Notifications\UpdateAvailable::class => ['mail'],
+ \Qopiku\Updater\Notifications\Notifications\UpdateSucceeded::class => ['mail'],
+ \Qopiku\Updater\Notifications\Notifications\UpdateFailed::class => ['mail'],
+ \Qopiku\Updater\Notifications\Notifications\UpdateAvailable::class => ['mail'],
],
/*
* Here you can specify the notifiable to which the notifications should be sent. The default
* notifiable will use the variables specified in this config file.
*/
- 'notifiable' => \Codedge\Updater\Notifications\Notifiable::class,
+ 'notifiable' => \Qopiku\Updater\Notifications\Notifiable::class,
'mail' => [
'to' => [
'address' => env('SELF_UPDATER_MAILTO_ADDRESS', 'notifications@example.com'),
- 'name' => env('SELF_UPDATER_MAILTO_NAME', ''),
+ 'name' => env('SELF_UPDATER_MAILTO_NAME', ''),
],
'from' => [
'address' => env('SELF_UPDATER_MAIL_FROM_ADDRESS', 'updater@example.com'),
- 'name' => env('SELF_UPDATER_MAIL_FROM_NAME', 'Update'),
+ 'name' => env('SELF_UPDATER_MAIL_FROM_NAME', 'Update'),
],
],
],
@@ -168,9 +166,7 @@
// 'params' => []
//]
],
- 'post_update' => [
-
- ],
+ 'post_update' => [],
],
];
diff --git a/phpstan.neon.dist b/phpstan.neon.dist
deleted file mode 100644
index 4bdbf02..0000000
--- a/phpstan.neon.dist
+++ /dev/null
@@ -1,6 +0,0 @@
-parameters:
- level: 5
- paths:
- - src
- - config
- - tests
diff --git a/phpunit.xml.dist b/phpunit.xml.dist
deleted file mode 100644
index dc1f1a7..0000000
--- a/phpunit.xml.dist
+++ /dev/null
@@ -1,20 +0,0 @@
-
-
-
-
- src/
-
-
-
-
-
-
-
-
-
-
- tests
-
-
-
-
diff --git a/src/Commands/CheckForUpdate.php b/src/Commands/CheckForUpdate.php
index dda035c..23c1970 100644
--- a/src/Commands/CheckForUpdate.php
+++ b/src/Commands/CheckForUpdate.php
@@ -1,11 +1,9 @@
storagePath = $storagePath;
- if (!File::exists($this->storagePath)) {
+ if (! File::exists($this->storagePath)) {
File::makeDirectory($this->storagePath, 493, true, true);
}
@@ -79,7 +77,7 @@ public function setStoragePath(string $storagePath): self
*/
public function updateStoragePath(): self
{
- if (!empty($this->getRelease())) {
+ if (! empty($this->getRelease())) {
$this->storagePath = Str::finish($this->storagePath, DIRECTORY_SEPARATOR).$this->getRelease();
return $this;
@@ -94,7 +92,7 @@ public function getUpdatePath(): ?Finder
}
/**
- * @param array $excluded
+ * @param array $excluded
*/
public function setUpdatePath(string $updatePath, array $excluded = []): self
{
@@ -129,7 +127,7 @@ public function setDownloadUrl(string $downloadUrl): self
public function extract(bool $deleteSource = true): bool
{
- if (!File::exists($this->getStoragePath())) {
+ if (! File::exists($this->getStoragePath())) {
throw ReleaseException::archiveFileNotFound($this->getStoragePath());
}
@@ -180,11 +178,11 @@ public function download(): Response
}
return Http::withHeaders($headers)
- ->withOptions([
- 'sink' => $this->getStoragePath(),
- ])
- ->timeout(config('self-update.download_timeout') ?? 400)
- ->get($this->getDownloadUrl());
+ ->withOptions([
+ 'sink' => $this->getStoragePath(),
+ ])
+ ->timeout(config('self-update.download_timeout') ?? 400)
+ ->get($this->getDownloadUrl());
}
/**
@@ -202,7 +200,7 @@ protected function createReleaseFolder(): bool
createFolderFromFile($this->getStoragePath()).now()->toDateString()
);
- if (!$moved) {
+ if (! $moved) {
return false;
}
@@ -226,14 +224,14 @@ public function isSourceAlreadyFetched(): bool
$extractionDir = createFolderFromFile($this->getStoragePath());
// Check if source archive is (probably) deleted but extracted folder is there.
- if (!File::exists($this->getStoragePath())
+ if (! File::exists($this->getStoragePath())
&& File::exists($extractionDir)) {
return true;
}
// Check if source archive is there but not extracted
if (File::exists($this->getStoragePath())
- && !File::exists($extractionDir)) {
+ && ! File::exists($extractionDir)) {
return true;
}
diff --git a/src/Models/UpdateExecutor.php b/src/Models/UpdateExecutor.php
index 07e0088..79d4caf 100644
--- a/src/Models/UpdateExecutor.php
+++ b/src/Models/UpdateExecutor.php
@@ -1,15 +1,13 @@
in($folder)
- ->exclude(config('self-update.exclude_folders'))
- ->ignoreDotFiles(false)
- ->files();
+ ->exclude(config('self-update.exclude_folders'))
+ ->ignoreDotFiles(false)
+ ->files();
collect($files)->each(function (SplFileInfo $file) {
if ($file->getRealPath()) {
@@ -103,7 +101,7 @@ private function moveFolders(string $folder): void
}));
$sorted->each(function (SplFileInfo $directory) {
- if (!dirsIntersect(File::directories($directory->getRealPath()), config('self-update.exclude_folders'))) {
+ if (! dirsIntersect(File::directories($directory->getRealPath()), config('self-update.exclude_folders'))) {
File::copyDirectory(
$directory->getRealPath(),
Str::finish($this->basePath, DIRECTORY_SEPARATOR).Str::finish($directory->getRelativePath(), DIRECTORY_SEPARATOR).$directory->getBasename()
diff --git a/src/Notifications/BaseNotification.php b/src/Notifications/BaseNotification.php
index c400d06..5695caa 100644
--- a/src/Notifications/BaseNotification.php
+++ b/src/Notifications/BaseNotification.php
@@ -1,8 +1,6 @@
release = resolve(Release::class);
$this->release->setStoragePath(Str::finish($this->config['download_path'], DIRECTORY_SEPARATOR))
- ->setUpdatePath(base_path(), config('self-update.exclude_folders'))
- ->setAccessToken($this->config['private_access_token']);
+ ->setUpdatePath(base_path(), config('self-update.exclude_folders'))
+ ->setAccessToken($this->config['private_access_token']);
$this->release->setAccessTokenPrefix('token ');
$this->updateExecutor = $updateExecutor;
@@ -52,14 +52,14 @@ public function isNewVersionAvailable(string $currentVersion = ''): bool
{
$version = $currentVersion ?: $this->getVersionInstalled();
- if (!$version) {
+ if (! $version) {
throw VersionException::versionInstalledNotFound();
}
$versionAvailable = $this->getVersionAvailable();
if (version_compare($version, $versionAvailable, '<')) {
- if (!$this->versionFileExists()) {
+ if (! $this->versionFileExists()) {
$this->setVersionFile($versionAvailable);
}
event(new UpdateAvailable($versionAvailable));
@@ -79,8 +79,8 @@ public function getVersionInstalled(): string
* Get the latest version that has been published in a certain repository.
* Example: 2.6.5 or v2.6.5.
*
- * @param string $prepend Prepend a string to the latest version
- * @param string $append Append a string to the latest version
+ * @param string $prepend Prepend a string to the latest version
+ * @param string $append Append a string to the latest version
*
* @throws Exception
*/
@@ -121,11 +121,11 @@ public function fetch(string $version = ''): Release
$downloadUrl = $this->config['gitea_url'].$url;
$this->release->setVersion($release->tag_name)
- ->setRelease($release->tag_name.'.zip')
- ->updateStoragePath()
- ->setDownloadUrl($downloadUrl);
+ ->setRelease($release->tag_name.'.zip')
+ ->updateStoragePath()
+ ->setDownloadUrl($downloadUrl);
- if (!$this->release->isSourceAlreadyFetched()) {
+ if (! $this->release->isSourceAlreadyFetched()) {
$this->release->download();
$this->release->extract();
}
@@ -137,7 +137,7 @@ public function selectRelease(Collection $collection, string $version)
{
$release = $collection->first();
- if (!empty($version)) {
+ if (! empty($version)) {
if ($collection->contains('tag_name', $version)) {
$release = $collection->where('tag_name', $version)->first();
} else {
diff --git a/src/SourceRepositoryTypes/GithubRepositoryType.php b/src/SourceRepositoryTypes/GithubRepositoryType.php
index df6eaed..4ffd40c 100644
--- a/src/SourceRepositoryTypes/GithubRepositoryType.php
+++ b/src/SourceRepositoryTypes/GithubRepositoryType.php
@@ -1,19 +1,17 @@
config['use_branch']);
+ return ! empty($this->config['use_branch']);
}
public function getVersionInstalled(): string
@@ -74,14 +73,14 @@ public function isNewVersionAvailable(string $currentVersion = ''): bool
{
$version = $currentVersion ?: $this->getVersionInstalled();
- if (!$version) {
+ if (! $version) {
throw VersionException::versionInstalledNotFound();
}
$versionAvailable = $this->getVersionAvailable(); //@phpstan-ignore-line
if (version_compare($version, $versionAvailable, '<')) {
- if (!$this->versionFileExists()) {
+ if (! $this->versionFileExists()) {
$this->setVersionFile($versionAvailable);
}
event(new UpdateAvailable($versionAvailable));
diff --git a/src/SourceRepositoryTypes/GithubRepositoryTypes/GithubBranchType.php b/src/SourceRepositoryTypes/GithubRepositoryTypes/GithubBranchType.php
index 1f85ecb..6f4e3e4 100644
--- a/src/SourceRepositoryTypes/GithubRepositoryTypes/GithubBranchType.php
+++ b/src/SourceRepositoryTypes/GithubRepositoryTypes/GithubBranchType.php
@@ -1,14 +1,7 @@
release = resolve(Release::class);
$this->release->setStoragePath(Str::finish($this->config['download_path'], DIRECTORY_SEPARATOR))
- ->setUpdatePath(base_path(), config('self-update.exclude_folders'))
- ->setAccessToken($this->config['private_access_token']);
+ ->setUpdatePath(base_path(), config('self-update.exclude_folders'))
+ ->setAccessToken($this->config['private_access_token']);
}
public function fetch(string $version = ''): Release
@@ -50,11 +49,11 @@ public function fetch(string $version = ''): Release
$release = $this->selectRelease($releases, $version);
$this->release->setVersion($release->commit->author->date)
- ->setRelease($release->sha.'.zip')
- ->updateStoragePath()
- ->setDownloadUrl($this->generateArchiveUrl($release->sha));
+ ->setRelease($release->sha.'.zip')
+ ->updateStoragePath()
+ ->setDownloadUrl($this->generateArchiveUrl($release->sha));
- if (!$this->release->isSourceAlreadyFetched()) {
+ if (! $this->release->isSourceAlreadyFetched()) {
$this->release->download();
$this->release->extract();
}
@@ -66,7 +65,7 @@ public function selectRelease(Collection $collection, string $version)
{
$release = $collection->first();
- if (!empty($version)) {
+ if (! empty($version)) {
if ($collection->contains('commit.author.date', $version)) {
$release = $collection->where('commit.author.date', $version)->first();
} else {
diff --git a/src/SourceRepositoryTypes/GithubRepositoryTypes/GithubTagType.php b/src/SourceRepositoryTypes/GithubRepositoryTypes/GithubTagType.php
index 5d292df..e8f3a1f 100644
--- a/src/SourceRepositoryTypes/GithubRepositoryTypes/GithubTagType.php
+++ b/src/SourceRepositoryTypes/GithubRepositoryTypes/GithubTagType.php
@@ -1,14 +1,7 @@
release = resolve(Release::class);
$this->release->setStoragePath(Str::finish($this->config['download_path'], DIRECTORY_SEPARATOR))
- ->setUpdatePath(base_path(), config('self-update.exclude_folders'))
- ->setAccessToken($this->config['private_access_token']);
+ ->setUpdatePath(base_path(), config('self-update.exclude_folders'))
+ ->setAccessToken($this->config['private_access_token']);
}
/**
* Get the latest version that has been published in a certain repository.
* Example: 2.6.5 or v2.6.5.
*
- * @param string $prepend Prepend a string to the latest version
- * @param string $append Append a string to the latest version
+ * @param string $prepend Prepend a string to the latest version
+ * @param string $append Append a string to the latest version
*
* @throws Exception
*/
@@ -78,11 +76,11 @@ public function fetch(string $version = ''): Release
$release = $this->selectRelease($releases, $version);
$this->release->setVersion($release->tag_name)
- ->setRelease($release->tag_name.'.zip')
- ->updateStoragePath()
- ->setDownloadUrl($release->zipball_url);
+ ->setRelease($release->tag_name.'.zip')
+ ->updateStoragePath()
+ ->setDownloadUrl($release->zipball_url);
- if (!$this->release->isSourceAlreadyFetched()) {
+ if (! $this->release->isSourceAlreadyFetched()) {
$this->release->download();
$this->release->extract();
}
@@ -94,7 +92,7 @@ public function selectRelease(Collection $collection, string $version)
{
$release = $collection->first();
- if (!empty($version)) {
+ if (! empty($version)) {
if ($collection->contains('tag_name', $version)) {
$release = $collection->where('tag_name', $version)->first();
} else {
diff --git a/src/SourceRepositoryTypes/GitlabRepositoryType.php b/src/SourceRepositoryTypes/GitlabRepositoryType.php
index 9648093..7ccfa04 100644
--- a/src/SourceRepositoryTypes/GitlabRepositoryType.php
+++ b/src/SourceRepositoryTypes/GitlabRepositoryType.php
@@ -1,16 +1,7 @@
release = resolve(Release::class);
$this->release->setStoragePath(Str::finish($this->config['download_path'], DIRECTORY_SEPARATOR))
- ->setUpdatePath(base_path(), config('self-update.exclude_folders'))
- ->setAccessToken($this->config['private_access_token']);
+ ->setUpdatePath(base_path(), config('self-update.exclude_folders'))
+ ->setAccessToken($this->config['private_access_token']);
$this->updateExecutor = $updateExecutor;
}
@@ -51,14 +51,14 @@ public function isNewVersionAvailable(string $currentVersion = ''): bool
{
$version = $currentVersion ?: $this->getVersionInstalled();
- if (!$version) {
+ if (! $version) {
throw VersionException::versionInstalledNotFound();
}
$versionAvailable = $this->getVersionAvailable();
if (version_compare($version, $versionAvailable, '<')) {
- if (!$this->versionFileExists()) {
+ if (! $this->versionFileExists()) {
$this->setVersionFile($versionAvailable);
}
event(new UpdateAvailable($versionAvailable));
@@ -78,8 +78,8 @@ public function getVersionInstalled(): string
* Get the latest version that has been published in a certain repository.
* Example: 2.6.5 or v2.6.5.
*
- * @param string $prepend Prepend a string to the latest version
- * @param string $append Append a string to the latest version
+ * @param string $prepend Prepend a string to the latest version
+ * @param string $append Append a string to the latest version
*
* @throws Exception
*/
@@ -117,11 +117,11 @@ public function fetch(string $version = ''): Release
$release = $this->selectRelease($releases, $version);
$this->release->setVersion($release->tag_name)
- ->setRelease($release->tag_name.'.zip')
- ->updateStoragePath()
- ->setDownloadUrl($release->assets->sources[0]->url);
+ ->setRelease($release->tag_name.'.zip')
+ ->updateStoragePath()
+ ->setDownloadUrl($release->assets->sources[0]->url);
- if (!$this->release->isSourceAlreadyFetched()) {
+ if (! $this->release->isSourceAlreadyFetched()) {
$this->release->download();
$this->release->extract();
}
@@ -133,7 +133,7 @@ public function selectRelease(Collection $collection, string $version)
{
$release = $collection->first();
- if (!empty($version)) {
+ if (! empty($version)) {
if ($collection->contains('tag_name', $version)) {
$release = $collection->where('tag_name', $version)->first();
} else {
@@ -151,7 +151,7 @@ final public function getReleaseUrl(): array
{
return [
'base_url' => $this->config['base_url'] ?? self::BASE_URL,
- 'url' => '/api/v4/projects/'.$this->config['repository_id'].'/releases',
+ 'url' => '/api/v4/projects/'.$this->config['repository_id'].'/releases',
];
}
diff --git a/src/SourceRepositoryTypes/HttpRepositoryType.php b/src/SourceRepositoryTypes/HttpRepositoryType.php
index 03fb9c6..9d61059 100644
--- a/src/SourceRepositoryTypes/HttpRepositoryType.php
+++ b/src/SourceRepositoryTypes/HttpRepositoryType.php
@@ -1,16 +1,7 @@
release = resolve(Release::class);
$this->release->setStoragePath(Str::finish($this->config['download_path'], DIRECTORY_SEPARATOR))
- ->setUpdatePath(base_path(), config('self-update.exclude_folders'))
- ->setAccessToken($this->config['private_access_token']);
+ ->setUpdatePath(base_path(), config('self-update.exclude_folders'))
+ ->setAccessToken($this->config['private_access_token']);
$this->updateExecutor = $updateExecutor;
}
@@ -59,14 +62,14 @@ public function isNewVersionAvailable(string $currentVersion = ''): bool
{
$version = $currentVersion ?: $this->getVersionInstalled();
- if (!$version) {
+ if (! $version) {
throw VersionException::versionInstalledNotFound();
}
$versionAvailable = $this->getVersionAvailable();
if (version_compare($version, $versionAvailable, '<')) {
- if (!$this->versionFileExists()) {
+ if (! $this->versionFileExists()) {
$this->setVersionFile($this->getVersionAvailable());
event(new UpdateAvailable($this->getVersionAvailable()));
}
@@ -94,11 +97,11 @@ public function fetch(string $version = ''): Release
$release = $this->selectRelease($releaseCollection, $version);
$this->release->setVersion($this->prepend.$release->name.$this->append)
- ->setRelease($this->prepend.$release->name.$this->append.'.zip')
- ->updateStoragePath()
- ->setDownloadUrl($release->zipball_url);
+ ->setRelease($this->prepend.$release->name.$this->append.'.zip')
+ ->updateStoragePath()
+ ->setDownloadUrl($release->zipball_url);
- if (!$this->release->isSourceAlreadyFetched()) {
+ if (! $this->release->isSourceAlreadyFetched()) {
$this->release->download();
$this->release->extract();
}
@@ -110,7 +113,7 @@ public function selectRelease(Collection $collection, string $version)
{
$release = $collection->first();
- if (!empty($version)) {
+ if (! empty($version)) {
if ($collection->contains('name', $version)) {
$release = $collection->where('name', $version)->first();
} else {
@@ -141,8 +144,8 @@ public function getVersionInstalled(): string
* Get the latest version that has been published in a certain repository.
* Example: 2.6.5 or v2.6.5.
*
- * @param string $prepend Prepend a string to the latest version
- * @param string $append Append a string to the latest version
+ * @param string $prepend Prepend a string to the latest version
+ * @param string $append Append a string to the latest version
*
* @throws Exception|GuzzleException
*/
@@ -193,8 +196,8 @@ public function extractFromHtml(string $content): Collection
}
// Special handling when file version cannot be properly detected
- if (!array_key_exists(2, $files)) {
- foreach ($files[1] as $key=>$val) {
+ if (! array_key_exists(2, $files)) {
+ foreach ($files[1] as $key => $val) {
preg_match('/[a-zA-Z\-]([.\d]*)(?=\.\w+$)/', $val, $versions);
$files[][$key] = $versions[1];
}
@@ -210,7 +213,7 @@ public function extractFromHtml(string $content): Collection
$item = $uri->getHost() ? $item : $baseUrl.Str::start($item, '/');
return (object) [
- 'name' => $key,
+ 'name' => $key,
'zipball_url' => $item,
];
});
diff --git a/src/Traits/SupportPrivateAccessToken.php b/src/Traits/SupportPrivateAccessToken.php
index 6b0f21c..992ef2f 100644
--- a/src/Traits/SupportPrivateAccessToken.php
+++ b/src/Traits/SupportPrivateAccessToken.php
@@ -1,12 +1,11 @@
accessToken);
+ return ! empty($this->accessToken);
}
public function setAccessTokenPrefix(string $prefix): void
diff --git a/src/Traits/UseVersionFile.php b/src/Traits/UseVersionFile.php
index 654c5a6..ea0ecb2 100644
--- a/src/Traits/UseVersionFile.php
+++ b/src/Traits/UseVersionFile.php
@@ -1,8 +1,6 @@
$directory
- * @param array $excludedDirs
+ * @param array $directory
+ * @param array $excludedDirs
*/
function dirsIntersect(array $directory, array $excludedDirs): bool
{
@@ -17,7 +15,7 @@ function dirsIntersect(array $directory, array $excludedDirs): bool
}
}
-if (!\function_exists('checkPermissions')) {
+if (! \function_exists('checkPermissions')) {
/**
* Check a given directory recursively if all files are writeable.
*/
@@ -26,7 +24,7 @@ function checkPermissions(string $directory): bool
$directoryIterator = new \RecursiveDirectoryIterator($directory);
foreach (new \RecursiveIteratorIterator($directoryIterator) as $file) {
- if ($file->isFile() && !$file->isWritable()) {
+ if ($file->isFile() && ! $file->isWritable()) {
return false;
}
}
@@ -35,7 +33,7 @@ function checkPermissions(string $directory): bool
}
}
-if (!\function_exists('createFolderFromFile')) {
+if (! \function_exists('createFolderFromFile')) {
/*
* Create a folder name including path from a given file.
* Input: /tmp/my_zip_file.zip
diff --git a/tests/Commands/CheckUpdateTest.php b/tests/Commands/CheckUpdateTest.php
deleted file mode 100644
index 57a4624..0000000
--- a/tests/Commands/CheckUpdateTest.php
+++ /dev/null
@@ -1,53 +0,0 @@
-resetDownloadDir();
- }
-
- /** @test */
- public function it_can_run_check_update_command_without_new_version_available(): void
- {
- Http::fakeSequence()
- ->pushResponse($this->getResponse200Type('tag'))
- ->pushResponse($this->getResponse200ZipFile());
-
- /** @var GithubTagType $github */
- $github = resolve(GithubRepositoryType::class)->create();
-
- $github->deleteVersionFile();
-
- config(['self-update.version_installed' => '3.5']);
-
- $this->artisan(CheckForUpdate::class)
- ->expectsOutput('There\'s no new version available.')
- ->assertExitCode(0);
- }
-
- /** @test */
- public function it_can_run_check_update_command_with_new_version_available(): void
- {
- /** @var GithubTagType $github */
- $github = resolve(GithubRepositoryType::class)->create();
- $github->setVersionFile('v3.5');
-
- config(['self-update.version_installed' => 'v1.0']);
-
- $this->artisan(CheckForUpdate::class)
- ->expectsOutput('A new version [v3.5] is available.')
- ->assertExitCode(0);
- }
-}
diff --git a/tests/Data/Http/releases-http_gh.json b/tests/Data/Http/releases-http_gh.json
deleted file mode 100644
index a467f71..0000000
--- a/tests/Data/Http/releases-http_gh.json
+++ /dev/null
@@ -1,2687 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-Account Statement Not working #3069
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-PayPal Express not sending address line 2 #2983
-Fix invoice transformer
-Use decimal separator for Euro in China
-Increased max invoice limit
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-Support for PHP 7.3 (Thanks @joshuadwire !)
-Upgrade to Laravel 5.5 LTS
-Fix contact variables in proposals #2958
-Fix invoice.auto_bill value in API
-Hide totals on dashboards from non-admins
-Added Zelle to payment type list for tracking manual payments
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-Support for Strong Customer Authentication (SCA) with Stripe #2792 (Thanks @joshuadwire !)
-Support for vendors and expenses in the mobile app
-Added Bulgarian language
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-Added client address to invoice/quote reports
-Show contact name in activity details #2830 (Thanks @dicarlosystems !)
-Fix ‘tests.notes_reminder4’
-Fix XSS issues
-Converting quote to an invoice should keep the private notes #2742
-Fix for imported payment dates
-Added sparkpost support (Thanks @kominoshja !)
-Added currencies: AMD, AZN, BYN, MDL, KZT, GIP
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-Fix proposal PDF
-Fix tasks in the mobile app
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-Added KWD, DZD, MKD, BOB & FJD currencies
-Added payment fields to the expense report
-Fix for Google OAuth
-Fix auto-archive when approving quote
-Increased width of product dropdown
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-Fix for client portal logout
-Fix sorting in reports section for fields with numbers #2600
-Fixes for Stripe.js v3
-Don’t show gateway fee is amount is 0 #2545 (Thanks @tidalgo22 !)
-Use invoice design for converted quote
-Added passphrase field for Payfast
-Added XPF, CVE and MUR currencies
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-Unable to add credit card in customer portal #2559
-Issue installing FedACHdir via Composer #2576
-Fix for exporting report as PDF
-Fix for First Data Payeezy
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/tests/Data/Http/releases-http_local.json b/tests/Data/Http/releases-http_local.json
deleted file mode 100644
index 98a1e82..0000000
--- a/tests/Data/Http/releases-http_local.json
+++ /dev/null
@@ -1,983 +0,0 @@
-
-
-
-
-Releases · My test group / My Test Project · GitLab
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/tests/Data/release-1.2.zip b/tests/Data/release-1.2.zip
deleted file mode 100644
index 7b3b01f..0000000
Binary files a/tests/Data/release-1.2.zip and /dev/null differ
diff --git a/tests/Data/releases-branch.json b/tests/Data/releases-branch.json
deleted file mode 100644
index 3f0e819..0000000
--- a/tests/Data/releases-branch.json
+++ /dev/null
@@ -1,713 +0,0 @@
-[
- {
- "sha": "e8f19f9b63b5b92f31ddc4a3463dcc231301adea",
- "node_id": "MDY6Q29tbWl0MTQ3MTYzNjg6ZThmMTlmOWI2M2I1YjkyZjMxZGRjNGEzNDYzZGNjMjMxMzAxYWRlYQ==",
- "commit": {
- "author": {
- "name": "David Bomba",
- "email": "turbo124@gmail.com",
- "date": "2020-02-06T21:09:15Z"
- },
- "committer": {
- "name": "GitHub",
- "email": "noreply@github.com",
- "date": "2020-02-06T21:09:15Z"
- },
- "message": "Fixes for invoice save (#3295)\n\n* Working on Invoice Designs\r\n\r\n* Fixes for invoice save\r\n\r\n* Threshold changes for sending large accounts on ?first_load=true",
- "tree": {
- "sha": "39da8e926d8b6aa10ab83c2ad1675903c1203881",
- "url": "https://api.github.com/repos/invoiceninja/invoiceninja/git/trees/39da8e926d8b6aa10ab83c2ad1675903c1203881"
- },
- "url": "https://api.github.com/repos/invoiceninja/invoiceninja/git/commits/e8f19f9b63b5b92f31ddc4a3463dcc231301adea",
- "comment_count": 0,
- "verification": {
- "verified": true,
- "reason": "valid",
- "signature": "-----BEGIN PGP SIGNATURE-----\n\nwsBcBAABCAAQBQJePIB7CRBK7hj4Ov3rIwAAdHIIAIxEO/eDZpiS21K0HKujX9LD\nQBaDXexTnOc9aKHuHvJdgcMuvVTGfsyE+XzPDk3rL4nHQkAGpHKsvljIXt8gx6k9\nRWng7jzrixdX3iyG28RdNX5GgpZkNe0jGOVCigePM27mgbGK3rHGRYkevFsJSjdZ\n3GeggMKeuwQ4p8Jr5+Jxo2PAd64eqWDjDG/wJLraYuDoWpEg00+HD0B3adMAyYH3\nsjPUkPAf/JfUMlSAK5e9Dn8uBBzk6RxLyLUlXoxSUgur33ITgcIAarO6fo+YwnF8\nUvs6sfU/Ls+DO4kLVjMujZFRPFzVFdageMdLz2UsSflAYMQN1GmMTEx2iL9F3Ns=\n=UEcw\n-----END PGP SIGNATURE-----\n",
- "payload": "tree 39da8e926d8b6aa10ab83c2ad1675903c1203881\nparent 82720f180162edf50bfe780bbe4e7a092af7bc6e\nauthor David Bomba 1581023355 +1100\ncommitter GitHub 1581023355 +1100\n\nFixes for invoice save (#3295)\n\n* Working on Invoice Designs\r\n\r\n* Fixes for invoice save\r\n\r\n* Threshold changes for sending large accounts on ?first_load=true\r\n"
- }
- },
- "url": "https://api.github.com/repos/invoiceninja/invoiceninja/commits/e8f19f9b63b5b92f31ddc4a3463dcc231301adea",
- "html_url": "https://github.com/invoiceninja/invoiceninja/commit/e8f19f9b63b5b92f31ddc4a3463dcc231301adea",
- "comments_url": "https://api.github.com/repos/invoiceninja/invoiceninja/commits/e8f19f9b63b5b92f31ddc4a3463dcc231301adea/comments",
- "author": {
- "login": "turbo124",
- "id": 5827962,
- "node_id": "MDQ6VXNlcjU4Mjc5NjI=",
- "avatar_url": "https://avatars0.githubusercontent.com/u/5827962?v=4",
- "gravatar_id": "",
- "url": "https://api.github.com/users/turbo124",
- "html_url": "https://github.com/turbo124",
- "followers_url": "https://api.github.com/users/turbo124/followers",
- "following_url": "https://api.github.com/users/turbo124/following{/other_user}",
- "gists_url": "https://api.github.com/users/turbo124/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/turbo124/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/turbo124/subscriptions",
- "organizations_url": "https://api.github.com/users/turbo124/orgs",
- "repos_url": "https://api.github.com/users/turbo124/repos",
- "events_url": "https://api.github.com/users/turbo124/events{/privacy}",
- "received_events_url": "https://api.github.com/users/turbo124/received_events",
- "type": "User",
- "site_admin": false
- },
- "committer": {
- "login": "web-flow",
- "id": 19864447,
- "node_id": "MDQ6VXNlcjE5ODY0NDQ3",
- "avatar_url": "https://avatars3.githubusercontent.com/u/19864447?v=4",
- "gravatar_id": "",
- "url": "https://api.github.com/users/web-flow",
- "html_url": "https://github.com/web-flow",
- "followers_url": "https://api.github.com/users/web-flow/followers",
- "following_url": "https://api.github.com/users/web-flow/following{/other_user}",
- "gists_url": "https://api.github.com/users/web-flow/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/web-flow/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/web-flow/subscriptions",
- "organizations_url": "https://api.github.com/users/web-flow/orgs",
- "repos_url": "https://api.github.com/users/web-flow/repos",
- "events_url": "https://api.github.com/users/web-flow/events{/privacy}",
- "received_events_url": "https://api.github.com/users/web-flow/received_events",
- "type": "User",
- "site_admin": false
- },
- "parents": [
- {
- "sha": "82720f180162edf50bfe780bbe4e7a092af7bc6e",
- "url": "https://api.github.com/repos/invoiceninja/invoiceninja/commits/82720f180162edf50bfe780bbe4e7a092af7bc6e",
- "html_url": "https://github.com/invoiceninja/invoiceninja/commit/82720f180162edf50bfe780bbe4e7a092af7bc6e"
- }
- ]
- },
- {
- "sha": "82720f180162edf50bfe780bbe4e7a092af7bc6e",
- "node_id": "MDY6Q29tbWl0MTQ3MTYzNjg6ODI3MjBmMTgwMTYyZWRmNTBiZmU3ODBiYmU0ZTdhMDkyYWY3YmM2ZQ==",
- "commit": {
- "author": {
- "name": "David Bomba",
- "email": "turbo124@gmail.com",
- "date": "2020-02-06T12:30:50Z"
- },
- "committer": {
- "name": "GitHub",
- "email": "noreply@github.com",
- "date": "2020-02-06T12:30:50Z"
- },
- "message": "Fixes for client transformer (#3291)",
- "tree": {
- "sha": "b3add464062aae661acbfc84d18d140dc9397ff3",
- "url": "https://api.github.com/repos/invoiceninja/invoiceninja/git/trees/b3add464062aae661acbfc84d18d140dc9397ff3"
- },
- "url": "https://api.github.com/repos/invoiceninja/invoiceninja/git/commits/82720f180162edf50bfe780bbe4e7a092af7bc6e",
- "comment_count": 0,
- "verification": {
- "verified": true,
- "reason": "valid",
- "signature": "-----BEGIN PGP SIGNATURE-----\n\nwsBcBAABCAAQBQJePAb6CRBK7hj4Ov3rIwAAdHIIABrHbc2bRnCu1BNExXJlCNrV\nDUZH0fDegjaHZd3dFzI1QuIk0mn0pVlaG4M7X9f+vsY2RLLpw2uGFYR4wyiGHvqv\nv8Typxa53MXmfjQdmznvJ8FztOaiNZPduQJbdyUVMmKKuyIg8vUVHNjxG/m5mOe5\nLqI3XMC7Rb21m6WDdo+SQvI4xQi8zqdhMAd5BHFvuIXRhbZ3ExnUDm7yA7mrhfRo\nLsVoxdVHTVFeToZLQCl9nwhzgGNfe7asCULDONcb7OyrBxTF6JJjsynaTKr3XZ4J\nSvWsqPs/OIyWCJXDK50CviaFff5uDrya9BzObg68CaXE9LdGUZn0/mytKQTUl5o=\n=w0LM\n-----END PGP SIGNATURE-----\n",
- "payload": "tree b3add464062aae661acbfc84d18d140dc9397ff3\nparent f519fc765b2176256bec74ee4cc38bd7f4254c98\nauthor David Bomba 1580992250 +1100\ncommitter GitHub 1580992250 +1100\n\nFixes for client transformer (#3291)\n\n"
- }
- },
- "url": "https://api.github.com/repos/invoiceninja/invoiceninja/commits/82720f180162edf50bfe780bbe4e7a092af7bc6e",
- "html_url": "https://github.com/invoiceninja/invoiceninja/commit/82720f180162edf50bfe780bbe4e7a092af7bc6e",
- "comments_url": "https://api.github.com/repos/invoiceninja/invoiceninja/commits/82720f180162edf50bfe780bbe4e7a092af7bc6e/comments",
- "author": {
- "login": "turbo124",
- "id": 5827962,
- "node_id": "MDQ6VXNlcjU4Mjc5NjI=",
- "avatar_url": "https://avatars0.githubusercontent.com/u/5827962?v=4",
- "gravatar_id": "",
- "url": "https://api.github.com/users/turbo124",
- "html_url": "https://github.com/turbo124",
- "followers_url": "https://api.github.com/users/turbo124/followers",
- "following_url": "https://api.github.com/users/turbo124/following{/other_user}",
- "gists_url": "https://api.github.com/users/turbo124/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/turbo124/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/turbo124/subscriptions",
- "organizations_url": "https://api.github.com/users/turbo124/orgs",
- "repos_url": "https://api.github.com/users/turbo124/repos",
- "events_url": "https://api.github.com/users/turbo124/events{/privacy}",
- "received_events_url": "https://api.github.com/users/turbo124/received_events",
- "type": "User",
- "site_admin": false
- },
- "committer": {
- "login": "web-flow",
- "id": 19864447,
- "node_id": "MDQ6VXNlcjE5ODY0NDQ3",
- "avatar_url": "https://avatars3.githubusercontent.com/u/19864447?v=4",
- "gravatar_id": "",
- "url": "https://api.github.com/users/web-flow",
- "html_url": "https://github.com/web-flow",
- "followers_url": "https://api.github.com/users/web-flow/followers",
- "following_url": "https://api.github.com/users/web-flow/following{/other_user}",
- "gists_url": "https://api.github.com/users/web-flow/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/web-flow/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/web-flow/subscriptions",
- "organizations_url": "https://api.github.com/users/web-flow/orgs",
- "repos_url": "https://api.github.com/users/web-flow/repos",
- "events_url": "https://api.github.com/users/web-flow/events{/privacy}",
- "received_events_url": "https://api.github.com/users/web-flow/received_events",
- "type": "User",
- "site_admin": false
- },
- "parents": [
- {
- "sha": "f519fc765b2176256bec74ee4cc38bd7f4254c98",
- "url": "https://api.github.com/repos/invoiceninja/invoiceninja/commits/f519fc765b2176256bec74ee4cc38bd7f4254c98",
- "html_url": "https://github.com/invoiceninja/invoiceninja/commit/f519fc765b2176256bec74ee4cc38bd7f4254c98"
- }
- ]
- },
- {
- "sha": "f519fc765b2176256bec74ee4cc38bd7f4254c98",
- "node_id": "MDY6Q29tbWl0MTQ3MTYzNjg6ZjUxOWZjNzY1YjIxNzYyNTZiZWM3NGVlNGNjMzhiZDdmNDI1NGM5OA==",
- "commit": {
- "author": {
- "name": "David Bomba",
- "email": "turbo124@gmail.com",
- "date": "2020-02-06T12:00:22Z"
- },
- "committer": {
- "name": "GitHub",
- "email": "noreply@github.com",
- "date": "2020-02-06T12:00:22Z"
- },
- "message": "Improvements for eager loading (#3290)\n\n* Working on invoice designs\r\n\r\n* Working on Invoice Designs\r\n\r\n* Improve eager loads\r\n\r\n* Improvements for eager loading",
- "tree": {
- "sha": "775effc7d6d9e605edb0df74ead0d4b0c798603f",
- "url": "https://api.github.com/repos/invoiceninja/invoiceninja/git/trees/775effc7d6d9e605edb0df74ead0d4b0c798603f"
- },
- "url": "https://api.github.com/repos/invoiceninja/invoiceninja/git/commits/f519fc765b2176256bec74ee4cc38bd7f4254c98",
- "comment_count": 0,
- "verification": {
- "verified": true,
- "reason": "valid",
- "signature": "-----BEGIN PGP SIGNATURE-----\n\nwsBcBAABCAAQBQJeO//WCRBK7hj4Ov3rIwAAdHIIAKxXXR+F85+6NyiMeO5nKoUt\n3Z8rdBakmP90uDEhDKJEyy8QUVsFjfY740EYsZWdKeO0R05DikCjvKAmvsNoeK7H\nh2UuSsRkqU1lFw6hvb8FCEkQTTACcX60+x4iY3eUPDybnOx6ZNVP5KX5DSnbEz6i\nu3sk4HacB34Hs+9OtFW8WmmWW17PO24urhpPbswKAXTzq2WjiVbLIvEIqLlkr8EK\nIqAvkSyOtNiEg69zE+8cehs0m3uL5fkYVBGRZFKkTSUKdTm0hJ4q3IGJzCqfRMHc\nP9uxw6f4uGDPjfKfLzDVisNwBLrRr6OPJbFSa/Hkx2kNJSWR+IF5w6d+BNwNE9o=\n=SPfi\n-----END PGP SIGNATURE-----\n",
- "payload": "tree 775effc7d6d9e605edb0df74ead0d4b0c798603f\nparent 4f82f1b9037530baa8775e41e16d82e8db97110f\nauthor David Bomba 1580990422 +1100\ncommitter GitHub 1580990422 +1100\n\nImprovements for eager loading (#3290)\n\n* Working on invoice designs\r\n\r\n* Working on Invoice Designs\r\n\r\n* Improve eager loads\r\n\r\n* Improvements for eager loading\r\n"
- }
- },
- "url": "https://api.github.com/repos/invoiceninja/invoiceninja/commits/f519fc765b2176256bec74ee4cc38bd7f4254c98",
- "html_url": "https://github.com/invoiceninja/invoiceninja/commit/f519fc765b2176256bec74ee4cc38bd7f4254c98",
- "comments_url": "https://api.github.com/repos/invoiceninja/invoiceninja/commits/f519fc765b2176256bec74ee4cc38bd7f4254c98/comments",
- "author": {
- "login": "turbo124",
- "id": 5827962,
- "node_id": "MDQ6VXNlcjU4Mjc5NjI=",
- "avatar_url": "https://avatars0.githubusercontent.com/u/5827962?v=4",
- "gravatar_id": "",
- "url": "https://api.github.com/users/turbo124",
- "html_url": "https://github.com/turbo124",
- "followers_url": "https://api.github.com/users/turbo124/followers",
- "following_url": "https://api.github.com/users/turbo124/following{/other_user}",
- "gists_url": "https://api.github.com/users/turbo124/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/turbo124/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/turbo124/subscriptions",
- "organizations_url": "https://api.github.com/users/turbo124/orgs",
- "repos_url": "https://api.github.com/users/turbo124/repos",
- "events_url": "https://api.github.com/users/turbo124/events{/privacy}",
- "received_events_url": "https://api.github.com/users/turbo124/received_events",
- "type": "User",
- "site_admin": false
- },
- "committer": {
- "login": "web-flow",
- "id": 19864447,
- "node_id": "MDQ6VXNlcjE5ODY0NDQ3",
- "avatar_url": "https://avatars3.githubusercontent.com/u/19864447?v=4",
- "gravatar_id": "",
- "url": "https://api.github.com/users/web-flow",
- "html_url": "https://github.com/web-flow",
- "followers_url": "https://api.github.com/users/web-flow/followers",
- "following_url": "https://api.github.com/users/web-flow/following{/other_user}",
- "gists_url": "https://api.github.com/users/web-flow/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/web-flow/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/web-flow/subscriptions",
- "organizations_url": "https://api.github.com/users/web-flow/orgs",
- "repos_url": "https://api.github.com/users/web-flow/repos",
- "events_url": "https://api.github.com/users/web-flow/events{/privacy}",
- "received_events_url": "https://api.github.com/users/web-flow/received_events",
- "type": "User",
- "site_admin": false
- },
- "parents": [
- {
- "sha": "4f82f1b9037530baa8775e41e16d82e8db97110f",
- "url": "https://api.github.com/repos/invoiceninja/invoiceninja/commits/4f82f1b9037530baa8775e41e16d82e8db97110f",
- "html_url": "https://github.com/invoiceninja/invoiceninja/commit/4f82f1b9037530baa8775e41e16d82e8db97110f"
- }
- ]
- },
- {
- "sha": "4f82f1b9037530baa8775e41e16d82e8db97110f",
- "node_id": "MDY6Q29tbWl0MTQ3MTYzNjg6NGY4MmYxYjkwMzc1MzBiYWE4Nzc1ZTQxZTE2ZDgyZThkYjk3MTEwZg==",
- "commit": {
- "author": {
- "name": "David Bomba",
- "email": "turbo124@gmail.com",
- "date": "2020-02-06T09:35:51Z"
- },
- "committer": {
- "name": "GitHub",
- "email": "noreply@github.com",
- "date": "2020-02-06T09:35:51Z"
- },
- "message": "Improve eager loads (#3289)\n\n* Working on invoice designs\r\n\r\n* Working on Invoice Designs\r\n\r\n* Improve eager loads",
- "tree": {
- "sha": "c90d89cb7de4928dfe90c89c66f6eccc8cf2b334",
- "url": "https://api.github.com/repos/invoiceninja/invoiceninja/git/trees/c90d89cb7de4928dfe90c89c66f6eccc8cf2b334"
- },
- "url": "https://api.github.com/repos/invoiceninja/invoiceninja/git/commits/4f82f1b9037530baa8775e41e16d82e8db97110f",
- "comment_count": 0,
- "verification": {
- "verified": true,
- "reason": "valid",
- "signature": "-----BEGIN PGP SIGNATURE-----\n\nwsBcBAABCAAQBQJeO933CRBK7hj4Ov3rIwAAdHIIAKaHxLBX5lI7Mt9dON7aGoZN\ni8eummqa4kN0d2johWZs4cN653I8bf/NN0lpe3tEYppgEvl9f+9LVwA1cwTvHj7Y\nqO3uRoVypSXNA2oQdLs0rW+MHoRSDwNTEjcq4wZjiJUDbpTn3lUYTgmQCFqGl1km\nMWnuVph7WxC6Z5zLTgn2kYhOJwU3y9VL0F8Cwk83xjr2bX5NgIibbJMucrV6knmG\npAV6vi6L6AM8SO+gCcxJGWFhzGkRHabuBpsa7JbVnCu26mixWPBQ5pudAcgDIAck\nVXGb8upRAGJiWfF9M21gaH6jLNSu4Pk96Fxcx0Xt6jXKCCBmnlhe/gKLvvxMNN4=\n=K6S6\n-----END PGP SIGNATURE-----\n",
- "payload": "tree c90d89cb7de4928dfe90c89c66f6eccc8cf2b334\nparent 797c3fb3f69ecb96b34035aa79505064140d6777\nauthor David Bomba 1580981751 +1100\ncommitter GitHub 1580981751 +1100\n\nImprove eager loads (#3289)\n\n* Working on invoice designs\r\n\r\n* Working on Invoice Designs\r\n\r\n* Improve eager loads\r\n"
- }
- },
- "url": "https://api.github.com/repos/invoiceninja/invoiceninja/commits/4f82f1b9037530baa8775e41e16d82e8db97110f",
- "html_url": "https://github.com/invoiceninja/invoiceninja/commit/4f82f1b9037530baa8775e41e16d82e8db97110f",
- "comments_url": "https://api.github.com/repos/invoiceninja/invoiceninja/commits/4f82f1b9037530baa8775e41e16d82e8db97110f/comments",
- "author": {
- "login": "turbo124",
- "id": 5827962,
- "node_id": "MDQ6VXNlcjU4Mjc5NjI=",
- "avatar_url": "https://avatars0.githubusercontent.com/u/5827962?v=4",
- "gravatar_id": "",
- "url": "https://api.github.com/users/turbo124",
- "html_url": "https://github.com/turbo124",
- "followers_url": "https://api.github.com/users/turbo124/followers",
- "following_url": "https://api.github.com/users/turbo124/following{/other_user}",
- "gists_url": "https://api.github.com/users/turbo124/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/turbo124/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/turbo124/subscriptions",
- "organizations_url": "https://api.github.com/users/turbo124/orgs",
- "repos_url": "https://api.github.com/users/turbo124/repos",
- "events_url": "https://api.github.com/users/turbo124/events{/privacy}",
- "received_events_url": "https://api.github.com/users/turbo124/received_events",
- "type": "User",
- "site_admin": false
- },
- "committer": {
- "login": "web-flow",
- "id": 19864447,
- "node_id": "MDQ6VXNlcjE5ODY0NDQ3",
- "avatar_url": "https://avatars3.githubusercontent.com/u/19864447?v=4",
- "gravatar_id": "",
- "url": "https://api.github.com/users/web-flow",
- "html_url": "https://github.com/web-flow",
- "followers_url": "https://api.github.com/users/web-flow/followers",
- "following_url": "https://api.github.com/users/web-flow/following{/other_user}",
- "gists_url": "https://api.github.com/users/web-flow/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/web-flow/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/web-flow/subscriptions",
- "organizations_url": "https://api.github.com/users/web-flow/orgs",
- "repos_url": "https://api.github.com/users/web-flow/repos",
- "events_url": "https://api.github.com/users/web-flow/events{/privacy}",
- "received_events_url": "https://api.github.com/users/web-flow/received_events",
- "type": "User",
- "site_admin": false
- },
- "parents": [
- {
- "sha": "797c3fb3f69ecb96b34035aa79505064140d6777",
- "url": "https://api.github.com/repos/invoiceninja/invoiceninja/commits/797c3fb3f69ecb96b34035aa79505064140d6777",
- "html_url": "https://github.com/invoiceninja/invoiceninja/commit/797c3fb3f69ecb96b34035aa79505064140d6777"
- }
- ]
- },
- {
- "sha": "797c3fb3f69ecb96b34035aa79505064140d6777",
- "node_id": "MDY6Q29tbWl0MTQ3MTYzNjg6Nzk3YzNmYjNmNjllY2I5NmIzNDAzNWFhNzk1MDUwNjQxNDBkNjc3Nw==",
- "commit": {
- "author": {
- "name": "David Bomba",
- "email": "turbo124@gmail.com",
- "date": "2020-02-05T21:54:20Z"
- },
- "committer": {
- "name": "GitHub",
- "email": "noreply@github.com",
- "date": "2020-02-05T21:54:20Z"
- },
- "message": "Fixes for refunds (#3288)\n\n* Working on invoice designs\r\n\r\n* Fix unusual form request issue in tests vs production\r\n\r\n* Fixes for form requests\r\n\r\n* Fixes for refunds",
- "tree": {
- "sha": "28f699160d7a3e854e55b2e24320a2d11307a728",
- "url": "https://api.github.com/repos/invoiceninja/invoiceninja/git/trees/28f699160d7a3e854e55b2e24320a2d11307a728"
- },
- "url": "https://api.github.com/repos/invoiceninja/invoiceninja/git/commits/797c3fb3f69ecb96b34035aa79505064140d6777",
- "comment_count": 0,
- "verification": {
- "verified": true,
- "reason": "valid",
- "signature": "-----BEGIN PGP SIGNATURE-----\n\nwsBcBAABCAAQBQJeOzmMCRBK7hj4Ov3rIwAAdHIIAJqJ8uxd53mEgQzxGG63Se9W\n6YZnUGJCVXZK4Pf0woPXXDnSIH/MgwFpKPUyPyGnL33vzvxVz9GgFeQd6dxXRUax\nmgeFffEN8n7Pe2UoTNflhmOgCn9R3dQccfeJUo6NcFuFnkdCbp+SaBaW3tUN/B73\nufRTCwFy0vs7cGpQbnCJTjDyLOHFuB5RZ1ADAqhdeaXSTr7W8ka/TLKdlXJbrMZz\naBbPckhFvoM1tjT18d5Y5jgMFshwGVcbNFHmsFeCnEnKZGowckIGl44SVQO9rJF0\nlxNpkjUROLm5g6K1A8NQK7y1Sjp0nn+agcuPB+hEmIGO1YJ/y8PzVTkUpl+O5gU=\n=hsEC\n-----END PGP SIGNATURE-----\n",
- "payload": "tree 28f699160d7a3e854e55b2e24320a2d11307a728\nparent 11960e25e75d3deaa87db459b3002f6f9d3af1ae\nauthor David Bomba 1580939660 +1100\ncommitter GitHub 1580939660 +1100\n\nFixes for refunds (#3288)\n\n* Working on invoice designs\r\n\r\n* Fix unusual form request issue in tests vs production\r\n\r\n* Fixes for form requests\r\n\r\n* Fixes for refunds\r\n"
- }
- },
- "url": "https://api.github.com/repos/invoiceninja/invoiceninja/commits/797c3fb3f69ecb96b34035aa79505064140d6777",
- "html_url": "https://github.com/invoiceninja/invoiceninja/commit/797c3fb3f69ecb96b34035aa79505064140d6777",
- "comments_url": "https://api.github.com/repos/invoiceninja/invoiceninja/commits/797c3fb3f69ecb96b34035aa79505064140d6777/comments",
- "author": {
- "login": "turbo124",
- "id": 5827962,
- "node_id": "MDQ6VXNlcjU4Mjc5NjI=",
- "avatar_url": "https://avatars0.githubusercontent.com/u/5827962?v=4",
- "gravatar_id": "",
- "url": "https://api.github.com/users/turbo124",
- "html_url": "https://github.com/turbo124",
- "followers_url": "https://api.github.com/users/turbo124/followers",
- "following_url": "https://api.github.com/users/turbo124/following{/other_user}",
- "gists_url": "https://api.github.com/users/turbo124/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/turbo124/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/turbo124/subscriptions",
- "organizations_url": "https://api.github.com/users/turbo124/orgs",
- "repos_url": "https://api.github.com/users/turbo124/repos",
- "events_url": "https://api.github.com/users/turbo124/events{/privacy}",
- "received_events_url": "https://api.github.com/users/turbo124/received_events",
- "type": "User",
- "site_admin": false
- },
- "committer": {
- "login": "web-flow",
- "id": 19864447,
- "node_id": "MDQ6VXNlcjE5ODY0NDQ3",
- "avatar_url": "https://avatars3.githubusercontent.com/u/19864447?v=4",
- "gravatar_id": "",
- "url": "https://api.github.com/users/web-flow",
- "html_url": "https://github.com/web-flow",
- "followers_url": "https://api.github.com/users/web-flow/followers",
- "following_url": "https://api.github.com/users/web-flow/following{/other_user}",
- "gists_url": "https://api.github.com/users/web-flow/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/web-flow/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/web-flow/subscriptions",
- "organizations_url": "https://api.github.com/users/web-flow/orgs",
- "repos_url": "https://api.github.com/users/web-flow/repos",
- "events_url": "https://api.github.com/users/web-flow/events{/privacy}",
- "received_events_url": "https://api.github.com/users/web-flow/received_events",
- "type": "User",
- "site_admin": false
- },
- "parents": [
- {
- "sha": "11960e25e75d3deaa87db459b3002f6f9d3af1ae",
- "url": "https://api.github.com/repos/invoiceninja/invoiceninja/commits/11960e25e75d3deaa87db459b3002f6f9d3af1ae",
- "html_url": "https://github.com/invoiceninja/invoiceninja/commit/11960e25e75d3deaa87db459b3002f6f9d3af1ae"
- }
- ]
- },
- {
- "sha": "11960e25e75d3deaa87db459b3002f6f9d3af1ae",
- "node_id": "MDY6Q29tbWl0MTQ3MTYzNjg6MTE5NjBlMjVlNzVkM2RlYWE4N2RiNDU5YjMwMDJmNmY5ZDNhZjFhZQ==",
- "commit": {
- "author": {
- "name": "David Bomba",
- "email": "turbo124@gmail.com",
- "date": "2020-02-05T10:28:56Z"
- },
- "committer": {
- "name": "GitHub",
- "email": "noreply@github.com",
- "date": "2020-02-05T10:28:56Z"
- },
- "message": "Fixes for refunds (#3285)\n\n* Working self-updater package\r\n\r\n* Fixes for travis\r\n\r\n* Working on invoice designs\r\n\r\n* Working on invoice builder\r\n\r\n* Tests for invoice design\r\n\r\n* Working on invoice designs\r\n\r\n* Minor fixes\r\n\r\n* Working on Invoice Design Engine\r\n\r\n* Working on invoice designs\r\n\r\n* Fixes for refunds",
- "tree": {
- "sha": "1a2cb027fb192259cea9a6ee13f464f6db252a35",
- "url": "https://api.github.com/repos/invoiceninja/invoiceninja/git/trees/1a2cb027fb192259cea9a6ee13f464f6db252a35"
- },
- "url": "https://api.github.com/repos/invoiceninja/invoiceninja/git/commits/11960e25e75d3deaa87db459b3002f6f9d3af1ae",
- "comment_count": 0,
- "verification": {
- "verified": true,
- "reason": "valid",
- "signature": "-----BEGIN PGP SIGNATURE-----\n\nwsBcBAABCAAQBQJeOpjoCRBK7hj4Ov3rIwAAdHIIAEzQrvqzY8HunVtC4oGlJAae\ny+WkFyvQmNL1JB1DOgBryLD5JemLToo6DHF1NFO8WTRb9s/rdBiTs0Pt5KgW6vDz\nVs2jXJN1S5fAai4JD6zZ+bAvv082MIxYVHkq7cwTlSvX/u8WnupewkqjRVvmkdPN\nlQyIpocl8c7MmRPfBK3SMPYnmxEBwHgr+M0ZMKCCkd+6maYTgNLfpLc9eWg1whfv\nBMn4VIO7PtA2HTT+N7Az9+cUFQrHCfOtEZ/lchPq1m1UmNm5eI46SWooNtp7HGvz\n77NA1apt4XAir20muFFBofSJF0cy6gYqfFJqb2dMFdPAI42eG0dgXwiG6ZKi3dE=\n=WXkG\n-----END PGP SIGNATURE-----\n",
- "payload": "tree 1a2cb027fb192259cea9a6ee13f464f6db252a35\nparent 3ec996ee5de0f623dd8f252d3b4b6ad53cd951e6\nauthor David Bomba 1580898536 +1100\ncommitter GitHub 1580898536 +1100\n\nFixes for refunds (#3285)\n\n* Working self-updater package\r\n\r\n* Fixes for travis\r\n\r\n* Working on invoice designs\r\n\r\n* Working on invoice builder\r\n\r\n* Tests for invoice design\r\n\r\n* Working on invoice designs\r\n\r\n* Minor fixes\r\n\r\n* Working on Invoice Design Engine\r\n\r\n* Working on invoice designs\r\n\r\n* Fixes for refunds\r\n"
- }
- },
- "url": "https://api.github.com/repos/invoiceninja/invoiceninja/commits/11960e25e75d3deaa87db459b3002f6f9d3af1ae",
- "html_url": "https://github.com/invoiceninja/invoiceninja/commit/11960e25e75d3deaa87db459b3002f6f9d3af1ae",
- "comments_url": "https://api.github.com/repos/invoiceninja/invoiceninja/commits/11960e25e75d3deaa87db459b3002f6f9d3af1ae/comments",
- "author": {
- "login": "turbo124",
- "id": 5827962,
- "node_id": "MDQ6VXNlcjU4Mjc5NjI=",
- "avatar_url": "https://avatars0.githubusercontent.com/u/5827962?v=4",
- "gravatar_id": "",
- "url": "https://api.github.com/users/turbo124",
- "html_url": "https://github.com/turbo124",
- "followers_url": "https://api.github.com/users/turbo124/followers",
- "following_url": "https://api.github.com/users/turbo124/following{/other_user}",
- "gists_url": "https://api.github.com/users/turbo124/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/turbo124/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/turbo124/subscriptions",
- "organizations_url": "https://api.github.com/users/turbo124/orgs",
- "repos_url": "https://api.github.com/users/turbo124/repos",
- "events_url": "https://api.github.com/users/turbo124/events{/privacy}",
- "received_events_url": "https://api.github.com/users/turbo124/received_events",
- "type": "User",
- "site_admin": false
- },
- "committer": {
- "login": "web-flow",
- "id": 19864447,
- "node_id": "MDQ6VXNlcjE5ODY0NDQ3",
- "avatar_url": "https://avatars3.githubusercontent.com/u/19864447?v=4",
- "gravatar_id": "",
- "url": "https://api.github.com/users/web-flow",
- "html_url": "https://github.com/web-flow",
- "followers_url": "https://api.github.com/users/web-flow/followers",
- "following_url": "https://api.github.com/users/web-flow/following{/other_user}",
- "gists_url": "https://api.github.com/users/web-flow/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/web-flow/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/web-flow/subscriptions",
- "organizations_url": "https://api.github.com/users/web-flow/orgs",
- "repos_url": "https://api.github.com/users/web-flow/repos",
- "events_url": "https://api.github.com/users/web-flow/events{/privacy}",
- "received_events_url": "https://api.github.com/users/web-flow/received_events",
- "type": "User",
- "site_admin": false
- },
- "parents": [
- {
- "sha": "3ec996ee5de0f623dd8f252d3b4b6ad53cd951e6",
- "url": "https://api.github.com/repos/invoiceninja/invoiceninja/commits/3ec996ee5de0f623dd8f252d3b4b6ad53cd951e6",
- "html_url": "https://github.com/invoiceninja/invoiceninja/commit/3ec996ee5de0f623dd8f252d3b4b6ad53cd951e6"
- }
- ]
- },
- {
- "sha": "3ec996ee5de0f623dd8f252d3b4b6ad53cd951e6",
- "node_id": "MDY6Q29tbWl0MTQ3MTYzNjg6M2VjOTk2ZWU1ZGUwZjYyM2RkOGYyNTJkM2I0YjZhZDUzY2Q5NTFlNg==",
- "commit": {
- "author": {
- "name": "David Bomba",
- "email": "turbo124@gmail.com",
- "date": "2020-02-05T04:06:03Z"
- },
- "committer": {
- "name": "GitHub",
- "email": "noreply@github.com",
- "date": "2020-02-05T04:06:03Z"
- },
- "message": "Invoice Designer (#3283)\n\n* Working self-updater package\r\n\r\n* Fixes for travis\r\n\r\n* Working on invoice designs\r\n\r\n* Working on invoice builder\r\n\r\n* Tests for invoice design\r\n\r\n* Working on invoice designs\r\n\r\n* Minor fixes\r\n\r\n* Minor fixes for randomdataseeder",
- "tree": {
- "sha": "ba7528f0e6564bcfb0da9d5c91a631a8b9e7bb4d",
- "url": "https://api.github.com/repos/invoiceninja/invoiceninja/git/trees/ba7528f0e6564bcfb0da9d5c91a631a8b9e7bb4d"
- },
- "url": "https://api.github.com/repos/invoiceninja/invoiceninja/git/commits/3ec996ee5de0f623dd8f252d3b4b6ad53cd951e6",
- "comment_count": 0,
- "verification": {
- "verified": true,
- "reason": "valid",
- "signature": "-----BEGIN PGP SIGNATURE-----\n\nwsBcBAABCAAQBQJeOj8rCRBK7hj4Ov3rIwAAdHIIAF9Gc9+5Z7G5KwY8lggyfE++\nn8uJZm6q+FyDGP/curpuG6ODo3HxRkKMZ1ZaXYHYkuiFkYsWygvhrb0MFNmQqynD\nHtHfEB6aQ6WuFyTmCMk++cvWtl5t/QvsYcKKaLDvomlmvZ+qMuxD9dse/WQqRnx+\nD435mxbf68H1Z7FWeqzm4z6sVA3W2/CogP+4fPrs+OQLlLmo1TVMjogsSIlMyVhn\n08CTmpc3U+s/Ne20hmxLEgYG/hL/d3IC9wb/Zf61YYeePujrgQp5zzzDQekc1trj\nTIWTXrzmrohShpyI3xBuIFrZFUAs+acNoD3q+hPHFN1egBhIelAOioWE5fYCAtU=\n=icfl\n-----END PGP SIGNATURE-----\n",
- "payload": "tree ba7528f0e6564bcfb0da9d5c91a631a8b9e7bb4d\nparent c2524f55da70f141f438beaab6b920c48e9de832\nauthor David Bomba 1580875563 +1100\ncommitter GitHub 1580875563 +1100\n\nInvoice Designer (#3283)\n\n* Working self-updater package\r\n\r\n* Fixes for travis\r\n\r\n* Working on invoice designs\r\n\r\n* Working on invoice builder\r\n\r\n* Tests for invoice design\r\n\r\n* Working on invoice designs\r\n\r\n* Minor fixes\r\n\r\n* Minor fixes for randomdataseeder\r\n"
- }
- },
- "url": "https://api.github.com/repos/invoiceninja/invoiceninja/commits/3ec996ee5de0f623dd8f252d3b4b6ad53cd951e6",
- "html_url": "https://github.com/invoiceninja/invoiceninja/commit/3ec996ee5de0f623dd8f252d3b4b6ad53cd951e6",
- "comments_url": "https://api.github.com/repos/invoiceninja/invoiceninja/commits/3ec996ee5de0f623dd8f252d3b4b6ad53cd951e6/comments",
- "author": {
- "login": "turbo124",
- "id": 5827962,
- "node_id": "MDQ6VXNlcjU4Mjc5NjI=",
- "avatar_url": "https://avatars0.githubusercontent.com/u/5827962?v=4",
- "gravatar_id": "",
- "url": "https://api.github.com/users/turbo124",
- "html_url": "https://github.com/turbo124",
- "followers_url": "https://api.github.com/users/turbo124/followers",
- "following_url": "https://api.github.com/users/turbo124/following{/other_user}",
- "gists_url": "https://api.github.com/users/turbo124/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/turbo124/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/turbo124/subscriptions",
- "organizations_url": "https://api.github.com/users/turbo124/orgs",
- "repos_url": "https://api.github.com/users/turbo124/repos",
- "events_url": "https://api.github.com/users/turbo124/events{/privacy}",
- "received_events_url": "https://api.github.com/users/turbo124/received_events",
- "type": "User",
- "site_admin": false
- },
- "committer": {
- "login": "web-flow",
- "id": 19864447,
- "node_id": "MDQ6VXNlcjE5ODY0NDQ3",
- "avatar_url": "https://avatars3.githubusercontent.com/u/19864447?v=4",
- "gravatar_id": "",
- "url": "https://api.github.com/users/web-flow",
- "html_url": "https://github.com/web-flow",
- "followers_url": "https://api.github.com/users/web-flow/followers",
- "following_url": "https://api.github.com/users/web-flow/following{/other_user}",
- "gists_url": "https://api.github.com/users/web-flow/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/web-flow/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/web-flow/subscriptions",
- "organizations_url": "https://api.github.com/users/web-flow/orgs",
- "repos_url": "https://api.github.com/users/web-flow/repos",
- "events_url": "https://api.github.com/users/web-flow/events{/privacy}",
- "received_events_url": "https://api.github.com/users/web-flow/received_events",
- "type": "User",
- "site_admin": false
- },
- "parents": [
- {
- "sha": "c2524f55da70f141f438beaab6b920c48e9de832",
- "url": "https://api.github.com/repos/invoiceninja/invoiceninja/commits/c2524f55da70f141f438beaab6b920c48e9de832",
- "html_url": "https://github.com/invoiceninja/invoiceninja/commit/c2524f55da70f141f438beaab6b920c48e9de832"
- }
- ]
- },
- {
- "sha": "c2524f55da70f141f438beaab6b920c48e9de832",
- "node_id": "MDY6Q29tbWl0MTQ3MTYzNjg6YzI1MjRmNTVkYTcwZjE0MWY0MzhiZWFhYjZiOTIwYzQ4ZTlkZTgzMg==",
- "commit": {
- "author": {
- "name": "michael-hampton",
- "email": "michaelhamptondesign@yahoo.com",
- "date": "2020-02-04T22:47:54Z"
- },
- "committer": {
- "name": "GitHub",
- "email": "noreply@github.com",
- "date": "2020-02-04T22:47:54Z"
- },
- "message": "Update MarkPaid.php (#3282)",
- "tree": {
- "sha": "be0307961da2caecc8bf7906cfb1980569064b6f",
- "url": "https://api.github.com/repos/invoiceninja/invoiceninja/git/trees/be0307961da2caecc8bf7906cfb1980569064b6f"
- },
- "url": "https://api.github.com/repos/invoiceninja/invoiceninja/git/commits/c2524f55da70f141f438beaab6b920c48e9de832",
- "comment_count": 0,
- "verification": {
- "verified": true,
- "reason": "valid",
- "signature": "-----BEGIN PGP SIGNATURE-----\n\nwsBcBAABCAAQBQJeOfSaCRBK7hj4Ov3rIwAAdHIIAEUF50ma1BVw1AmeJ/vXdt5R\nybb8OoA7L5Sx87dQG3HRimf1AvdOfhOypKD9fU3kosWrenXjDABu5PjR8vOXx2cw\nAudYOapL34QsewTUMJYPMX7cxgBrP4o+8eZtXsRpnRwUKTIzRDnPOKWUYO+sBLYR\nuj+cXFrVX/qCzNDS/buytymov/et2Oo+mMqNHAsaCfiR2+TYWT8odGayoWMF3Q9u\ntFhze/TSheH0DYLMPgy+DfWaTsA3wcBUDEQzwS3797aGcM4k2goVnA07cDl9rloy\nVCCkT82bu0VWV7xTogVrbA60YlnYR/BSSD6y8TiX/GN8UEyUdTReSNmUiyGAuEc=\n=EXp6\n-----END PGP SIGNATURE-----\n",
- "payload": "tree be0307961da2caecc8bf7906cfb1980569064b6f\nparent cda534e99652045ab102f5f38c39e51f65e42c57\nauthor michael-hampton 1580856474 +0000\ncommitter GitHub 1580856474 +1100\n\nUpdate MarkPaid.php (#3282)\n\n"
- }
- },
- "url": "https://api.github.com/repos/invoiceninja/invoiceninja/commits/c2524f55da70f141f438beaab6b920c48e9de832",
- "html_url": "https://github.com/invoiceninja/invoiceninja/commit/c2524f55da70f141f438beaab6b920c48e9de832",
- "comments_url": "https://api.github.com/repos/invoiceninja/invoiceninja/commits/c2524f55da70f141f438beaab6b920c48e9de832/comments",
- "author": {
- "login": "michael-hampton",
- "id": 28355563,
- "node_id": "MDQ6VXNlcjI4MzU1NTYz",
- "avatar_url": "https://avatars0.githubusercontent.com/u/28355563?v=4",
- "gravatar_id": "",
- "url": "https://api.github.com/users/michael-hampton",
- "html_url": "https://github.com/michael-hampton",
- "followers_url": "https://api.github.com/users/michael-hampton/followers",
- "following_url": "https://api.github.com/users/michael-hampton/following{/other_user}",
- "gists_url": "https://api.github.com/users/michael-hampton/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/michael-hampton/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/michael-hampton/subscriptions",
- "organizations_url": "https://api.github.com/users/michael-hampton/orgs",
- "repos_url": "https://api.github.com/users/michael-hampton/repos",
- "events_url": "https://api.github.com/users/michael-hampton/events{/privacy}",
- "received_events_url": "https://api.github.com/users/michael-hampton/received_events",
- "type": "User",
- "site_admin": false
- },
- "committer": {
- "login": "web-flow",
- "id": 19864447,
- "node_id": "MDQ6VXNlcjE5ODY0NDQ3",
- "avatar_url": "https://avatars3.githubusercontent.com/u/19864447?v=4",
- "gravatar_id": "",
- "url": "https://api.github.com/users/web-flow",
- "html_url": "https://github.com/web-flow",
- "followers_url": "https://api.github.com/users/web-flow/followers",
- "following_url": "https://api.github.com/users/web-flow/following{/other_user}",
- "gists_url": "https://api.github.com/users/web-flow/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/web-flow/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/web-flow/subscriptions",
- "organizations_url": "https://api.github.com/users/web-flow/orgs",
- "repos_url": "https://api.github.com/users/web-flow/repos",
- "events_url": "https://api.github.com/users/web-flow/events{/privacy}",
- "received_events_url": "https://api.github.com/users/web-flow/received_events",
- "type": "User",
- "site_admin": false
- },
- "parents": [
- {
- "sha": "cda534e99652045ab102f5f38c39e51f65e42c57",
- "url": "https://api.github.com/repos/invoiceninja/invoiceninja/commits/cda534e99652045ab102f5f38c39e51f65e42c57",
- "html_url": "https://github.com/invoiceninja/invoiceninja/commit/cda534e99652045ab102f5f38c39e51f65e42c57"
- }
- ]
- },
- {
- "sha": "cda534e99652045ab102f5f38c39e51f65e42c57",
- "node_id": "MDY6Q29tbWl0MTQ3MTYzNjg6Y2RhNTM0ZTk5NjUyMDQ1YWIxMDJmNWYzOGMzOWU1MWY2NWU0MmM1Nw==",
- "commit": {
- "author": {
- "name": "David Bomba",
- "email": "turbo124@gmail.com",
- "date": "2020-02-04T07:51:44Z"
- },
- "committer": {
- "name": "GitHub",
- "email": "noreply@github.com",
- "date": "2020-02-04T07:51:44Z"
- },
- "message": "Explicitly call the service() method, rather than obfuscate. (#3281)\n\n* Include fix as describe by @michael-hampton here #3280\r\n\r\n* Refactor createinvitations away from jobs\r\n\r\n* Clean up\r\n\r\n* Fixes for service() refactoring\r\n\r\n* Fixes for services refactor",
- "tree": {
- "sha": "9d90b8620cb84f23f5057f56c28cab1021c1f227",
- "url": "https://api.github.com/repos/invoiceninja/invoiceninja/git/trees/9d90b8620cb84f23f5057f56c28cab1021c1f227"
- },
- "url": "https://api.github.com/repos/invoiceninja/invoiceninja/git/commits/cda534e99652045ab102f5f38c39e51f65e42c57",
- "comment_count": 0,
- "verification": {
- "verified": true,
- "reason": "valid",
- "signature": "-----BEGIN PGP SIGNATURE-----\n\nwsBcBAABCAAQBQJeOSKQCRBK7hj4Ov3rIwAAdHIIAB1QArn60MhvPO0tzSS0igeZ\npUtecfLSOmoyVC5jnNSgD/WOWiHFry130Y7IMNa6NQChMaSjCgEHU5AgCWmUaOj9\nkpQN/9/AsYo00AqwyySfCNUcWYfIaFZpViId+R5WVaQuUelpsRuacAbdHQ4CiIrY\nLtte68jHtMwGUkVwgK5+ATbsgGGXhJ6gUNIbei+ltxnA6JpbLLYda36ESmZULMj3\n5zVFcaIh4FUn8y0SkYE7hpRnKlAVgguMexwDOtxLXOQLgGtCX0QvbfUKxI9pDY/K\nMTp3End2WLaiBJC+6EOwYhritaRXmTqWg3N2VBNtALfA9EBGeFc/m+xUpbvNkaY=\n=mEeD\n-----END PGP SIGNATURE-----\n",
- "payload": "tree 9d90b8620cb84f23f5057f56c28cab1021c1f227\nparent c25de936edd8db6baec45d67fd31da4cdda4c4fa\nauthor David Bomba 1580802704 +1100\ncommitter GitHub 1580802704 +1100\n\nExplicitly call the service() method, rather than obfuscate. (#3281)\n\n* Include fix as describe by @michael-hampton here #3280\r\n\r\n* Refactor createinvitations away from jobs\r\n\r\n* Clean up\r\n\r\n* Fixes for service() refactoring\r\n\r\n* Fixes for services refactor\r\n"
- }
- },
- "url": "https://api.github.com/repos/invoiceninja/invoiceninja/commits/cda534e99652045ab102f5f38c39e51f65e42c57",
- "html_url": "https://github.com/invoiceninja/invoiceninja/commit/cda534e99652045ab102f5f38c39e51f65e42c57",
- "comments_url": "https://api.github.com/repos/invoiceninja/invoiceninja/commits/cda534e99652045ab102f5f38c39e51f65e42c57/comments",
- "author": {
- "login": "turbo124",
- "id": 5827962,
- "node_id": "MDQ6VXNlcjU4Mjc5NjI=",
- "avatar_url": "https://avatars0.githubusercontent.com/u/5827962?v=4",
- "gravatar_id": "",
- "url": "https://api.github.com/users/turbo124",
- "html_url": "https://github.com/turbo124",
- "followers_url": "https://api.github.com/users/turbo124/followers",
- "following_url": "https://api.github.com/users/turbo124/following{/other_user}",
- "gists_url": "https://api.github.com/users/turbo124/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/turbo124/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/turbo124/subscriptions",
- "organizations_url": "https://api.github.com/users/turbo124/orgs",
- "repos_url": "https://api.github.com/users/turbo124/repos",
- "events_url": "https://api.github.com/users/turbo124/events{/privacy}",
- "received_events_url": "https://api.github.com/users/turbo124/received_events",
- "type": "User",
- "site_admin": false
- },
- "committer": {
- "login": "web-flow",
- "id": 19864447,
- "node_id": "MDQ6VXNlcjE5ODY0NDQ3",
- "avatar_url": "https://avatars3.githubusercontent.com/u/19864447?v=4",
- "gravatar_id": "",
- "url": "https://api.github.com/users/web-flow",
- "html_url": "https://github.com/web-flow",
- "followers_url": "https://api.github.com/users/web-flow/followers",
- "following_url": "https://api.github.com/users/web-flow/following{/other_user}",
- "gists_url": "https://api.github.com/users/web-flow/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/web-flow/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/web-flow/subscriptions",
- "organizations_url": "https://api.github.com/users/web-flow/orgs",
- "repos_url": "https://api.github.com/users/web-flow/repos",
- "events_url": "https://api.github.com/users/web-flow/events{/privacy}",
- "received_events_url": "https://api.github.com/users/web-flow/received_events",
- "type": "User",
- "site_admin": false
- },
- "parents": [
- {
- "sha": "c25de936edd8db6baec45d67fd31da4cdda4c4fa",
- "url": "https://api.github.com/repos/invoiceninja/invoiceninja/commits/c25de936edd8db6baec45d67fd31da4cdda4c4fa",
- "html_url": "https://github.com/invoiceninja/invoiceninja/commit/c25de936edd8db6baec45d67fd31da4cdda4c4fa"
- }
- ]
- }
-]
diff --git a/tests/Data/releases-gitea.json b/tests/Data/releases-gitea.json
deleted file mode 100644
index ba74fce..0000000
--- a/tests/Data/releases-gitea.json
+++ /dev/null
@@ -1,80 +0,0 @@
-[
- {
- "id": 5801852,
- "tag_name": "0.0.2",
- "target_commitish": "master",
- "name": "Testrelease",
- "body": "",
- "url": "https://try.gitea.io/api/v1/repos/phillopp/emptyRepo/releases/5801851",
- "html_url": "https://try.gitea.io/phillopp/emptyRepo/releases/tag/0.0.2",
- "tarball_url": "https://try.gitea.io/phillopp/emptyRepo/archive/0.0.2.tar.gz",
- "zipball_url": "https://try.gitea.io/phillopp/emptyRepo/archive/0.0.2.zip",
- "draft": false,
- "prerelease": false,
- "created_at": "2022-08-18T09:34:20Z",
- "published_at": "2022-08-18T09:34:20Z",
- "author": {
- "id": 515025,
- "login": "phillopp",
- "login_name": "",
- "full_name": "",
- "email": "phillopp@noreply.try.gitea.io",
- "avatar_url": "https://try.gitea.io/avatar/330ff1fe1bb56077547730562f9bb038",
- "language": "",
- "is_admin": false,
- "last_login": "0001-01-01T00:00:00Z",
- "created": "2022-08-18T09:21:28Z",
- "restricted": false,
- "active": false,
- "prohibit_login": false,
- "location": "",
- "website": "",
- "description": "",
- "visibility": "public",
- "followers_count": 0,
- "following_count": 0,
- "starred_repos_count": 0,
- "username": "phillopp"
- },
- "assets": []
- },
- {
- "id": 5801851,
- "tag_name": "0.0.1",
- "target_commitish": "master",
- "name": "Testrelease",
- "body": "",
- "url": "https://try.gitea.io/api/v1/repos/phillopp/emptyRepo/releases/5801851",
- "html_url": "https://try.gitea.io/phillopp/emptyRepo/releases/tag/0.0.1",
- "tarball_url": "https://try.gitea.io/phillopp/emptyRepo/archive/0.0.1.tar.gz",
- "zipball_url": "https://try.gitea.io/phillopp/emptyRepo/archive/0.0.1.zip",
- "draft": false,
- "prerelease": false,
- "created_at": "2022-08-17T09:34:20Z",
- "published_at": "2022-08-17T09:34:20Z",
- "author": {
- "id": 515025,
- "login": "phillopp",
- "login_name": "",
- "full_name": "",
- "email": "phillopp@noreply.try.gitea.io",
- "avatar_url": "https://try.gitea.io/avatar/330ff1fe1bb56077547730562f9bb038",
- "language": "",
- "is_admin": false,
- "last_login": "0001-01-01T00:00:00Z",
- "created": "2022-08-18T09:21:28Z",
- "restricted": false,
- "active": false,
- "prohibit_login": false,
- "location": "",
- "website": "",
- "description": "",
- "visibility": "public",
- "followers_count": 0,
- "following_count": 0,
- "starred_repos_count": 0,
- "username": "phillopp"
- },
- "assets": []
- }
-]
\ No newline at end of file
diff --git a/tests/Data/releases-gitlab.json b/tests/Data/releases-gitlab.json
deleted file mode 100644
index 8d15a76..0000000
--- a/tests/Data/releases-gitlab.json
+++ /dev/null
@@ -1,71 +0,0 @@
-[
- {
- "_links": {
- "edit_url": "https://gitlab.com/my534/my-test-project/-/releases/1.0/edit",
- "self": "https://gitlab.com/my534/my-test-project/-/releases/1.0"
- },
- "assets": {
- "count": 4,
- "links": [],
- "sources": [
- {
- "format": "zip",
- "url": "https://gitlab.com/my534/my-test-project/-/archive/1.0/my-test-project-1.0.zip"
- },
- {
- "format": "tar.gz",
- "url": "https://gitlab.com/my534/my-test-project/-/archive/1.0/my-test-project-1.0.tar.gz"
- },
- {
- "format": "tar.bz2",
- "url": "https://gitlab.com/my534/my-test-project/-/archive/1.0/my-test-project-1.0.tar.bz2"
- },
- {
- "format": "tar",
- "url": "https://gitlab.com/my534/my-test-project/-/archive/1.0/my-test-project-1.0.tar"
- }
- ]
- },
- "author": {
- "avatar_url": "https://secure.gravatar.com/avatar/4db692b7a818b87200d426f8bdec05e3?s=80&d=identicon",
- "id": 11395845,
- "name": "Holger Lösken",
- "state": "active",
- "username": "codedge1",
- "web_url": "https://gitlab.com/codedge1"
- },
- "commit": {
- "author_email": "my-email@example.com",
- "author_name": "Holger Lösken",
- "authored_date": "2022-04-19T23:20:22.000+02:00",
- "committed_date": "2022-04-19T23:20:22.000+02:00",
- "committer_email": "my-email@example.com",
- "committer_name": "Holger Lösken",
- "created_at": "2022-04-19T23:20:22.000+02:00",
- "id": "e9d815b94c59a295a4c9d98072c523563c8c838f",
- "message": "Sample project\n",
- "parent_ids": [
- "150149b256d092ec40cda82bfb690f61e35cb604"
- ],
- "short_id": "e9d815b9",
- "title": "Sample project",
- "trailers": {},
- "web_url": "https://gitlab.com/my534/my-test-project/-/commit/e9d815b94c59a295a4c9d98072c523563c8c838f"
- },
- "commit_path": "/my534/my-test-project/-/commit/e9d815b94c59a295a4c9d98072c523563c8c838f",
- "created_at": "2022-04-25T19:17:26.422Z",
- "description": "",
- "evidences": [
- {
- "collected_at": "2022-04-25T19:17:27.059Z",
- "filepath": "https://gitlab.com/my534/my-test-project/-/releases/1.0/evidences/2521598.json",
- "sha": "b11d0280f71f7bf4c2c0130ef781eef41851b288bbed"
- }
- ],
- "name": "Initial release",
- "released_at": "2022-04-25T19:17:26.422Z",
- "tag_name": "1.0",
- "tag_path": "/my534/my-test-project/-/tags/1.0",
- "upcoming_release": false
- }
-]
diff --git a/tests/Data/releases-tag.json b/tests/Data/releases-tag.json
deleted file mode 100644
index c8f47a0..0000000
--- a/tests/Data/releases-tag.json
+++ /dev/null
@@ -1,617 +0,0 @@
-[
- {
- "url": "https://api.github.com/repos/codedge/laravel-selfupdater/releases/24159606",
- "assets_url": "https://api.github.com/repos/codedge/laravel-selfupdater/releases/24159606/assets",
- "upload_url": "https://uploads.github.com/repos/codedge/laravel-selfupdater/releases/24159606/assets{?name,label}",
- "html_url": "https://github.com/codedge/laravel-selfupdater/releases/tag/2.6.1",
- "id": 24159606,
- "node_id": "MDc6UmVsZWFzZTI0MTU5NjA2",
- "tag_name": "2.6.1",
- "target_commitish": "master",
- "name": "Better test matrix",
- "draft": false,
- "author": {
- "login": "codedge",
- "id": 4409904,
- "node_id": "MDQ6VXNlcjQ0MDk5MDQ=",
- "avatar_url": "https://avatars3.githubusercontent.com/u/4409904?v=4",
- "gravatar_id": "",
- "url": "https://api.github.com/users/codedge",
- "html_url": "https://github.com/codedge",
- "followers_url": "https://api.github.com/users/codedge/followers",
- "following_url": "https://api.github.com/users/codedge/following{/other_user}",
- "gists_url": "https://api.github.com/users/codedge/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/codedge/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/codedge/subscriptions",
- "organizations_url": "https://api.github.com/users/codedge/orgs",
- "repos_url": "https://api.github.com/users/codedge/repos",
- "events_url": "https://api.github.com/users/codedge/events{/privacy}",
- "received_events_url": "https://api.github.com/users/codedge/received_events",
- "type": "User",
- "site_admin": false
- },
- "prerelease": false,
- "created_at": "2020-03-03T08:34:27Z",
- "published_at": "2020-03-03T08:38:44Z",
- "assets": [
-
- ],
- "tarball_url": "https://api.github.com/repos/codedge/laravel-selfupdater/tarball/2.6.1",
- "zipball_url": "https://api.github.com/repos/codedge/laravel-selfupdater/zipball/2.6.1",
- "body": "Improve test matrix with Github Actions running through all supported Laravel and PHP versions"
- },
- {
- "url": "https://api.github.com/repos/codedge/laravel-selfupdater/releases/24158932",
- "assets_url": "https://api.github.com/repos/codedge/laravel-selfupdater/releases/24158932/assets",
- "upload_url": "https://uploads.github.com/repos/codedge/laravel-selfupdater/releases/24158932/assets{?name,label}",
- "html_url": "https://github.com/codedge/laravel-selfupdater/releases/tag/2.6.0",
- "id": 24158932,
- "node_id": "MDc6UmVsZWFzZTI0MTU4OTMy",
- "tag_name": "2.6.0",
- "target_commitish": "master",
- "name": "Laravel 7 support",
- "draft": false,
- "author": {
- "login": "codedge",
- "id": 4409904,
- "node_id": "MDQ6VXNlcjQ0MDk5MDQ=",
- "avatar_url": "https://avatars3.githubusercontent.com/u/4409904?v=4",
- "gravatar_id": "",
- "url": "https://api.github.com/users/codedge",
- "html_url": "https://github.com/codedge",
- "followers_url": "https://api.github.com/users/codedge/followers",
- "following_url": "https://api.github.com/users/codedge/following{/other_user}",
- "gists_url": "https://api.github.com/users/codedge/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/codedge/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/codedge/subscriptions",
- "organizations_url": "https://api.github.com/users/codedge/orgs",
- "repos_url": "https://api.github.com/users/codedge/repos",
- "events_url": "https://api.github.com/users/codedge/events{/privacy}",
- "received_events_url": "https://api.github.com/users/codedge/received_events",
- "type": "User",
- "site_admin": false
- },
- "prerelease": false,
- "created_at": "2020-03-03T08:06:54Z",
- "published_at": "2020-03-03T08:09:14Z",
- "assets": [
-
- ],
- "tarball_url": "https://api.github.com/repos/codedge/laravel-selfupdater/tarball/2.6.0",
- "zipball_url": "https://api.github.com/repos/codedge/laravel-selfupdater/zipball/2.6.0",
- "body": "* Support for Laravel 7\r\n* Drop PHP 7.2"
- },
- {
- "url": "https://api.github.com/repos/codedge/laravel-selfupdater/releases/24148495",
- "assets_url": "https://api.github.com/repos/codedge/laravel-selfupdater/releases/24148495/assets",
- "upload_url": "https://uploads.github.com/repos/codedge/laravel-selfupdater/releases/24148495/assets{?name,label}",
- "html_url": "https://github.com/codedge/laravel-selfupdater/releases/tag/2.5.2",
- "id": 24148495,
- "node_id": "MDc6UmVsZWFzZTI0MTQ4NDk1",
- "tag_name": "2.5.2",
- "target_commitish": "master",
- "name": "Minor fix",
- "draft": false,
- "author": {
- "login": "codedge",
- "id": 4409904,
- "node_id": "MDQ6VXNlcjQ0MDk5MDQ=",
- "avatar_url": "https://avatars3.githubusercontent.com/u/4409904?v=4",
- "gravatar_id": "",
- "url": "https://api.github.com/users/codedge",
- "html_url": "https://github.com/codedge",
- "followers_url": "https://api.github.com/users/codedge/followers",
- "following_url": "https://api.github.com/users/codedge/following{/other_user}",
- "gists_url": "https://api.github.com/users/codedge/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/codedge/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/codedge/subscriptions",
- "organizations_url": "https://api.github.com/users/codedge/orgs",
- "repos_url": "https://api.github.com/users/codedge/repos",
- "events_url": "https://api.github.com/users/codedge/events{/privacy}",
- "received_events_url": "https://api.github.com/users/codedge/received_events",
- "type": "User",
- "site_admin": false
- },
- "prerelease": false,
- "created_at": "2020-03-02T22:07:04Z",
- "published_at": "2020-03-02T22:08:39Z",
- "assets": [
-
- ],
- "tarball_url": "https://api.github.com/repos/codedge/laravel-selfupdater/tarball/2.5.2",
- "zipball_url": "https://api.github.com/repos/codedge/laravel-selfupdater/zipball/2.5.2",
- "body": "Check new version available returns correct return value instead of throwing an exception"
- },
- {
- "url": "https://api.github.com/repos/codedge/laravel-selfupdater/releases/23530094",
- "assets_url": "https://api.github.com/repos/codedge/laravel-selfupdater/releases/23530094/assets",
- "upload_url": "https://uploads.github.com/repos/codedge/laravel-selfupdater/releases/23530094/assets{?name,label}",
- "html_url": "https://github.com/codedge/laravel-selfupdater/releases/tag/2.5.1",
- "id": 23530094,
- "node_id": "MDc6UmVsZWFzZTIzNTMwMDk0",
- "tag_name": "2.5.1",
- "target_commitish": "master",
- "name": "Check correct version",
- "draft": false,
- "author": {
- "login": "codedge",
- "id": 4409904,
- "node_id": "MDQ6VXNlcjQ0MDk5MDQ=",
- "avatar_url": "https://avatars3.githubusercontent.com/u/4409904?v=4",
- "gravatar_id": "",
- "url": "https://api.github.com/users/codedge",
- "html_url": "https://github.com/codedge",
- "followers_url": "https://api.github.com/users/codedge/followers",
- "following_url": "https://api.github.com/users/codedge/following{/other_user}",
- "gists_url": "https://api.github.com/users/codedge/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/codedge/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/codedge/subscriptions",
- "organizations_url": "https://api.github.com/users/codedge/orgs",
- "repos_url": "https://api.github.com/users/codedge/repos",
- "events_url": "https://api.github.com/users/codedge/events{/privacy}",
- "received_events_url": "https://api.github.com/users/codedge/received_events",
- "type": "User",
- "site_admin": false
- },
- "prerelease": false,
- "created_at": "2020-02-10T12:01:41Z",
- "published_at": "2020-02-10T12:02:36Z",
- "assets": [
-
- ],
- "tarball_url": "https://api.github.com/repos/codedge/laravel-selfupdater/tarball/2.5.1",
- "zipball_url": "https://api.github.com/repos/codedge/laravel-selfupdater/zipball/2.5.1",
- "body": "When using branch based updates check the correct commit version"
- },
- {
- "url": "https://api.github.com/repos/codedge/laravel-selfupdater/releases/23516111",
- "assets_url": "https://api.github.com/repos/codedge/laravel-selfupdater/releases/23516111/assets",
- "upload_url": "https://uploads.github.com/repos/codedge/laravel-selfupdater/releases/23516111/assets{?name,label}",
- "html_url": "https://github.com/codedge/laravel-selfupdater/releases/tag/2.5.0",
- "id": 23516111,
- "node_id": "MDc6UmVsZWFzZTIzNTE2MTEx",
- "tag_name": "2.5.0",
- "target_commitish": "master",
- "name": "Support branch based updates",
- "draft": false,
- "author": {
- "login": "codedge",
- "id": 4409904,
- "node_id": "MDQ6VXNlcjQ0MDk5MDQ=",
- "avatar_url": "https://avatars3.githubusercontent.com/u/4409904?v=4",
- "gravatar_id": "",
- "url": "https://api.github.com/users/codedge",
- "html_url": "https://github.com/codedge",
- "followers_url": "https://api.github.com/users/codedge/followers",
- "following_url": "https://api.github.com/users/codedge/following{/other_user}",
- "gists_url": "https://api.github.com/users/codedge/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/codedge/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/codedge/subscriptions",
- "organizations_url": "https://api.github.com/users/codedge/orgs",
- "repos_url": "https://api.github.com/users/codedge/repos",
- "events_url": "https://api.github.com/users/codedge/events{/privacy}",
- "received_events_url": "https://api.github.com/users/codedge/received_events",
- "type": "User",
- "site_admin": false
- },
- "prerelease": false,
- "created_at": "2020-02-09T18:22:16Z",
- "published_at": "2020-02-09T18:26:51Z",
- "assets": [
-
- ],
- "tarball_url": "https://api.github.com/repos/codedge/laravel-selfupdater/tarball/2.5.0",
- "zipball_url": "https://api.github.com/repos/codedge/laravel-selfupdater/zipball/2.5.0",
- "body": "When using Github, updates from a specified branch can be fetched. The newest commit wins ;-)"
- },
- {
- "url": "https://api.github.com/repos/codedge/laravel-selfupdater/releases/23373927",
- "assets_url": "https://api.github.com/repos/codedge/laravel-selfupdater/releases/23373927/assets",
- "upload_url": "https://uploads.github.com/repos/codedge/laravel-selfupdater/releases/23373927/assets{?name,label}",
- "html_url": "https://github.com/codedge/laravel-selfupdater/releases/tag/2.4.1",
- "id": 23373927,
- "node_id": "MDc6UmVsZWFzZTIzMzczOTI3",
- "tag_name": "2.4.1",
- "target_commitish": "master",
- "name": "",
- "draft": false,
- "author": {
- "login": "codedge",
- "id": 4409904,
- "node_id": "MDQ6VXNlcjQ0MDk5MDQ=",
- "avatar_url": "https://avatars3.githubusercontent.com/u/4409904?v=4",
- "gravatar_id": "",
- "url": "https://api.github.com/users/codedge",
- "html_url": "https://github.com/codedge",
- "followers_url": "https://api.github.com/users/codedge/followers",
- "following_url": "https://api.github.com/users/codedge/following{/other_user}",
- "gists_url": "https://api.github.com/users/codedge/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/codedge/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/codedge/subscriptions",
- "organizations_url": "https://api.github.com/users/codedge/orgs",
- "repos_url": "https://api.github.com/users/codedge/repos",
- "events_url": "https://api.github.com/users/codedge/events{/privacy}",
- "received_events_url": "https://api.github.com/users/codedge/received_events",
- "type": "User",
- "site_admin": false
- },
- "prerelease": false,
- "created_at": "2020-02-04T13:31:14Z",
- "published_at": "2020-02-04T13:32:20Z",
- "assets": [
-
- ],
- "tarball_url": "https://api.github.com/repos/codedge/laravel-selfupdater/tarball/2.4.1",
- "zipball_url": "https://api.github.com/repos/codedge/laravel-selfupdater/zipball/2.4.1",
- "body": ""
- },
- {
- "url": "https://api.github.com/repos/codedge/laravel-selfupdater/releases/22110969",
- "assets_url": "https://api.github.com/repos/codedge/laravel-selfupdater/releases/22110969/assets",
- "upload_url": "https://uploads.github.com/repos/codedge/laravel-selfupdater/releases/22110969/assets{?name,label}",
- "html_url": "https://github.com/codedge/laravel-selfupdater/releases/tag/2.4.0",
- "id": 22110969,
- "node_id": "MDc6UmVsZWFzZTIyMTEwOTY5",
- "tag_name": "2.4.0",
- "target_commitish": "master",
- "name": "Support for private repositories",
- "draft": false,
- "author": {
- "login": "codedge",
- "id": 4409904,
- "node_id": "MDQ6VXNlcjQ0MDk5MDQ=",
- "avatar_url": "https://avatars3.githubusercontent.com/u/4409904?v=4",
- "gravatar_id": "",
- "url": "https://api.github.com/users/codedge",
- "html_url": "https://github.com/codedge",
- "followers_url": "https://api.github.com/users/codedge/followers",
- "following_url": "https://api.github.com/users/codedge/following{/other_user}",
- "gists_url": "https://api.github.com/users/codedge/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/codedge/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/codedge/subscriptions",
- "organizations_url": "https://api.github.com/users/codedge/orgs",
- "repos_url": "https://api.github.com/users/codedge/repos",
- "events_url": "https://api.github.com/users/codedge/events{/privacy}",
- "received_events_url": "https://api.github.com/users/codedge/received_events",
- "type": "User",
- "site_admin": false
- },
- "prerelease": false,
- "created_at": "2019-12-10T14:04:53Z",
- "published_at": "2019-12-10T14:08:01Z",
- "assets": [
-
- ],
- "tarball_url": "https://api.github.com/repos/codedge/laravel-selfupdater/tarball/2.4.0",
- "zipball_url": "https://api.github.com/repos/codedge/laravel-selfupdater/zipball/2.4.0",
- "body": "Use Bearer tokens to access private repositories"
- },
- {
- "url": "https://api.github.com/repos/codedge/laravel-selfupdater/releases/22059955",
- "assets_url": "https://api.github.com/repos/codedge/laravel-selfupdater/releases/22059955/assets",
- "upload_url": "https://uploads.github.com/repos/codedge/laravel-selfupdater/releases/22059955/assets{?name,label}",
- "html_url": "https://github.com/codedge/laravel-selfupdater/releases/tag/2.3.0",
- "id": 22059955,
- "node_id": "MDc6UmVsZWFzZTIyMDU5OTU1",
- "tag_name": "2.3.0",
- "target_commitish": "master",
- "name": "Laravel 6 compatibility",
- "draft": false,
- "author": {
- "login": "codedge",
- "id": 4409904,
- "node_id": "MDQ6VXNlcjQ0MDk5MDQ=",
- "avatar_url": "https://avatars3.githubusercontent.com/u/4409904?v=4",
- "gravatar_id": "",
- "url": "https://api.github.com/users/codedge",
- "html_url": "https://github.com/codedge",
- "followers_url": "https://api.github.com/users/codedge/followers",
- "following_url": "https://api.github.com/users/codedge/following{/other_user}",
- "gists_url": "https://api.github.com/users/codedge/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/codedge/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/codedge/subscriptions",
- "organizations_url": "https://api.github.com/users/codedge/orgs",
- "repos_url": "https://api.github.com/users/codedge/repos",
- "events_url": "https://api.github.com/users/codedge/events{/privacy}",
- "received_events_url": "https://api.github.com/users/codedge/received_events",
- "type": "User",
- "site_admin": false
- },
- "prerelease": false,
- "created_at": "2019-12-08T23:02:03Z",
- "published_at": "2019-12-08T23:03:20Z",
- "assets": [
-
- ],
- "tarball_url": "https://api.github.com/repos/codedge/laravel-selfupdater/tarball/2.3.0",
- "zipball_url": "https://api.github.com/repos/codedge/laravel-selfupdater/zipball/2.3.0",
- "body": "* Drop PHP 7.1 support\r\n* Laravel 5.8 and 6.x compatibility"
- },
- {
- "url": "https://api.github.com/repos/codedge/laravel-selfupdater/releases/21934576",
- "assets_url": "https://api.github.com/repos/codedge/laravel-selfupdater/releases/21934576/assets",
- "upload_url": "https://uploads.github.com/repos/codedge/laravel-selfupdater/releases/21934576/assets{?name,label}",
- "html_url": "https://github.com/codedge/laravel-selfupdater/releases/tag/2.2.0",
- "id": 21934576,
- "node_id": "MDc6UmVsZWFzZTIxOTM0NTc2",
- "tag_name": "2.2.0",
- "target_commitish": "master",
- "name": "Security update",
- "draft": false,
- "author": {
- "login": "codedge",
- "id": 4409904,
- "node_id": "MDQ6VXNlcjQ0MDk5MDQ=",
- "avatar_url": "https://avatars3.githubusercontent.com/u/4409904?v=4",
- "gravatar_id": "",
- "url": "https://api.github.com/users/codedge",
- "html_url": "https://github.com/codedge",
- "followers_url": "https://api.github.com/users/codedge/followers",
- "following_url": "https://api.github.com/users/codedge/following{/other_user}",
- "gists_url": "https://api.github.com/users/codedge/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/codedge/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/codedge/subscriptions",
- "organizations_url": "https://api.github.com/users/codedge/orgs",
- "repos_url": "https://api.github.com/users/codedge/repos",
- "events_url": "https://api.github.com/users/codedge/events{/privacy}",
- "received_events_url": "https://api.github.com/users/codedge/received_events",
- "type": "User",
- "site_admin": false
- },
- "prerelease": false,
- "created_at": "2019-12-03T16:09:48Z",
- "published_at": "2019-12-03T16:10:55Z",
- "assets": [
-
- ],
- "tarball_url": "https://api.github.com/repos/codedge/laravel-selfupdater/tarball/2.2.0",
- "zipball_url": "https://api.github.com/repos/codedge/laravel-selfupdater/zipball/2.2.0",
- "body": ""
- },
- {
- "url": "https://api.github.com/repos/codedge/laravel-selfupdater/releases/20826588",
- "assets_url": "https://api.github.com/repos/codedge/laravel-selfupdater/releases/20826588/assets",
- "upload_url": "https://uploads.github.com/repos/codedge/laravel-selfupdater/releases/20826588/assets{?name,label}",
- "html_url": "https://github.com/codedge/laravel-selfupdater/releases/tag/2.1.3",
- "id": 20826588,
- "node_id": "MDc6UmVsZWFzZTIwODI2NTg4",
- "tag_name": "2.1.3",
- "target_commitish": "master",
- "name": "",
- "draft": false,
- "author": {
- "login": "codedge",
- "id": 4409904,
- "node_id": "MDQ6VXNlcjQ0MDk5MDQ=",
- "avatar_url": "https://avatars3.githubusercontent.com/u/4409904?v=4",
- "gravatar_id": "",
- "url": "https://api.github.com/users/codedge",
- "html_url": "https://github.com/codedge",
- "followers_url": "https://api.github.com/users/codedge/followers",
- "following_url": "https://api.github.com/users/codedge/following{/other_user}",
- "gists_url": "https://api.github.com/users/codedge/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/codedge/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/codedge/subscriptions",
- "organizations_url": "https://api.github.com/users/codedge/orgs",
- "repos_url": "https://api.github.com/users/codedge/repos",
- "events_url": "https://api.github.com/users/codedge/events{/privacy}",
- "received_events_url": "https://api.github.com/users/codedge/received_events",
- "type": "User",
- "site_admin": false
- },
- "prerelease": false,
- "created_at": "2019-10-19T17:52:07Z",
- "published_at": "2019-10-19T17:52:38Z",
- "assets": [
-
- ],
- "tarball_url": "https://api.github.com/repos/codedge/laravel-selfupdater/tarball/2.1.3",
- "zipball_url": "https://api.github.com/repos/codedge/laravel-selfupdater/zipball/2.1.3",
- "body": ""
- },
- {
- "url": "https://api.github.com/repos/codedge/laravel-selfupdater/releases/16591367",
- "assets_url": "https://api.github.com/repos/codedge/laravel-selfupdater/releases/16591367/assets",
- "upload_url": "https://uploads.github.com/repos/codedge/laravel-selfupdater/releases/16591367/assets{?name,label}",
- "html_url": "https://github.com/codedge/laravel-selfupdater/releases/tag/2.1.2",
- "id": 16591367,
- "node_id": "MDc6UmVsZWFzZTE2NTkxMzY3",
- "tag_name": "2.1.2",
- "target_commitish": "707c6081562afba4b161f7245c877fef3b7b9537",
- "name": "",
- "draft": false,
- "author": {
- "login": "codedge",
- "id": 4409904,
- "node_id": "MDQ6VXNlcjQ0MDk5MDQ=",
- "avatar_url": "https://avatars3.githubusercontent.com/u/4409904?v=4",
- "gravatar_id": "",
- "url": "https://api.github.com/users/codedge",
- "html_url": "https://github.com/codedge",
- "followers_url": "https://api.github.com/users/codedge/followers",
- "following_url": "https://api.github.com/users/codedge/following{/other_user}",
- "gists_url": "https://api.github.com/users/codedge/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/codedge/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/codedge/subscriptions",
- "organizations_url": "https://api.github.com/users/codedge/orgs",
- "repos_url": "https://api.github.com/users/codedge/repos",
- "events_url": "https://api.github.com/users/codedge/events{/privacy}",
- "received_events_url": "https://api.github.com/users/codedge/received_events",
- "type": "User",
- "site_admin": false
- },
- "prerelease": false,
- "created_at": "2019-04-05T21:23:25Z",
- "published_at": "2019-04-05T21:23:51Z",
- "assets": [
-
- ],
- "tarball_url": "https://api.github.com/repos/codedge/laravel-selfupdater/tarball/2.1.2",
- "zipball_url": "https://api.github.com/repos/codedge/laravel-selfupdater/zipball/2.1.2",
- "body": ""
- },
- {
- "url": "https://api.github.com/repos/codedge/laravel-selfupdater/releases/16591035",
- "assets_url": "https://api.github.com/repos/codedge/laravel-selfupdater/releases/16591035/assets",
- "upload_url": "https://uploads.github.com/repos/codedge/laravel-selfupdater/releases/16591035/assets{?name,label}",
- "html_url": "https://github.com/codedge/laravel-selfupdater/releases/tag/2.1.1",
- "id": 16591035,
- "node_id": "MDc6UmVsZWFzZTE2NTkxMDM1",
- "tag_name": "2.1.1",
- "target_commitish": "274032377c501a7f284b205b7715e5148c1e677d",
- "name": "",
- "draft": false,
- "author": {
- "login": "codedge",
- "id": 4409904,
- "node_id": "MDQ6VXNlcjQ0MDk5MDQ=",
- "avatar_url": "https://avatars3.githubusercontent.com/u/4409904?v=4",
- "gravatar_id": "",
- "url": "https://api.github.com/users/codedge",
- "html_url": "https://github.com/codedge",
- "followers_url": "https://api.github.com/users/codedge/followers",
- "following_url": "https://api.github.com/users/codedge/following{/other_user}",
- "gists_url": "https://api.github.com/users/codedge/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/codedge/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/codedge/subscriptions",
- "organizations_url": "https://api.github.com/users/codedge/orgs",
- "repos_url": "https://api.github.com/users/codedge/repos",
- "events_url": "https://api.github.com/users/codedge/events{/privacy}",
- "received_events_url": "https://api.github.com/users/codedge/received_events",
- "type": "User",
- "site_admin": false
- },
- "prerelease": false,
- "created_at": "2019-04-05T21:03:21Z",
- "published_at": "2019-04-05T21:04:08Z",
- "assets": [
-
- ],
- "tarball_url": "https://api.github.com/repos/codedge/laravel-selfupdater/tarball/2.1.1",
- "zipball_url": "https://api.github.com/repos/codedge/laravel-selfupdater/zipball/2.1.1",
- "body": ""
- },
- {
- "url": "https://api.github.com/repos/codedge/laravel-selfupdater/releases/16587275",
- "assets_url": "https://api.github.com/repos/codedge/laravel-selfupdater/releases/16587275/assets",
- "upload_url": "https://uploads.github.com/repos/codedge/laravel-selfupdater/releases/16587275/assets{?name,label}",
- "html_url": "https://github.com/codedge/laravel-selfupdater/releases/tag/2.1.0",
- "id": 16587275,
- "node_id": "MDc6UmVsZWFzZTE2NTg3Mjc1",
- "tag_name": "2.1.0",
- "target_commitish": "dce1b16ad87d8d908ff421726719d68c3bd6eac7",
- "name": "",
- "draft": false,
- "author": {
- "login": "codedge",
- "id": 4409904,
- "node_id": "MDQ6VXNlcjQ0MDk5MDQ=",
- "avatar_url": "https://avatars3.githubusercontent.com/u/4409904?v=4",
- "gravatar_id": "",
- "url": "https://api.github.com/users/codedge",
- "html_url": "https://github.com/codedge",
- "followers_url": "https://api.github.com/users/codedge/followers",
- "following_url": "https://api.github.com/users/codedge/following{/other_user}",
- "gists_url": "https://api.github.com/users/codedge/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/codedge/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/codedge/subscriptions",
- "organizations_url": "https://api.github.com/users/codedge/orgs",
- "repos_url": "https://api.github.com/users/codedge/repos",
- "events_url": "https://api.github.com/users/codedge/events{/privacy}",
- "received_events_url": "https://api.github.com/users/codedge/received_events",
- "type": "User",
- "site_admin": false
- },
- "prerelease": false,
- "created_at": "2019-04-05T17:48:00Z",
- "published_at": "2019-04-05T17:49:18Z",
- "assets": [
-
- ],
- "tarball_url": "https://api.github.com/repos/codedge/laravel-selfupdater/tarball/2.1.0",
- "zipball_url": "https://api.github.com/repos/codedge/laravel-selfupdater/zipball/2.1.0",
- "body": "Add auto-discovery for this package"
- },
- {
- "url": "https://api.github.com/repos/codedge/laravel-selfupdater/releases/16586713",
- "assets_url": "https://api.github.com/repos/codedge/laravel-selfupdater/releases/16586713/assets",
- "upload_url": "https://uploads.github.com/repos/codedge/laravel-selfupdater/releases/16586713/assets{?name,label}",
- "html_url": "https://github.com/codedge/laravel-selfupdater/releases/tag/2.0.0",
- "id": 16586713,
- "node_id": "MDc6UmVsZWFzZTE2NTg2NzEz",
- "tag_name": "2.0.0",
- "target_commitish": "4390455113da60c0817117805a8f8692ef7f18ee",
- "name": "",
- "draft": false,
- "author": {
- "login": "codedge",
- "id": 4409904,
- "node_id": "MDQ6VXNlcjQ0MDk5MDQ=",
- "avatar_url": "https://avatars3.githubusercontent.com/u/4409904?v=4",
- "gravatar_id": "",
- "url": "https://api.github.com/users/codedge",
- "html_url": "https://github.com/codedge",
- "followers_url": "https://api.github.com/users/codedge/followers",
- "following_url": "https://api.github.com/users/codedge/following{/other_user}",
- "gists_url": "https://api.github.com/users/codedge/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/codedge/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/codedge/subscriptions",
- "organizations_url": "https://api.github.com/users/codedge/orgs",
- "repos_url": "https://api.github.com/users/codedge/repos",
- "events_url": "https://api.github.com/users/codedge/events{/privacy}",
- "received_events_url": "https://api.github.com/users/codedge/received_events",
- "type": "User",
- "site_admin": false
- },
- "prerelease": false,
- "created_at": "2019-04-05T17:17:36Z",
- "published_at": "2019-04-05T17:24:31Z",
- "assets": [
-
- ],
- "tarball_url": "https://api.github.com/repos/codedge/laravel-selfupdater/tarball/2.0.0",
- "zipball_url": "https://api.github.com/repos/codedge/laravel-selfupdater/zipball/2.0.0",
- "body": "* Dropping support for PHP 5.x, 7.0\r\n* Support for >=7.1"
- },
- {
- "url": "https://api.github.com/repos/codedge/laravel-selfupdater/releases/16502206",
- "assets_url": "https://api.github.com/repos/codedge/laravel-selfupdater/releases/16502206/assets",
- "upload_url": "https://uploads.github.com/repos/codedge/laravel-selfupdater/releases/16502206/assets{?name,label}",
- "html_url": "https://github.com/codedge/laravel-selfupdater/releases/tag/1.5.0",
- "id": 16502206,
- "node_id": "MDc6UmVsZWFzZTE2NTAyMjA2",
- "tag_name": "1.5.0",
- "target_commitish": "master",
- "name": "",
- "draft": false,
- "author": {
- "login": "codedge",
- "id": 4409904,
- "node_id": "MDQ6VXNlcjQ0MDk5MDQ=",
- "avatar_url": "https://avatars3.githubusercontent.com/u/4409904?v=4",
- "gravatar_id": "",
- "url": "https://api.github.com/users/codedge",
- "html_url": "https://github.com/codedge",
- "followers_url": "https://api.github.com/users/codedge/followers",
- "following_url": "https://api.github.com/users/codedge/following{/other_user}",
- "gists_url": "https://api.github.com/users/codedge/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/codedge/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/codedge/subscriptions",
- "organizations_url": "https://api.github.com/users/codedge/orgs",
- "repos_url": "https://api.github.com/users/codedge/repos",
- "events_url": "https://api.github.com/users/codedge/events{/privacy}",
- "received_events_url": "https://api.github.com/users/codedge/received_events",
- "type": "User",
- "site_admin": false
- },
- "prerelease": false,
- "created_at": "2019-04-02T13:27:54Z",
- "published_at": "2019-04-02T13:29:46Z",
- "assets": [
-
- ],
- "tarball_url": "https://api.github.com/repos/codedge/laravel-selfupdater/tarball/1.5.0",
- "zipball_url": "https://api.github.com/repos/codedge/laravel-selfupdater/zipball/1.5.0",
- "body": ""
- }
-]
diff --git a/tests/Hooks/BypassFinalHook.php b/tests/Hooks/BypassFinalHook.php
deleted file mode 100644
index f734517..0000000
--- a/tests/Hooks/BypassFinalHook.php
+++ /dev/null
@@ -1,16 +0,0 @@
-release = resolve(Release::class);
- $this->vfs = vfsStream::setup();
-
- $this->resetDownloadDir();
- }
-
- /** @test */
- public function it_can_get_release(): void
- {
- $releaseName = 'releaseName';
- $this->release->setRelease($releaseName);
-
- $this->assertEquals($releaseName, $this->release->getRelease());
- }
-
- /** @test */
- public function it_can_get_storage_path(): void
- {
- $this->assertNull($this->release->getStoragePath());
-
- $storagePath = Str::finish($this->vfs->url(), DIRECTORY_SEPARATOR).'tmp/releaseName.zip';
- $this->release->setStoragePath($storagePath);
-
- $this->assertEquals($storagePath, $this->release->getStoragePath());
- }
-
- /** @test */
- public function it_can_update_storage_path_when_having_release_name(): void
- {
- $releaseName = 'releaseName';
- $storagePathWithoutFilename = Str::finish($this->vfs->url(), DIRECTORY_SEPARATOR).'tmp';
-
- $this->release->setStoragePath($storagePathWithoutFilename);
- $this->assertEquals($storagePathWithoutFilename, $this->release->getStoragePath());
-
- $this->release->setRelease($releaseName)->updateStoragePath();
- $this->assertEquals(
- Str::finish($storagePathWithoutFilename, DIRECTORY_SEPARATOR).$releaseName,
- $this->release->getStoragePath()
- );
- }
-
- /** @test */
- public function it_should_not_update_storage_path_when_not_having_release_name(): void
- {
- $storagePath = Str::finish($this->vfs->url(), DIRECTORY_SEPARATOR).'tmp';
-
- $this->release->setStoragePath($storagePath);
- $this->assertEquals($storagePath, $this->release->getStoragePath());
-
- $this->release->updateStoragePath();
- $this->assertEquals($storagePath, $this->release->getStoragePath());
- }
-
- /** @test */
- public function it_can_get_update_path(): void
- {
- $this->assertNull($this->release->getUpdatePath());
- }
-
- /** @test */
- public function it_can_set_update_path_without_exclude_dirs(): void
- {
- $mainDirectory = '/tmp';
- $subDirectory = 'new-directory-inside';
-
- vfsStream::newDirectory($mainDirectory.'/'.$subDirectory)->at($this->vfs);
- $this->release->setUpdatePath(Str::finish($this->vfs->url(), DIRECTORY_SEPARATOR).$mainDirectory);
-
- foreach ($this->release->getUpdatePath()->directories() as $dir) {
- $this->assertEquals($dir->getPath(), $this->vfs->url().'/'.$mainDirectory);
- $this->assertEquals($subDirectory, $dir->getFilename());
- $this->assertEquals($subDirectory, $dir->getBasename());
- }
- }
-
- /** @test */
- public function it_can_get_version(): void
- {
- $this->assertNull($this->release->getVersion());
- }
-
- /** @test */
- public function it_can_set_version(): void
- {
- $this->release->setVersion('release-1.2.zip');
- $this->assertEquals('release-1.2.zip', $this->release->getVersion());
- }
-
- /** @test */
- public function it_can_get_download_url(): void
- {
- $this->assertNull($this->release->getDownloadUrl());
- }
-
- /** @test */
- public function it_can_set_download_url(): void
- {
- $this->release->setDownloadUrl('my-download-url');
- $this->assertEquals('my-download-url', $this->release->getDownloadUrl());
- }
-
- /** @test */
- public function it_cannot_extract_zip_and_fails_with_exception(): void
- {
- $this->release->setStoragePath('/tmp')->setRelease('release-test-99.zip')->updateStoragePath();
- $this->expectException(\Exception::class);
- $this->release->extract();
- }
-
- /** @test */
- public function it_can_extract_zip_to_storage_path(): void
- {
- $this->release->setStoragePath((string) config('self-update.repository_types.github.download_path'))->setRelease('release-test-1.2.zip')->updateStoragePath();
-
- $zip = new \ZipArchive();
- $res = $zip->open($this->release->getStoragePath(), \ZipArchive::CREATE);
-
- if ($res === true) {
- $zip->addFile(__DIR__.'/../Data/releases-branch.json');
- $zip->close();
-
- $this->assertTrue($this->release->extract());
- } else {
- var_dump($res);
- exit('Cannot open zip.');
- }
- }
-
- /** @test */
- public function it_cannot_download_and_fails_with_exception(): void
- {
- $this->expectException(\Exception::class);
- $this->release->download();
- }
-
- /** @test */
- public function it_can_download(): void
- {
- $this->release->setDownloadUrl('https://github.com/some-file')
- ->setStoragePath((string) config('self-update.repository_types.github.download_path'))
- ->setRelease('release-1.0.zip')
- ->updateStoragePath();
-
- Http::fake([
- 'https://github.com/*' => $this->getResponse200Type('tag'),
- ]);
-
- $response = $this->release->download();
-
- $this->assertEquals(200, $response->status());
- $this->assertFileExists($this->release->getStoragePath());
- }
-
- /** @test */
- public function it_checks_source_is_not_fetched(): void
- {
- $this->release->setStoragePath($this->vfs->url().'release-1.2.zip');
-
- $this->assertFalse($this->release->isSourceAlreadyFetched());
- }
-
- /** @test */
- public function it_checks_source_is_already_fetched_but_not_extracted(): void
- {
- $file = 'release-1.2.zip';
- $storagePath = Str::finish($this->vfs->url(), DIRECTORY_SEPARATOR).$file;
- vfsStream::newFile($file)->at($this->vfs);
-
- $this->release->setStoragePath($storagePath);
-
- $this->assertTrue($this->release->isSourceAlreadyFetched());
- }
-
- /** @test */
- public function it_checks_source_is_already_extracted_and_directory_still_present(): void
- {
- vfsStream::newDirectory('release-1.2')->at($this->vfs);
- $this->release->setStoragePath(Str::finish($this->vfs->url(), DIRECTORY_SEPARATOR).'release-1.2.zip');
-
- $this->assertTrue($this->release->isSourceAlreadyFetched());
- }
-
- /** @test */
- public function it_checks_source_is_already_extracted_and_directory_deleted(): void
- {
- vfsStream::newDirectory('release-1.2')->at($this->vfs);
- $this->release->setStoragePath(Str::finish($this->vfs->url(), DIRECTORY_SEPARATOR).'release-1.2.zip');
- $this->vfs->getChild('release-1.2.zip')->rename('removed');
-
- $this->assertTrue($this->release->isSourceAlreadyFetched());
- }
-}
diff --git a/tests/Models/UpdateExecutorTest.php b/tests/Models/UpdateExecutorTest.php
deleted file mode 100644
index 46911f8..0000000
--- a/tests/Models/UpdateExecutorTest.php
+++ /dev/null
@@ -1,91 +0,0 @@
-release = resolve(Release::class);
-
- $this->vfs = vfsStream::setup();
-
- $this->resetDownloadDir();
- }
-
- /** @test */
- public function it_can_run_successfully(): void
- {
- $dir = config('self-update.repository_types.github.download_path').'/update-dir';
- File::makeDirectory($dir, 0775, true, true);
-
- Http::fake([
- '*' => $this->getResponse200ZipFile(),
- ]);
-
- $this->release->setVersion('release-1.2')
- ->setStoragePath((string) config('self-update.repository_types.github.download_path'))
- ->setRelease('release-1.2.zip')
- ->updateStoragePath()
- ->setDownloadUrl('some/url/')
- ->download();
- $this->release->extract();
-
- $updateExecutor = (new UpdateExecutor())->setBasePath($dir);
-
- Event::fake();
-
- $this->assertTrue($updateExecutor->run($this->release));
- $this->assertTrue(File::exists($dir.'/.some-hidden-file'));
- $this->assertTrue(File::exists($dir.'/outer-file.txt'));
- $this->assertTrue(File::exists($dir.'/folder1'));
- $this->assertEmpty(File::allFiles($dir.'/folder1'));
- $this->assertTrue(File::exists($dir.'/folder2'));
- $this->assertTrue(File::exists($dir.'/folder2/samplefile-in-folder2.txt'));
- $this->assertCount(1, File::allFiles($dir.'/folder2'));
- $this->assertFalse(File::exists($dir.'/node_modules'));
- $this->assertFalse(File::exists($dir.'/__MACOSX'));
- $this->assertFalse(File::exists($dir.'/release-1.2'));
- $this->assertFalse(File::exists($dir.'/release-1.2.zip'));
-
- Event::assertDispatched(UpdateSucceeded::class, 1);
- Event::assertNotDispatched(UpdateFailed::class);
- }
-
- /** @test */
- public function it_can_run_and_fail(): void
- {
- vfsStream::newDirectory('updateDirectory')->at($this->vfs);
- vfsStream::newFile('sample-file', 0500)->at($this->vfs);
-
- $basePath = $this->vfs->url().'/updateDirectory';
-
- $this->release->setUpdatePath($basePath)->setStoragePath('');
-
- Event::fake();
-
- $result = (new UpdateExecutor())->setBasePath($basePath)
- ->run($this->release);
- $this->assertFalse($result);
-
- Event::assertDispatched(UpdateFailed::class, 1);
- Event::assertNotDispatched(UpdateSucceeded::class);
- }
-}
diff --git a/tests/Notifications/EventHandlerTest.php b/tests/Notifications/EventHandlerTest.php
deleted file mode 100644
index 48d6757..0000000
--- a/tests/Notifications/EventHandlerTest.php
+++ /dev/null
@@ -1,66 +0,0 @@
-fireUpdateFailedEvent();
-
- Notification::assertSentTo(new Notifiable(), UpdateFailedNotification::class);
- }
-
- /**
- * @test
- *
- * @dataProvider channelProvider
- *
- * @param array> $expectedChannels
- */
- public function it_will_send_a_notification_via_the_configured_notification_channels(array $expectedChannels): void
- {
- config()->set('self-update.notifications.notifications.'.UpdateFailedNotification::class, $expectedChannels);
-
- $this->fireUpdateFailedEvent();
-
- Notification::assertSentTo(new Notifiable(), UpdateFailedNotification::class, function ($notification, $usedChannels) use ($expectedChannels) {
- return $expectedChannels == $usedChannels;
- });
- }
-
- /**
- * @return array>
- */
- public function channelProvider(): array
- {
- return [
- [[]],
- [['mail']],
- ];
- }
-
- protected function fireUpdateFailedEvent(): void
- {
- $release = resolve(Release::class);
-
- event(new UpdateFailed($release));
- }
-}
diff --git a/tests/SourceRepositoryTypes/GiteaRepositoryTypeTest.php b/tests/SourceRepositoryTypes/GiteaRepositoryTypeTest.php
deleted file mode 100644
index f59ae23..0000000
--- a/tests/SourceRepositoryTypes/GiteaRepositoryTypeTest.php
+++ /dev/null
@@ -1,177 +0,0 @@
-resetDownloadDir();
- }
-
- /** @test */
- public function it_can_instantiate(): void
- {
- $this->assertInstanceOf(GiteaRepositoryType::class, resolve(GiteaRepositoryType::class));
- }
-
- /** @test */
- public function it_can_run_update(): void
- {
- /** @var GiteaRepositoryType $gitea */
- $gitea = resolve(GiteaRepositoryType::class);
-
- /** @var Release $release */
- $release = resolve(Release::class);
- $release->setStoragePath((string) config('self-update.repository_types.gitea.download_path'))
- ->setVersion('1.0')
- ->setRelease('release-1.0.zip')
- ->updateStoragePath()
- ->setDownloadUrl('https://gitea.com/download/target');
-
- Event::fake();
- Http::fake([
- 'gitea.com/*' => $this->getResponse200ZipFile(),
- ]);
- $release->download();
- $release->extract();
-
- $this->assertTrue($gitea->update($release));
-
- Event::assertDispatched(UpdateSucceeded::class, 1);
- Event::assertDispatched(UpdateSucceeded::class, function (UpdateSucceeded $e) use ($release) {
- return $e->getVersionUpdatedTo() === $release->getVersion();
- });
- }
-
- /** @test */
- public function it_can_get_the_version_installed(): void
- {
- /** @var GiteaRepositoryType $gitea */
- $gitea = resolve(GiteaRepositoryType::class);
- $this->assertEmpty($gitea->getVersionInstalled());
-
- config(['self-update.version_installed' => '1.0']);
- $this->assertEquals('1.0', $gitea->getVersionInstalled());
- }
-
- /** @test */
- public function it_cannot_get_new_version_available_and_fails_with_exception(): void
- {
- $this->expectException(VersionException::class);
- $this->expectExceptionMessage('Version installed not found.');
-
- /** @var GiteaRepositoryType $gitea */
- $gitea = resolve(GiteaRepositoryType::class);
- $gitea->isNewVersionAvailable();
- }
-
- /** @test */
- public function it_can_get_new_version_available_without_version_file(): void
- {
- /** @var GiteaRepositoryType $gitea */
- $gitea = resolve(GiteaRepositoryType::class);
- $gitea->deleteVersionFile();
-
- Event::fake();
- Http::fake([
- '*' => $this->getResponse200Type('gitea'),
- ]);
-
- $this->assertFalse($gitea->isNewVersionAvailable('2.7'));
- $this->assertTrue($gitea->isNewVersionAvailable('0.0.1'));
-
- Event::assertDispatched(UpdateAvailable::class, 1);
- Event::assertDispatched(UpdateAvailable::class, function (UpdateAvailable $e) use ($gitea) {
- return $e->getVersionAvailable() === $gitea->getVersionAvailable();
- });
- }
-
- /** @test */
- public function it_cannot_fetch_releases_because_there_is_no_release(): void
- {
- /** @var GiteaRepositoryType $gitea */
- $gitea = resolve(GiteaRepositoryType::class);
-
- Http::fake([
- '*' => $this->getResponseEmpty(),
- ]);
-
- $this->expectException(ReleaseException::class);
- $this->expectExceptionMessage('No release found for version "latest version". Please check the repository you\'re pulling from');
-
- $this->assertInstanceOf(Release::class, $gitea->fetch());
- }
-
- /** @test */
- public function it_can_fetch_releases(): void
- {
- /** @var GiteaRepositoryType $gitea */
- $gitea = resolve(GiteaRepositoryType::class);
-
- Http::fakeSequence()
- ->pushResponse($this->getResponse200Type('gitea'))
- ->pushResponse($this->getResponse200ZipFile())
- ->pushResponse($this->getResponse200Type('gitea'));
-
- $release = $gitea->fetch();
-
- $this->assertInstanceOf(Release::class, $release);
- }
-
- /** @test */
- public function it_can_get_specific_release_from_collection(): void
- {
- $items = [
- [
- 'tag_name' => '1.3',
- 'name' => 'New version 1.3',
- ],
- [
- 'tag_name' => '1.2',
- 'name' => 'New version 1.2',
- ],
- ];
-
- /** @var GiteaRepositoryType $gitea */
- $gitea = resolve(GiteaRepositoryType::class);
-
- $this->assertEquals($items[1], $gitea->selectRelease(collect($items), '1.2'));
- }
-
- /** @test */
- public function it_takes_latest_release_if_no_other_found(): void
- {
- $items = [
- [
- 'tag_name' => '1.3',
- 'name' => 'New version 1.3',
- ],
- [
- 'tag_name' => '1.2',
- 'name' => 'New version 1.2',
- ],
- ];
-
- /** @var GiteaRepositoryType $gitea */
- $gitea = resolve(GiteaRepositoryType::class);
-
- Log::shouldReceive('info')->once()->with('No release for version "1.7" found. Selecting latest.');
-
- $this->assertEquals('1.3', $gitea->selectRelease(collect($items), '1.7')['tag_name']);
- }
-}
diff --git a/tests/SourceRepositoryTypes/GithubRepositoryTypeTest.php b/tests/SourceRepositoryTypes/GithubRepositoryTypeTest.php
deleted file mode 100644
index 93f33df..0000000
--- a/tests/SourceRepositoryTypes/GithubRepositoryTypeTest.php
+++ /dev/null
@@ -1,299 +0,0 @@
-resetDownloadDir();
- }
-
- /** @test */
- public function it_can_instantiate(): void
- {
- /** @var GithubTagType $github */
- $github = resolve(GithubRepositoryType::class)->create();
-
- $this->assertInstanceOf(GithubTagType::class, $github);
- }
-
- /** @test */
- public function it_can_instantiate_branch_type(): void
- {
- config(['self-update.repository_types.github.use_branch' => 'v2']);
-
- /** @var GithubBranchType $github */
- $github = resolve(GithubRepositoryType::class)->create();
-
- $this->assertInstanceOf(GithubBranchType::class, $github);
- }
-
- /** @test */
- public function it_cannot_instantiate_and_fails_with_exception(): void
- {
- config(['self-update.repository_types.github.repository_vendor' => '']);
-
- $this->expectException(\Exception::class);
-
- /** @var GithubTagType $github */
- $github = resolve(GithubRepositoryType::class)->create();
- }
-
- /** @test */
- public function it_can_run_update(): void
- {
- /** @var GithubTagType $github */
- $github = resolve(GithubRepositoryType::class)->create();
-
- Http::fake([
- '*' => $this->getResponse200ZipFile(),
- ]);
-
- /** @var Release $release */
- $release = resolve(Release::class);
- $release->setStoragePath((string) config('self-update.repository_types.github.download_path'))
- ->setVersion('1.0')
- ->setRelease('release-1.0.zip')
- ->updateStoragePath()
- ->setDownloadUrl('some-local-file')
- ->download();
- $release->extract();
-
- Event::fake();
-
- $this->assertTrue($github->update($release));
-
- Event::assertDispatched(UpdateSucceeded::class, 1);
- Event::assertDispatched(UpdateSucceeded::class, function (UpdateSucceeded $e) use ($release) {
- return $e->getVersionUpdatedTo() === $release->getVersion();
- });
- }
-
- /** @test */
- public function it_can_get_the_version_installed(): void
- {
- /** @var GithubTagType $github */
- $github = resolve(GithubRepositoryType::class)->create();
- $this->assertEmpty($github->getVersionInstalled());
-
- config(['self-update.version_installed' => '1.0']);
- $this->assertEquals('1.0', $github->getVersionInstalled());
- }
-
- /** @test */
- public function it_cannot_get_new_version_available_and_fails_with_exception(): void
- {
- $this->expectException(VersionException::class);
- $this->expectExceptionMessage('Version installed not found.');
-
- /** @var GithubTagType $github */
- $github = resolve(GithubRepositoryType::class)->create();
- $github->isNewVersionAvailable();
- }
-
- /** @test */
- public function it_can_get_new_version_available_from_type_tag_without_version_file(): void
- {
- /** @var GithubTagType $github */
- $github = resolve(GithubRepositoryType::class)->create();
- $github->deleteVersionFile();
-
- Event::fake();
- Http::fake([
- '*' => $this->getResponse200Type('tag'),
- ]);
-
- $this->assertFalse($github->isNewVersionAvailable('2.7'));
- $this->assertTrue($github->isNewVersionAvailable('1.1'));
-
- Event::assertDispatched(UpdateAvailable::class, 1);
- Event::assertDispatched(UpdateAvailable::class, function (UpdateAvailable $e) use ($github) {
- return $e->getVersionAvailable() === $github->getVersionAvailable();
- });
- }
-
- /** @test */
- public function it_can_get_new_version_available_from_type_tag_with_version_file(): void
- {
- /** @var GithubTagType $github */
- $github = resolve(GithubRepositoryType::class)->create();
- $github->setVersionFile('v2.7');
-
- $this->assertFalse($github->isNewVersionAvailable('v2.7'));
-
- $github->setVersionFile('v2.7');
- $this->assertTrue($github->isNewVersionAvailable('v1.1'));
-
- $this->assertEquals('v2.7', $github->getVersionFile());
- }
-
- /** @test */
- public function it_can_get_new_version_available_from_type_branch_without_version_file(): void
- {
- config(['self-update.repository_types.github.use_branch' => 'v2']);
-
- /** @var GithubBranchType $github */
- $github = resolve(GithubRepositoryType::class)->create();
- $github->deleteVersionFile();
-
- Http::fake([
- '*' => $this->getResponse200Type('branch'),
- ]);
-
- $this->assertFalse($github->isNewVersionAvailable('2020-02-08T21:09:15Z'));
- $this->assertTrue($github->isNewVersionAvailable('2020-02-04T21:09:15Z'));
- }
-
- /** @test */
- public function it_can_get_new_version_available_from_type_branch_with_version_file(): void
- {
- config(['self-update.repository_types.github.use_branch' => 'v2']);
-
- /** @var GithubBranchType $github */
- $github = resolve(GithubRepositoryType::class)->create();
- $github->setVersionFile('2020-02-07T21:09:15Z');
-
- $this->assertFalse($github->isNewVersionAvailable('2020-02-08T21:09:15Z'));
- $this->assertTrue($github->isNewVersionAvailable('2020-02-04T21:09:15Z'));
- }
-
- /** @test */
- public function it_can_fetch_github_tag_releases_latest(): void
- {
- /** @var GithubTagType $github */
- $github = resolve(GithubRepositoryType::class)->create();
-
- Http::fakeSequence()
- ->pushResponse($this->getResponse200Type('tag'))
- ->pushResponse($this->getResponse200ZipFile());
-
- $release = $github->fetch();
-
- $this->assertInstanceOf(Release::class, $release);
- $this->assertEquals('2.6.1', $release->getVersion());
- $this->assertEquals('2.6.1.zip', $release->getRelease());
- }
-
- /** @test */
- public function it_can_fetch_github_tag_releases_specific_version(): void
- {
- /** @var GithubTagType $github */
- $github = resolve(GithubRepositoryType::class)->create();
-
- Http::fakeSequence()
- ->pushResponse($this->getResponse200Type('tag'))
- ->pushResponse($this->getResponse200ZipFile());
-
- $release = $github->fetch('2.6.0');
-
- $this->assertInstanceOf(Release::class, $release);
- $this->assertEquals('2.6.0', $release->getVersion());
- $this->assertEquals('2.6.0.zip', $release->getRelease());
- }
-
- /** @test */
- public function it_can_fetch_github_tag_releases_and_takes_latest_if_version_not_available(): void
- {
- /** @var GithubTagType $github */
- $github = resolve(GithubRepositoryType::class)->create();
-
- Http::fakeSequence()
- ->pushResponse($this->getResponse200Type('tag'))
- ->pushResponse($this->getResponse200ZipFile());
-
- $release = $github->fetch('v3.22.1');
-
- $this->assertInstanceOf(Release::class, $release);
- $this->assertEquals('2.6.1', $release->getVersion());
- $this->assertEquals('2.6.1.zip', $release->getRelease());
- }
-
- /** @test */
- public function it_can_fetch_github_branch_releases_latest(): void
- {
- config(['self-update.repository_types.github.use_branch' => 'v2']);
-
- /** @var GithubBranchType $github */
- $github = resolve(GithubRepositoryType::class)->create();
-
- Http::fakeSequence()
- ->pushResponse($this->getResponse200Type('branch'))
- ->pushResponse($this->getResponse200ZipFile());
-
- $release = $github->fetch();
-
- $this->assertInstanceOf(Release::class, $release);
- $this->assertEquals('2020-02-06T21:09:15Z', $release->getVersion());
- $this->assertEquals('e8f19f9b63b5b92f31ddc4a3463dcc231301adea.zip', $release->getRelease());
- }
-
- /** @test */
- public function it_can_fetch_github_branch_releases_specific_version(): void
- {
- config(['self-update.repository_types.github.use_branch' => 'v2']);
-
- /** @var GithubBranchType $github */
- $github = resolve(GithubRepositoryType::class)->create();
-
- Http::fakeSequence()
- ->pushResponse($this->getResponse200Type('branch'))
- ->pushResponse($this->getResponse200ZipFile());
-
- $release = $github->fetch('2020-02-06T09:35:51Z');
-
- $this->assertInstanceOf(Release::class, $release);
- $this->assertEquals('2020-02-06T09:35:51Z', $release->getVersion());
- $this->assertEquals('4f82f1b9037530baa8775e41e16d82e8db97110f.zip', $release->getRelease());
- }
-
- /** @test */
- public function it_can_fetch_github_branch_releases_and_takes_latest_if_version_not_available(): void
- {
- config(['self-update.repository_types.github.use_branch' => 'v2']);
-
- /** @var GithubBranchType $github */
- $github = resolve(GithubRepositoryType::class)->create();
-
- Http::fakeSequence()
- ->pushResponse($this->getResponse200Type('branch'))
- ->pushResponse($this->getResponse200ZipFile());
-
- $release = $github->fetch('2020-01-01T11:11:11Z');
-
- $this->assertInstanceOf(Release::class, $release);
- $this->assertEquals('2020-02-06T21:09:15Z', $release->getVersion());
- $this->assertEquals('e8f19f9b63b5b92f31ddc4a3463dcc231301adea.zip', $release->getRelease());
- }
-
- /** @test */
- public function it_cannot_fetch_github_branch_releases_if_response_empty(): void
- {
- config(['self-update.repository_types.github.use_branch' => 'v2']);
-
- /** @var GithubBranchType $github */
- $github = resolve(GithubRepositoryType::class)->create();
-
- Http::fake([
- '*' => $this->getResponseEmpty(),
- ]);
-
- $this->expectException(Exception::class);
- $github->fetch();
- }
-}
diff --git a/tests/SourceRepositoryTypes/GitlabRepositoryTypeTest.php b/tests/SourceRepositoryTypes/GitlabRepositoryTypeTest.php
deleted file mode 100644
index 06d0519..0000000
--- a/tests/SourceRepositoryTypes/GitlabRepositoryTypeTest.php
+++ /dev/null
@@ -1,199 +0,0 @@
-resetDownloadDir();
- }
-
- /** @test */
- public function it_can_instantiate(): void
- {
- $this->assertInstanceOf(GitlabRepositoryType::class, resolve(GitlabRepositoryType::class));
- }
-
- /** @test */
- public function it_can_run_update(): void
- {
- /** @var GitlabRepositoryType $gitlab */
- $gitlab = resolve(GitlabRepositoryType::class);
-
- /** @var Release $release */
- $release = resolve(Release::class);
- $release->setStoragePath((string) config('self-update.repository_types.gitlab.download_path'))
- ->setVersion('1.0')
- ->setRelease('release-1.0.zip')
- ->updateStoragePath()
- ->setDownloadUrl('https://gitlab.com/download/target');
-
- Event::fake();
- Http::fake([
- 'gitlab.com/*' => $this->getResponse200ZipFile(),
- ]);
- $release->download();
- $release->extract();
-
- $this->assertTrue($gitlab->update($release));
-
- Event::assertDispatched(UpdateSucceeded::class, 1);
- Event::assertDispatched(UpdateSucceeded::class, function (UpdateSucceeded $e) use ($release) {
- return $e->getVersionUpdatedTo() === $release->getVersion();
- });
- }
-
- /** @test */
- public function it_can_get_the_version_installed(): void
- {
- /** @var GitlabRepositoryType $gitlab */
- $gitlab = resolve(GitlabRepositoryType::class);
- $this->assertEmpty($gitlab->getVersionInstalled());
-
- config(['self-update.version_installed' => '1.0']);
- $this->assertEquals('1.0', $gitlab->getVersionInstalled());
- }
-
- /** @test */
- public function it_cannot_get_new_version_available_and_fails_with_exception(): void
- {
- $this->expectException(VersionException::class);
- $this->expectExceptionMessage('Version installed not found.');
-
- /** @var GitlabRepositoryType $gitlab */
- $gitlab = resolve(GitlabRepositoryType::class);
- $gitlab->isNewVersionAvailable();
- }
-
- /** @test */
- public function it_can_get_new_version_available_without_version_file(): void
- {
- /** @var GitlabRepositoryType $gitlab */
- $gitlab = resolve(GitlabRepositoryType::class);
- $gitlab->deleteVersionFile();
-
- Event::fake();
- Http::fake([
- '*' => $this->getResponse200Type('gitlab'),
- ]);
-
- $this->assertFalse($gitlab->isNewVersionAvailable('2.7'));
- $this->assertTrue($gitlab->isNewVersionAvailable('0.8'));
-
- Event::assertDispatched(UpdateAvailable::class, 1);
- Event::assertDispatched(UpdateAvailable::class, function (UpdateAvailable $e) use ($gitlab) {
- return $e->getVersionAvailable() === $gitlab->getVersionAvailable();
- });
- }
-
- /** @test */
- public function it_cannot_fetch_releases_because_there_is_no_release(): void
- {
- /** @var GitlabRepositoryType $gitlab */
- $gitlab = resolve(GitlabRepositoryType::class);
-
- Http::fake([
- '*' => $this->getResponseEmpty(),
- ]);
-
- $this->expectException(ReleaseException::class);
- $this->expectExceptionMessage('No release found for version "latest version". Please check the repository you\'re pulling from');
-
- $this->assertInstanceOf(Release::class, $gitlab->fetch());
- }
-
- /** @test */
- public function it_can_fetch_releases(): void
- {
- /** @var GitlabRepositoryType $gitlab */
- $gitlab = resolve(GitlabRepositoryType::class);
-
- Http::fakeSequence()
- ->pushResponse($this->getResponse200Type('gitlab'))
- ->pushResponse($this->getResponse200ZipFile())
- ->pushResponse($this->getResponse200Type('gitlab'));
-
- $release = $gitlab->fetch();
-
- $this->assertInstanceOf(Release::class, $release);
- }
-
- /** @test */
- public function it_can_get_specific_release_from_collection(): void
- {
- $items = [
- [
- 'tag_name' => '1.3',
- 'name' => 'New version 1.3',
- ],
- [
- 'tag_name' => '1.2',
- 'name' => 'New version 1.2',
- ],
- ];
-
- /** @var GitlabRepositoryType $gitlab */
- $gitlab = resolve(GitlabRepositoryType::class);
-
- $this->assertEquals($items[1], $gitlab->selectRelease(collect($items), '1.2'));
- }
-
- /** @test */
- public function it_takes_latest_release_if_no_other_found(): void
- {
- $items = [
- [
- 'tag_name' => '1.3',
- 'name' => 'New version 1.3',
- ],
- [
- 'tag_name' => '1.2',
- 'name' => 'New version 1.2',
- ],
- ];
-
- /** @var GitlabRepositoryType $gitlab */
- $gitlab = resolve(GitlabRepositoryType::class);
-
- Log::shouldReceive('info')->once()->with('No release for version "1.7" found. Selecting latest.');
-
- $this->assertEquals('1.3', $gitlab->selectRelease(collect($items), '1.7')['tag_name']);
- }
-
- /** @test */
- public function it_can_use_default_base_url(): void
- {
- /** @var GitlabRepositoryType $gitlab */
- $gitlab = resolve(GitlabRepositoryType::class);
- $urls = $gitlab->getReleaseUrl();
-
- $this->assertEquals('https://gitlab.com', $urls['base_url']);
- }
-
- /** @test */
- public function it_can_use_base_url_from_config(): void
- {
- config(['self-update.repository_types.gitlab.base_url' => 'https://example.local']);
-
- /** @var GitlabRepositoryType $gitlab */
- $gitlab = resolve(GitlabRepositoryType::class);
- $urls = $gitlab->getReleaseUrl();
-
- $this->assertEquals('https://example.local', $urls['base_url']);
- }
-}
diff --git a/tests/SourceRepositoryTypes/HttpRepositoryTypeTest.php b/tests/SourceRepositoryTypes/HttpRepositoryTypeTest.php
deleted file mode 100644
index 6f4eaad..0000000
--- a/tests/SourceRepositoryTypes/HttpRepositoryTypeTest.php
+++ /dev/null
@@ -1,207 +0,0 @@
-resetDownloadDir();
- }
-
- /** @test */
- public function it_can_instantiate(): void
- {
- $this->assertInstanceOf(HttpRepositoryType::class, resolve(HttpRepositoryType::class));
- }
-
- /** @test */
- public function it_can_run_update(): void
- {
- /** @var HttpRepositoryType $http */
- $http = resolve(HttpRepositoryType::class);
-
- Http::fake([
- '*' => $this->getResponse200ZipFile(),
- ]);
-
- $release = resolve(Release::class);
- $release->setStoragePath((string) config('self-update.repository_types.http.download_path'))
- ->setRelease('release-1.0.zip')
- ->updateStoragePath()
- ->setDownloadUrl('some-local-file')
- ->download();
- $release->extract();
-
- $this->assertTrue($http->update($release));
- }
-
- /** @test */
- public function it_cannot_fetch_http_releases_if_no_url_specified(): void
- {
- config(['self-update.repository_types.http.repository_url' => '']);
-
- /** @var HttpRepositoryType $http */
- $http = resolve(HttpRepositoryType::class);
-
- $this->expectException(Exception::class);
- $http->fetch();
- }
-
- /** @test */
- public function it_cannot_fetch_releases_because_there_is_no_release(): void
- {
- /** @var HttpRepositoryType $http */
- $http = resolve(HttpRepositoryType::class);
-
- Http::fakeSequence()
- ->pushResponse($this->getResponse200HttpType())
- ->pushResponse($this->getResponse200ZipFile());
-
- //$this->expectException(ReleaseException::class);
- //$this->expectExceptionMessage('Archive file "/tmp/self-updater/v/invoiceninja/invoiceninja/archive/v4.5.17.zip" not found.');
-
- $this->assertInstanceOf(Release::class, $http->fetch());
- }
-
- /** @test */
- public function it_can_fetch_http_releases(): void
- {
- /** @var HttpRepositoryType $http */
- $http = $this->app->make(HttpRepositoryType::class);
-
- Http::fakeSequence()
- ->pushResponse($this->getResponse200HttpType())
- ->pushResponse($this->getResponse200ZipFile())
- ->pushResponse($this->getResponse200HttpType())
- ->pushResponse($this->getResponse200HttpType());
-
- File::shouldReceive('exists')->andReturnTrue();
-
- $release = $http->fetch();
-
- $this->assertInstanceOf(Release::class, $release);
- }
-
- /** @test */
- public function it_can_get_the_version_installed(): void
- {
- /** @var HttpRepositoryType $http */
- $http = resolve(HttpRepositoryType::class);
- $this->assertEmpty($http->getVersionInstalled());
-
- config(['self-update.version_installed' => '1.0']);
- $this->assertEquals('1.0', $http->getVersionInstalled());
- }
-
- /** @test */
- public function it_can_get_latest_release_from_collection(): void
- {
- $items = [
- ['name' => '1.3'],
- ['name' => '1.2'],
- ];
-
- /** @var HttpRepositoryType $http */
- $http = resolve(HttpRepositoryType::class);
-
- $this->assertEquals($items[0], $http->selectRelease(collect($items), ''));
- }
-
- /** @test */
- public function it_can_get_specific_release_from_collection(): void
- {
- $items = [
- ['name' => '1.3'],
- ['name' => '1.2'],
- ];
-
- /** @var HttpRepositoryType $http */
- $http = resolve(HttpRepositoryType::class);
-
- $this->assertEquals($items[1], $http->selectRelease(collect($items), '1.2'));
- }
-
- /** @test */
- public function it_cannot_find_specific_release_and_returns_first_from_collection(): void
- {
- $items = [
- ['name' => '1.3'],
- ['name' => '1.2'],
- ];
-
- /** @var HttpRepositoryType $http */
- $http = resolve(HttpRepositoryType::class);
-
- $this->assertEquals($items[0], $http->selectRelease(collect($items), '1.4'));
- }
-
- /** @test */
- public function it_cannot_get_new_version_available_and_fails_with_exception(): void
- {
- $this->expectException(VersionException::class);
- $this->expectExceptionMessage('Version installed not found.');
-
- /** @var HttpRepositoryType $http */
- $http = resolve(HttpRepositoryType::class);
- $http->isNewVersionAvailable();
- }
-
- /** @test */
- public function it_can_get_new_version_available_without_version_file(): void
- {
- /** @var HttpRepositoryType $http */
- $http = $this->app->make(HttpRepositoryType::class);
- $http->deleteVersionFile();
-
- Http::fakeSequence()
- ->pushResponse($this->getResponse200HttpType())
- ->pushResponse($this->getResponse200HttpType());
-
- $this->assertTrue($http->isNewVersionAvailable('4.5'));
- $this->assertFalse($http->isNewVersionAvailable('5.0'));
- }
-
- /** @test */
- public function it_can_build_releases_from_local_source(): void
- {
- config(['self-update.repository_types.http.repository_url' => 'http://update-server.localhost/']);
- config(['self-update.repository_types.http.pkg_filename_format' => 'my-test-project-\d+\.\d+']);
-
- /** @var HttpRepositoryType $http */
- $http = $this->app->make(HttpRepositoryType::class);
- $content = file_get_contents('tests/Data/Http/releases-http_local.json');
-
- $collection = $http->extractFromHtml($content);
-
- $this->assertSame('1.0', $collection->first()->name);
- $this->assertSame('http://update-server.localhost/my534/my-test-project/-/archive/1.0/my-test-project-1.0.zip', $collection->first()->zipball_url);
- }
-
- /** @test */
- public function it_can_build_releases_from_github_source(): void
- {
- config(['self-update.repository_types.http.repository_url' => 'https://github.com/']);
-
- /** @var HttpRepositoryType $http */
- $http = $this->app->make(HttpRepositoryType::class);
- $content = file_get_contents('tests/Data/Http/releases-http_gh.json');
-
- $collection = $http->extractFromHtml($content);
-
- $this->assertSame('4.5.17', $collection->first()->name);
- $this->assertSame('https://github.com/invoiceninja/invoiceninja/archive/v4.5.17.zip', $collection->first()->zipball_url);
- }
-}
diff --git a/tests/TestCase.php b/tests/TestCase.php
deleted file mode 100644
index 3b39ba0..0000000
--- a/tests/TestCase.php
+++ /dev/null
@@ -1,139 +0,0 @@
- */
- protected array $mockedResponses = [
- 'tag' => 'releases-tag.json',
- 'branch' => 'releases-branch.json',
- 'http' => 'releases-http_gh.json',
- 'gitlab' => 'releases-gitlab.json',
- 'gitea' => 'releases-gitea.json',
- ];
-
- /**
- * @param Application $app
- */
- protected function getEnvironmentSetUp($app): void
- {
- $app['config']->set('self-update.repository_types', [
- 'github' => [
- 'type' => 'github',
- 'repository_vendor' => 'laravel',
- 'repository_name' => 'laravel',
- 'repository_url' => '',
- 'download_path' => self::DOWNLOAD_PATH,
- 'private_access_token' => '',
- 'use_branch' => '',
- ],
- 'gitlab' => [
- 'type' => 'gitlab',
- 'repository_id' => '35488518',
- 'download_path' => self::DOWNLOAD_PATH,
- 'private_access_token' => '',
- ],
- 'http' => [
- 'type' => 'http',
- 'repository_url' => 'https://github.com/invoiceninja/invoiceninja/releases',
- 'pkg_filename_format' => env('SELF_UPDATER_PKG_FILENAME_FORMAT', 'v_VERSION_'),
- 'download_path' => self::DOWNLOAD_PATH,
- 'private_access_token' => '',
- ],
- 'gitea' => [
- 'type' => 'gitea',
- 'repository_vendor' => 'phillopp',
- 'gitea_url' => 'https://try.gitea.io',
- 'repository_name' => 'emptyRepo',
- 'download_path' => self::DOWNLOAD_PATH,
- 'private_access_token' => '',
- ],
- ]);
- }
-
- protected function getResponse200HttpType(): PromiseInterface
- {
- $stream = Utils::streamFor(fopen('tests/Data/Http/'.$this->mockedResponses['http'], 'r'));
- $response = $stream->getContents();
-
- return Http::response($response, 200, [
- 'Content-Type' => 'application/html',
- ]);
- }
-
- protected function getResponse200Type(string $type): PromiseInterface
- {
- $stream = Utils::streamFor(fopen('tests/Data/'.$this->mockedResponses[$type], 'r'));
- $response = json_decode($stream->getContents(), true);
-
- return Http::response($response, 200, [
- 'Content-Type' => 'application/json',
- ]);
- }
-
- protected function getResponse200ZipFile(): PromiseInterface
- {
- $stream = Utils::streamFor(fopen(__DIR__.'/Data/release-1.2.zip', 'r'));
- $response = $stream->getContents();
-
- return Http::response($response, 200, [
- 'Content-Type' => 'application/zip',
- 'Content-Disposition' => 'attachment; filename="release-1.2.zip"',
- ]);
- }
-
- protected function getResponseEmpty(): PromiseInterface
- {
- return Http::response(
- '',
- 200,
- ['Content-Type' => 'text/html'],
- );
- }
-
- protected function resetDownloadDir(): void
- {
- /** @var Filesystem $filesystem */
- $filesystem = $this->app->make(Filesystem::class);
-
- if ($filesystem->exists(self::DOWNLOAD_PATH)) {
- $filesystem->deleteDirectory(self::DOWNLOAD_PATH);
- }
-
- $filesystem->makeDirectory(self::DOWNLOAD_PATH);
- }
-
- /**
- * @param Application $app
- */
- protected function getPackageProviders($app): array
- {
- return [
- UpdaterServiceProvider::class,
- ];
- }
-
- /**
- * @param Application $app
- */
- protected function getPackageAliases($app): array
- {
- return [
- 'Updater' => UpdaterFacade::class,
- ];
- }
-}
diff --git a/tests/UpdaterFacadeTest.php b/tests/UpdaterFacadeTest.php
deleted file mode 100644
index fa82b40..0000000
--- a/tests/UpdaterFacadeTest.php
+++ /dev/null
@@ -1,20 +0,0 @@
-assertInstanceOf(
- UpdaterManager::class,
- UpdaterFacade::getFacadeRoot()
- );
- }
-}
diff --git a/tests/UpdaterManagerTest.php b/tests/UpdaterManagerTest.php
deleted file mode 100644
index 94a6348..0000000
--- a/tests/UpdaterManagerTest.php
+++ /dev/null
@@ -1,145 +0,0 @@
-assertInstanceOf(UpdaterManager::class, $manager);
- }
-
- /** @test */
- public function it_can_get_source_repository_with_default_name(): void
- {
- $manager = resolve(UpdaterManager::class);
- $result = $manager->source();
-
- $this->assertInstanceOf(SourceRepository::class, $result);
- }
-
- /** @test */
- public function it_can_get_source_repository_with_name_github(): void
- {
- $manager = resolve(UpdaterManager::class);
- $result = $manager->source('github');
-
- $this->assertInstanceOf(SourceRepository::class, $result);
- }
-
- /** @test */
- public function it_can_get_source_repository_with_name_http(): void
- {
- $manager = resolve(UpdaterManager::class);
- $result = $manager->source('http');
-
- $this->assertInstanceOf(SourceRepository::class, $result);
- }
-
- /** @test */
- public function it_can_get_source_repository_with_not_existing_name(): void
- {
- $manager = resolve(UpdaterManager::class);
-
- $this->expectException(InvalidArgumentException::class);
- $manager->source('test');
- }
-
- /** @test */
- public function it_can_get_new_version_through_updater_manager_available_from_type_tag_without_version_file(): void
- {
- /** @var UpdaterManager $manager */
- $manager = resolve(UpdaterManager::class);
-
- /** @var SourceRepository $repository */
- $repository = $manager->source();
- $repository->deleteVersionFile();
-
- Http::fake([
- 'github.com/*' => $this->getResponse200Type('tag'),
- ]);
-
- $this->assertFalse($repository->isNewVersionAvailable('2.7'));
- $this->assertTrue($repository->isNewVersionAvailable('1.1'));
- }
-
- /** @test */
- public function it_can_get_new_version_through_updater_manager_available_from_type_tag_with_version_file(): void
- {
- /** @var UpdaterManager $manager */
- $manager = resolve(UpdaterManager::class);
-
- /** @var SourceRepository $repository */
- $repository = $manager->source('');
- $repository->setVersionFile('v3.5');
-
- $this->assertTrue($repository->isNewVersionAvailable('v2.7'));
- $this->assertFalse($repository->isNewVersionAvailable('v4.1'));
- }
-
- /** @test */
- public function it_can_get_the_version_installed_through_updater_manager_from_tag_type(): void
- {
- /** @var UpdaterManager $manager */
- $manager = resolve(UpdaterManager::class);
-
- /** @var SourceRepository $repository */
- $repository = $manager->source('');
-
- $this->assertEmpty($repository->getVersionInstalled());
-
- config(['self-update.version_installed' => '1.0']);
- $this->assertEquals('1.0', $repository->getVersionInstalled());
- }
-
- /** @test */
- public function it_can_collect_pre_update_commands(): void
- {
- /** @var UpdaterManager $manager */
- $manager = resolve(UpdaterManager::class);
-
- /** @var SourceRepository $repository */
- $repository = $manager->source('');
-
- $this->assertEquals(0, $repository->preUpdateArtisanCommands());
- }
-
-// public function it_can_run_pre_update_commands(): void
-// {
-// config(['self-update.artisan_commands.pre_update.updater:prepare' => [
-// 'class' => \App\Console\Commands\PreUpdateTasks::class,
-// 'params' => []
-// ],
-// ]);
-//
-// /** @var UpdaterManager $manager */
-// $manager = resolve(UpdaterManager::class);
-//
-// /** @var SourceRepository $repository */
-// $repository = $manager->source('');
-//
-// $this->assertEquals(1, $repository->preUpdateArtisanCommands());
-// }
-
- /** @test */
- public function it_can_collect_post_update_commands(): void
- {
- /** @var UpdaterManager $manager */
- $manager = resolve(UpdaterManager::class);
-
- /** @var SourceRepository $repository */
- $repository = $manager->source('');
-
- $this->assertEquals(0, $repository->postUpdateArtisanCommands());
- }
-}