Interaction with the Godot Asset Library
Project description
godot-asset-library-client
Interact with the Godot Asset Library
This script retrieves all the information already available in the project to upload a Godot asset into the Godot asset library.
Features
- Smart metadata gathering: do not duplicate metadata again
- Reuses existing pending edits of the same release in the library to enable corrections.
- Smart behaviour with existing previews
- Shortcuts for previews hosted youtube or the repository
- Easy integration in Github actions or any other CI/CD platform.
Install
pip install godot-asset-library-client
Usage
-
Define
GODOT_ASSET_LIB_USERandGODOT_ASSET_LIB_PASSWORDenvironment variables. You may use a .env file with them but consider security concerns. -
Write a yaml metadata file with content similar to this:
# asset-metadata.yaml
asset_id: '6666666' # You will obtain this id after the first publication by hand
category: "1" # 2D Tools. See available values in https://godotengine.org/asset-library/api/configure
project_license: AGPLv3
previews:
# Shortcut for youtube previews
- youtube: AD8awHLpFxs
# Shortcut for media commited in the repository
- repoimage: /screenshots/screenshot1.png
repothumb: /screenshots/screenshot1-thumb.jpg
# If not shortcutted the preview entry should look like this
- type: image
link: https://raw.githubusercontent.com/vokimon/godot-dice-roller/refs/heads/main/screenshots/screenshot2.png
thumbnail: https://raw.githubusercontent.com/vokimon/godot-dice-roller/refs/heads/main/screenshots/screenshot2-thumb.jpg
# These will be concatenated and processed as description
description_files:
- README.md
- CHANGES.md
Then, from the root of your project (where project.godot resides):
godot-asset-library-client upload asset-metadata.yaml
Check that the metadata is correct, and then add the option --do:
godot-asset-library-client upload asset-metadata.yaml --do
Smart metadata guessing
If not explicitly provided, it takes most metadata from existing files in your repository so you don't have to duplicate that.
From project.godot:
- Project name
- Project version
- Project description
- Project icon
- Godot version
From local git:
- Commit hash
- Current branch
- Repository hosting (only for supported hostings)
- Repository name (only for supported hostings)
Supported git hostings are:
- Github
- Bitbucket
- Gitea
If your hosting is not listed, you always can explicit the inferred parameters.
Or, better, send a PR to add your hosting.
Hostings are defined in git.py and tested in git_test.py.
They are quite easy to add but I do not have repositories in all of them to test,
so pull requests are very welcome.
Integration with Github Actions
Provided that you already have a working asset-metadata.yaml in your repository
you can add a github action to have the extension updated on each release.
Go to Github Your Project / Settings / Secrets and Variables / Actions / Repository secrets.
Once there, add your secrets GODOT_ASSET_LIB_USER and GODOT_ASSET_LIB_PASSWORD.
Add this file to your repo:
# .github/workflows/publish.yml
name: Upload Plugin to Godot Asset Library
on:
release:
types: [published]
workflow_dispatch: # this enables on demand execution, useful when the release fails
jobs:
publish:
runs-on: ubuntu-latest
name: Publish new version to asset lib
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Godot Asset Lib
shell: bash
run: |
echo "GODOT_ASSET_LIB_USER=${{ secrets.GODOT_ASSET_LIB_USER }}" >> .env
echo "GODOT_ASSET_LIB_PASSWORD=${{ secrets.GODOT_ASSET_LIB_PASSWORD }}" >> .env
pip install --user godot-asset-library-client
godot-asset-library-client upload asset-metadata.yaml --do
You may want to remove the --do option until you are sure
you are not uploading garbage to the asset library.
TODO
Sure you can help with those:
- Solve the emoji problem by not removing them. The blacklist is quite limited and fragile. https://github.com/godotengine/godot-asset-library/issues/345
- Support first upload of a project
- Auto-identify license available in repository
- Auto-identify repo name from git remote for non github hostings
- Auto-identify repo hosting for non github hostings
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file godot_asset_library_client-0.5.5.tar.gz.
File metadata
- Download URL: godot_asset_library_client-0.5.5.tar.gz
- Upload date:
- Size: 49.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
59b31349e9434cca2701ce03a8f50426953c7565cd57450c92fab331852d3aa0
|
|
| MD5 |
9316f0204970d167ac4c4e37c7f0c3a4
|
|
| BLAKE2b-256 |
cefaaace2f05ac6334e833151557beb4a01bdd6cfa9d3f149007d1ee7f6679ed
|
Provenance
The following attestation bundles were made for godot_asset_library_client-0.5.5.tar.gz:
Publisher:
python-publish.yml on vokimon/godot-asset-library-client
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
godot_asset_library_client-0.5.5.tar.gz -
Subject digest:
59b31349e9434cca2701ce03a8f50426953c7565cd57450c92fab331852d3aa0 - Sigstore transparency entry: 637449914
- Sigstore integration time:
-
Permalink:
vokimon/godot-asset-library-client@bfe4cd086ea2dfca6622b2c967097ea314046bfc -
Branch / Tag:
refs/tags/godot-asset-library-client-0.5.5 - Owner: https://github.com/vokimon
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
python-publish.yml@bfe4cd086ea2dfca6622b2c967097ea314046bfc -
Trigger Event:
push
-
Statement type:
File details
Details for the file godot_asset_library_client-0.5.5-py3-none-any.whl.
File metadata
- Download URL: godot_asset_library_client-0.5.5-py3-none-any.whl
- Upload date:
- Size: 38.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
00cc6e8d19c5c94cf6624cb0c40feb4a605f0a549d579680f7f895177efd68f1
|
|
| MD5 |
9b47e93e13e3de2bfea4adb07285cf89
|
|
| BLAKE2b-256 |
fffd2da9cd9c756ccb2b1a8eedb4b4dd972e3b6d709ef7ed83fb5c21f4fdb75f
|
Provenance
The following attestation bundles were made for godot_asset_library_client-0.5.5-py3-none-any.whl:
Publisher:
python-publish.yml on vokimon/godot-asset-library-client
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
godot_asset_library_client-0.5.5-py3-none-any.whl -
Subject digest:
00cc6e8d19c5c94cf6624cb0c40feb4a605f0a549d579680f7f895177efd68f1 - Sigstore transparency entry: 637449948
- Sigstore integration time:
-
Permalink:
vokimon/godot-asset-library-client@bfe4cd086ea2dfca6622b2c967097ea314046bfc -
Branch / Tag:
refs/tags/godot-asset-library-client-0.5.5 - Owner: https://github.com/vokimon
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
python-publish.yml@bfe4cd086ea2dfca6622b2c967097ea314046bfc -
Trigger Event:
push
-
Statement type: