Skip to main content

QGIS-Plugin-Repo

🧪 Tests PyPi version badge PyPI - Downloads PyPI - Python Version

Presentation

Merge some QGIS plugin repository together

Single QGIS repository

qgis-plugin-repo merge output_qgis_plugin_ci.xml all_plugins.xml
qgis-plugin-repo merge https://path/to/plugins_to_add.xml all_plugins.xml

The file all_plugins.xml will be edited, according to the plugin name, plugin version and its experimental flag or not. In an XML file, the plugin can have two versions : one experimental and the other one not.

Many QGIS repositories

You can also have multiple XML files like :

qgis/
├── plugins-3.4.xml
├── plugins-3.10.xml
├── plugins-3.16.xml
├── plugins-3.22.xml
└── plugins-3-28.xml

Then, it's possible to call qgis-plugin-repo to dispatch an XML plugin in matching QGIS XML files :

qgis-plugin-repo merge output_qgis_plugin_ci.xml plugins-*.xml

According to QGIS minimum/maximum versions hardcoded in the XML (and therefore in the metadata.txt), only corresponding QGIS XML files will be edited.

For now, only plugins between 3.0 and 3.99 and without a patch QGIS version number are supported.

Read a QGIS repository

You can read an XML file :

qgis-plugin-repo read https://plugins.qgis.org/plugins/plugins.xml?qgis=3.10

GitHub Actions

The main purpose of this tool is to run on CI.

In the plugin repository, after QGIS-Plugin-CI :

  - name: Repository Dispatch
      uses: peter-evans/repository-dispatch@v1
      with:
        token: ${{ secrets.TOKEN }}
        repository: organisation/repository
        event-type: merge-plugins
        client-payload: '{"name": "NAME_OF_PLUGIN", "version": "${{ env.RELEASE_VERSION }}", "url": "URL_OF_LATEST.xml"}'

Note that QGIS-Plugin-CI package or release must be been called with --create-plugin-repo because this tool will use the XML file generated.

In the main repository with a docs/plugins.xml to edit :

name: 🔀 Plugin repository

on:
  repository_dispatch:
    types: [merge-plugins]

jobs:
  merge:
    runs-on: ubuntu-latest
    steps:
      - run: >
         echo ${{ github.event.client_payload.name }}
         echo ${{ github.event.client_payload.version }}
         echo ${{ github.event.client_payload.url }}

      - name: Get source code
        uses: actions/checkout@v2
        with:
          fetch-depth: 0
          token: ${{ secrets.BOT_HUB_TOKEN }}  # Important to launch CI on a commit from a bot

      - name: Set up Python 3.8
        uses: actions/setup-python@v2.2.2
        with:
          python-version: 3.8

      - name: Install qgis-plugin-repo
        run: pip3 install qgis-plugin-repo

      - name: Merge
        run: qgis-plugin-repo merge ${{ github.event.client_payload.url }} docs/plugins.xml

      - name: Commit changes
        uses: stefanzweifel/git-auto-commit-action@v4
        with:
          commit_message: "Publish QGIS Plugin ${{ github.event.client_payload.name }} ${{ github.event.client_payload.version }}"
          commit_user_name: ${{ secrets.BOT_NAME }}
          commit_user_email: ${{ secrets.BOT_MAIL }}
          commit_author: ${{ secrets.BOT_NAME }}

Tests

cd tests
python -m unittest

Release files for qgis-plugin-repo 0.4.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for qgis-plugin-repo 0.4.3
File Size Uploaded
qgis-plugin-repo-0.4.3.tar.gz 8.9 kB Details

Release files / qgis-plugin-repo-0.4.3.tar.gz

Download URL qgis-plugin-repo-0.4.3.tar.gz
Size 8.9 kB
Tags Source
SHA-256 checksum
How to use checksums
67bc62287f5dfb11422216606b282bb019209ca0a85a6a5fefc6d09f9488c20a
BLAKE2b-256 checksum
How to use checksums
a7f60328a94032c86cd4e0c13ba7772a52edb14f0bdaaefffb2b65703f8ec380
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.9.14

Release history Release notifications | RSS feed

This release

0.4.3 This release

1 release file

0.4.2

1 release file

0.4.1

1 release file

0.4.0

1 release file

0.3.0

1 release file

0.2.1

1 release file

0.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page