{"repo":"getbettr/octotail","free":true,"listed":false,"github":"https://github.com/getbettr/octotail","clone":"git clone https://github.com/getbettr/octotail.git","description":"Live tail GitHub Action runs on 'git push'. It's cursed.","language":"Python","stars":22,"topics":["codecrafters","git","github-actions","post-receive","tail"],"license":"Unlicense","category":"cli-tools","readme_excerpt":"octotail Live tail GitHub Action runs on git push . It's cursed. Motivation I really liked how [Codecrafters][] test runs are mirrored back right in the terminal when you git push , so I thought: \"surely this is something the gh CLI supports\". It doesn't. A couple of hours of messing with HTTPS mitm proxies, websockets, headless browsers, you-name-it, and octotail was born. Wait, what?! Invoked with a commit sha (and optionally --workflow and/or --ref-name ), it polls the GitHub API for a matching, active run. When a job associated with the run starts, it instructs a headless chromium-based browser to visit the job's page. The browser's traffic passes through a [mitmproxy][] instance that it uses to extract the authenticated WebSocket subscriptions for live tailing. The WebSocket address and subscribe messages are then passed to the tailing workers. The headless browser tabs are cleaned up immediately after the WebSocket extraction, so the overhead is minimal. (well, it's still an empty browser) Prerequisites - python 3.12 - a working chromium-based browser under /usr/bin/chromium [!IMPORTANT] Make sure /usr/bin/chromium points to a working chromium-based browser. This is a good option for Arch Linux users: Installation Via uvx One can simply and hassle-free invoke octotail through [uvx][]. First, generate the proxy root certificate: Then, see Install the generated proxy root certificate for instructions on how to install the generated certificate on your platform. Finally, s","default_branch":null,"files":null,"tree":[],"storefront":"/r/getbettr","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/getbettr/octotail/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}