Skip to main content

GitHub Workflow

Our GitHub action allows you to create/update and query entities in Port directly from your GitHub workflows.

Github Illustration

public repository

Our GitHub action is open source - see it here

๐Ÿ’ก Common Github workflow usageโ€‹

Port's GitHub action provides a native way to integrate Port with your GitHub workflows, for example:

  • Report the status of a running CI job;
  • Update the software catalog about a new build version for a microservice;
  • Get existing entities.


To install Port's GitHub action, follow these steps:

  1. Add the following line as a step in your GitHub workflow:
- uses: port-labs/port-github-action@v1
  1. Add your Port CLIENT_ID and CLIENT_SECRET as GitHub secrets;
    1. This step is not mandatory, but it is recommended in order to not pass the CLIENT_ID and CLIENT_SECRET in plaintext in your workflows;
  2. Make sure you have an existing blueprint in your Port installation to create/update entities using the GitHub action.


Port's GitHub action supports the following methods:

  • Create/Update catalog entities - invoked with the UPSERT operation, receives the identifier and other properties of a new entity or an entity that needs to be updated;
  • Get catalog entities - invoked with the GET operation, receives the identifier of an existing entity and retrieves it for use in your CI;
  • Update a running action - invoked with the PATCH_RUN operation, receives the identifier of an existing action run along with other properties of the run that need to be updated;
- uses: port-labs/port-github-action@v1
clientId: ${{ secrets.CLIENT_ID }}
clientSecret: ${{ secrets.CLIENT_SECRET }}
operation: UPSERT
identifier: myEntity
icon: myIcon
blueprint: myBlueprint
team: "['myTeam']"
properties: |
"myStringProp": "My value",
"myNumberProp": 1,
"myBooleanProp": true,
"myArrayProp": ["myVal1", "myVal2"],
"myObjectProp": {"myKey": "myVal", "myExtraKey": "myExtraVal"}


Refer to the examples page for practical examples of Port's GitHub action.