---
name: Synchronise Device Classes from Home Assistant

on:
  workflow_dispatch:
  schedule:
    - cron: '45 6 * * *'

permissions:
  contents: write
  pull-requests: write

jobs:
  sync:
    name: Sync Device Classes
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v3

      - name: Checkout Home Assistant
        uses: actions/checkout@v3
        with:
          repository: home-assistant/core
          path: lib/home-assistant

      - name: Setup Python
        uses: actions/setup-python@v4
        with:
          python-version: 3.11

      - name: Install Home Assistant
        run: |
          python -m pip install --upgrade pip
          pip install -e lib/home-assistant

      - name: Sync
        run: |
          python ./script/sync-device_class.py

      - name: Get PR template
        id: pr-template-body
        run: |
          body=$(cat .github/PULL_REQUEST_TEMPLATE.md)
          delimiter="$(openssl rand -hex 8)"
          echo "body<<$delimiter" >> $GITHUB_OUTPUT
          echo "$body" >> $GITHUB_OUTPUT
          echo "$delimiter" >> $GITHUB_OUTPUT

      - name: Commit changes
        uses: peter-evans/create-pull-request@v5
        with:
          commit-message: "Synchronise Device Classes from Home Assistant"
          committer: esphomebot <esphome@nabucasa.com>
          author: esphomebot <esphome@nabucasa.com>
          branch: sync/device-classes
          delete-branch: true
          title: "Synchronise Device Classes from Home Assistant"
          body: ${{ steps.pr-template-body.outputs.body }}
          token: ${{ secrets.DEVICE_CLASS_SYNC_TOKEN }}
