{"id":27185021,"url":"https://github.com/threefoldtech/publish-flist","last_synced_at":"2026-02-09T05:03:49.058Z","repository":{"id":84223066,"uuid":"217310134","full_name":"threefoldtech/publish-flist","owner":"threefoldtech","description":null,"archived":false,"fork":false,"pushed_at":"2025-06-17T14:17:42.000Z","size":24,"stargazers_count":0,"open_issues_count":1,"forks_count":1,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-06-17T15:31:02.829Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/threefoldtech.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"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}},"created_at":"2019-10-24T13:47:00.000Z","updated_at":"2025-06-17T14:21:28.000Z","dependencies_parsed_at":null,"dependency_job_id":"aafb0160-cf36-46e2-a3c2-7a64962e3256","html_url":"https://github.com/threefoldtech/publish-flist","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/threefoldtech/publish-flist","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/threefoldtech%2Fpublish-flist","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/threefoldtech%2Fpublish-flist/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/threefoldtech%2Fpublish-flist/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/threefoldtech%2Fpublish-flist/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/threefoldtech","download_url":"https://codeload.github.com/threefoldtech/publish-flist/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/threefoldtech%2Fpublish-flist/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":269181056,"owners_count":24373854,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-06T02:00:09.910Z","response_time":99,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":[],"created_at":"2025-04-09T17:10:08.368Z","updated_at":"2026-02-09T05:03:44.022Z","avatar_url":"https://github.com/threefoldtech.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# Publish your work on the Zero-OS Hub\n\nYou can use this GitHub action to automatically pack\nand publish your stuff into the Zero-OS hub.\n\nYou can (for now) use 7 differents action within this action:\n\n## Publish\n\nThis step can be used to pack your stuff and upload the\nresulting flist into the hub (playground).\n\nYou can add an optionnal `root` parameter to choose the root directory.\nBy default `/github/workspace` is used.\n\nThe token needs to be a valid Hub JWT token issued from ItsYou.Online.\nIf you want to use `ThreeFold Connect` token, please use `threefold` and not `token` field.\n\n```yaml\n- name: Publishing flist\n  uses: threefoldtech/publish-flist@master\n  with:\n    action: publish\n    name: demo-from-action.flist\n    token: ${{ secrets.HUB_TOKEN }}\n```\n\n## Promote\n\nThis step can be used to promote an flist from a repository\nto another. You need to choose your cross-user via `user` input.\n\nThe `target` input will be the name of the promoted flist, the `name`\ncontains the original file and repository `repository/source.flist`\n\nThe token needs to be a valid Hub JWT token issued from ItsYou.Online\nIf you want to use `ThreeFold Connect` token, please use `threefold` and not `token` field.\n\n```yaml\n- name: Promoting flist\n  uses: threefoldtech/publish-flist@master\n  with:\n    action: promote\n    user: tf-official-apps\n    name: maxux/demo-from-action.flist\n    target: demo-action-promoted.flist\n    token: ${{ secrets.HUB_TOKEN }}\n```\n\n## Rename\n\nThis step can be used to rename an flist to another name, within your repository.\nYou can use the `user` input to switch to another user before symlinking.\n\nThe input `target` will be the new name.\n\nThe token needs to be a valid Hub JWT token issued from ItsYou.Online\nIf you want to use `ThreeFold Connect` token, please use `threefold` and not `token` field.\n\n```yaml\n- name: Rename flist\n  uses: threefoldtech/publish-flist@master\n  with:\n    action: rename\n    user: tf-official-apps\n    name: my-original.flist\n    target: my-new-name.flist\n    token: ${{ secrets.HUB_TOKEN }}\n```\n\n\n## Symlink\n\nThis step can be used to symlink an flist to another name, within your repository.\nYou can use the `user` input to switch to another user before symlinking.\n\nThe input `target` will be the link name.\n\nThe token needs to be a valid Hub JWT token issued from ItsYou.Online\nIf you want to use `ThreeFold Connect` token, please use `threefold` and not `token` field.\n\n```yaml\n- name: Symlink flist\n  uses: threefoldtech/publish-flist@master\n  with:\n    action: symlink\n    user: tf-official-apps\n    name: demo-action-promoted.flist\n    target: final:symlinked-master.flist\n    token: ${{ secrets.HUB_TOKEN }}\n```\n\n## Cross-Link\n\nThis step can be used to symlink across repository (create a symlink in your user, pointing\nto a file of another user).\nYou can use the `user` input to switch to another user before symlinking.\n\nThe input `target` will be the destination (link to).\n\nThe token needs to be a valid Hub JWT token issued from ItsYou.Online\nIf you want to use `ThreeFold Connect` token, please use `threefold` and not `token` field.\n\n```yaml\n- name: Crosslink flist\n  uses: threefoldtech/publish-flist@master\n  with:\n    action: crosslink\n    user: tf-official-apps\n    name: my-crosslink-file.flist\n    target: maxux/nginx-latest.flist\n    token: ${{ secrets.HUB_TOKEN }}\n```\n\n## Delete\n\nThis step can be used to delete one of your flist.\nYou can use the `user` input to switch to another user before deleting.\n\nThe token needs to be a valid Hub JWT token issued from ItsYou.Online\nIf you want to use `ThreeFold Connect` token, please use `threefold` and not `token` field.\n\n```yaml\n- name: Delete flist\n  uses: threefoldtech/publish-flist@master\n  with:\n    action: delete\n    user: tf-official-apps\n    name: demo-action-promoted.flist\n    token: ${{ secrets.HUB_TOKEN }}\n```\n\n## Readlink\n\nThis step can be used to read the symlink target of an flist, any flist can be resolved.\nThe resulting name (if the flisti is a symlink) will be set on the output `linkpoint` which\nyou can reuse later.\n\n```yaml\n- name: Readlink of the current build flist\n  uses: threefoldtech/publish-flist@master\n  id: readlink\n  with:\n    action: readlink\n    user: tf-official-apps\n    name: demo-action-symlinked.flist\n    token: ${{ secrets.HUB_TOKEN }}\n\n- name: Do something with the readlink\n  run: |\n    echo \"Symlink: ${{ steps.readlink.outputs.linkpoint }}\n```\n\n## Merge\n\nThis step can be used to merge multiple flist present on the hub, to a single one.\nThe resulting name (the final flist) is specified by `name` field. The list of\nflists you want to merge are specified in `target` and are separated by space.\n\n```yaml\n- name: Merge service with ubuntu\n  uses: threefoldtech/publish-flist@master\n  with:\n    action: merge\n    user: tf-official-apps\n    name: my-merged-service.flist\n    target: tf-bootable/ubuntu:18.04.flist maxux/my-service.flist\n    token: ${{ secrets.HUB_TOKEN }}\n```\n\n## Tagging\n\nThis step can be used to tag a remote fist into your own tagging repository.\nYou can use the `user` input to switch to another user before tagging.\n\nThe input `name` will be the tag name and link name (eg: v1.0.0/somelink)\nThe input `target` will be the destination (link to).\n\nThe token needs to be a valid Hub JWT token issued from ItsYou.Online\nIf you want to use `ThreeFold Connect` token, please use `threefold` and not `token` field.\n\n```yaml\n- name: Tagging flist\n  uses: threefoldtech/publish-flist@master\n  with:\n    action: tag\n    user: tf-official-apps\n    name: v1.0.0/nginx\n    target: maxux/nginx-latest.flist\n    token: ${{ secrets.HUB_TOKEN }}\n```\n\n## Cross-Tagging\n\nThis step can be used to symlink a tag into your repository.\nYou can use the `user` input to switch to another user before symlinking.\n\nWarning: `name` must not ends with '.flist' !\n\nThe input `target` will be the destination (link to).\n\nThe token needs to be a valid Hub JWT token issued from ItsYou.Online\nIf you want to use `ThreeFold Connect` token, please use `threefold` and not `token` field.\n\n```yaml\n- name: Crosstag a tag\n  uses: threefoldtech/publish-flist@master\n  with:\n    action: crosstag\n    user: tf-official-apps\n    name: my-crosstag-name\n    target: maxux/v2.0.0\n    token: ${{ secrets.HUB_TOKEN }}\n```\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthreefoldtech%2Fpublish-flist","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fthreefoldtech%2Fpublish-flist","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthreefoldtech%2Fpublish-flist/lists"}