{"id":13714652,"url":"https://github.com/flowwer-dev/recap","last_synced_at":"2025-05-07T03:30:49.727Z","repository":{"id":143659382,"uuid":"616254134","full_name":"flowwer-dev/recap","owner":"flowwer-dev","description":"Github action to summarize the most important changes in a pull request","archived":false,"fork":false,"pushed_at":"2023-03-25T05:27:42.000Z","size":379,"stargazers_count":26,"open_issues_count":2,"forks_count":2,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-12-01T19:42:02.024Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","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/flowwer-dev.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":".github/FUNDING.yml","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},"funding":{"github":"manuelmhtr"}},"created_at":"2023-03-20T02:28:31.000Z","updated_at":"2024-10-17T15:46:45.000Z","dependencies_parsed_at":"2023-06-09T01:00:11.588Z","dependency_job_id":null,"html_url":"https://github.com/flowwer-dev/recap","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flowwer-dev%2Frecap","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flowwer-dev%2Frecap/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flowwer-dev%2Frecap/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flowwer-dev%2Frecap/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/flowwer-dev","download_url":"https://codeload.github.com/flowwer-dev/recap/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252806364,"owners_count":21807193,"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-08-03T00:00:35.577Z","updated_at":"2025-05-07T03:30:49.231Z","avatar_url":"https://github.com/flowwer-dev.png","language":"JavaScript","funding_links":["https://github.com/sponsors/manuelmhtr"],"categories":["Community Resources"],"sub_categories":["Pull Requests"],"readme":"# ⚡️ Recap\n\n[![CI](https://github.com/flowwer-dev/recap/workflows/Tests/badge.svg)](https://github.com/flowwer-dev/recap/actions?query=workflow%3ATests)\n[![GitHub Marketplace](https://img.shields.io/badge/Marketplace-Recap-blue.svg?colorA=24292e\u0026colorB=0366d6\u0026style=flat\u0026longCache=true\u0026logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAYAAAAfSC3RAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAM6wAADOsB5dZE0gAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAERSURBVCiRhZG/SsMxFEZPfsVJ61jbxaF0cRQRcRJ9hlYn30IHN/+9iquDCOIsblIrOjqKgy5aKoJQj4O3EEtbPwhJbr6Te28CmdSKeqzeqr0YbfVIrTBKakvtOl5dtTkK+v4HfA9PEyBFCY9AGVgCBLaBp1jPAyfAJ/AAdIEG0dNAiyP7+K1qIfMdonZic6+WJoBJvQlvuwDqcXadUuqPA1NKAlexbRTAIMvMOCjTbMwl1LtI/6KWJ5Q6rT6Ht1MA58AX8Apcqqt5r2qhrgAXQC3CZ6i1+KMd9TRu3MvA3aH/fFPnBodb6oe6HM8+lYHrGdRXW8M9bMZtPXUji69lmf5Cmamq7quNLFZXD9Rq7v0Bpc1o/tp0fisAAAAASUVORK5CYII=)](https://github.com/marketplace/actions/pull-request-recap)\n\nTired of writing long pull request descriptions? or worse, not writing them at all?\n\nThis Github action will summarize the most significant changes in a pull request using [GPT](https://openai.com/blog/chatgpt).\n\nThe objective of this action is to:\n\n* Reduce the time spent writing the pull request description.\n* Help developers understand the changes before reviewing them.\n\nRunning this action will add a comment to the pull request summarizing the changes. [For example](https://github.com/flowwer-dev/recap/pull/1#issuecomment-1476682437):\n\n![](/assets/example.png)\n\n## Privacy\n* **No repository data is collected**, stored, or distributed by this GitHub action. This action is **state-less**.\n* [Minimal data](/src/services/telemetry/sendStart.js) is sent to Mixpanel to improve this action. However, you can opt out using the `telemetry` option.\n\n## Usage\n\nJust add this action to one of your [workflow files](https://docs.github.com/en/actions/configuring-and-managing-workflows/configuring-a-workflow):\n\n```yml\n      - name: Recap changes\n        uses: flowwer-dev/recap@main\n```\n\n### Action inputs\n\nThe possible inputs for this action are:\n\n| Parameter | Description | Default |\n| --------- | ----------- | ------- |\n| `openai-apikey` | An API Key for your OpenAI account. This parameter is **required**. Check how to get an API [here](#how-the-get-an-openai-api-key). | `null` |\n| `publish-as` | Where to publish the results. Possible values: as a `COMMENT`, on the pull request `DESCRIPTION`. | `COMMENT` |\n| `telemetry` | Indicates if the action is allowed to send monitoring data to the developer. This data is [minimal](/src/services/telemetry/sendStart.js) and helps me improve this action. **This option is a premium feature reserved for [sponsors](#premium-features-).** |`true`|\n\n## Examples\n\n**Minimal config**\n\nAdd this to the file `.github/workflows/recap.yml` in your repo:\n\n```yml\nname: Pull Request Recap\n\non:\n  pull_request:\n    types: [opened]\n\njobs:\n  recap:\n    runs-on: ubuntu-latest\n    steps:\n      - name: Recap changes\n        uses: flowwer-dev/recap@main\n        with:\n          openai-apikey: ${{ secrets.ADD_YOUR_OPENAI_APIKEY }}\n```\n\nThis config will:\n\n* Recap the most significant changes included in the Pull Request.\n* Post them as a comment.\n\n## How the get an OpenAI API Key?\n\n1. Create an account on [OpenAI's developers site](https://platform.openai.com/docs/api-reference).\n2. Go to Config \u003e [View API Keys](https://platform.openai.com/account/api-keys).\n3. Press the `Create new secret key` button and copy the value.\n4. Voilà!\n\n## Troubleshooting\n\n\u003cdetails\u003e\n  \u003csummary\u003eI get the error \"Error commenting on the pull request...\".\u003c/summary\u003e\n\n  This error happens when the organization configures the action's permissions as `read`. To fix it, overwrite them by adding a [`permissions`](https://docs.github.com/en/actions/using-jobs/assigning-permissions-to-jobs) configuration in the workflow file. The minimum required permissions are `contents: read` and `pull-requests: write`:\n\n  ```yml\n  jobs:\n    recap:\n      runs-on: ubuntu-latest\n      permissions:\n        contents: read\n        pull-requests: write\n      steps:\n        - name: Run pull request recap\n          uses: flowwer-dev/recap@main\n  ```\n\u003c/details\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003eI'm a sponsor but still getting the error \"...is a premium feature, available to sponsors\".\u003c/summary\u003e\n\n  1. Check the sponsorship comes from the account that owns the configured repository (usually an organization).\n  2. Ensure the sponsorship is configured as `public`; otherwise, the action cannot access the sponsorship information. If you prefer to keep it `private`, please reach out to make it work for you that way 😉.\n\u003c/details\u003e\n\n## Premium features ✨\n\nThis action offers some premium features only for sponsors:\n\n* Disabling telemetry.\n* More coming soon.\n\nThe **suggested sponsorship is $20 USD / month**. However, if it's not possible for you or your organization, please consider supporting it with any amount you can. Even a one-time sponsorship will enable the Premium features and encourage the progress of this project.\n\nBeing a sponsor will also give you access to the premium features in all my [other projects](#related-projects).\n\nThanks for your support! 💙\n\n\n## Related projects 🔥\n\n* **[Pull Request Stats](https://github.com/flowwer-dev/pull-request-stats)**: Github action to print relevant stats about Pull Request **reviewers**.\n\n## Author\n\n|\u003ca href=\"https://github.com/manuelmhtr\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/1031639?v=4\" width=\"32\"\u003e\u003c/a\u003e|[@manuelmhtr](https://github.com/manuelmhtr)\u003cbr/\u003e🇲🇽 Guadalajara, MX|\n| -- | :-- |\n\n\n## Help\n\nThis project is maintained by a single person, considering supporting the project by:\n\n* ⭐ Star this repo.\n* Becoming a [sponsor](https://github.com/sponsors/manuelmhtr).\n\n### License\n\nMIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fflowwer-dev%2Frecap","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fflowwer-dev%2Frecap","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fflowwer-dev%2Frecap/lists"}