{"id":17596628,"url":"https://github.com/roms1383/emissary","last_synced_at":"2026-02-13T10:13:44.179Z","repository":{"id":56737712,"uuid":"520582149","full_name":"Roms1383/emissary","owner":"Roms1383","description":"A simple Github Action to comment on pull request discussions from commits messages","archived":false,"fork":false,"pushed_at":"2023-08-28T01:26:26.000Z","size":1842,"stargazers_count":1,"open_issues_count":10,"forks_count":1,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-03-30T03:06:04.839Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"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/Roms1383.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","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":"2022-08-02T17:02:27.000Z","updated_at":"2022-10-23T11:17:00.000Z","dependencies_parsed_at":"2024-10-23T03:24:38.219Z","dependency_job_id":null,"html_url":"https://github.com/Roms1383/emissary","commit_stats":{"total_commits":39,"total_committers":2,"mean_commits":19.5,"dds":"0.20512820512820518","last_synced_commit":"d09dddb76ae0f31a6a68e9b5e336eeee6b933206"},"previous_names":[],"tags_count":9,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Roms1383%2Femissary","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Roms1383%2Femissary/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Roms1383%2Femissary/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Roms1383%2Femissary/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Roms1383","download_url":"https://codeload.github.com/Roms1383/emissary/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247569130,"owners_count":20959758,"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-22T08:45:00.439Z","updated_at":"2026-02-13T10:13:44.127Z","avatar_url":"https://github.com/Roms1383.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# :speaking_head: emissary\n\n![CI](https://github.com/Roms1383/emissary/actions/workflows/ci.yml/badge.svg)\n[![codecov](https://codecov.io/gh/Roms1383/emissary/branch/main/graph/badge.svg?token=7O91F6JAHS)](https://codecov.io/gh/Roms1383/emissary)\n[![license: MIT](https://img.shields.io/badge/license-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n\nThis Github Action allows your contributors to resolve requested changes from a pull request review thread directly from their commit message.\n\n## why ?\n\nGithub already supports e.g. `fix #1` [in commit message](https://github.blog/2013-01-22-closing-issues-via-commit-messages/) to automatically close the related issue, but as far as I know there's currently no means to do so for a pull request review conversation.\n\nThis Github Action basically spare your contributors from having to go back to the PR, manually commenting / resolving the conversation in their browser.\n\nAlso to simplify a maintainer review process, a contributor might want to dutifully report in which commit (s)he carried out which one of the requested changes, which is exactly what this Github Action does.\n\n![typical changes request screenshot](images/request-changes.png)\n![automated comment screenshot](images/comment.png)\n\n## setup\n\nYou want this action to run on pull requests, so something like:\n\n```yaml\nname: CI\non: push\n\njobs:\n  # other jobs ...\n  action:\n    name: Reply to PR review from Commit\n    runs-on: ubuntu-latest\n    # needs: unit-tests \u003c-- usually you want some previous jobs to succeed first (e.g. linter, unit-tests, etc)\n\n    steps:\n      - name: checkout repository\n        uses: actions/checkout@v3\n      - name: setup NodeJS\n        uses: actions/setup-node@v2\n      - name: install dependencies\n        run: npm ci\n\n      - uses: Roms1383/emissary@v1\n        with:\n          token: ${{ secrets.GITHUB_TOKEN }} # required to act in Github on your behalf\n```\n\n## usage\n\n1. setup the Github Action in your workflow [as shown in previous section](#setup).\n1. comment your commits like so, e.g.:\n\n   ```git\n   chore: improve documentation\n\n   add example to the latest awesome feature.\n   resolve discussion DISCUSSION_NUMBER\n   ```\n\n   :warning: `resolve` will reply to the conversation **AND** resolve it\n\n   \u003e (which is usually what you want for trivial changes that doesn't require extra attention from the maintainer)\n\n   or\n\n   ```git\n   feat: add new CLI argument\n\n   add an additional argument for the new feature.\n   reply discussion DISCUSSION_NUMBER\n   ```\n\n   :warning: `reply` will **only** reply to the conversation, leaving it up to the maintainer to resolve it or not\n\n   \u003e (which is usually what you want for non-trivial changes)\n\n   :arrow_right: the `DISCUSSION_NUMBER` can be found under **Copy Link** on the comment requesting changes:\n\n   ![copy discussion number screenshot](images/copy-discussion-number.png)\n\n   it should looks like, e.g. `https://github.com/\u003cOWNER\u003e/\u003cREPO\u003e/pull/1#discussion_r937716034` where `937716034` is the discussion number: either full url or its discussion number are supported in the commit message.\n\n1. on Github Action successful completion, just refresh your page you should now see in your PR, e.g.:\n\n   ![screenshot comment](./images/comment.png)\n\nThis Github Action supports a couple of different spelling, that you can check [from the unit-tests](tests/utils.test.ts).\n\n## how ?\n\nThis Github Action:\n\n- does not act on your main branch\n- does not act when a pull request is freshly created\n- does not act when a pull request is deleted\n- does not act when commits are not distinct or have been force-pushed\n\nsimply because its main purpose is to facilitate ongoing PR reviews.\n\nIt will however fetch any **opened** PR associated with the commit, read through its **unresolved** threads to find comment marked to reply to or resolve.\n\n## roadmap\n\nAlthough functional, this action is in its early stage, has a couple of rough edges, and lack extensive tests.\n\nDepending on feedbacks, I might consider putting more time and effort into it, and you're also welcome to bring your own contributions!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Froms1383%2Femissary","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Froms1383%2Femissary","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Froms1383%2Femissary/lists"}