{"id":18278762,"url":"https://github.com/terminus-plugin-project/terminus-upstream-testing-plugin","last_synced_at":"2025-09-17T20:26:16.697Z","repository":{"id":57066869,"uuid":"86664699","full_name":"terminus-plugin-project/terminus-upstream-testing-plugin","owner":"terminus-plugin-project","description":"Terminus plugin that allows for users to deploy tests from their upstream without merging those changes into the upstream ahead of time.","archived":false,"fork":false,"pushed_at":"2017-07-20T14:17:50.000Z","size":18,"stargazers_count":2,"open_issues_count":4,"forks_count":1,"subscribers_count":2,"default_branch":"1.x","last_synced_at":"2025-08-12T13:53:38.130Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/terminus-plugin-project.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-03-30T05:59:53.000Z","updated_at":"2017-12-19T06:09:51.000Z","dependencies_parsed_at":"2022-08-24T10:20:10.374Z","dependency_job_id":null,"html_url":"https://github.com/terminus-plugin-project/terminus-upstream-testing-plugin","commit_stats":null,"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"purl":"pkg:github/terminus-plugin-project/terminus-upstream-testing-plugin","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/terminus-plugin-project%2Fterminus-upstream-testing-plugin","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/terminus-plugin-project%2Fterminus-upstream-testing-plugin/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/terminus-plugin-project%2Fterminus-upstream-testing-plugin/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/terminus-plugin-project%2Fterminus-upstream-testing-plugin/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/terminus-plugin-project","download_url":"https://codeload.github.com/terminus-plugin-project/terminus-upstream-testing-plugin/tar.gz/refs/heads/1.x","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/terminus-plugin-project%2Fterminus-upstream-testing-plugin/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":275658240,"owners_count":25504774,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-17T02:00:09.119Z","response_time":84,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-05T12:25:59.820Z","updated_at":"2025-09-17T20:26:16.642Z","avatar_url":"https://github.com/terminus-plugin-project.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Terminus Upstream Testing\n\n[![Terminus v1.x Compatible](https://img.shields.io/badge/terminus-v1.x-green.svg)](https://github.com/terminus-plugin-project/terminus-upstream-testing/tree/1.x)\n\n| Option                | Description    |\n| --------------------- | -------------- |\n| --repo                | Repository to use and pull code from. When omitted this will use the sites upstream |\n| --branch              | Branch from the repository to use. |\n| --env                 | Environment to use for testing |\n| --copy                | Environment to copy database and files from |\n| --teardown            | Tear down the environment before applying any changes |\n| --rebuild             | Rebuild the database and files |\n| --username            | Change user 1's username |\n| --password            | Change user 1's password |\n| --notify              | Run a script after the process has been completed |\n| --skipautocommit      | Skip files that were not autocommitted |\n\n## Slack Integration\n\nIntegration with [Slack](https://slack.com) using [incoming webhooks](https://my.slack.com/services/new/incoming-webhook)\n\n| Option                | Description |\n| --------------------- | ----------- |\n| --slack_url           | Slack URL to post to |\n| --slack_channel       | Slack Channel to post message to. Should be prefixed with \\# |\n| --slack_message       | Message to post to slack. Following variables are available {env} {site_id} {site_name} {url}|\n| --slack_username      | Username to push through as slack message |\n| --slack_icon          | Icon to use for slack message |\n\n## Examples\n### Default Running\nThe following will apply all updates from the master branch of the site's upstream to the upstream multi-dev \n```\n$ terminus site:upstream:test companysite-33\n```\n\n### Separate Upstream\nIf the `--repo` argument is omitted the plugin with default to the site's upstream git repository. Otherwise a git\nurl could be used to pull from a completely different repo.\n```\n$ terminus site:upstream:test companysite-33 --repo=\"https://github.com/pantheon-systems/drops-7.git\"\n```\n\n### Specifying the environment to copy database and files\nThe `--copy` argument will allow you to specify the environment to bring the database and files from. This environment\nmust already be initialized. Otherwise, the live/test/dev environments will be used respectively  \n```\n$ terminus site:upstream:test companysite-33 --copy=\"dev\"\n```\n\n### Upstream Branch\nTo specify a particular branch that code would live in the `--branch` argument could be used. That branch will need to exist\nwithin the upstream or `--repo` repository.\n```\n$ terminus site:upstream:test companysite-33 --branch=\"v1.3.3\"\n```\n\n### Rebuild\nTo rebuild or copy the database and files from a particular environment use the `--rebuild` flag as it will dictate\nthat you want to completely pull new content. In conjunction with `--copy` these could be helpful in automation if\nwanting to specify the environment that data should be rebuilt from.\n```\n$ terminus site:upstream:test companysite-33 --rebuild\n```\n\n### Reset User 1 Username and Password\nThe following will reset the username and password of the user 1 account. This is helpful if you would like a standard\naccount username and password for any other sort of automated testing like behat. Each argument may be used independently\nand do not need to be combined. \n\n#### Reset Username\n```\n$ terminus site:upstream:test companysite-33 --username=\"admin\"\n```\n\n#### Reset Password\n```\n$ terminus site:upstream:test companysite-33 --password=\"admin\"\n```\n\n### Slack Notification\nThere is an ability to have a slack message sent to a particular channel to notify when an environment has been updated.\nThis is particularly useful if and when you are using this plugin for any sort of Continuous Integration work.\n```\n$ terminus site:upstream.test companysite-33 --slack-url=\"[REDACTED]\" --slack-channel=\"#general\"\n```\n\n## Installation\nFor help installing, see [Manage Plugins](https://pantheon.io/docs/terminus/plugins/)\n```\nmkdir -p ~/.terminus/plugins\ncomposer create-project -d ~/.terminus/plugins terminus-plugin-project/terminus-upstream-testing-plugin:~1\n```\n\n## Install Notes\nOccasionally you may get this issue:\n```\n[Pantheon\\Terminus\\Exceptions\\TerminusException]\n  The plugin terminus-plugin-project/terminus-upstream-testing-plugin has installed the project guzzlehttp/psr7: 1.4.2, but Terminus has installed guzzlehttp/psr7: 1.4.1. To resolve this, try running 'com\n  poser update' in both the plugin directory, and the terminus directory.\n```\n\nThe way to solve this will be to go to your terminus project and run `composer update`. If you globally require it you\nwill need to go directly into terminus it's self as the lock file within the terminus may contain an older version of guzzle/psr7.\n\n### OS X \u0026 Linux Fix\n\nThe following will only work assuming the following:\n\n* terminus was installed with composer and not with the phar\n* the terminus executable file is located within vendor/bin folder\n\n```\ncd `dirname $(which terminus)`\ncd ../../\ncomposer update\ncd ~/.terminus/plugins/terminus-plugin-project\ncomposer update\n```\n\n## Help\nRun `terminus list site:upstream:test` for a complete list of available commands. Use `terminus help \u003ccommand\u003e` to get help on one command.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fterminus-plugin-project%2Fterminus-upstream-testing-plugin","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fterminus-plugin-project%2Fterminus-upstream-testing-plugin","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fterminus-plugin-project%2Fterminus-upstream-testing-plugin/lists"}