Octopus Deploy Integration
Port's Octopus Deploy integration allows you to model Octopus Deploy resources in your software catalog and ingest data into them.
Core support
The integration supports additional resources, see the ingest additional resources page for more information.
Setup
Choose your preferred installation method below. Not sure which to pick? See the installation methods overview.
Configuration
Port integrations use a YAML mapping block to ingest data from the third-party api into Port.
The mapping makes use of the JQ JSON processor to select, modify, concatenate, transform and perform other operations on existing fields and values from the integration API.
Default mapping configuration
This is the default mapping configuration for this integration:
Default mapping configuration (click to expand)
createMissingRelatedEntities: true
deleteDependentEntities: true
resources:
- kind: space
selector:
query: 'true'
port:
entity:
mappings:
identifier: .Id
title: .Name
blueprint: '"octopusSpace"'
properties:
url: env.OCEAN__INTEGRATION__CONFIG__SERVER_URL + "/app#/" + .Id
description: .Description
- kind: project
selector:
query: 'true'
port:
entity:
mappings:
identifier: .Id
title: .Name
blueprint: '"octopusProject"'
properties:
url: env.OCEAN__INTEGRATION__CONFIG__SERVER_URL + "/app#/" + .SpaceId + "/projects/" + .Id
description: .Description
isDisabled: .IsDisabled
tenantedDeploymentMode: .TenantedDeploymentMode
relations:
space: .SpaceId
- kind: release
selector:
query: 'true'
port:
entity:
mappings:
identifier: .Id
title: .ProjectId + "(" + .Version + ")"
blueprint: '"octopusRelease"'
properties:
version: .Version
assembledDate: .Assembled
channelId: .ChannelId
releaseNotes: .ReleaseNotes
url: env.OCEAN__INTEGRATION__CONFIG__SERVER_URL + "/app#/" + .SpaceId + "/releases/" + .Id
relations:
project: .ProjectId
- kind: deployment
selector:
query: 'true'
port:
entity:
mappings:
identifier: .Id
title: .Name
blueprint: '"octopusDeployment"'
properties:
createdAt: .Created
deployedBy: .DeployedBy
taskId: .TaskId
failureEncountered: .FailureEncountered
comments: .Comments
url: env.OCEAN__INTEGRATION__CONFIG__SERVER_URL + "/app#/" + .SpaceId + "/deployments/" + .Id
relations:
release: .ReleaseId
project: .ProjectId
- kind: machine
selector:
query: 'true'
port:
entity:
mappings:
identifier: .Id
title: .Name
blueprint: '"octopusMachine"'
properties:
roles: .Roles
status: .HealthStatus
url: env.OCEAN__INTEGRATION__CONFIG__SERVER_URL + "/app#/" + .SpaceId + "/infrastructure/machines/" + .Id + "/settings"
isDisabled: .IsDisabled
operatingSystem: .OperatingSystem
architecture: .Architecture
statusSummary: .StatusSummary
endpointType: .Endpoint.DeploymentTargetTypeId
communicationStyle: .Endpoint.CommunicationStyle
relations:
space: .SpaceId
Mapping & selectors per resource
Use the explorer below to view sample payloads and the resulting Port entities for each resource type. For additional resources and advanced configurations, see the ingest additional resources page.
Set up live events
This integration supports live events, allowing real-time updates to your software catalog without waiting for the next scheduled sync.
Note that different events are supported depending on the resource type.
- Hosted by Port
Live events base URL
For integrations installed using the Hosted by Port method, you can obtain the live events base URL from the Get an integration API. The response includes liveEventsUuid and liveEventsIngestHostname in the appSpec section.
Call the endpoint with your integration's identifier:
curl -X GET \
'https://api.port.io/v1/integration/<INTEGRATION_IDENTIFIER>' \
-H 'Authorization: Bearer <PORT_ACCESS_TOKEN>'
The port_region, port.baseUrl, portBaseUrl, port_base_url and OCEAN__PORT__BASE_URL parameters select which Port API instance to use:
- EU (app.port.io) →
https://api.port.io - US (app.us.port.io) →
https://api.us.port.io
In the response, look for the following fields under spec.appSpec:
{
"spec": {
"appSpec": {
"liveEventsUuid": "abcdefghijk",
"liveEventsIngestHostname": "ingest.ocean.getport.io"
}
}
}
Combine them to build the live events base URL:
https://<liveEventsIngestHostname>/live-events/<liveEventsUuid>
For example, with the values above, the live events base URL is:
https://ingest.ocean.getport.io/live-events/abcdefghijk
This is the same URL configured for the integration.
Monitoring and sync status
To learn more about how to monitor and check the sync status of your integration, see the relevant documentation.