{"id":15896177,"url":"https://github.com/numberoverzero/rook-action","last_synced_at":"2025-06-20T11:33:01.776Z","repository":{"id":65161159,"uuid":"425417714","full_name":"numberoverzero/rook-action","owner":"numberoverzero","description":"github action to post a signed payload to a rook endpoint","archived":false,"fork":false,"pushed_at":"2024-06-22T02:39:03.000Z","size":49,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-06-05T04:10:26.045Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Rust","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/numberoverzero.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-11-07T05:07:17.000Z","updated_at":"2024-06-22T02:52:30.000Z","dependencies_parsed_at":"2024-10-28T04:03:49.994Z","dependency_job_id":"7f58023b-d6ed-4acb-aa2d-d033be931527","html_url":"https://github.com/numberoverzero/rook-action","commit_stats":{"total_commits":19,"total_committers":1,"mean_commits":19.0,"dds":0.0,"last_synced_commit":"9e6ba687697378c7d9c8b98616379d82ca5b0c9f"},"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/numberoverzero/rook-action","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/numberoverzero%2Frook-action","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/numberoverzero%2Frook-action/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/numberoverzero%2Frook-action/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/numberoverzero%2Frook-action/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/numberoverzero","download_url":"https://codeload.github.com/numberoverzero/rook-action/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/numberoverzero%2Frook-action/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":260936628,"owners_count":23085500,"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-10-06T09:06:38.436Z","updated_at":"2025-06-20T11:32:56.758Z","avatar_url":"https://github.com/numberoverzero.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# A very fast github action to send signed post requests with bodies\n\n* Runs in ~0sec.  Uses a static rust binary to sign your POST body and send it to your endpoint.\n* 680kB docker image prebuilt `FROM scratch`\n* Simple, readable source (~200 lines)\n\nThe signature is a simple [HMAC-SHA256](https://en.wikipedia.org/wiki/HMAC) with the same header structure as github's signed events.  The value is passed in the `\"x-rook-signature-256\"` header, prepended with `\"sha256=\"`.\n\nIf you just want a fast github action to post some data somewhere, and don't care about authenticating the payload (yikes!) this should still outperform any node action or a docker image that runs `apt-install curl`.\n\nTLS support planned.\n\n# Sample configuration\n\n```yml\n# your-repository/.github/workflows/main.yml\non: ...\n\njobs:\n  my_important_job:\n    runs-on: ..\n    name: ...\n    env:\n      STATUS_ENDPOINT: http://some-slack-bot-probably.yourcompany.com:9000\n    steps:\n      - name: ..\n        uses: ..\n      - name: send status\n        id: ..\n        uses: numberoverzero/rook-action@v2\n        with:\n          endpoint: ${{ env.STATUS_ENDPOINT }}\n          secret: ${{ secrets.ROOK_SHARED_SECRET }}\n          body: \"github run ${{ github.RUN_ID }} has completed\"\n```\n\n## Curl equivalent\n\nFor the request body `\"hello, world\"` and the secret `\"hunter2\"` the signature (hmac sha256) is:\n\n```\nHMAC-SHA256(\"hunter2\", \"hello, world\")\n  = b157643c98205db6da3655511665a993ba5dc34d056233f3319622f5a32f704b\n```\n\nTherefore the following curl request and sample config are equivalent:\n\n```sh\ncurl -X POST \\\n  http://your-endpoint.com:9000/some/path \\\n  -H \"x-rook-signature-256: sha256=b157643c98205db6da3655511665a993ba5dc34d056233f3319622f5a32f704b\" \\\n  -d \"hello, world\"\n```\n\n```yml\n    steps:\n      - name: basically-just-curl\n        uses: numberoverzero/rook-action@v2\n        with:\n          endpoint: \"http://your-endpoint.com:9000/some/path\"\n          secret: \"hunter2\"\n          body: \"hello, world\"\n```\n\n# I don't have a thing that listens for webhooks yet\n\nSet one up in 5 minutes with [rook](https://github.com/numberoverzero/rook).  7 lines in a config file, a 200KB binary, and you'll be processing authenticated webhooks.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnumberoverzero%2Frook-action","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnumberoverzero%2Frook-action","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnumberoverzero%2Frook-action/lists"}