PHPackages                             nickwilde1990/drupal-spec-tool-commands - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. nickwilde1990/drupal-spec-tool-commands

ActiveComposer-plugin[Utility &amp; Helpers](/categories/utility)

nickwilde1990/drupal-spec-tool-commands
=======================================

Provides composer commands for automating usage of acquia/drupal-spec-tool

v1.0.0-rc1(7y ago)25.3k7[3 issues](https://github.com/NickWilde1990/drupal-spec-tool-commands/issues)[2 PRs](https://github.com/NickWilde1990/drupal-spec-tool-commands/pulls)GPL-3.0-or-laterPHP

Since Aug 20Pushed 4y ago2 watchersCompare

[ Source](https://github.com/NickWilde1990/drupal-spec-tool-commands)[ Packagist](https://packagist.org/packages/nickwilde1990/drupal-spec-tool-commands)[ RSS](/packages/nickwilde1990-drupal-spec-tool-commands/feed)WikiDiscussions master Synced yesterday

READMEChangelogDependencies (2)Versions (2)Used By (0)

Drupal Spec Tool Commands
=========================

[](#drupal-spec-tool-commands)

Provides composer command functionality to automate populate/update gherkin files as defined with [acquia/drupal-spec-tool](https://github.com/acquia/drupal-spec-tool). No more copy and paste every time you adjust your specification spreadsheet. Instead, do a couple configuration steps at the start of your project and use this to keep your feature files up to date. This project requires a [Composer](https://getcomposer.org/) setup since the commands are composer commands.

Getting started
---------------

[](#getting-started)

### Composer Config

[](#composer-config)

The command needs a bit of outside information. The current method of providing that is through the extra config in your composer.json. Under extra, put a subkey `drupal-spec-tools`, and provide the following keys under that:

- `spreadsheet`: The ID for your Drupal Spec Tool spreadsheet. It is the long random looking string/UUID in the url to access your spreadsheet. For example, in `https://docs.google.com/spreadsheets/d/1h-SieCV9Dtrj8F4bqMvsbcHwIibN30j2oR9FMRDFT-8/edit?usp=sharing` the id is `1h-SieCV9Dtrj8F4bqMvsbcHwIibN30j2oR9FMRDFT-8`
- `credentials-path`: The folder to get your google credentials from and store auth keys. **WARNING:** For security reasons under many situations, the credentials should not be committed to your repository.
- `feature-path` (Optional)\[default:'tests/features'\]: Where to put/update feature files. **WARNING:** Files sharing the same name as the Drupal Spec Tool features will be overwritten if they already exist.

Minimal example:

```
{
  "extra": {
    "drupal-spec-tool": {
        "credentials-path": "tests/drupal-spec-tool",
        "spreadsheet": "1a1B-4YFjueF0xM34CWA_xKcVc89rk_MlKW1aNFcfx3c"
    }
  }
}
```

### Credentials

[](#credentials)

You will need [Google API Credentials](https://developers.google.com/sheets/api/quickstart/php) - just complete step 1 and save your credentials.json to your credentials-path. As this only provides API access/can use up your API limits, this is probably safe to save in your repository if private.

Usage
-----

[](#usage)

In your project root, run `composer drupal-spec-dump-gherkin`.

On first run, this will ask you for access to the sheet. You will need to copy/paste the output authorization url and log in to Google and confirm access. This will save a token in the defined credentials path and as long as it is there you should not need to re-authenticate on futher runs.

Known issues
------------

[](#known-issues)

[See open bug reports in the issue queue.](https://github.com/NickWilde1990/drupal-spec-tool-commands/issues)

Contribution
------------

[](#contribution)

Contributions are welcome!

License
-------

[](#license)

Copyright (C) 2018 Nick Wilde.

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see

###  Health Score

23

↓

LowBetter than 27% of packages

Maintenance0

Infrequent updates — may be unmaintained

Popularity23

Limited adoption so far

Community11

Small or concentrated contributor base

Maturity48

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

2822d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/335bc60327415dda3c2e3e00708c02f10938b263d8e3740748d11b80f4333127?d=identicon)[NickWilde1990](/maintainers/NickWilde1990)

---

Top Contributors

[![NickDickinsonWilde](https://avatars.githubusercontent.com/u/92694?v=4)](https://github.com/NickDickinsonWilde "NickDickinsonWilde (3 commits)")

### Embed Badge

![Health badge](/badges/nickwilde1990-drupal-spec-tool-commands/health.svg)

```
[![Health](https://phpackages.com/badges/nickwilde1990-drupal-spec-tool-commands/health.svg)](https://phpackages.com/packages/nickwilde1990-drupal-spec-tool-commands)
```

###  Alternatives

[vaimo/composer-patches

Applies a patch from a local or remote file to any package that is part of a given composer project. Patches can be defined both on project and on package level. Optional support for patch versioning, sequencing, custom patch applier configuration and patch command for testing/troubleshooting added patches.

2994.3M16](/packages/vaimo-composer-patches)[mglaman/composer-drupal-lenient

1317.4M15](/packages/mglaman-composer-drupal-lenient)[drupal/core-composer-scaffold

A flexible Composer project scaffold builder.

5341.9M446](/packages/drupal-core-composer-scaffold)[drupal/core-project-message

Adds a message after Composer installation.

2122.6M172](/packages/drupal-core-project-message)[olvlvl/composer-attribute-collector

A convenient and near zero-cost way to retrieve targets of PHP 8 attributes

184108.8k8](/packages/olvlvl-composer-attribute-collector)[lullabot/drainpipe

An automated build tool to allow projects to have a set standardized operations scripts.

41716.4k2](/packages/lullabot-drainpipe)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
