{"id":34760451,"url":"https://github.com/cytechmobile/radicle-github-actions-adapter","last_synced_at":"2026-05-16T16:36:50.149Z","repository":{"id":216360909,"uuid":"740827009","full_name":"cytechmobile/radicle-github-actions-adapter","owner":"cytechmobile","description":null,"archived":false,"fork":false,"pushed_at":"2024-07-04T20:27:20.000Z","size":483,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"main","last_synced_at":"2026-01-11T11:33:21.685Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"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/cytechmobile.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2024-01-09T06:30:47.000Z","updated_at":"2024-07-04T20:27:23.000Z","dependencies_parsed_at":"2024-02-16T15:30:46.492Z","dependency_job_id":"3dd2a168-10c6-475b-85ce-85af377ac7df","html_url":"https://github.com/cytechmobile/radicle-github-actions-adapter","commit_stats":null,"previous_names":["cytechmobile/radicle-github-actions-adapter"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/cytechmobile/radicle-github-actions-adapter","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cytechmobile%2Fradicle-github-actions-adapter","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cytechmobile%2Fradicle-github-actions-adapter/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cytechmobile%2Fradicle-github-actions-adapter/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cytechmobile%2Fradicle-github-actions-adapter/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cytechmobile","download_url":"https://codeload.github.com/cytechmobile/radicle-github-actions-adapter/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cytechmobile%2Fradicle-github-actions-adapter/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33109655,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-16T04:41:52.686Z","status":"ssl_error","status_checked_at":"2026-05-16T04:41:52.009Z","response_time":115,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":[],"created_at":"2025-12-25T06:19:17.252Z","updated_at":"2026-05-16T16:36:50.133Z","avatar_url":"https://github.com/cytechmobile.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Radicle GitHub Actions Adapter\n\nAn adapter for the Radicle CI Broker (`rad:zwTxygwuz5LDGBq255RA2CbNGrz8`) that will report back to the broker the \nresults from GitHub Actions that are executed for each push.\n\n## Documentation\n\n### Repository Setup\n\nThe steps for setting up a repository that works with the Radicle GitHub Actions Adapter can be found at \n[docs/project_setup.md](docs/project_setup.md).\n\n## Getting Started\n\n### Requirements\n\nThe minimum requirement for compiling and running this application are:\n- Go v1.21\n- make\n\nAlongside the Radicle CI Broker, a Radicle node must be running on the same host. `radicle-httpd` is also required \nalongside the `RAD_SESSION_TOKEN` in order to add patch comments when a workflow completes.\n\n### Configuration\n\nThe application uses configuration through Environment Variables. Here is a list with the details and the default\nvalue for each one of them:\n\n| EnvVar                        | Description                                                                  | Default Value           |\n|-------------------------------|------------------------------------------------------------------------------|-------------------------|\n| `LOG_LEVEL`                   | Set the log level of the application.\u003cbr\u003e(`debug`, `info`, `warn`, `error`). | \"info\"                  |\n| `RAD_HOME`                    | Path for radicle home directory.                                             | \"~/.radicle\"            |\n| `RAD_HTTPD_URL`               | Public URL of radicle's HTTPD.                                               | \"http://127.0.0.1:8080\" |\n| `RAD_SESSION_TOKEN`           | Session token for accessing Radicle API.                                     | \"\"                      |\n| `GITHUB_PAT`                  | Personal access token for GitHub.                                            | \"\"                      |\n| `WORKFLOWS_START_LAG_SECS`    | Lag time before giving up checking for GitHub's commit and workflows.        | 60                      |\n| `WORKFLOWS_POLL_TIMEOUT_SECS` | Polling timeout for workflows completion.                                    | 1800                    |\n\n`GITHUB_PAT` is not strictly required for public GitHub Repos.\nFor accessing **private repos** it should have at least read access for the\nrepo (`repo` access) and the actions/workflows (`workflow` access).\nFor accessing **public repos** it is highly advised to provide a GitHub Personal\nAccess Token (even without any permission) as GitHub has a\n[rate limiting policy](https://docs.github.com/en/rest/using-the-rest-api/rate-limits-for-the-rest-api)\nfor accessing its API without any token.\n\n`WORKFLOWS_START_LAG_SECS` is a necessary lag time as it is possible to push first to the radicle forge and then to\nGitHub. This would generate an error as the adapter won't be able to find the commit at GitHub or the workflows\nmight have not been spawned at that time. So, the adapter will wait up to that time before checking at GitHub for \nthe repo, the commit and the workflows.\n \n### Running the application\n\nIn order to build the **Radicle GitHub Actions Adapter** use the provided makefile under project's root directory:\n\n```bash\nmake build\n```\nThis will generate the executable `/tmp/bin/radicle-github-actions-adapter`.\n\nIn order to build and run the application execute under project's root directory:\n\n```bash\nmake run\n```\n\nStandard I/O is used for communication with the broker. Logging is directed to stderr.\n\n\u003e Radicle broker requires an executable of the adapter. Use `make build` to generate the binary.\n\n### Application arguments\n\nApplication binary accepts specific arguments at init time. There are:\n\n| Argument   | Example                                           | Description                                                                                                       | Default Value |\n|------------|---------------------------------------------------|-------------------------------------------------------------------------------------------------------------------|---------------|\n| `version`  | ./radicle-github-actions-adapter --version        | Prints only the binary's version and exits                                                                        | _empty_       |\n| `loglevel` | ./radicle-github-actions-adapter --loglevel debug | Set the log level of the application.\u003cbr\u003e(`debug`, `info`, `warn`, `error`)\u003cbr/\u003eOverrides the Env Var `LOG_LEVEL` | \"info\"        |\n\n### Versioning\n\nApplication uses SemVer version releases withVersion Control System's metadata. In order to specify a binary's version\nit is generated from the revision of the source code and optionally the dirty flag which indicates if the binary\ncontains uncommitted changes. Here is an example of the version output: \n\n```\nversion: development, build_time: Fri Feb 16 16:53:24 EET 2024, revision: e63d3e19138f7165d11a5d046a1703ba06a69b23-dirty\n```\n\nA `development` version indicates that the specific build didn't produce from a specific released version.\nBuilds that originate from specific released versions contain information like this:\n\n```\nversion: v0.5.1, build_time: Fri Feb 16 16:53:24 EET 2024, revision: e63d3e19138f7165d11a5d046a1703ba06a69b23\n```\n\n### Adapter Input - Output\n\nRadicle GitHub Actions Adapter accepts messages and responds to Radicle CI Broker through std IO. The following messages\nare exchanges throughout the adapter's runtime:\n\n1. Incoming _Push Event Request_ or _Patch Event Request_ message as described at\n   `rad:zwTxygwuz5LDGBq255RA2CbNGrz8/tree/doc/architecture.md`\n\n2. Outgoing response message with the job ID:\n\n```json\n{\n    \"response\": \"triggered\",\n    \"run_id\": \"\u003cRUN-UUID\u003e\"\n}\n```\n\n3. Outgoing response message with the response result:\n\n```json\n{\n   \"response\": \"finished\",\n   \"result\": \"\u003csuccess|failure\u003e\"\n}\n```\n\nIf at least on job fails the result will be considered as failed.\nIn case of an unexpected error a failure response will be replied back to the broker.\n\n### Broker Message Protocol \n\nAdapter currently supports Radicle CI Broker message protocol versions:\n\u003e 1\n\n## Contribute\n\nOpen an issue for discussing any issue or bug.\nOpen a patch for adding a new feature or any kind of fix.  \nUse appropriate commands from makefile to ensure application correctness.  \nFor a complete list of makefile commands run:\n```\nmake help\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcytechmobile%2Fradicle-github-actions-adapter","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcytechmobile%2Fradicle-github-actions-adapter","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcytechmobile%2Fradicle-github-actions-adapter/lists"}