/actionspanel

Manually trigger your GitHub Actions

Primary LanguageGoApache License 2.0Apache-2.0

actionspanel

Actions Panel Go Report Card Docs codecov Test Actions Panel release GitHub release date Docker Cloud Build Status Docker Cloud Automated build Docker Image Size (latest semver) Docker Pulls Dependabot Status license

Manually trigger your GitHub Actions

Visit https://www.actionspanel.app to learn more.

Running locally

actionspanel is built with Go 1.14+ so you'll need to install that.

You will need a Kubernetes cluster to deploy to for local development. We recommend using the kind project which makes running a local Kubernetes cluster extremely easy. We currently develop using kind v0.7.0.

Lastly, for doing the development and deployment to Kubernetes, we use skaffold v1.8.0.

Once you have all of these tools installed, you can run and deploy the application locally using the following command: skaffold dev --no-prune=false --cache-artifacts=false --port-forward

This will build the Docker image locally, deploy it to your Kubernertes cluster and make the application available at port 8080.

Creating your GitHub App

Actions Panel runs as a GitHub App. If you want to run Actions Panel locally, you'll need to create a GitHub App.

Make sure that you set your GitHub App's Webhook url to /webhook as that's what the application registers for its path for receiving GitHub events.

To trigger repository_dispatch events, you need to configure your GitHub App to have Read & write permissions for Repository Contents. repository_dispatch needs write permissions in order to create these events. Unfortunately, there's not a better or more granular way to gain access to creating repository_dispatch.

We use ngrok to tunnel the GitHub webhook requests to run locally.

Secrets used for local development

When you create your GitHub App, you'll get a few secret values which you need to pass to this application in order to get it to run. Create a ConfigMap in your Kubernetes cluster with the following values:

kubectl apply -f - << EOF
apiVersion: v1
kind: ConfigMap
metadata:
  name: actionspanel
data:
  AP_INTEGRATION_ID: ""
  AP_OAUTH_CLIENT_ID: ""
  AP_OAUTH_CLIENT_SECRET: ""
  AP_PRIVATE_KEY: ""
  AP_WEBHOOK_SECRET: ""
EOF

NOTE: The AP_PRIVATE_KEY is the generated private key you create as part of the GitHub App, but base64 encoded.