{"id":31770045,"url":"https://github.com/jfrog/taskverse","last_synced_at":"2025-10-10T02:56:38.196Z","repository":{"id":137595560,"uuid":"595492776","full_name":"jfrog/taskverse","owner":"jfrog","description":null,"archived":false,"fork":false,"pushed_at":"2024-01-08T16:45:59.000Z","size":155,"stargazers_count":2,"open_issues_count":4,"forks_count":1,"subscribers_count":4,"default_branch":"master","last_synced_at":"2024-06-21T15:41:01.961Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Go","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/jfrog.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":"2023-01-31T07:32:36.000Z","updated_at":"2024-01-08T07:18:20.000Z","dependencies_parsed_at":"2024-06-21T14:20:20.167Z","dependency_job_id":null,"html_url":"https://github.com/jfrog/taskverse","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/jfrog/taskverse","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jfrog%2Ftaskverse","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jfrog%2Ftaskverse/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jfrog%2Ftaskverse/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jfrog%2Ftaskverse/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jfrog","download_url":"https://codeload.github.com/jfrog/taskverse/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jfrog%2Ftaskverse/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279002512,"owners_count":26083403,"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-10-10T02:00:06.843Z","response_time":62,"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-10-10T02:56:30.215Z","updated_at":"2025-10-10T02:56:38.188Z","avatar_url":"https://github.com/jfrog.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# taskverse\n\n## About this plugin\nThis plugin allows developers to run JFrog Pipelines Tasks locally in their own machines.\nIt helps with the development process by considerably reducing the feedback loop.\n\n## Installation with JFrog CLI\n\nInstalling the latest version:\n\n`$ jf plugin install taskverse`\n\nInstalling a specific version:\n\n`$ jf plugin install taskverse@version`\n\nUninstalling a plugin\n\n`$ jf plugin uninstall taskverse`\n\n## Usage\n\n### Commands\n\n* run\n    - Arguments:\n        - path_to_task - Path to the folder containing the task.yml file **[Required]**\n        - arg - Arguments to the task in the format `--arg=\"key=value\"`. Can be specified multiple times **[Optional]**\n        - env - Environment variables in the format `--env=\"key=value\"`. Can be specified multiple times **[Optional]**\n    - Flags:\n        - integrations - Path to file containing integrations to be added to the environment\n        - on-step-complete - Enable onStepComplete hook execution **[Default: false]**\n        - post-task-script - Path to a script to be executed after the task is done\n    - Example:\n```shell\n→ jf taskverse run /home/user/jfrog-pipelines-task-hello-world --arg=\"name=user\" --integrations ./integrations.json\n13:54:40 [🔵Info] Parsing project integrations\n13:54:40 [🔵Info] All build plane dependencies are available\n13:54:40 [🔵Info] Docker dependency is available\n13:54:40 [🔵Info] Assembling stepJson file\n13:54:40 [🔵Info] Assembling steplet script\n13:54:40 [🔵Info] Creating required folders and files at /Users/eliom/workspace/pip/src/taskverse/devenv/.taskverse\n13:54:40 [🔵Info] Checking docker network\n13:54:40 [🔵Info] Docker network taskverse is available\n13:54:40 [🔵Info] Checking dind container\n13:54:41 [🔵Info] Dind container taskverse-dind is running\n13:54:41 [🔵Info] Checking for stale containers from previous runs\nError: No such container: taskverse-run\n13:54:41 [🔵Info] Booting task container\n16: Pulling from jfrog/pipelines-u20node\nDigest: sha256:b8005e9273433f19aaa1b8cd36d301b43413bf300d1b44c43c6b3ffcd3c506b0\nStatus: Image is up to date for releases-docker.jfrog.io/jfrog/pipelines-u20node:16\nUsing JFrog CLI jf version 2.29.2\n\nTASK =\u003e execution\npipe task --name /task --id task --arg name=user\nnode16 dist/index.js main\n[Info] Hello user!\n```\n\n## Dependencies\n\n-  Docker 20.x or newer\n\n## Limitations\n\n- This plugin does not work on Windows environments\n\n## How does it work?\n\nThe plugin uses a Docker container to emulate the step environment and provide \nall the tools available to a step in a real build node. It has a lightweight\nimplementation of the build node agent that assembles a steplet script containing \nall required environmental configurations required by a step, including required \nfiles and folders, environment variables and utility functions. This script also \ncontains the required commands to execute the task.\n\nTo emulate the step environment the plugin uses the Ubuntu 20 node 16 build image: \nreleases-docker.jfrog.io/jfrog/pipelines-u20node:16. It also uses the reqKick image\nto fetch some additional dependencies, including the utility functions script,\nthe JFrog cli and the pipe tool. The docker client dependency is downloaded from\nhttps://download.docker.com.\n\nA dind container is used to fully isolate the step environment from the host environment.\nBy doing that we allow tasks to use docker at full capacity without risking disrupting\nthe developer host machine.\n\nThe following docker components are created when using this plugin:\n- `taskverse` docker network\n- `taskverse-dind` dind docker container\n- `taskverse-run` steplet docker container\n- `taskverse-reqKick` temporary docker container used to fetch build plane dependencies\n\n### Important Directories\n\nThe dependencies downloaded by the plugin are cached under `$JFROG_CLI_HOME/plugins/taskverse/resources/dependencies`\n\nWhen running the plugin, the current working directory (the location where the \nplugin was executed) is mounted to the container as the current step working directory. \nAny changes made by the task to the current step working directory will be reflected\nin the current working directory. Inside the container the current working directory\ncan be referenced via `/workdir`. This is specially useful when passing inputs or\nsetting environment variables used by the task that need to point to files or folders\nin the current workspace.\n\nAdditional changes made by the task, including changes to task outputs, step\nworkspace, step cache, run state, pipelines state and so on are available at \n`.taskverse`. Developers can inspect the content generated there to make sure \ntheir tasks are working as expected.\n\n## Release Notes\n\nThe release notes are available [here](RELEASE.md).\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjfrog%2Ftaskverse","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjfrog%2Ftaskverse","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjfrog%2Ftaskverse/lists"}