{"id":15493390,"url":"https://github.com/ojoanalogo/issuetron-3000","last_synced_at":"2026-01-16T00:46:39.323Z","repository":{"id":65161003,"uuid":"288302386","full_name":"ojoanalogo/issuetron-3000","owner":"ojoanalogo","description":"🚨 Trigger a MQTT alert when someone opens an issue in one of your repositories","archived":false,"fork":false,"pushed_at":"2020-09-16T19:22:16.000Z","size":1609,"stargazers_count":20,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-18T10:41:41.274Z","etag":null,"topics":["actions-iot","adafruit-io","esp8266","gh-actions","iot"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ojoanalogo.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-08-17T22:49:36.000Z","updated_at":"2024-08-13T03:39:08.000Z","dependencies_parsed_at":"2023-01-04T12:38:41.779Z","dependency_job_id":null,"html_url":"https://github.com/ojoanalogo/issuetron-3000","commit_stats":{"total_commits":45,"total_committers":1,"mean_commits":45.0,"dds":0.0,"last_synced_commit":"ae60e49e4decf455b7eb1ca6f779056e519cbc21"},"previous_names":["ojoanalogo/issuetron-3000","mxarc/issuetron-3000"],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ojoanalogo%2Fissuetron-3000","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ojoanalogo%2Fissuetron-3000/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ojoanalogo%2Fissuetron-3000/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ojoanalogo%2Fissuetron-3000/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ojoanalogo","download_url":"https://codeload.github.com/ojoanalogo/issuetron-3000/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250312255,"owners_count":21409998,"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":["actions-iot","adafruit-io","esp8266","gh-actions","iot"],"created_at":"2024-10-02T08:06:12.613Z","updated_at":"2026-01-16T00:46:39.298Z","avatar_url":"https://github.com/ojoanalogo.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n\u003cimg src=\"https://github.com/mxarc/issuetron-3000/blob/master/logo.png\" width=\"500\" title=\"Issuetron Logo\"\u003e\n\u003c/p\u003e\n\n# issuetron-3000 🚨\n\n🚨 Turn on a light signal on the physical world when an issue is opened on one of your repos\n\nThis is my entry for the [dev.to GitHub Actions hackathon](https://dev.to/devteam/announcing-the-github-actions-hackathon-on-dev-3ljn)\n\n## Index\n\n- [issuetron-3000 🚨](#issuetron-3000-)\n  - [Index](#index)\n  - [About this](#about-this)\n  - [How to use](#how-to-use)\n  - [Requirements](#requirements)\n  - [Setting up Adafruit IO](#setting-up-adafruit-io)\n  - [Setting up your IoT device](#setting-up-your-iot-device)\n  - [Setting up action](#setting-up-action)\n  - [Trying the action](#trying-the-action)\n  - [License](#license)\n\n## About this\n\nThis is a really simple action intended to connect the real world with IoT devices connected to Adafruit IO Cloud.\n\nIt allows repo mantainers to keep alerted about new issues on their repos, made for the heros of the Open-Source 💙\n\n🔧 I'm using Adafruit IO cloud for the ease of IoT development and device provisioning, since I know most people would like to configure a device the easy way and not have to go through complicated setups like AWS or Azure IoT.\n\nThe Action workflow is listening to an \"Issue\" event and when it's triggered it gets the issue context (like username and issue title) and sends the content over MQTT protocol to an ESP8266 device which I had lying around, it turns on a red lamp which I got from a auto parts store. 🚨\n\nAction is able to send context about the issue, being those details:\n\n    issue title\n    issue author\n    repo of origin\n\nYou can also disable the issue context if you want to save some bytes or you only want to trigger a custom action on your IoT device.\n\nThis action leverages repo secrets, since some variables like the device Key and ID are supposed to be secret, you can find more information on the README on how to setup your device.\n\n## How to use\n\nExample workflow file:\n\n```yml\non:\nissues:\n  types: [opened]\n\njobs:\ndo_iot_thing:\n  runs-on: ubuntu-latest\n  name: A job to turn on a light when someone opens an issue\n  steps:\n    - name: Send activation to ESP8266 device\n      uses: 'mxarc/issuetron-3000@1.1'\n      id: activation\n      with:\n        time: '15' # how much time we will keep our light on\n        blink: true # enable blinking, otherwise just turn on the lamp\n        io_user: '${{ secrets.IO_USER }}'\n        io_key: '${{ secrets.IO_KEY }}'\n        io_feed: 'issuetron'\n        send_context: true\n    # Use the output from the `hello` step\n    - name: Check if we succeeded to turn on the light\n      run: echo \"The result of the action is ${{ steps.activation.outputs.success }}\"\n```\n\n## Requirements\n\n- An Adafruit IO account\n- A GitHub user account\n- ESP8266 device\n- LCD screen\n- I2C Adapter for LCD screen (we need it to save space and pins)\n- LED of any color\n- 220ohm resistor\n- Wires\n- Internet connection\n- 🍌 A banana (we will eat it, they're delicious!)\n\n## Setting up Adafruit IO\n\n1. Head over to \u003chttps://io.adafruit.com/\u003e and create an account (Click Get started for free)\n2. Once you create an account, sign in into io.adafruit.com\n3. Create a new feed, name it \"**issuetron**\"\n   ![New feed](screens/newfeed.png)\n   ![New feed2](screens/newfeed2.png)\n4. Once you create a new feed, click on \"Adafruit IO Key\" and save those values (you will need them later!)\n   ![IO Key](screens/iokey.png)\n   ![IO Key2](screens/iokey2.png)\n\n## Setting up your IoT device\n\nNow it's time to wire up the components, for the red LGB you could use another source of output, like a buzzer but it's up to you to modify the sketch.\n\n![Wiring](sketch.png)\n\nFollow this sketch to connect your ESP8266 device\n\nThe next step is to upload the device code, you can find the code on the esp8266-code folder, I suggest you to use PlataformIO extension to make it easier to upload the code to your board.\n\nYou might need to find drivers for your esp8266 board, a quick Google search will get what you need.\n\nGo to the `config.h` file and replace the next values with your actual device info and WiFi settings:\n\n```c\n// WiFi Settings\n#define WLAN_SSID \"\u003cwifi name\u003e\"\n#define WLAN_PASS \"\u003cwifi password\u003e\"\n\n// Adafruit settings\n#define AIO_USERNAME \"\u003cadafruit io username\u003e\"\n#define AIO_KEY \"\u003cadafruit io key\u003e\"\n```\n\n## Setting up action\n\nAdd this [Workflow file](#how-to-use) to your .github workflows folder\n\nI strongly suggest you to use Repo secrets to store the value of IO_KEY and IO_USER\n\n## Trying the action\n\nOnce you completed the steps above, just open a new Issue and your device should alert you of a new opened issue :D\n\n## License\n\n[MIT](LICENSE)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fojoanalogo%2Fissuetron-3000","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fojoanalogo%2Fissuetron-3000","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fojoanalogo%2Fissuetron-3000/lists"}