autodownload-from-clipboard 🚀
Quick Start: Run the Project with UV
uvx autodownload-from-clipboard
Project description
An executable tool to automatically download videos and images from urls in the clipboard
Template features
Please make sure that everything is setup: See Initial setup section below
✨ Key Features:
-
Automatic Release Workflow: 🚦 Merging a pull request automatically creates a release PR—no manual steps required.
-
One-Click Publishing: 🚀 Merging the release PR builds & uploads artifacts to both PyPI and GitHub, and updates the changelog.
-
Zero-setup Development: 🔄 Powered by Astral UV, your dev environment & all dependencies are fully managed—no virtualenv or pip install needed.
-
Continuous Testing: 🧪 Unit tests run automatically on every pull request to catch issues early.
-
Automated Code Quality: 🧹 Pre-commit hooks enforce code quality and style validation before anything merges.
-
Conventional Commits Required: 📝 PR titles must follow Conventional Commit standards for clear, automated changelogs and semantic versioning.
-
Easy Code Quality Checks: ✅ Local pre-commit hooks keep your code clean and consistent.
-
Activate or deactivate: 🔛🔚
uv run pre-commit install # enable hooks uv run pre-commit uninstall # disable hooks
-
Run all checks manually: 🏃♂️
uv run pre-commit run --all-files
- (the command is in
./precommit.sh/./precommit.bat)
- (the command is in
-
Once the setup is finished, the main entrypoint of this project (app/main.py:main) can be called from every computer which has uv, via the following command:
uvx autodownload-from-clipboard
It can also be called locally by calling:
uvx LOCAL_PATH/autodownload-from-clipboard
Initial setup
⚠️ IMPORTANT SETUP REQUIRED
Some essential configurations for automated releases and PyPI integration require using the GitHub and PyPi web interfaces. Please follow the steps below in your browser to complete the setup.
Just after the cookiecutter has done his job, create the Github repo
- Repository name: autodownload-from-clipboard
- Description: An executable tool to automatically download videos and images from urls in the clipboard
Get to the local project:
git branch -M main
git remote add origin git@github.com:DSestu/autodownload-from-clipboard.git
git push -u origin main
Enable GH actions to create PR's
To enable automatic Pull Requests from release-please, you'll need to grant GitHub Actions permission to create and approve pull requests:
- Navigate to your repository on GitHub.
- Go to Settings > Actions > General.
- Scroll down to Workflow permissions.
- Select Allow GitHub Actions to create and approve pull requests.
Next steps:
- In your repository's commit history, locate the "Cookiecutter initial commit" and copy its full commit SHA (use the copy icon at the end of the line).
- Open
release-please-config.json, find thebootstrap-shafield, and replace its value with the SHA you just copied. Commit this change.
Finally, ensure your repository has at least one release tag. Create a release from the first commit and tag it as 0.1.0.
The release please will be triggered after the first PR merge.
Setup publishing to Pypi
Configure Publishing to PyPI
To enable publishing to PyPI via GitHub Actions, follow these steps:
-
Set up GitHub Environment:
- In your GitHub repository, go to Settings > Environments.
- Click New environment and name it
pypi.
-
Configure PyPI Publisher:
- Log in to your PyPI account.
- Go to "Account settings" > "Publishing" and click "Add a new publisher".
- Choose "GitHub" as the integration type.
- Follow the instructions to link your repository and grant the required permissions.
- Select or specify the workflow file as
release_please.yml(or the workflow you use for releases). - Ensure the environment name (
pypi) matches exactly—this tells the workflow and PyPI which environment to expect.
-
Verify Package Name Consistency:
- Make sure the package name in your
pyproject.tomlfile matches exactly with your project name on PyPI. This is critical for successful publishing.
- Make sure the package name in your
By following these steps, you'll enable automated publishing of your package to PyPI whenever a release is created via GitHub Actions.
Advice
To improve the default pull request workflow experience, update your repository's settings as follows:
- Go to your repository's Settings.
- Scroll down to the Pull requests section.
- Disable Allow merge commits & Allow rebase merging
- Keep Allow squash merging, and change the default commit message to Pull request title
This will ensure your merge commits use clear, descriptive titles from pull requests instead of the default text, and keep changelogs concise.
Metadata
Release files for autodownload-from-clipboard 0.1.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| autodownload_from_clipboard-0.1.1.tar.gz | 15.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| autodownload_from_clipboard-0.1.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 20.9 kB
Release files / autodownload_from_clipboard-0.1.1.tar.gz
| Download URL | autodownload_from_clipboard-0.1.1.tar.gz |
|---|---|
| Size | 15.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
05f1f58ff2db347e5eb20ee0ddc533f13621012f0d96a14a7f4688db12816110
|
|
BLAKE2b-256 checksum How to use checksums |
e39ec1fee9cb8981df09e414a48c79b596917ac2378744be83cab522ed9b25a8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.9.22 {"installer":{"name":"uv","version":"0.9.22","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / autodownload_from_clipboard-0.1.1-py3-none-any.whl
| Download URL | autodownload_from_clipboard-0.1.1-py3-none-any.whl |
|---|---|
| Size | 5.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
5158ddfeb954c598dcae6d609c3c27825a8b3ba6188a6d7bfba9c27a9c50460c
|
|
BLAKE2b-256 checksum How to use checksums |
475c2f4939ec73316f2d6e866fb4c479aa02286d0a56ea84994776dd08514355
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.9.22 {"installer":{"name":"uv","version":"0.9.22","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|