WinGet Manifests Auto-Updater
This project programmatically updates manifests of winget packages when the package has an update available.
You can see a list of PackageIdentifiers for packages currently auto-updated by this project in packages.txt (alphanumerically sorted).
Status
How to add a package to the automation?
It's pretty simple.
-
Use this link or head over to issues tab and click new issue. Make sure you select the "New Package" issue template.
-
Fill in the details of the package. If known, please mention some details of an API/Source/etc. which can be used to fetch the latest version of the package.
-
Submit the issue and wait for the package to be added to the automation.
How does this work?
Running automatically on GitHub workflows, this repo has two main components that keep winget packages up-to-date:
-
PowerShell scripts: To update manifests of packages in the Windows Package Manager Community Repository, these scripts are executed by a cron job in every 8 hours.
- The
automation.ps1
script imports the JSON files and check if a new update is available for the package. - If yes, it calls
YamlCreate.ps1
to update the manifest for the given package, and - Submits a pull request on the winget-pkgs repository.
- The
-
JSON files: Structured data containing the following vital information about each tracked package:
Key | Description |
---|---|
pkgid | PackageIdentifier of the package in the winget-pkgs repository |
repo_uri | URI of any API/Source/etc. or GitHub repository of the package in the form of owner/repo |
last_checked_tag | Version/Release ID of the last release of the package |
asset_regex | Regular expression to match the asset name of the package |
is_prerelease | Whether the package is a prerelease or not |
version_method | Method to get the version of the package, if the package doesn't follow semantic versioning |
use_package_script | If package uses a separate script for checking updates, then it is true |
skip | If the package has not been updated for a long time, it can be skipped instead of removing the JSON file (useful when keeping a record of skipped packages) |
yamlcreate_autoupgrade | If the package can be auto-updated using YamlCreate.ps1's AutoUpgrade feature, then it is true |
check_existing_pr | If the automation should check if there is an existing pull request for the update of the package, then it is true |
previous_timestamp | Timestamp when the package was last updated by the workflow |
check_interval | Custom check interval if the package is less frequently updated |
🎉
Contributors See CONTRIBUTING.md for more details.
Thanks goes to these wonderful people (emoji key):
All Contributors |
CodeDoctor |
Esco |
Jérémie Bertrand |
Kaleb Luedtke |
Karan09 🤔 |
Mavaddat Javid |
SpecterShell 🤔 |
TaylorShi |
Theophile Trunck 🐛 |
Vedant 🐛 💻 |
hmmwhatsthisdo 🤔 |
This project follows the all-contributors specification. Contributions of any kind welcome!