Skip to content

Mi3-14159/GitGazer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GitGazer

GitGazer aims to be a monitoring tool for the github workflows. It provides a workflows overview and a notification system.

A demo is available at https://app.gitgazer.com/

After login you will need to create an integraton and setup a webhook in github. Afterwards you will recieve github workflow status updates and view those on the dashboard. You can also create a notification rule to get notified in case of a failing workflow. Detailed instructions are down below beginning with bullet point 5.

Development

Recommended use of asdf to manage your runtime versions.

How to install

  1. you need to create the core.
cd 02_central
npm ci
npm run buildZip
cd terraform
terraform apply
  1. you need to create the authentication stack.
cd 03_auth_api
npm ci
npm run buildZip
cd terraform
terraform apply
  1. this is to update the code settings. Set the aws_appsync_graphql_api_additional_authentication_providers variable and apply terraform again.
  2. build the frontend and sync it to s3

You first need to set these environment variables in .env.local, replace the values with yours.

➜  04_frontend git:(main) ✗ cat .env.local
VITE_HOST_URL="http://localhost:5173"
VITE_COGNITO_DOMAIN="gitgazer-default.auth.eu-central-1.amazoncognito.com"
VITE_COGNITO_USER_POOL_ID="eu-central-1_BVsGhTzPa"
VITE_COGNITO_USER_POOL_CLIENT_ID="1el0phv4ansjj4f81qik0o0m07"
VITE_GRAPHQL_ENDPOINT="https://api.app.gitgazer.com/graphql"
VITE_GRAPHQL_REGION="eu-central-1"
VITE_IMPORT_URL_BASE="https://app.gitgazer.com/v1/api/import/"

Not build and publish the app.

npm ci
npm run build
aws s3 sync dist/. s3://<UIS_BUCKET_NAME>/ --cache-control max-age=604800 --exclude "*.html"
aws s3 sync dist/. s3://<UIS_BUCKET_NAME>/ --cache-control max-age=60 --include "*.html"
  1. Go to the application https://your-domain/ and login
  2. Go to the Integrations page and click Add
  3. Create a webhook on a repository or organisation. Use the Webhook payload URL and Secret from the created Integration and set the Content Type to application/json.
  4. If you want notifications about failed jobs, go to Notifications in your GitGazer app and click Add.
    • All * Fields are mandatory.
    • GitGazer will send a http request to the specified URL
    • The message must be in a format compatible to the AWS Step-Functions States.Format function.
    • Only the Workflow Name is passed to the template e.g. `Workflow '{}' failed.'