As 2023 begins, things are really warming up at Port.
Our GitHub and BitBucket exporters are our newest features. To understand them in context, we wanted to first explain the interplay of GitOps and internal developer portals and then the power of using exporters to populate the software catalog with GitOps data.
Git and an Internal Developer Portal
Git contains a lot of information about the different entities and components you manage. From readmes, microservice names (repo names if you operate in poly repos), IaC files, K8S manifests, ArgoCD files, issues, API Documentation and pull requests. The list goes on.
On our mission to bring everything into one Internal Developer Portal, for context, self-service and even workflow automations, Git providers are a key data source to deliver on this promise.
Ingesting data into the software catalog in the developer portal from your git provider
A simple ingestion of data from GitHub or Bitbucket would essentially sync the relevant YAML about the relevant component (any of service, IaC or k8s related) to the developer portal. It’s almost manual - whatever was written into the YAML in Git is sent to the software catalog.
This isn’t necessarily a bad practice, since requiring a service owner to maintain a YAML file is a good driver of “you build it, you own it”, since it forces the service owners to put the relevant data in the YAML file. But it potentially misses out on the valuable data contained in the Git provider.
GitHub and Bitbucket contain very valuable data that would enrich any software catalog. This information (which our GitHub and Bitbucket exporters fetch) is made of two types:
1. Data about user activity: think of issues, pull requests, who ran which workflow. Perhaps hundreds of these data points are created each and every day. This is valuable real time data which isn’t truly accessible and is at no-one's fingertips.
2. Data about services, IaC, Kubernetes & everything GitOps. The Git provider contains multiple files with important data about repos, environments and how they are structured. This appears in Terraform files for the environment, helm charts with the K8s setup and the values files for K8s, as well as the argo app. Reflecting this data in the developer portal can provide much needed insight about the state of services and infrastructure - in real-time.
The GitHub and the Bitbucket Exporters - what are they?
Our new GitHub and Bitbucket exporters are integrations that allow you to automatically collect live data to be digested by Port’s software catalog. These integrations export GitHub or Bitbucket objects (like pull requests, issues, workflows, and repositories) to Port. They also let you map your GitHub or Bitbucket resources into Port’s software catalog.
This means that you can
List and export existing Git Provider data from your organization, such as pull requests or repositories and more
Watch for diff changes in specific git files (commit new file / change / delete) in real-time. The changes will be automatically applied to the relevant entities in the software catalog;
Configure which objects are relevant, and how to map and transform objects to the relevant entities in the software catalog.
How does it work?
Port collects data across your entire stack, processes it and shows it just where you want it to appear in the software catalog.