[general]
name=GitHub Plugin Sync
qgisMinimumVersion=3.28
qgisMaximumVersion=4.99
description=Replace files of an installed QGIS plugin with the contents of a GitHub repository branch for rapid test iteration.
version=1.2
author=Karl Stephan Steinbach
email=277199764+KSSteinbach@users.noreply.github.com
supportsQt6=True

about=Developer tool that streamlines testing of different plugin variants by
    automatically replacing the files of an installed plugin in the user's profile
    directory with the files of a selectable GitHub repository and branch.
    Supports public and private repositories (token authentication), optional
    credential storage in QGIS's authentication database, branch selection, remembered
    plugin/repo mappings, metadata.txt validation, and safe unload/reload of the target
    plugin.

changelog=
    1.2
    - Sub-folder detection now uses the GitHub Git Trees API: the whole branch is
      scanned in a single request and plugins are found at any nesting depth. This is
      faster and uses far fewer API calls. Repositories whose tree is too large fall
      back to the previous depth-limited scan automatically.
    - New "Run without dialogs (silent mode)" option in the main dialog. When enabled,
      all confirmation and result dialogs are suppressed and the replacement runs
      unattended; every message is written to the log instead. The setting is off by
      default and is remembered between sessions.
    - The plugin now adds its own button to a dedicated QGIS toolbar.
    - Replaced the raster PNG icon with a scalable SVG icon.
    1.1.1
    - Compatibility with Qt6, QGIS 3.44 and the upcoming QGIS 4 (supportsQt6=True,
      qgisMaximumVersion raised to 4.99).
    - Security hardening: HTTPS-only API requests, hardened tarball extraction with
      path-traversal and decompression-bomb guards plus the PEP 706 data filter, and
      resolution of further static-analysis (Bandit) findings.
    - Introduced a central logging helper and replaced silent exception handling with
      explicit warning logs.

tracker=https://github.com/KSSteinbach/GitHub-Plugin-Sync/issues
repository=https://github.com/KSSteinbach/GitHub-Plugin-Sync
homepage=https://github.com/KSSteinbach/GitHub-Plugin-Sync

category=Plugins
icon=icon.svg
experimental=False
deprecated=False
tags=development,github,plugin,testing,update,repository
hasProcessingProvider=no
