RubyGems that automatically create release notes for Notion DB using Open AI API.
Add this line to your application's Gemfile:
gem 'resquirrel'
And then execute:
$ bundle install
Or install it yourself as:
$ gem install resquirrel
- まずは、NotionのAPIを使えるようにするためのトークンを取得します。
- Notionの開発者ページにアクセスします。
New integration
をクリックして、作成したトークンをリリースノートを作成したいリポジトリのrepository secretsに登録します。NOTION_API_KEY
という名前で登録してください。
- Notionにリリースノートを作成するためのFull Pageのデータベースを作成します。
- データベースには、以下のプロパティを用意します。
changes
: リリースノートのタイトル(DBを作成するとデフォルトで用意されています。)URL
: リリースノートのリンク
- 作成したDBのURLをコピーして、
https://www.notion.so/[この部分]?v=hogehoge
の文字列を、リリースノートを作成したいリポジトリのrepository secretsに登録します。NOTION_DATABASE_ID
という名前で登録してください。
- Open AI APIを使えるようにするためのAPIキーを取得します。
- Open AIの開発者ページにアクセスします。
Create API Key
をクリックして、作成したAPIキーをリリースノートを作成したいリポジトリのrepository secretsに登録します。OPENAI_API_KEY
という名前で登録してください。- 制限に関しては、ModelsのRead、Model CapabilitiesのWriteが必要です。
sample:
.github/workflows/create_release_notes.yml
のようなCIで実行するファイルを作成します。
name: create release notes
on:
pull_request:
types:
- closed
jobs:
create_release_notes:
if: ${{ github.event.pull_request.merged }}
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Set up Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: '3.3'
- name: Install dependencies
run: |
bundle install
- name: Run script
run: ruby lib/resquirrel.rb
env:
GITHUB_EVENT_PATH: ${{ github.event_path }}
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
NOTION_API_KEY: ${{ secrets.NOTION_API_KEY }}
NOTION_DATABASE_ID: ${{ secrets.NOTION_DATABASE_ID }}
require 'resquirrel'
Resquirrel.generate_release_note
それぞれのenvは必須です。
- first, you will need to obtain a token to be able to use Notion's API. 2.
- go to Notion's developer page.
- click
New integration
and register the token you have created in the repository secrets of the repository for which you want to create release notes. The name shold be setNOTION_API_KEY
.
- Create a Full Page database in Notion to create release notes.
- Prepare the following properties in the database.
changes
: Title of the release note (this is provided by default when you create a DB.)URL
: Link to the release note
- Copy the URL of the created DB and register the string
https://www.notion.so/[this part]?v=hogehoge
in the repository secrets of the repository where you want to create the release notes. The name should be set toNOTION_DATABASE_ID
.
- Obtain an API key to use the Open AI API.
- Go to the Open AI developer page.
- Click
Create API Key
and register the created API key in the repository secrets of the repository where you want to create the release notes. The name should be set toOPENAI_API_KEY
.- The required permissions are Models Read and Model Capabilities Write.
sample:
Create a file to run the script in CI, such as .github/workflows/create_release_notes.yml
.
name: create release notes
on:
pull_request:
types:
- closed
jobs:
create_release_notes:
if: ${{ github.event.pull_request.merged }}
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Set up Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: '3.3'
- name: Install dependencies
run: |
bundle install
- name: Run script
run: ruby lib/resquirrel.rb
env:
GITHUB_EVENT_PATH: ${{ github.event_path }}
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
NOTION_API_KEY: ${{ secrets.NOTION_API_KEY }}
NOTION_DATABASE_ID: ${{ secrets.NOTION_DATABASE_ID }}
require 'resquirrel'
Resquirrel.generate_release_note
Each env is required.
Bug reports and pull requests are welcome on GitHub at https://github.com/yuki-snow1823/resquirrel This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the code of conduct.
The gem is available as open source under the terms of the MIT License.
Everyone interacting in the Resquirrel project's codebases, issue trackers, chat rooms and mailing lists is expected to follow the code of conduct.