This project contains the source code for a GitHub App that automates the release process in OpenSearch repositories.
In order for the app to work as intended, it must be installed both on an OpenSearch repository as well as on any forked repositories that PRs originate from.
- Navigate to the OpenSearch-bot installation page and click "Install".
- Select the OpenSearch repository where this app will manage PRs and process changeset files.
- Follow the instructions to complete the installation.
- In the forked OpenSearch repository, navigate to the OpenSearch-bot installation page and click "Install".
- Follow the instructions to complete the installation on the forked repository.
The app works as follows:
-
PR Changelog Processing: When a user opens or edits a pull request (PR) from a forked repository against an OpenSearch repository, the app scans the PR description, looking for changelog entries listed in a "Changelog" section. It then generates a changeset file from these entries and commits this file to the open PR.
-
Automating Release Documentation: When the PR is merged, the changeset file is stored in a designated directory in the base repository. At the time of a new release, the app scans this directory and uses the changeset files to generate comprehensive release notes and update the changelog with new entries.
This process ensures a streamlined and automated approach to maintaining up-to-date release documentation in OpenSearch repositories.
For a more detailed walkthrough of the OpenSearch-bot
app's features, see our Feature Details document.
In order for this app to work as intended, whenever a PR is opened from an OpenSearch fork against the base repository, the PR description must include a ## Changelog
heading.
Beneath this heading is where you will add a changelog entry or entries summarizing your contribution.
In order for the app to parse your entries and generate changeset files, each entry must:
- begin with a hyphen followed by a space ("- ")
- include one of the following category prefixes, followed by a colon:
- breaking
- chore
- deprecate
- doc
- feat
- fix
- infra
- refactor
- security
- skip
- test
- conclude with a description of your contribution in the imperative mood using no more than 100 characters
If the changes introduced in your PR are minor (e.g., fixing a typo), you can enter - skip
in the "Changelog" section to instruct the app not to generate a changeset file. Please note that, if you enter -skip
in the "Changelog" section, no other categories or descriptions can be present.
Here is an example of a properly-formatted changelog entry in a PR description:
## Changelog
- feat: Add new feature
The app is equipped with robust error handling so that, if your PR description lacks the required information or needs reformatting in some way, the process will terminate and a comment will be added to your PR explaining what needs to be fixed.
This app was developed by Samuel Valdes Gutierrez, Johnathon Bowers, Qiwen Li, and Will Yang, under the supervision of Josh Romero, Ashwin P. Chandran, Matt Provost, and Anan Zhuang.
Contributions to the OpenSearch-bot
are welcome! See our Developer Guide for instructions on how to set up the project in your local environment. If you have any suggestions for how to improve the app, please feel free to open an issue or submit a pull request.
This app is licensed under the MIT License.