hanoii / platformsh2slack
Platform.sh -> Slack incoming webhook adapter.
Installs: 11 877
Dependents: 0
Suggesters: 0
Security: 0
Stars: 20
Watchers: 5
Forks: 5
Open Issues: 5
Type:project
pkg:composer/hanoii/platformsh2slack
Requires
- maknz/slack: ^1.7
- symfony/http-foundation: ^2 || ^3 || ^4
README
Note
This project has been archived. There's a better way of doing something like this which is through activity scripts.
Platform.sh -> Slack incoming webhook adapter
This is a simple php script that translates Platform.sh webhook into a Slack formatted message.
You can install this in your php app container and host it there for your project's specific webhooks.
Sponsored by Infomagnet - builds websites to any design using Drupal.
Installation
You can install the package using the Composer package manager. You can install it by running this command in your project root:
composer require hanoii/platformsh2slack
Then create an incoming webhook on your Slack account for the package to use. You'll need the webhook URL to instantiate the adapter.
Basic Usage
<?php // Optional settings $settings = [ 'channel' => '#random', 'project' => 'Some project', // Environment will be appended to the URL 'project_url' => 'https://console.platform.sh/USER/PROJECTID', ]; $platformsh2slack = new Hanoii\Platformsh2Slack\Platformsh2Slack( 'https://hooks.slack.com/...', $settings ); // Optionally protect the request with a token that has to be present in the Platform.sh webhook $platformsh2slack->validateToken('1234'); // Send the information to slack $platformsh2slack->send();
Platform.sh build hook
If your application (.platform.app.yaml) is already being built with composer:
build: flavor: composer
You can simply add:
"hanoii/platformsh2slack": "^1.0"
To your composer.json file of the project and create a small script as per above.
If not, you will have to add a script to the repository and run composer install on your build hook manually.
Settings
| Option | Type | Default | Description | 
|---|---|---|---|
| channel | string | null | The default channel that messages will be sent to, otherwise defaults to what's set on the Slack's incoming webhook | 
| commit_limit | int | 10 | The number of commits from the payload to include in the Slack message | 
| routes | bool | false | Whether to show project's routes on every slack message. If false, it will be shown only when you branch. | 
| redirects | bool | false | Whether to include project's redirects with routes on every Slack message. If false, redirects will be shown only when you branch. | 
| basic_auth | bool | false | Whether to show project environment's HTTP Authentication username and password in Slack message. WARNING: If true, potentially sensitive data passwords will be sent in the clear to your Slack channel. | 
| configurations | bool | false | Whether to show project's configurations on every slack message. If false, it will be shown only for master when you push, merge or have a subscription plan update. | 
| attachment_color | string | '#e8e8e8' | RGB color for Slack attachment. | 
| project | string | null | If present, it will be used as the project name instead of the default string. Project name is misisng in Platform.sh's payload. | 
| project_url | string | null | If present, the project name will be used as a link to this URL on Slack notifications. Environment branch will be appended automatically to the URL. | 
| debug | string | null | An optional path where posssible unhandled webhooks JSON can be saved. This is useful if you want to send over the json for me to add support for it. | 
| debug_all | boolean | false | If debugis set, it saves the JSON of every webhook sent, not only the unhandled ones. | 
| active | boolean | false | If activeis set, only webhooks of active environments will be sent to platform. Useful for some external integrations. | 
Token
This is an optional feature you can choose to use on the script. It's a nice simple validation so that you script is not abused.
If you added:
$platformsh2slack->validateToken('1234');
to your script, you will have to append the token the Platform.sh's webhook integration URL.
Add the integration on platform
Run the following:
platform integration:add --type=webhook --url="https://www.example.com/platformsh2slack.php?token=TOKEN"
Environoments
You can have this script on any environment, even master. As far as my trials went, even pushing to master works.
