QGIS-Plugin-Repo
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
Metadata
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)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| qgis-plugin-repo-0.4.3.tar.gz | 8.9 kB | Without provenance | Details for qgis-plugin-repo-0.4.3.tar.gz |
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
|
Security for qgis-plugin-repo 0.4.3
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.