Skip to content

Weekly Plugin Scan

Weekly Plugin Scan #16

Workflow file for this run

name: Weekly Plugin Scan
on:
schedule:
# Run weekly on Sunday at 03:37 UTC. Avoid the top of the hour to reduce
# the chance of GitHub Actions schedule delays during high-load windows.
- cron: '37 3 * * 0'
workflow_dispatch: # Allow manual trigger from the GitHub Actions UI
permissions:
contents: read
jobs:
scan-and-pr:
permissions:
contents: write
pull-requests: write
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
with:
persist-credentials: false
- name: Set up Python
uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1 # v6.3.0
with:
python-version: '3.11'
- name: Run Plugin Scanner
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
GITLAB_TOKEN: ${{ secrets.GITLAB_TOKEN }}
run: |
python .github/scripts/scan_github_plugins.py
- name: Remove unavailable plugins
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
GITLAB_TOKEN: ${{ secrets.GITLAB_TOKEN }}
run: >-
python .github/scripts/cleanup_registry.py --apply
--tombstone-requests-output
"${{ runner.temp }}/release-tombstone-requests.json"
- name: Refresh platform metadata
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
GITLAB_TOKEN: ${{ secrets.GITLAB_TOKEN }}
run: python .github/scripts/detect_plugin_platforms.py
- name: Preview release certification
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
GITLAB_TOKEN: ${{ secrets.GITLAB_TOKEN }}
run: >-
python .github/scripts/generate_release_index.py --report-only
--cache "${{ runner.temp }}/release-candidate-cache.json"
--tombstone-requests
"${{ runner.temp }}/release-tombstone-requests.json"
- name: Update release index
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
GITLAB_TOKEN: ${{ secrets.GITLAB_TOKEN }}
run: >-
python .github/scripts/generate_release_index.py --update
--cache "${{ runner.temp }}/release-candidate-cache.json"
--tombstone-requests
"${{ runner.temp }}/release-tombstone-requests.json"
- name: Validate registry and release-index binding
run: python .github/scripts/validate_plugins.py
- name: Create Pull Request
uses: peter-evans/create-pull-request@5f6978faf089d4d20b00c7766989d076bb2fc7f1 # v8.1.1
with:
token: ${{ secrets.GITHUB_TOKEN }}
commit-message: "feat: update Domoticz Python plugin registry"
title: "Update Domoticz Python plugin registry from weekly scan"
body: |
This automated PR updates the Domoticz Python plugin registry with newly discovered plugins, refreshed repository metadata, and inferred platform badges from supported Git forges.
Newly discovered plugins use explicit package records with a certified Domoticz runtime key, a provider-neutral repository URL, and a reviewed release-first delivery policy. Git delivery remains available.
The platform badge inference checks repository metadata, README and install text, selected source files, platform-specific imports, scripts, and OS-specific paths or commands.
branch: "auto-add-plugins"
delete-branch: true
labels: "automated pr, enhancement"
add-paths: |
registry.json
update_times.json
release_index.json
.github/platform_detection.json