Publish builds to Algolia

pull/7091/head
Carlgo11 1 year ago
parent 855287e130
commit d2911c1e2f
No known key found for this signature in database
GPG Key ID: 5BC1F7A96CE756A5

@ -0,0 +1,3 @@
ALGOLIA_APP_ID=
ALGOLIA_API_KEY=
ALGOLIA_INDEX_NAME=2fa.directory

@ -50,12 +50,22 @@ jobs:
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v3
- uses: ruby/setup-ruby@v1
with:
bundler-cache: true
ruby-version: '3.0'
- name: Generate API files
run: |
mkdir -p api/v{1,2,3}
./scripts/APIv1.rb
./scripts/APIv2.rb
./scripts/APIv3.rb
- name: Publish changes to Algolia
run: bundle exec ruby ./scripts/Algolia.rb
env:
ALGOLIA_APP_ID: ${{ secrets.ALGOLIA_APP_ID }}
ALGOLIA_INDEX_NAME: ${{ secrets.ALGOLIA_INDEX_NAME }}
ALGOLIA_API_KEY: ${{ secrets.ALGOLIA_API_KEY }}
- uses: crazy-max/ghaction-import-gpg@v5
id: pgp
with:

1
.gitignore vendored

@ -7,6 +7,7 @@ nbproject/
.config/
Gemfile.lock
vendor/
.env
# NPM files
node_modules/

@ -10,3 +10,6 @@ group :test do
gem 'rubocop'
gem 'twitter'
end
gem 'algolia', '~> 2.3'
gem 'dotenv', '~> 2.8'

@ -0,0 +1,29 @@
#!/usr/bin/env ruby
# frozen_string_literal: true
require 'json'
require 'algolia'
require 'dotenv/load'
ALGOLIA_APP_ID = ENV['ALGOLIA_APP_ID']
ALGOLIA_API_KEY = ENV['ALGOLIA_API_KEY']
ALGOLIA_INDEX_NAME = ENV['ALGOLIA_INDEX_NAME']
excludes = %w[notes documentation recovery]
client = Algolia::Search::Client.create(ALGOLIA_APP_ID, ALGOLIA_API_KEY)
index = client.init_index(ALGOLIA_INDEX_NAME)
diff = `git diff --name-only origin/master...HEAD entries/`
updates = []
diff.split("\n").each do |entry|
name, data = JSON.parse(File.read(entry)).first
puts "Updating #{data['name']}"
data.merge!({ 'name' => name, 'objectID' => data['domain'] })
# Rename keys
data['2fa'] = data.delete 'tfa' if data.key? 'tfa'
data['category'] = data.delete 'keywords'
# Remove keys that shouldn't be searchable
data.reject! { |k, _| excludes.include? k }
updates.push data
end
res = index.save_objects(updates)
res.wait
Loading…
Cancel
Save