{"id":22870209,"url":"https://github.com/berquerant/install-via-git-go","last_synced_at":"2025-12-27T21:08:54.246Z","repository":{"id":185634832,"uuid":"673855321","full_name":"berquerant/install-via-git-go","owner":"berquerant","description":null,"archived":false,"fork":false,"pushed_at":"2025-03-01T11:31:43.000Z","size":282,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-03-31T11:30:31.903Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/berquerant.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-08-02T15:17:27.000Z","updated_at":"2025-03-01T11:31:41.000Z","dependencies_parsed_at":"2023-09-26T18:52:23.784Z","dependency_job_id":"ae79eee0-6257-4f4c-a721-f6e35559c375","html_url":"https://github.com/berquerant/install-via-git-go","commit_stats":null,"previous_names":["berquerant/install-via-git-go"],"tags_count":24,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/berquerant%2Finstall-via-git-go","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/berquerant%2Finstall-via-git-go/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/berquerant%2Finstall-via-git-go/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/berquerant%2Finstall-via-git-go/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/berquerant","download_url":"https://codeload.github.com/berquerant/install-via-git-go/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252903661,"owners_count":21822484,"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","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":"2024-12-13T13:14:08.650Z","updated_at":"2025-12-27T21:08:54.227Z","avatar_url":"https://github.com/berquerant.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# install-via-git-go\n\n```\n❯ install-via-git help\ninstall-via-git installs tools via git.\n\nUsage:\n  install-via-git [command]\n\nAvailable Commands:\n  completion  Generate the autocompletion script for the specified shell\n  help        Help about any command\n  parse       Parse config file\n  run         Run installation\n  skeleton    Generate config skeleton\n  uninstall   Run uninstallation\n  version     Show version info\n\nFlags:\n      --debug   Enable debug logs\n  -h, --help    help for install-via-git\n\nUse \"install-via-git [command] --help\" for more information about a command.\n```\n\n## Configuration\n\n```\n❯ install-via-git skeleton\n# install-via-git configuration.\n#\n# install-via-git executes the process in the following order.\n#\n# 1. check the lockfile, the local repository\n# 2. determine the update strategy\n# 3. execute check\n# 4. execute setup\n# 5. manage the local repository\n# 6. execute skip and exit if no update required\n# 7. execute install\n#\n# If an error occurs after 5, rollback the lockfile, the local repository, execute rollback and exit.\n#\n# uninstall subcommand executes the following instead.\n#\n# 1. execute uninstall\n# 2. remove the local repository if --remove or --purge flag is specified\n# 3. clear the lockfile if --purge flag is specified\n#\n# The update strategies are below:\n#\n# - Tunknown: no proper strategy.\n# - TinitFromEmpty: clone repo, create lock\n# - TinitFromEmptyToLock: clone repo, checkout to lock\n# - TinitFromEmptyToLatest: clone repo, update lock\n# - TcreateLock: create lock\n# - TcreateLatestLock: pull latest, create lock\n# - TupdateToLock: checkout to lock\n# - TupdateToLatestWithLock: pull latest, update lock\n# - Tnoop: no operation for repo, no update required\n# - Tretry: no operation for repo, but continue installation\n# - Tnoupdate: no operation for repo and lock, but continue installation\n# - Tremove: remove repo\n#\n# The strategy depends on the following factors:\n# - local repo existence\n# - lock existence\n# - lock and repo status\n# - \"update\" cli option\n# - \"retry\" cli option\n# - \"uninstall\" cli subcommand\n# - \"remove\" cli option\n# - \"purge\" cli option\n#\n# repository uri\nuri: https://github.com/some/toolname.git\n# target branch name (optional, default is main)\nbranch: master\n# git clone destination (optional, default is repo).\n# clone to workDir/locald.\nlocald: localrepo\n# file to store commit hash (optional, default is lock).\n# empty file is assumed to not exist\nlock: lockfile\n# shell to execute scripts (setup, install, ...) (optional).\n# command line \"--shell\" overrides this.\nshell:\n  - /bin/bash\n# environment variables (optional).\n# check, setup, install, rollback, skip can refer the following variables:\n# - IVG_URI=value of repository\n# - IVG_BRANCH=value of branch\n# - IVG_LOCALD=value of locald\n# - IVG_LOCK=value of lock\n# install can refer the following variables:\n# - IVG_WORKD=absolute path of workDir\nenv:\n  MY_NAME: myname\n# check will always run in workDir (optional)\n# cancel installation when returning a failure exit status\ncheck:\n  - echo \"Start check\"\n# setup will always run in workDir (optional)\nsetup:\n  - echo \"Start setup\"\n# install will run when installation is required in workDir/locald (optional)\ninstall:\n  - echo \"Start install\"\n# rollback will run when an error occurs in workDir/locald (optional)\nrollback:\n  - echo \"Start rollback\"\n# skip will run when no update is required in workDir/locald (optional)\nskip:\n  - echo \"Start skip\"\n# uninstall will run by uninstall subcommand (optional)\nuninstall:\n  - echo \"Start uninstall\"\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fberquerant%2Finstall-via-git-go","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fberquerant%2Finstall-via-git-go","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fberquerant%2Finstall-via-git-go/lists"}