{"id":20299251,"url":"https://github.com/jambit/jambel","last_synced_at":"2025-04-11T13:14:32.468Z","repository":{"id":3841719,"uuid":"4924732","full_name":"jambit/jambel","owner":"jambit","description":"three color signal light for monitoring software build status","archived":false,"fork":false,"pushed_at":"2013-03-11T06:13:48.000Z","size":410,"stargazers_count":6,"open_issues_count":5,"forks_count":4,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-03-25T09:47:27.506Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jambit.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2012-07-06T12:57:11.000Z","updated_at":"2018-08-29T18:24:54.000Z","dependencies_parsed_at":"2022-07-07T18:30:17.812Z","dependency_job_id":null,"html_url":"https://github.com/jambit/jambel","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jambit%2Fjambel","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jambit%2Fjambel/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jambit%2Fjambel/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jambit%2Fjambel/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jambit","download_url":"https://codeload.github.com/jambit/jambel/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248406580,"owners_count":21098250,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-14T16:13:59.653Z","updated_at":"2025-04-11T13:14:32.395Z","avatar_url":"https://github.com/jambit.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"jambel\n======\n\nthree color signal light for monitoring software build status\n\nUsage\n-----\nDownload the binaries of the [jambel control](https://github.com/downloads/jambit/jambel/jambel-1.0-SNAPSHOT.zip).\n\nThe file `/etc/jambel.json` is used for configuring the Jambel. All jobs that are mapped onto this Jambel are listed in `jobs`. This includes:\n- the URL of the Jenkins job\n- the update mode of the job, or how he obtains status updates (either the Jenkins instance POSTs updates or the job URL is polled)\n- if the job is polled, the polling interval can be configured\nThe signal light configuration includes the following items:\n- the position of the green light (`top` vs. `bottom`)\n- the host and port of the signal light\n- the timeout that is used when waiting for a reply and upon establishing a TCP connection\n- the interval after which the current light status is resent in order to keep the signal light alive. Thus, the signal light can be switched off and on again and receive a new status update without a new build needing to happen\nFurthermore, the port of the web interface can be configured.\n\nThe app must be started within the jambel folder with the command `bin/jambel`.\n\nThe web interface of the Jambel can be found at `http://\u003cHOSTNAME\u003e:\u003cHTTP-PORT\u003e/web/`. It can be used to see the last statuses of the jobs, the last sent configuration of the signal light and to reset the signal light.\n\n\nConfiguring the Jenkins for POSTing\n-----------------------------------\nAdd the [Notification Plugin](https://wiki.jenkins-ci.org/display/JENKINS/Notification+Plugin) to each Jenkins that shall post its jobs' states to this server.\nIn the configuration of each job, add an HTTP Notification Endpoint that POSTs to `http://\u003cHOSTNAME-OF-JAMBEL-SERVER\u003e:\u003cPORT\u003e/web/jobStatusUpdate`.\n\n\nContributing\n------------\nThe project is built with [Gradle](http://www.gradle.org/). Use the commited Gradle wrapper script to obtain Gradle. Type `./gradlew tasks` to get an overview of executable Gradle tasks. The task `distZip` is used to build a ZIP file that can be distributed.\n\nModules\n-------\nThe jambel control consists of the following five modules:\n\n1. **config**: loads configuration from a JSON file and hosts the configuration classes for other modules\n2. **signallight**: allows controlling a signal light, like configuring blink times, setting individual light statuses, and retrieving the current status; depends on config module\n3. **hub**: Contains the logic of retrieving intial job statuses, aggregating multiple job statuses, and using a signal light for displaying the aggregated state; depends on config and signallight modules\n4. **server**: Sets up the jambel as a standalone web application using Jetty. Offers a simple web interface and an endpoint for HTTP POSTs of the Jenkins Notification plugin; depends on config and hub modules\n\n\nPotential extensions\n--------------------\nHere is a list of ideas what to improve:\n- control multiple signal lights and offer a flexible configuration from jobs to signal lights\n- WebSocket for web UI to monitor the build status in the browser in real time\n- set up application task of Gradle to generate start scripts for a daemon process (maybe using http://gradle.org/docs/current/dsl/org.gradle.api.tasks.application.CreateStartScripts.html)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjambit%2Fjambel","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjambit%2Fjambel","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjambit%2Fjambel/lists"}