{"id":28402314,"url":"https://github.com/401unauthorized/fairway-bridge","last_synced_at":"2026-06-15T04:31:22.567Z","repository":{"id":284466274,"uuid":"955030777","full_name":"401Unauthorized/fairway-bridge","owner":"401Unauthorized","description":"Fairway Bridge is an application that connects launch monitors, simulators, and cameras.","archived":false,"fork":false,"pushed_at":"2025-11-16T23:13:46.000Z","size":293,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-11-17T01:11:55.470Z","etag":null,"topics":["garmin","garmin-golf","golf","golf-ball","gspro","launch-monitor","r10","simulator"],"latest_commit_sha":null,"homepage":"https://github.com/401Unauthorized/fairway-bridge","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/401Unauthorized.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":null,"patreon":null,"open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"custom":["https://paypal.me/stephenmendez401"]}},"created_at":"2025-03-26T02:06:21.000Z","updated_at":"2025-11-16T23:11:17.000Z","dependencies_parsed_at":"2025-03-26T03:27:48.490Z","dependency_job_id":"36f9101c-d6d1-4dfc-af5d-39caf996aadf","html_url":"https://github.com/401Unauthorized/fairway-bridge","commit_stats":null,"previous_names":["401unauthorized/fairway-bridge"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/401Unauthorized/fairway-bridge","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/401Unauthorized%2Ffairway-bridge","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/401Unauthorized%2Ffairway-bridge/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/401Unauthorized%2Ffairway-bridge/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/401Unauthorized%2Ffairway-bridge/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/401Unauthorized","download_url":"https://codeload.github.com/401Unauthorized/fairway-bridge/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/401Unauthorized%2Ffairway-bridge/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34348291,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-15T02:00:07.085Z","response_time":63,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["garmin","garmin-golf","golf","golf-ball","gspro","launch-monitor","r10","simulator"],"created_at":"2025-06-01T15:10:11.011Z","updated_at":"2026-06-15T04:31:22.561Z","avatar_url":"https://github.com/401Unauthorized.png","language":"Go","funding_links":["https://paypal.me/stephenmendez401"],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg style=\"max-width:20%;margin-bottom: -2em;\" alt=\"Fairway Bridge\" src=\"Assets/logo_small.png\" /\u003e\n\u003c/p\u003e\n\n\u003ch1 align=\"center\"\u003eFairway Bridge (Beta)\u003c/h1\u003e\n\u003ch3 align=\"center\"\u003eFairway Bridge is an application that connects launch monitors, simulators, and cameras.\u003c/h3\u003e\n\u003cp align=\"center\"\u003e\n  \u003cimg alt=\"Version\" src=\"https://img.shields.io/badge/version-0.1.1-green.svg\" /\u003e\n  \u003ca href=\"https://github.com/401unauthorized/fairway-bridge#readme\" target=\"_blank\"\u003e\n    \u003cimg alt=\"Documentation\" src=\"https://img.shields.io/badge/documentation-yes-green.svg\" /\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://github.com/401unauthorized/fairway-bridge/graphs/commit-activity\" target=\"_blank\"\u003e\n    \u003cimg alt=\"Maintenance\" src=\"https://img.shields.io/badge/Maintained-yes-green.svg\" /\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://github.com/401unauthorized/fairway-bridge/blob/master/LICENSE\" target=\"_blank\"\u003e\n    \u003cimg alt=\"License: Apache-2.0\" src=\"https://img.shields.io/github/license/401unauthorized/fairway-bridge\" /\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://paypal.me/stephenmendez401\" target=\"_blank\"\u003e\n    \u003cimg src=\"https://www.paypalobjects.com/webstatic/en_US/i/buttons/PP_logo_h_100x26.png\" alt=\"PayPal\" /\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n\n\n\n## 📋 Table of Contents\n\n- [Overview](#-overview)\n- [Features](#-features)\n- [Installation](#-installation)\n- [How to Run the Application](#-how-to-run-the-application)\n- [Supported Hardware and Simulators](#%EF%B8%8F-supported-hardware-and-simulators)\n- [CLI Usage and Parameters](#-cli-usage-and-parameters)\n- [API / User Interface](#-api--user-interface)\n- [Future Work](#-future-work)\n- [Contributing](#-contributing)\n- [Supporting Developers](#-supporting-developers)\n- [License](#-license)\n\n\n\n## 👀 Overview\n\nFairway Bridge serves as the central connection point in a golf simulation system:\n\n```mermaid\ngraph LR\n  LM[Launch Monitor] --\u003e FB[Fairway Bridge]\n  FB --\u003e SIM[Simulator]\n  FB --\u003e CAM[Camera]\n  FB --\u003e UI[Web UI]\n```\n\n- **Data Ingestion:** Integrates with various launch monitors to capture essential ball and club metrics (e.g., speed, spin, trajectory).\n\n- **Data Processing:** Transforms and modifies the raw shot data to ensure it meets the requirements for accurate simulation.\n\n- **Data Routing to Simulation Software:** Passes the processed information to compatible golf simulation software for real-time visual feedback.\n\n- **Media Capture:** Interfaces with supported cameras (such as GoPro models) to record swing videos for playback and analysis.\n\n- **Data Logging:** Records raw and modified shot data into a CSV file, preserving detailed shot history for further analysis.\n\n- **Web-Based User Interface:** Provides a comprehensive web UI for configuration, monitoring, and displaying real-time statistics and logs.\n\n\n\n## 🎛 Features\n\nFairway Bridge was created to overcome real-world challenges in integrating launch monitor hardware and to bypass the limitations of traditional connectivity methods. Acting as a reliable integration layer, it meets the following needs:\n\n- **Network-Based Launch Monitor Connectivity:**  \n  Connect Launch Monitors to Simulators over a network instead of relying on Bluetooth, enabling a more flexible and dependable setup.\n\n\n- **Use of Alternative Golf Balls:**  \n  Leverage almostGOLF balls with select launch monitors for a quieter experience, while still capturing accurate data.\n\n\n- **Ability to Fine-Tune Data:**  \n  Adjust real-time modifiers that influence shot data, allowing you to modify ball speed, spin, and other parameters. This feature is especially useful for simulating different conditions or correcting data discrepancies.\n\n\n- **Flexible Simulator Configurations:**  \n  Seamlessly switch between different simulator setups, making the application adaptable to a variety of simulation environments and user needs.\n\n\n- **Comprehensive Data Logging:**  \n  Capture and store both raw and adjusted shot data in a CSV file, facilitating detailed analysis and performance tracking over time.\n\n\n- **Cost-Effective Media Integration:**  \n  Leverage affordable, off-the-shelf cameras to automate swing video recording, providing valuable playback and analysis capabilities.\n\n\n- **Enhanced Display and Control:**  \n  Access real-time statistics, configuration settings, and monitoring features through a user-friendly web interface that supports multiple devices, including monitors and touchscreens.\n\n\n\n## 💾 Installation\n\n### Prerequisites\n\n- **Go:** Version 1.23 or later (visit [golang.org](https://golang.org/doc/install) for installation instructions).\n- **Git:** For cloning the repository.\n\n### Steps\n\n1. **Clone the Repository:**\n   ```bash\n   git clone https://github.com/401unauthorized/fairway-bridge.git\n   cd fairway-bridge\n   ```\n\n2. **Build the Application:**\n   ```bash\n   make\n   ```\n\n3. **Prepare the Environment:**\n    - Ensure your system has access to your required hardware (launch monitor, simulator, camera).\n    - Create necessary directories (e.g., for logs and video files) if not already present.\n\n\n\n## 🔌 How to Run the Application\n\n### Shot Emulation\nYou can test the system without needing any physical hardware by running the application in virtual mode. For example:\n\n```bash\nfairway-bridge -launch-monitor=virtual -simulator=virtual -camera=virtual\n```\n\nWhen you run this command, the application will generate a `fairway-bridge.log` file, which you can check to verify that everything is working as expected. \n\nThe program will prompt you in the terminal to enter a distance in yards. Based on your input, it uses a **simple algorithm to emulate ball and club data** to match that distance and sends the resulting data to the virtual simulator.\n\nAlternatively, you can run:\n\n```bash\nfairway-bridge -launch-monitor=virtual -simulator=GSPRO -camera=virtual\n```\n\nThis command allows you to send shots to an actual simulator (GSPro) using the same basic yards-to-shot data algorithm. This setup provides a convenient way to test your simulator software without needing a real launch monitor—and it can even be a fun way to play around when you're bored.\n\n### Capture Real Shots\n\n1. **Set Up Hardware:**  \n   Ensure that your launch monitor, simulator, and (if applicable) camera are connected and configured.\n\n\n2. **Build and Configure:**  \n   Follow the [Installation](#installation) steps and adjust CLI parameters as needed for your setup.\n\n\n3. **Launch the Application:**\n   Run the compiled binary with your configuration flags. The application will:\n    - Parse and display configuration settings.\n    - Start the API server for the web interface.\n    - Initiate camera capture (if enabled).\n    - Provide connectivity for the launch monitor and simulator.\n    - Log system activity and display a message indicating that servers are running.\n\n\n4. **Access the Web Interface:**  \n   Open your web browser and navigate to the address specified by the `-http-ip` and `-http-port` flags (e.g., [http://127.0.0.1:2484/settings](http://127.0.0.1:2484/settings)).\n\n\n5. **Connect Launch Monitor**  \n   **Note:** To connect your Garmin R10, open the Garmin Golf app and select **E6 Connect** in the \"Other Simulators\" section. Then, set the IP address and port to match the values you configured in Fairway Bridge via the CLI.\n\n\n6. **Terminate the Application:**  \n   Press **Ctrl+C** to safely shut down the system. The application ensures proper shutdown procedures for all connected hardware.\n\n\n\n## ⛳️ Supported Hardware and Simulators\n\n### Launch Monitors\n\nFairway Bridge supports multiple launch monitor systems. The launch monitor is specified via the `-launch-monitor` flag. Example systems include:\n- R10\n- Virtual (emulated launch monitor)\n- *(Future releases may support additional launch monitors.)*\n\n### Simulators\n\nThe simulator is defined using the `-simulator` flag. Supported simulators include:\n- GSPro\n- Virtual (emulated simulator)\n- *(Future releases may support additional simulators.)*\n\n### Cameras\n\nThe project includes support for a camera controller, currently utilizing a GoPro integration (`GoPro7`) for the GoPro Hero 7. This allows for video capture during simulation sessions.\n\n\n\n## 🛠 CLI Usage and Parameters\n\nFairway Bridge is configured via command-line flags. Below are the main parameters:\n\n### Launch Monitor\n\n- **`-launch-monitor`** (string, **required**):  \n  Name of the launch monitor (e.g., \"R10\", \"Virtual\").\n\n### Simulator\n\n- **`-simulator`** (string, **required**):  \n  Name of the simulator (e.g., \"GSPro\", \"Virtual\").\n- **`-simulator-ip`** (string, default: `127.0.0.1`):  \n  IP address for the simulator.\n- **`-simulator-port`** (int, default: `921`):  \n  Port for the simulator.\n\n### Bridge (Core) Settings\n\n- **`-bridge-ip`** (string, default: `127.0.0.1`):  \n  IP address for Fairway Bridge.\n- **`-bridge-port`** (int, default: `2483`):  \n  Port for Fairway Bridge.\n- **`-bridge-log-file`** (string, default: `fairway-bridge.log`):  \n  Path to the log file.\n- **`-bridge-log-type`** (string, default: `CONSOLE`):  \n  Logging output type (e.g., \"CONSOLE\", \"JSON\").\n- **`-bridge-shot-file`** (string, default: `./shots.csv`):  \n  File to store shot data.\n\n### HTTP Server (UI)\n\n- **`-http-ip`** (string, default: `127.0.0.1`):  \n  IP address for the HTTP server.\n- **`-http-port`** (int, default: `2484`):  \n  Port for the HTTP server.\n\n### Camera Settings\n\n- **`-camera`** (string, **required**):  \n  Name of the camera. (e.g., \"GoPro7\", \"Virtual).\n- **`-camera-video-dir`** (string, default: `./recordings/`):  \n  Directory to save video files.\n- **`-camera-auto-stop-seconds`** (int, default: `5`):  \n  Duration (in seconds) before auto-stopping video capture.\n- **`-camera-override-video`** (bool, default: `false`):  \n  If enabled, always overwrite the same video file instead of creating new ones.\n- **`-camera-network-ip`** (string, default: `10.5.5.100`):  \n  Local IP address for outbound camera connections.\n\n### Example Command\n\n```bash\n./fairwaybridge \\\n  -launch-monitor \"R10\" \\\n  -simulator \"GSPRO\" \\\n  -simulator-ip \"192.168.1.100\" \\\n  -simulator-port 921 \\\n  -bridge-ip \"192.168.1.100\" \\\n  -bridge-port 2483 \\\n  -http-ip \"192.168.1.100\" \\\n  -http-port 2484 \\\n  -bridge-log-file \"fairway-bridge.log\" \\\n  -bridge-shot-file \"shots.csv\" \\\n  -camera=\"VIRTUAL\" \\\n  -camera-video-dir \"./recordings\" \\\n  -camera-auto-stop-seconds 5 \\\n  -camera-override-video \\\n  -camera-network-ip \"10.5.5.100\"\n```\n\nThis command runs the Fairway Bridge application with a specific configuration. Here's what each part does:\n\n- **`./fairwaybridge`**:  \n  Executes the Fairway Bridge binary.\n\n- **`-launch-monitor \"R10\"`**:  \n  Specifies that the launch monitor to be used is the Garmin R10 model.\n\n- **`-simulator \"GSPRO\"`**:  \n  Sets the simulator to GSPro.\n\n- **`-simulator-ip \"192.168.1.100\"` \u0026 `-simulator-port 921`**:  \n  Configures the simulator's IP address and port for network communication.\n\n- **`-bridge-ip \"192.168.1.100\"` \u0026 `-bridge-port 2483`**:  \n  Sets the IP address and port for the Fairway Bridge application to use for its core functionality.\n\n- **`-http-ip \"192.168.1.100\"` \u0026 `-http-port 2484`**:  \n  Determines the IP address and port for the embedded HTTP server, which serves the web-based user interface.\n\n- **`-bridge-log-file \"fairway-bridge.log\"`**:  \n  Specifies the log file location for Fairway Bridge's output logs.\n\n- **`-bridge-shot-file \"shots.csv\"`**:  \n  Sets the file where shot data will be recorded in CSV format.\n\n- **`-camera=\"VIRTUAL\"`**:  \n  Indicates that the camera to be used is virtual, meaning it simulates camera behavior.\n\n- **`-camera-video-dir \"./recordings\"`**:  \n  Designates the directory where recorded video files should be saved.\n\n- **`-camera-auto-stop-seconds 5`**:  \n  Sets the duration for video capture to 5 seconds before auto-stopping.\n\n- **`-camera-override-video`**:  \n  When enabled, the application will always overwrite the same video file instead of creating new files.\n\n- **`-camera-network-ip \"10.5.5.100\"`**:  \n  Configures the local IP address to be used for outbound camera connections.\n\n\n\n## 🌐 API / User Interface\n\n\u003e The User Interface and API are still under development and will be updated frequently until the official release.\n\n\u003cdiv style=\"display: flex; align-items: flex-start;\"\u003e\n  \u003cdiv style=\"flex: 1; padding-right: 20px;\"\u003e\n    \u003ch3\u003eStatic Content\u003c/h3\u003e\n    \u003cul\u003e\n      \u003cli\u003e\u003cstrong\u003eRoot (/assets):\u003c/strong\u003e Serves static files (HTML, CSS, images) from the \u003ccode\u003eAssets\u003c/code\u003e directory.\u003c/li\u003e\n      \u003cli\u003e\u003cstrong\u003eTV Page (/tv):\u003c/strong\u003e Loads a dedicated TV display page (from \u003ccode\u003eAssets/tv.html\u003c/code\u003e).\u003c/li\u003e\n      \u003cli\u003e\u003cstrong\u003eSettings Page (/settings):\u003c/strong\u003e Displays the settings page (from \u003ccode\u003eAssets/settings.html\u003c/code\u003e).\u003c/li\u003e\n    \u003c/ul\u003e\n    \u003ch3\u003eAPI Endpoints\u003c/h3\u003e\n    \u003cul\u003e\n      \u003cli\u003e\u003cstrong\u003eModifiers:\u003c/strong\u003e\n        \u003cul\u003e\n          \u003cli\u003e\u003cstrong\u003eGET /modifiers:\u003c/strong\u003e Retrieves the current modifier values (e.g., ball and club data).\u003c/li\u003e\n          \u003cli\u003e\u003cstrong\u003ePUT /modifiers:\u003c/strong\u003e Updates modifier values using the provided JSON data.\u003c/li\u003e\n          \u003cli\u003e\u003cstrong\u003ePOST /modifiers/save:\u003c/strong\u003e Saves the current modifier settings (currently a placeholder).\u003c/li\u003e\n        \u003c/ul\u003e\n      \u003c/li\u003e\n      \u003cli\u003e\u003cstrong\u003eStatistics:\u003c/strong\u003e\n        \u003cul\u003e\n          \u003cli\u003e\u003cstrong\u003eGET /stats-image:\u003c/strong\u003e Returns an image for shot statistics from the Assets folder (currently a placeholder).\u003c/li\u003e\n        \u003c/ul\u003e\n      \u003c/li\u003e\n      \u003cli\u003e\u003cstrong\u003eLogs:\u003c/strong\u003e\n        \u003cul\u003e\n          \u003cli\u003e\u003cstrong\u003eGET /logs:\u003c/strong\u003e Retrieves the most recent system logs in JSON format (e.g., the last 100 log lines).\u003c/li\u003e\n        \u003c/ul\u003e\n      \u003c/li\u003e\n      \u003cli\u003e\u003cstrong\u003eFile Upload:\u003c/strong\u003e\n        \u003cul\u003e\n          \u003cli\u003e\u003cstrong\u003ePOST /upload:\u003c/strong\u003e Accepts file uploads (e.g., updated stats images) and stores them in the Assets folder.\u003c/li\u003e\n        \u003c/ul\u003e\n      \u003c/li\u003e\n      \u003cli\u003e\u003cstrong\u003eCamera Control:\u003c/strong\u003e\n        \u003cul\u003e\n          \u003cli\u003e\u003cstrong\u003ePOST /camera/start:\u003c/strong\u003e Initiates camera capture with an optional delay specified via a query parameter (\u003ccode\u003edelay\u003c/code\u003e).\u003c/li\u003e\n          \u003cli\u003e\u003cstrong\u003ePOST /camera/stop:\u003c/strong\u003e Stops the ongoing camera capture.\u003c/li\u003e\n          \u003cli\u003e\u003cstrong\u003ePOST /camera/save:\u003c/strong\u003e Saves the most recent camera recording.\u003c/li\u003e\n          \u003cli\u003e\u003cstrong\u003ePOST /camera/delete:\u003c/strong\u003e Deletes the most recent camera recording.\u003c/li\u003e\n        \u003c/ul\u003e\n      \u003c/li\u003e\n    \u003c/ul\u003e\n    \u003cp\u003e\n      The API server is built using the Gin framework (in release mode) and listens on the IP address and port specified in the configuration.\n      This setup enables both user interface interactions and automated API requests to control various aspects of Fairway Bridge.\n    \u003c/p\u003e\n  \u003c/div\u003e\n  \u003cdiv style=\"flex: 0 0 auto;\"\u003e\n    \u003cimg style=\"max-width: 300px; border-radius: 10px;\" alt=\"Fairway Bridge Settings\" src=\"Assets/settings.png\" /\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\n\n\n## 🚧 Future Work\n\n- **R10 Integration:**  \n  Detailed instructions for connecting and configuring the R10 device will be provided in an upcoming update.\n\n- **Enhanced UI Features:**  \n  Planned improvements include advanced real-time analytics, additional data visualizations, and extended configuration options.\n\n- **Extended System Support:**  \n  Future releases may integrate more launch monitors, simulators, and camera models to broaden compatibility.\n\n\n\n## 🤝 Contributing\n\nContributions, issues and feature requests are welcome!\n\nFeel free to check [issues page](https://github.com/401unauthorized/fairway-bridge/issues). You can also take a look at the [contributing guide](https://github.com/401unauthorized/fairway-bridge/blob/main/CONTRIBUTING.md).\n\n\n\n## 😃 Supporting Developers\n\nGive a ⭐️ if this project interests you!\n\nConsider making a donation of any amount!\n\n\u003ca href=\"https://paypal.me/stephenmendez401\" target=\"_blank\"\u003e\n  \u003cimg src=\"https://www.paypalobjects.com/webstatic/en_US/i/buttons/PP_logo_h_200x51.png\" alt=\"PayPal\" /\u003e\n\u003c/a\u003e\n\n\n\n## 📝 License\n\nCopyright 2025 Stephen Mendez\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\nhttp://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n\n\n\n**Trademark Notices**\n\n- **almostGOLF** is a trademark of almostGOLF\n- **Garmin R10** is a trademark of Garmin International, Inc.\n- **GSPro** is a trademark of GSPro.\n\nAll other trademarks referenced herein are the property of their respective owners. Fairway Bridge is not affiliated with or endorsed by the trademark holders.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F401unauthorized%2Ffairway-bridge","html_url":"https://awesome.ecosyste.ms/projects/github.com%2F401unauthorized%2Ffairway-bridge","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F401unauthorized%2Ffairway-bridge/lists"}