{"id":49232697,"url":"https://github.com/flathub-infra/flatpak-external-data-checker","last_synced_at":"2026-04-24T12:35:16.939Z","repository":{"id":38455223,"uuid":"119966824","full_name":"flathub-infra/flatpak-external-data-checker","owner":"flathub-infra","description":"A tool for checking if the external data used in Flatpak manifests is still up to date","archived":false,"fork":false,"pushed_at":"2026-04-23T05:13:29.000Z","size":877,"stargazers_count":138,"open_issues_count":34,"forks_count":42,"subscribers_count":23,"default_branch":"master","last_synced_at":"2026-04-23T06:26:50.935Z","etag":null,"topics":["build-automation","flatpak","python"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/flathub-infra.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2018-02-02T10:17:20.000Z","updated_at":"2026-04-23T03:25:22.000Z","dependencies_parsed_at":"2023-12-23T10:35:15.740Z","dependency_job_id":"888a95cf-db44-4c4c-9e98-4b169995a947","html_url":"https://github.com/flathub-infra/flatpak-external-data-checker","commit_stats":null,"previous_names":["flathub-infra/flatpak-external-data-checker","flathub/flatpak-external-data-checker"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/flathub-infra/flatpak-external-data-checker","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flathub-infra%2Fflatpak-external-data-checker","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flathub-infra%2Fflatpak-external-data-checker/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flathub-infra%2Fflatpak-external-data-checker/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flathub-infra%2Fflatpak-external-data-checker/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/flathub-infra","download_url":"https://codeload.github.com/flathub-infra/flatpak-external-data-checker/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flathub-infra%2Fflatpak-external-data-checker/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32224401,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-24T10:26:35.452Z","status":"ssl_error","status_checked_at":"2026-04-24T10:25:27.643Z","response_time":64,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["build-automation","flatpak","python"],"created_at":"2026-04-24T12:35:14.456Z","updated_at":"2026-04-24T12:35:16.928Z","avatar_url":"https://github.com/flathub-infra.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Flatpak External Data Checker\n\n![Tests](https://github.com/flathub-infra/flatpak-external-data-checker/workflows/Tests/badge.svg)\n[![Coverage Status](https://coveralls.io/repos/github/flathub/flatpak-external-data-checker/badge.svg)](https://coveralls.io/github/flathub/flatpak-external-data-checker)\n[![CodeFactor](https://www.codefactor.io/repository/github/flathub-infra/flatpak-external-data-checker/badge)](https://www.codefactor.io/repository/github/flathub-infra/flatpak-external-data-checker)\n\nThis is a tool for checking for outdated or broken links of external\ndata in Flatpak manifests.\n\n---\n\n## Motivation\n\nFlatpak apps are built using external data (git checkouts, tarballs,\nsimple files, etc.). A very specific case of this is the use of *extra\ndata*, which works as a way to download third party binaries at\ninstallation time.\n\nOf course, the links pointing to external data can become obsolete, so\nit is very important to account for and correct such issues.\nThis is especially critical for the *extra data*, in which a broken link\nimpedes the installation of the application.\n\nThis project offers ways to easily check or monitor the state of such\nlinks, as well as the suggestion of new versions.\n\nIt works by extracting all the external data of a Flatpak manifest and\ngiving it to a collection of *checkers*, which will set up the right\nstate and, possibly, new versions of each external data.\n\n## Use\n\nThe simplest use of this tool is by calling:\n\n```\nflatpak-external-data-checker MANIFEST_FILE\n```\n\nit should display messages about any broken or outdated external data.\n\n### Installation\n\nThis tool itself is available in Flatpak format from Flathub. Install with\n\n```bash\nflatpak install --from https://dl.flathub.org/repo/appstream/org.flathub.flatpak-external-data-checker.flatpakref\n```\n\nAnd run with\n\n```bash\nflatpak run org.flathub.flatpak-external-data-checker MANIFEST_DIR/MANIFEST_FILE\n```\n\nIf the manifest is not in your home directory, you need to punch a sandbox hole for it:\n\n```bash\nflatpak run --filesystem=MANIFEST_DIR org.flathub.flatpak-external-data-checker MANIFEST_DIR/MANIFEST_FILE\n```\n\n#### Running in a container\n\n**flatpak-external-data-checker** is also available as an\n[OCI image](https://github.com/orgs/flathub/packages/container/package/flatpak-external-data-checker)\nfrom GitHub Container Registry.\n\nYou can use the `run-in-container.sh` helper script to set up needed CLI\noptions for you and run the image using `podman`:\n\n```bash\n./run-in-container.sh \\\n    [ARGS …] \\\n    ~/src/flathub/com.example.App/com.example.App.json\n```\n\n### On Flathub\n\nFlathub [runs this tool periodically](https://github.com/flathub/flathub/blob/master/.github/workflows/external-data-checker.yml) for all Flatpak repos under [github.com/flathub](https://github.com/flathub).\nSo, for those repos to receive update PRs, add `x-checker-data` [as needed to sources](#changes-to-flatpak-manifests).\nNote Flathub's hosted tool only checks the default branch.\n\nTo stop Flathub's tool from checking your repo, add `\"disable-external-data-checker\": true` to `flathub.json` in the default branch.\n\n### Custom workflow\n\nAlternatively, you can use own workflow. This can be useful if e.g. wanting to update non-default branches.\n\nPut this yaml file under `.github/workflows`, e.g. put it in `.github/workflows/update.yaml`. Ensure to put the correct path to the manifest in the last line.\n\n```yaml\nname: Check for updates\non:\n  schedule: # for scheduling to work this file must be in the default branch\n  - cron: \"0 * * * *\" # run every hour\n  workflow_dispatch: # can be manually dispatched under GitHub's \"Actions\" tab\n\njobs:\n  flatpak-external-data-checker:\n    runs-on: ubuntu-latest\n\n    strategy:\n      matrix:\n        branch: [ master ] # list all branches to check\n\n    steps:\n      - uses: actions/checkout@v3\n        with:\n          ref: ${{ matrix.branch }}\n\n      - uses: docker://ghcr.io/flathub/flatpak-external-data-checker:latest\n        env:\n          GIT_AUTHOR_NAME: Flatpak External Data Checker\n          GIT_COMMITTER_NAME: Flatpak External Data Checker\n          # email sets \"github-actions[bot]\" as commit author, see https://github.community/t/github-actions-bot-email-address/17204/6\n          GIT_AUTHOR_EMAIL: 41898282+github-actions[bot]@users.noreply.github.com\n          GIT_COMMITTER_EMAIL: 41898282+github-actions[bot]@users.noreply.github.com\n          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}\n        with:\n          args: --update --never-fork $PATH_TO_MANIFEST # e.g. com.organization.myapp.json\n```\n\n### Automatically submitting PRs\n\nWhen run with the `--update` flag, this tool can commit any necessary changes\nto Git and open a GitHub pull request. In order to do this, it requires\na [GitHub access token](https://help.github.com/en/articles/creating-a-personal-access-token-for-the-command-line),\nspecified in the `GITHUB_TOKEN` environment variable.\n\n### Selectively submitting PRs\n\nThe tool will by default open PRs if at least one source is updated. Alternatively, the tool can be configured to only open PRs if at least one \"important\" source is updated. This can avoid unwanted PRs, e.g. PRs that only update a single library.\n\nTo only open PRs when at least one important source is updated, first set `require-important-update` to `true` in `flathub.json`. If using a custom workflow, instead pass `--require-important-update` to the tool. Then, set property `is-important` to `true` in the checker metadata for any important source(s). Sources with `is-main-source` in their checker metadata are also considered important.\n\n### Automatically merging PRs\n\nThe tool will also automatically merge previously opened pull request for\nunavailable (`BROKEN`) sources if the change has successfully passed CI checks\nand the token has sufficient privileges.\n\nUnder limited circumstances, automatically merging all submitted PRs, not just unavailable sources,\nfrom the tool can be forcefully enabled by setting\n`automerge-flathubbot-prs` to `true` in `flathub.json`,\nor it can be completely disabled by setting `automerge-flathubbot-prs` to `false`. Use of this option without requesting an exception will cause the build to fail in the linting stage; see the [FlatHub docs](https://docs.flathub.org/blog/linter-restricting-automatic-merge/) for more info.\n\n### Formatting manifests\n\nWhen writing back JSON files, this tool defaults to four-space indentation, preserving or omitting a trailing newline based on the source file. If you prefer a different formatting, create and commit an `.editorconfig` file describing your preferred formatting for `.json` files. At present, this tool respects a subset of [EditorConfig](https://editorconfig.org/) settings:\n\n```ini\nroot = true\n\n[*.json]\nindent_style = space\n# Only integer values are supported; ignored if indent_style=tab\nindent_size = 2\ninsert_final_newline = true\n```\n\nUnfortunately, it is not feasible to preserve JSON-GLib's non-standard `/* */` syntax for comments. As an alternative, dictionary keys beginning with `//` are ignored by `flatpak-builder` and can be used for comments in many cases.\n\nFor YAML files, this tool attempts to preserve existing formatting and comments automatically. `.editorconfig` is not used. We recommend you follow the [Flathub YAML Style Guide](https://github.com/flathub/flathub/wiki/YAML-Style-Guide).\n\n## Changes to Flatpak manifests\n\nFor simple checks to see if a URL is broken, no changes are needed.  However,\nyou can add additional metadata to the manifest to allow the checker to\ndiscover new versions.\n\nSome of the following checkers are able to determine upstream version number,\nand automatically add it to releases list in metainfo. To specify which source\nis the app upstream source, set property `is-main-source` to `true` in the\nchecker metadata for that source.\n\n### Version constraining\n\nThe checkers can support version constraining, making it possible to e.g. limit\nversion checking to a certain major version. The property is `versions`. It\nshould contain key-value pairs where the key is the comparison operator (one of\n`\u003c`, `\u003e`, `\u003c=`, `\u003e=`, `==`, `!=`), and the value is the version to compare with\nSo, `{\"\u003c\": \"3.38.0\", \"!=\": \"3.37.1\"}` means *\"any version less than 3.38.0\nexcept 3.37.1\"*. All constraints must match simultaneously, i.e. if one doesn't\nmatch -\u003e version is rejected.\n\n### URL checker\n\nIf the upstream vendor has an URL that redirects to the latest version of the\napplication, you can add something like the following to check and update the URL for\nthe latest version:\n\n```json\n\"x-checker-data\": {\n    \"type\": \"rotating-url\",\n    \"url\": \"http://example.com/last-version\",\n    \"pattern\": \"http://example.com/foo-v([0-9.]+).tar.gz\"\n}\n```\n\nThe version number for the latest version can be detected in two ways:\n\n* If the filename ends with `.AppImage`, the version number is extracted\n  from the AppImage. (It is run in a `bwrap` sandbox.)\n* Otherwise, if `\"pattern\"` is specified in `\"x-checker-data\"`, the given\n  regular expression is matched against the full\n  URL for the latest version, and the first match group is taken to be the\n  version. (This follows the convention used by\n  [`debian/watch`](https://wiki.debian.org/debian/watch) files.)\n* If downloads come from load-balanced URLs, the `\"pattern\"` regex must\n  match all URL variants otherwise identical versions may be treated as\n  updates. Eg.\n\n```json\n\"x-checker-data\": {\n  \"type\": \"rotating-url\",\n  \"url\": \"http://example.com/last-version\",\n  \"pattern\": \"https://(?:dl|stable.dl\\\\d).example.com/foo-v([0-9.]+).tar.gz\"\n}\n```\n\nSome upstream vendors may add unwanted GET query parameters to\nthe download URL, such as identifiers for counting unique downloads.\nThis may result in URL change without change in the actual data.\nTo remove GET query parameters, set `strip-query` property to `true`.\n\n### HTML checker\n\nBoth the version number and the download URL will be gathered from a static\nHTML page which contains this information:\n\n```json\n\"x-checker-data\": {\n    \"type\": \"html\",\n    \"url\": \"https://www.example.com/download.html\",\n    \"version-pattern\": \"The latest version is ([\\\\d\\\\.-]+)\",\n    \"url-template\": \"https://www.example.com/pub/foo-v$version.tar.gz)\"\n}\n```\n\nIf the HTML page contains multiple versions with download links,\nset single pattern containing two nested match groups for both url and version:\n\n```json\n\"x-checker-data\": {\n    \"type\": \"html\",\n    \"url\": \"https://sourceforge.net/projects/qrupdate/rss\",\n    \"pattern\": \"\u003clink\u003e(https://sourceforge.net/.+/qrupdate-([\\\\d\\\\.]+\\\\d).tar.gz)/download\u003c/link\u003e\"\n}\n```\n\nTo disable sorting and get first matched version/url, set `sort-matches` to `false`.\n\nThe [`versions`](#version-constraining) property is supported.\n\n#### URL templates\n\nThe HTML checker also supports building the download URL using\nthe retrieved version string, its components according to our\nLooseVersion implementation (see `src/lib/version.py` based on\ndistutils' implementation before it was removed from Python stdlib in\n3.12) and semantic versioning fields:\n\n```json\n\"x-checker-data\": {\n    \"type\": \"html\",\n    \"url\": \"https://www.example.com/download.html\",\n    \"version-pattern\": \"The latest version is ([\\\\d\\\\.-]*)\",\n    \"url-template\": \"https://www.example.com/$version/v$version.tar.gz\"\n}\n```\n\n```json\n\"x-checker-data\": {\n    \"type\": \"html\",\n    \"url\": \"https://www.example.com/download.html\",\n    \"version-pattern\": \"The latest version is ([\\\\d\\\\.-]*)\",\n    \"url-template\": \"https://www.example.com/$major.$minor/v$version.tar.gz\"\n}\n```\n\nIf the placeholder is immediately followed by an underscore, you need to add braces:\n\n```json\n\"x-checker-data\": {\n    \"type\": \"html\",\n    \"url\": \"https://www.example.com/download.html\",\n    \"version-pattern\": \"The latest version is ([\\\\d\\\\.-]*)\",\n    \"url-template\": \"https://www.example.com/$version0.$version1/v${version0}_${version1}_version2.tar.gz\"\n}\n```\n\n### Git checker\n\nTo check for latest git tag in corresponding git source repo, add checker\nmetadata with type `git` and set `tag-pattern` to a regular expression with\nexactly one match group (the pattern will be used to extract version from tag):\n\n```json\n\"x-checker-data\": {\n    \"type\": \"git\",\n    \"tag-pattern\": \"^v([\\\\d.]+)$\"\n}\n```\n\nBy default tags are sorted based on version number extracted from tag.\nTo disable sorting and keep order from `git ls-remote`, set `sort-tags` to `false`.\n\nIf the tags are just the version without anything else e.g. `1.0`, you don't need to\nspecify a `tag-pattern`.\n\nIf the project follows [semver](https://semver.org/) specification, you can set\n`version-scheme` property to `semantic` in order to use semantic version scheme for sorting.\nIn this case, make sure that `tag-pattern` extracts only valid semver strings.\n\nThe [`versions`](#version-constraining) property is supported.\n\n### JSON checker\n\nThe JSON checker allows using [jq](https://stedolan.github.io/jq/) to query\nJSON data with arbitrary schema to get version and download url.\n\nTo use the **JSONChecker**, specify JSON data URL, version query and url query\n(you can use `$version` variable got from the version query in url query):\n\n```json\n\"x-checker-data\": {\n    \"type\": \"json\",\n    \"url\": \"https://api.github.com/repos/stedolan/jq/releases/latest\",\n    \"version-query\": \".tag_name | sub(\\\"^jq-\\\"; \\\"\\\")\",\n    \"url-query\": \".assets[] | select(.name==\\\"jq-\\\" + $version + \\\".tar.gz\\\") | .browser_download_url\"\n}\n```\nfor git type sources, specify tag query and, optionally, commit and version queries:\n```json\n\"x-checker-data\": {\n    \"type\": \"json\",\n    \"url\": \"https://api.github.com/repos/stedolan/jq/releases/latest\",\n    \"tag-query\": \".tag_name\",\n    \"version-query\": \"$tag | sub(\\\"^jq-\\\"; \\\"\\\")\",\n    \"timestamp-query\": \".published_at\"\n}\n```\n\n`timestamp-query` is optional, but if provided - must return a string with timestamp in ISO format.\n\nSee the [jq manual](https://stedolan.github.io/jq/manual/) for complete information about writing queries.\n\n#### Inheriting parent source check results\n\nIf a parent source is specified, its check results will be accessible in the `$parent` variable.\nThe `$parent` object has `current` and `new` properties with objects representing current and new\nparent source data, respectively. The later can be `null` if parent check didn't get a new version.\nJSON schema for these objects can be found [here](data/source-state.schema.json).\n\n\n### Debian repo checker\n\nFor the **DebianRepoChecker**, which deals only with deb packages, it\ncan read the following metadata (add it to manifest element it refers\nto, e.g. where \"type\": \"extra-data\" is declared):\n\n```json\n\"x-checker-data\": {\n    \"type\": \"debian-repo\",\n    \"package-name\": \"YOUR_PACKAGE_NAME\",\n    \"root\": \"ROOT_URL_TO_THE_DEBIAN_REPO\",\n    \"dist\": \"DEBIAN_DIST\",\n    \"component\": \"DEBIAN_COMPONENT\"\n}\n```\n\n### Anitya (release-monitoring) checker\n\n[Anitya](https://github.com/fedora-infra/anitya) is an upstream release monitoring\nproject by Fedora. It supports multiple backends for retrieving version information\nfrom different services, including GitHub, GitLab, Sourceforge, etc.\nTo use the **AnityaChecker**, specify numeric project ID on release-monitoring.org\nand add a template for source download URL.\n[Template syntax](#URL-templates) is the same as for the **HTMLChecker**:\n\n```json\n\"x-checker-data\": {\n    \"type\": \"anitya\",\n    \"project-id\": 6377,\n    \"stable-only\": false,\n    \"versions\": {\"\u003c\": \"1.12.0\"},\n    \"url-template\": \"https://github.com/flatpak/flatpak/releases/download/$version/flatpak-$version.tar.xz\"\n}\n```\n\nSet `stable-only` to `false` to include unstable releases (as recognized by Anitya).\n\nThe [`versions`](#version-constraining) property is supported.\n\nFor git type sources, instead of `url-template`, set `tag-template` to derive git tag from version.\n\n### GNOME checker\n\nCheck for latest source tarball for a GNOME project.\n\n```json\n\"x-checker-data\": {\n    \"type\": \"gnome\",\n    \"name\": \"pygobject\",\n    \"versions\": {\n        \"\u003c\": \"3.38.0\"\n    },\n    \"stable-only\": true\n}\n```\n\nSet `stable-only` to `false` to check for pre-releases, too. By default, any\nversion that contains the string `alpha`, `beta` or `rc` is considered a\npre-release, following the dominant convention since GNOME 40. To override this,\nset `version-scheme` to `odd-minor-is-unstable` to consider any version with an\nodd second component to be a pre-release.\n\nThe [`versions`](#version-constraining) property is supported.\n\n### PyPI checker\n\nCheck for Python package updates on PyPI.\n\n```json\n\"x-checker-data\": {\n    \"type\": \"pypi\",\n    \"name\": \"Pillow\"\n}\n```\n\nBy default it will check for source package (`sdist` package type).\nTo check for binary package instead, set `packagetype` to `bdist_wheel`\n(only noarch wheels are supported currently).\n\nThe [`versions`](#version-constraining) property is supported.\n\n### Electron Auto Update checker\n\nElectron [auto update](https://www.electron.build/auto-update.html) mechanism uses remotely stored\nmetadata files to check for updates. This metadata can be tracked for Flatpak manifest updates.\n\n```yaml\nx-checker-data:\n  type: electron-updater\n  url: https://example.com/download/latest-linux.yml\n```\n\nThe `url`, if set, must link to a Electron Auto Update metadata file (usually `latest-linux.yml`).\nIf `url` is omitted, the checker will try to guess it based on the current source url.\n\nMake sure to use `sha512` checksum for the source, unless it's an `extra-data` (which supports `sha256` only).\n\n### JetBrains checker\n\nSpecial checker that will check for available updates\nfor [JetBrains](https://www.jetbrains.com/) products:\n\n```json\n\"x-checker-data\": {\n    \"type\": \"jetbrains\",\n    \"code\": \"PRODUCT-CODE\",\n    \"release-type\": \"release or eap (defaults to release)\"\n}\n```\n\n### Snapcraft checker\n\nSpecial checker that will check for available updates\nfor [Snapcraft](https://snapcraft.io/) packages:\n\n```json\n\"x-checker-data\": {\n    \"type\": \"snapcraft\",\n    \"name\": \"PACKAGE-NAME\",\n    \"channel\": \"stable, beta, or any other tag the project uses\"\n}\n```\n\n### Rust checker\n\nSpecial checker that will check for available updates\nfor [Rust](https://www.rust-lang.org/):\n\n```json\n\"x-checker-data\": {\n    \"type\": \"rust\",\n    \"package\": \"package name, for example: rust\",\n    \"channel\": \"nightly, stable or beta\",\n    \"target\": \"target triple, for example: x86_64-unknown-linux-gnu\"\n}\n```\n\n### Chromium checker\n\nSpecial checker that will check for available updates to the\n[Chromium](https://www.chromium.org/) tarballs, as well as the toolchain\nbinaries or sources used to build it.\n\n```json\n\"x-checker-data\": {\n    \"type\": \"chromium\",\n    \"component\": \"chromium, llvm-prebuilt, or llvm-git; defaults to chromium\"\n}\n```\n\nThe following components are supported:\n\n- `chromium`: updates the Chromium tarball itself, used on URL-based sources\n  (e.g. `type: archive`).\n- `llvm-prebuilt`: updates a tarball pointing to the official LLVM prebuilt\n  toolchain archive matching the latest Chromium version. Used on URL-based\n  sources.\n- `llvm-git`: updates a `type: git` source for its commit to point to the LLVM\n  sources for the toolchain used by the latest Chromium version.\n\n### Release URL template\n\nWhen updating the metainfo file with the release information of the main\nsource if a `release-url-template` is provided in the `x-checker-data`\nlike below a `\u003curl type=\"details\"\u003e\u003c/url\u003e` tag will also be added.\n\nThe `$version` in `release-url-template` will be replaced by the release\nversion.\n\n```yaml\nx-checker-data:\n    type: json\n    url: https://api.github.com/repos/example/foobar/releases\n    version-query: map(select(.prerelease)) | first | .tag_name\n    url-query: map(select(.prerelease)) | first | .assets[] | select(.name==\"foobar-x86_64.tar.gz\")| .browser_download_url\n    release-url-template: https://github.com/example/foobar/releases/tag/$version\n    is-main-source: true\n```\n\n## License and Copyright\n\nLicense: GPLv2\n\nCopyright © 2018–2019 Endless Mobile, Inc.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fflathub-infra%2Fflatpak-external-data-checker","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fflathub-infra%2Fflatpak-external-data-checker","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fflathub-infra%2Fflatpak-external-data-checker/lists"}