Download the PHP package get-skipper/skipper-php without Composer

On this page you can find all versions of the php package get-skipper/skipper-php. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package skipper-php

skipper-php

Tests Latest Version on Packagist PHP

Test-gating for PHP via Google Spreadsheet. Enable or disable tests without changing code — just update a date in a Google Sheet.

A PHP port of get-skipper/skipper, supporting PHPUnit, Pest, Behat, Codeception, PHPSpec, and Kahlan.


How it works

A Google Spreadsheet stores test IDs with optional disabledUntil dates:

testId disabledUntil notes
tests/Feature/AuthTest.php > AuthTest > testItCanLogin
tests/Feature/PaymentTest.php > PaymentTest > testCheckout 2099-12-31 Flaky on CI
features/auth.feature > Auth > User can log in 2026-06-01 Under investigation

Tests not listed in the spreadsheet always run (opt-out model).


Installation

Install your test framework if not already present:


Google Sheets setup

  1. Create a Google Spreadsheet with the following columns in row 1:

    • testId
    • disabledUntil
    • notes (optional)
  2. Create a Google Cloud service account and download the JSON key file.

  3. Share the spreadsheet with the service account's email address (client_email in the JSON).

  4. Note the spreadsheet ID from the URL: https://docs.google.com/spreadsheets/d/YOUR_SPREADSHEET_ID/edit

Credentials

Three formats are accepted for all integrations:

Format Parameter Use case
File path credentialsFile: './service-account.json' Local development
Base64 string credentialsBase64: 'eyJ0eX...' CI/CD inline secret
Environment variable credentialsEnvVar: 'GOOGLE_CREDS_B64' CI/CD env var (base64)

To encode your credentials file for CI:


Framework integrations

PHPUnit (10 / 11 / 12)

Add to phpunit.xml:

Test ID format:


Pest (v2 / v3)

Pest runs on top of PHPUnit — use the same phpunit.xml configuration above. The extension auto-detects Pest-generated classes (P\ namespace prefix) and applies the correct ID format automatically.

Test ID format:

Alternative: hook-based setup via tests/Pest.php

Use this if you prefer Pest-native configuration instead of phpunit.xml:


Behat (3.x)

Add to behat.yml:

Disabled scenarios are marked as Pending (yellow).

Test ID format:


Codeception (5.x)

Add to codeception.yml:

Test ID format:


PHPSpec (7 / 8)

Add to phpspec.yml:

Disabled specs are marked as Skipped.

Test ID format:


Kahlan (5.x / 6.x)

In kahlan-config.php:

Test ID format:


Sync mode

In sync mode, the spreadsheet is automatically reconciled with your test suite:

Enable with the SKIPPER_MODE environment variable:

Note: Sync only writes to the primary sheet. Reference sheets are never modified.

Sync via GitHub Actions

The bundled workflow (.github/workflows/tests.yml) includes a sync job that runs automatically after every push to main, once all tests have passed:

This ensures the spreadsheet is always up to date with the current test suite on main. The sync job is skipped on pull requests and on branches other than main.


Reference sheets

You can merge test entries from multiple sheets. When the same test ID appears in multiple sheets, the most restrictive (latest) disabledUntil wins.

Configure additional sheets with referenceSheets:


Environment variables

Variable Default Description
SKIPPER_MODE read-only Set to sync to enable spreadsheet reconciliation
SKIPPER_FAIL_OPEN true On API failure with no valid cache, run all tests instead of crashing. Set to false to rethrow the exception
SKIPPER_CACHE_TTL 300 Seconds the on-disk fallback cache (.skipper-cache.json) remains valid after a successful fetch
SKIPPER_SYNC_ALLOW_DELETE false In sync mode, delete orphaned rows from the spreadsheet. When false, orphaned rows are only logged
SKIPPER_CACHE_FILE (auto) Path to the resolver cache file (set by the main process for parallel workers)
SKIPPER_DISCOVERED_DIR (auto) Directory for collecting discovered test IDs across workers
SKIPPER_DEBUG (unset) Set to any non-empty value to enable verbose logging

Test ID format reference

Framework Format example
PHPUnit tests/Unit/AuthTest.php > AuthTest > testItCanLogin
Pest tests/Feature/auth.php > Auth > can login
Behat features/auth.feature > User authentication > User can log in
Codeception tests/Acceptance/AuthCest.php > AuthCest > tryToLogin
PHPSpec spec/Auth/LoginSpec.php > LoginSpec > it login with valid credentials
Kahlan spec/Auth/LoginSpec.php > Auth > Login > can login

All test IDs are case-insensitive and whitespace-collapsed for comparison.


All versions of skipper-php with dependencies

PHP Build Version
Package Version
Requires php Version >=8.2
google/apiclient Version ^2.15
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package get-skipper/skipper-php contains the following files

Loading the files please wait ...