Skip to main content

✨ Change smart lights based on CI pipeline status

Project description

🚀 pipeglow

Visualize CI pipeline status with smart lights

🗺️ Overview

pipeglow updates your smart lights to provide real-time visual feedback about your CI pipeline status. By automatically changing light colors based on pipeline states, you get immediate visual notifications about how your builds and deployments are going.

🛠️ Installation

pip install pipeglow

📋 Configuration

Create a .env file with the following environment variables:

GOVEE_API_KEY=your_api_key_here
GOVEE_DEVICE_ID=your_device_id
GOVEE_DEVICE_MODEL=your_device_model
GITLAB_API_TOKEN=your_gitlab_token
GITLAB_PROJECT_ID=your_project_id

✨ Features

🌈 Pipeline Status Colors

Each pipeline state is represented by a distinct color:

  • 💛 Preparing/Pending: Yellow (#9F9110)
  • 💗 Waiting: Pink (#DC6BAD)
  • 💙 Running: Blue (#3974C6)
  • 💚 Success: Green (#309508)
  • ❌ Failed: Red (#FF0000)
  • ⚫ Canceled/Skipped: Dark Gray (#212121)

🌞 Dynamic Brightness

Light brightness automatically adjusts based on pipeline update recency:

  • Recent updates appear brighter
  • Brightness gradually dims as updates age
  • Provides intuitive temporal feedback

🦊 GitLab Integration

There is support for checking any GitLab instance (.com, self-managed or GitLab Dedicated). By default, pipeglow assumes gitlab.com.

💡 Lighting Integration

Today, pipeglow works with Govee lights. You will need a Govee API key in order to use pipeglow. You will need to run pipeglow on a machine with access to the Internet so that it can communicate with the Govee API.

🚀 Usage

This will cause pipeglow to check the project you specified in .env and update the light specified in .env accordingly. (Alternately, you can set the items specified in .env as environment variables.)

pipeglow change_the_lights

Specify a different GitLab URL:

pipeglow change_the_lights --gitlab-url https://gitlab.example.com
uvx pipeglow change_the_lights

Run a command like this in a loop to check and update the lights once every 15 seconds:

while true; do
    uvx pipeglow change_the_lights
    sleep 15
done

Alternately, you can use set_the_lights to set the lights based on a pipeline status. This is useful if you have a webhook trigger pipeglow.

uvx pipeglow set_the_lights success
# pipeglow set_the_lights  --light-status running
🚀 Just set the lights to running please!
🏆 The light has been updated!

📄 License

MIT License

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pipeglow-0.0.975.tar.gz (8.5 kB view details)

Uploaded Source

Built Distribution

pipeglow-0.0.975-py3-none-any.whl (8.3 kB view details)

Uploaded Python 3

File details

Details for the file pipeglow-0.0.975.tar.gz.

File metadata

  • Download URL: pipeglow-0.0.975.tar.gz
  • Upload date:
  • Size: 8.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.8

File hashes

Hashes for pipeglow-0.0.975.tar.gz
Algorithm Hash digest
SHA256 4bcad5aa5e00810ca7215d3c52f8068071e0c3f4ea6f274a6f5a2f7e8f807c09
MD5 48a3545cf4ffff54c328febffe86f8d5
BLAKE2b-256 f2576c6cba108d2a3e73fc8f141b75cf32a2a1405b22a6d53c24a7e5343468d9

See more details on using hashes here.

File details

Details for the file pipeglow-0.0.975-py3-none-any.whl.

File metadata

  • Download URL: pipeglow-0.0.975-py3-none-any.whl
  • Upload date:
  • Size: 8.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.8

File hashes

Hashes for pipeglow-0.0.975-py3-none-any.whl
Algorithm Hash digest
SHA256 9e0ae1595418dd7d4f66190e36f8c8a7a01f09a6f322ea992be0dc943e735731
MD5 6385351360573581f0de6c5b43c41ac0
BLAKE2b-256 50c30bbe6c97f987095b1f62df4d4a36e0e95018a8f1d804b15e94602b39a7e5

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page