Skip to content

feat(supabase): add SupabaseGroongaDocumentStore and SupabaseGroongaRetriever #3347

feat(supabase): add SupabaseGroongaDocumentStore and SupabaseGroongaRetriever

feat(supabase): add SupabaseGroongaDocumentStore and SupabaseGroongaRetriever #3347

name: Core / License Compliance
on:
pull_request:
paths:
- "integrations/**/pyproject.toml"
- ".github/workflows/CI_license_compliance.yml"
# Since we test PRs, there is no need to run the workflow at each
# merge on `main`. Let's use a cron job instead.
schedule:
- cron: "0 0 * * *" # every day at midnight
env:
PYTHON_VERSION: "3.10"
EXCLUDE_PACKAGES: "(?i)^(azure-identity|azure-search-documents|fastembed|tqdm|psycopg|mistralai|pgvector).*"
# Exclusions must be explicitly motivated
#
# - azure-identity is MIT but the license is not available on PyPI
# - azure-search-documents is MIT but the license is not available on PyPI
# - fastembed is Apache 2.0 but the license on PyPI is unclear ("Other/Proprietary License (Apache License)")
# - mistralai is Apache 2.0 but the license is not available on PyPI
# - pgvector is MIT but the license is not available on PyPI
# - tqdm is MLP but there are no better alternatives
# - psycopg is LGPL-3.0 but FOSSA is fine with it
jobs:
license_check_direct:
name: Direct dependencies only
env:
REQUIREMENTS_FILE: requirements_direct.txt
runs-on: ubuntu-latest
steps:
- name: Checkout the code
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- name: Setup Python
uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
with:
python-version: "${{ env.PYTHON_VERSION }}"
- name: Get changed files (for pull requests only)
if: ${{ github.event_name == 'pull_request'}}
id: changed-files
uses: tj-actions/changed-files@9426d40962ed5378910ee2e21d5f8c6fcbf2dd96 # v47.0.6
with:
files_yaml: |
pyproject:
- integrations/**/pyproject.toml
workflow:
- .github/workflows/CI_license_compliance.yml
- name: Get direct dependencies from pyproject.toml files
run: |
python -m pip install --upgrade pip
pip install toml --uploaded-prior-to=P1D
# Determine the list of pyproject.toml files to process
if [ "${{ github.event_name }}" = "schedule" ] || [ "${{ steps.changed-files.outputs.workflow_any_changed }}" = "true" ]; then
echo "Scheduled run or workflow changed: processing all pyproject.toml files..."
FILES=$(find integrations -type f -name 'pyproject.toml')
else
echo "Pull request with pyproject changes: processing changed pyproject.toml files..."
FILES="${{ steps.changed-files.outputs.pyproject_all_changed_files }}"
fi
for file in $FILES; do
python .github/utils/pyproject_to_requirements.py "$file" >> "${{ env.REQUIREMENTS_FILE }}"
echo "" >> "${{ env.REQUIREMENTS_FILE }}"
done
- name: Check Licenses
id: license_check_report
uses: pilosus/action-pip-license-checker@e909b0226ff49d3235c99c4585bc617f49fff16a # v3.1.0
with:
github-token: ${{ secrets.GH_ACCESS_TOKEN }}
requirements: ${{ env.REQUIREMENTS_FILE }}
fail: "Copyleft,Other,Error"
exclude: "${{ env.EXCLUDE_PACKAGES }}"
# We keep the license inventory on FOSSA
- name: Send license report to Fossa
uses: fossas/fossa-action@ff70fe9fe17cbd2040648f1c45e8ec4e4884dcf3 # v1.9.0
continue-on-error: true # not critical
with:
api-key: ${{ secrets.FOSSA_LICENSE_SCAN_TOKEN }}
- name: Print report
if: ${{ always() }}
run: echo "${{ steps.license_check_report.outputs.report }}"
- name: Notify Slack on nightly failure
if: failure() && github.event_name == 'schedule'
uses: deepset-ai/notify-slack-action@a65def0c8bf91d6520286ab34280151c76a5a008 # v1.1.0
with:
slack-webhook-url: ${{ secrets.SLACK_WEBHOOK_URL_NOTIFICATIONS }}