def make_url(value): value.repository as $repo | if value.type == "Git" then if $repo.type == "Git" then "git+\($repo.url)?ref=\(value.branch)" elif $repo.type == "GitHub" then "github:\($repo.owner)/\($repo.repo)/\(value.branch)" elif $repo.type == "Forgejo" then "git+\($repo.server)/\($repo.owner)/\($repo.repo)?ref=\(value.branch)" else error("Invalid repository type: '\($repo.type)'") end elif value.type == "GitRelease" then if $repo.type == "GitHub" then "github:\($repo.owner)/\($repo.repo)/\(value.version)" else error("Invalid repository type: '\($repo.type)'") end elif value.type == "Channel" then empty else error("Invalid value type: '\(value.type)'") end ; "{ \( .pins | to_entries | map( " \"\(.key)\" = { url = \"\(make_url(.value))\"; };" ) | join("\n") ) }"