External Integrations
Back to home
On this page
Platform.sh can be integrated with external services.
Platform.sh supports native integrations with multiple services, first and foremost Git hosting services such as GitHub, GitLab, or Bitbucket. You can continue to use those tools for your development workflow, and have Platform.sh environments created automatically for your pull requests and branches.
You can also add native integrations with performance monitoring tools.
Platform.sh recommends Blackfire,
which is part of the standard Platform.sh Observability Suite.
Note that only a project administrator (someone with admin
level access to the project) can add or remove integrations.
See User administration for more details.
List active integrations
With the CLI, you can list all your active integrations using the following command:
platform integrations
You get output similar to the following:
+---------------+-------------+-------------------------------------------------------------------------------------+
| ID | Type | Summary |
+---------------+-------------+-------------------------------------------------------------------------------------+
| abcdefghijklm | github | Repository: platformsh/platformsh-docs |
| | | Hook URL: |
| | | https://eu-3.platform.sh/api/projects/123abcdefgh3i/integrations/abcdefghijklm/hook |
+---------------+-------------+-------------------------------------------------------------------------------------+
Validate integrations
Once your integration has been configured, you can check that it’s working as expected. To do so, follow these steps:
-
Run the
platform integration:validate
command. -
When prompted, select the integration you want to validate:
Enter a number to choose an integration: [0] 5aut2djgt6kdd (health.slack) [1] a6535j9qp4sl8 (github) > 1
You get output similar to:
Validating the integration a6535j9qp4sl8 (type: github)... The integration is valid.
Debug integrations
When integrations run, they trigger “activities.” Activities are actions that happen on Platform.sh, and they get logged.
Usually these are triggered nearly instantaneously on the webhook endpoint. These activities may be delayed due to the external services having latency.
Those logs are available via the CLI. In most cases they aren’t necessary but may be useful for debugging an integration if it is misbehaving for some reason.
There are a handful of CLI commands available, all under the integrations
section.
List all activities
To list all the updates triggered by activities on a given project and integration, follow these steps:
-
Run the
platform integration:activities
command. -
When prompted, select an integration.
Enter a number to choose an integration: [0] dxr45hfldrkoe (webhook) [1] n2ukd4p7qofg4 (health.email) [2] c4opi5tjv3yfd (github) > 2
You get output similar to the following:
Activities on the project Platform.sh | Docs (6b2eocegfkwwg), integration c4opi5tjv3yfd (github): +---------------+---------------------------+-------------------------------------------------------------+----------+---------+ | ID | Created | Description | State | Result | +---------------+---------------------------+-------------------------------------------------------------+----------+---------+ | 6456zmdtoykxa | 2020-04-14T16:38:09-05:00 | Fetching from https://github.com/platformsh/platformsh-docs | complete | success | | wcwp34yjvydgk | 2020-04-14T16:35:22-05:00 | Fetching from https://github.com/platformsh/platformsh-docs | complete | success | | w2bp3oa5xbfoe | 2020-04-14T16:33:13-05:00 | Fetching from https://github.com/platformsh/platformsh-docs | complete | success | | uqqvdyxmcdmsa | 2020-04-14T16:31:45-05:00 | Fetching from https://github.com/platformsh/platformsh-docs | complete | success | | 7x3wefhh4fwqc | 2020-04-14T16:30:36-05:00 | Fetching from https://github.com/platformsh/platformsh-docs | complete | success | | a46aah3ga65gc | 2020-04-14T16:29:46-05:00 | Fetching from https://github.com/platformsh/platformsh-docs | complete | success | | r7erid2jlixgi | 2020-04-14T16:24:50-05:00 | Fetching from https://github.com/platformsh/platformsh-docs | complete | success | | ieufk3vvde5oc | 2020-04-14T16:24:49-05:00 | Fetching from https://github.com/platformsh/platformsh-docs | complete | success | | bc7ghg36ty4ea | 2020-04-14T15:30:17-05:00 | Fetching from https://github.com/platformsh/platformsh-docs | complete | success | | 4qojtv7a6rk2w | 2020-04-14T15:27:26-05:00 | Fetching from https://github.com/platformsh/platformsh-docs | complete | success | +---------------+---------------------------+-------------------------------------------------------------+----------+---------+
You may also specify an integration to display in the command line directly: platform integration:activities c4opi5tjv3yfd
.
The ID is an internal identifier for the activity event. The Description field is an arbitrary string of text produced by the integration code. The State and Result fields indicate if the activity completed successfully, failed for some reason, or is currently in progress.
See the --help
output of the command for more options.
Show detailed information on an activity
To show detailed information on a specific activity, run the following command:
platform integration:activity:log INTEGRATION_ID ACTIVITY_ID -t
The -t
option specifies that timestamps must be included in the display of the results.
You get output similar to the following:
Integration ID: ceopz5tgj3yfc
Activity ID: 6456zmdtoykxa
Type: integration.github.fetch
Description: Fetching from https://github.com/platformsh/platformsh-docs
Created: 2020-04-15T08:44:07-05:00
State: complete
Log:
[2020-04-15T13:44:17-05:00] Waiting for other activities to complete
[2020-04-15T13:46:07-05:00] Fetching from GitHub repository platformsh/platformsh-docs
[2020-04-15T13:46:09-05:00] No changes since last fetch
[2020-04-15T13:46:09-05:00]
[2020-04-15T13:46:09-05:00] Synchronizing branches
[2020-04-15T13:46:09-05:00]
[2020-04-15T13:46:09-05:00] Synchronizing pull requests
[2020-04-15T13:46:59-05:00]
[2020-04-15T13:46:59-05:00] W: No changes found, scheduling a retry..
That shows the full output of the activity, including timestamps. That can be especially helpful if trying to determine why an integration isn’t behaving as expected.
See the --help
output of the command for more options.
If you omit the activity ID (the second random-seeming string), the command will default to the most recent activity recorded.