{"id":15470432,"url":"https://github.com/nicolasdscp/giwow","last_synced_at":"2026-02-25T20:31:56.975Z","repository":{"id":50669408,"uuid":"519569285","full_name":"nicolasdscp/giwow","owner":"nicolasdscp","description":"Manage your git projects with one command","archived":false,"fork":false,"pushed_at":"2022-08-21T10:27:14.000Z","size":95,"stargazers_count":3,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-10-23T16:47:44.469Z","etag":null,"topics":["automation","git","gitlab","golang","workspaces"],"latest_commit_sha":null,"homepage":"https://giwow.run","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/nicolasdscp.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}},"created_at":"2022-07-30T16:40:27.000Z","updated_at":"2022-11-03T08:13:13.000Z","dependencies_parsed_at":"2022-08-12T22:00:57.705Z","dependency_job_id":null,"html_url":"https://github.com/nicolasdscp/giwow","commit_stats":null,"previous_names":[],"tags_count":9,"template":false,"template_full_name":null,"purl":"pkg:github/nicolasdscp/giwow","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nicolasdscp%2Fgiwow","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nicolasdscp%2Fgiwow/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nicolasdscp%2Fgiwow/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nicolasdscp%2Fgiwow/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nicolasdscp","download_url":"https://codeload.github.com/nicolasdscp/giwow/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nicolasdscp%2Fgiwow/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29838063,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-25T19:08:47.527Z","status":"ssl_error","status_checked_at":"2026-02-25T18:59:04.705Z","response_time":61,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6: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":["automation","git","gitlab","golang","workspaces"],"created_at":"2024-10-02T02:04:39.111Z","updated_at":"2026-02-25T20:31:56.957Z","avatar_url":"https://github.com/nicolasdscp.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n \u003ch1  align=\"center\"\u003e🔱 Giwow\u003c/h1\u003e\n \u003ch4 align=\"center\"\u003eManage your git projects with one command\u003c/h4\u003e\n  \u003cp align=\"center\"\u003e\n    \u003ca href=\"https://go.dev/blog/go1.18\"\u003e\n      \u003cimg alt=\"Go version\" src=\"https://img.shields.io/badge/go-1.18-blue\" /\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://github.com/nicolasdscp/giwow/actions\"\u003e\n      \u003cimg alt=\"Lint passing\" src=\"https://github.com/nicolasdscp/giwow/actions/workflows/golangci-lint.yml/badge.svg\" /\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://giwow.run\"\u003e\n      \u003cimg alt=\"Documentation\" src=\"https://img.shields.io/badge/documentation-giwow.run-blue\" /\u003e\n    \u003c/a\u003e\n  \u003c/p\u003e\n\u003c/p\u003e\n\nGiwow is a simple `git` workspace manager. \nIt allows you to manage all projects in a Gitlab group for example.\nClone, pull and push your projects in a single command. \nYou can connect `giwow` with Jira to sync your backlogs and issue.\n\n```\n$ giwow\nGit workspace manager\n\nUsage:\n  giwow [command]\n\nAvailable Commands:\n  help        Help about any command\n  projects    Manage projects in the current workspace\n  prune       Delete all configuration files and all workspaces\n  token       Manage your platform tokens. This will interact with your $HOME/.netrc file\n  workspace   Manage workspaces\n\nFlags:\n      --debug     Enable debug and verbose messages, use in development only\n  -h, --help      help for giwow\n  -t, --toggle    Help message for toggle\n      --verbose   Enable verbose messages\n```\n\n## 🔑 Key features\n\n- [Create workspace](https://giwow.run/workspace)\n- [Manage your tokens in `.netrc` file](https://giwow.run/token)\n- [Discover your projects from your Gitlab account](https://giwow.run/projects)\n- [Clone all your projects in a single command](https://giwow.run/projects)\n- [Open multiple projects with your favorite editor in one command](https://giwow.run/projects)\n\n\u003e For more information, please visit [Giwow website](https://giwow.run)\n\n## 🚀 Getting started\n\n### 📦 Installation\n\n```shell\n$ go install github.com/nicolasdscp/giwow@v0.6.0\n```\nor \n\n```shell\n$ git clone https://github.com/nicolasdscp/giwow.git\n$ git checkout v0.6.0\n$ make install\n```\n\n### 🖥 Setting up your workspace\n\nChoose a folder where your project's workspace will be stored. \nThen init a new workspace.\n\n```shell\n$ giwow workspace init \u003cworkspace-url\u003e\n```\n\nThe workspace url must be a valid host URL. Look at the examples below.\n\n```\nprivate.gitlab.com/\n└── org/\n    └── groupA/\n        └── subGroupA/\n            ├── subsubGroupA/\n            │   ├── project1\n            │   └── ...\n            ├── project1\n            └── ...\n```\n\nIf you want to manage all project in subsubGroupA, you can use the following command:\n\n```shell\n$ giwow workspace init private.gitlab.com/org/groupA/subGroupA/subsubGroupA\n```\n\nIf you think bigger and you want to manage all project in subGroupA including projects in subgroup, you can use the following command:\n\n```shell\n$ giwow workspace init private.gitlab.com/org/groupA/subGroupA\n```\n\n\u003e This format is required if you manage to connect to Gitlab or Github to clone your repositories.\n\n### 🕵🏼‍ Working with private repositories\n\nIn order to work with private repositories, you need to configure `~/.netrc`.\nYou can let giwow manage your credentials for you, or you can configure it manually.\nIf you don't want to configure it manually, you can use the `giwow token add` command.\n\n```shell\n$ giwow token add \u003crepo-url\u003e\nor\n$ giwow token add \u003crepo-url\u003e -u my-user -p my-token\n```\n\nThis will basically add a new entry to `~/.netrc` with the following content:\n\n```shell\nmachine \u003crepo-url\u003e login my-user password my-token\n```\n\nYou can list all your tokens with the `giwow token ls` command.\n\n### 🦊 Gitlab connection\n\nGiwow will use your `.netrc` file to connect to your Gitlab account.\nFirst you need to authenticate with your Gitlab account. \nIt's highly recommended to use a personal access token instead of your password.\nThen configure giwow to use your Gitlab account.\nNote that if tou already have a personal access token in your `.netrc`, you can skip this step.\n\n```shell\n$ giwow token add gitlab.com -u gitlab-username -p access-token\n```\n\u003e Note that you can replace `gitlab.com` with your Gitlab domain.\n\n\u003e To generate a personal access token see [Gitlab personal access tokens](https://docs.gitlab.com/ee/user/profile/personal_access_tokens.html)\n\nNow set the type of your workspace to `gitlab`.\n\n```shell\n$ giwow workspace set --type gitlab\n```\n\n**Working with gitlab allows you to automatically discover and clone all your projects.**\n\n## 📚 Working with projects\n\nNow you can manage your projects with the `giwow projects` command.\n\n### Adding your projects\n\n```shell\n$ giwow projects add \u003cproject1\u003e \u003cproject2\u003e ...\n```\n\n\u003e You can add the `--clone` flag to clone projects directly.\n\nIf you are using a Gitlab workspace you can automatically discover all your projects in your workspace.\n\n```\n$ giwow projects discover\n\u003e 🔎 Discovering projects in the current workspace ...\n\u003e 🦊 Using Gitlab API to discover projects ...\n\u003e 🎉 Discovered 13 projects\n\u003e ✅ 13 project(s) added to the workspace\n```\n\n\u003e Note that `discover` will also add projects in sub groups. \n\u003e Giwow will automatically clone these projects in the good hierarchy.\n\n\u003e Giwow will ignore archived projects.\n\n### Cloning your projects\n\nNow you probably want to clone your projects.\n\n```shell\n$ giwow projects clone\n```\n\n## 🛟 Useful commands\n\nIf you want to know more about a command, you can use the `giwow [command] -h` command.\n\n```shell\n$ giwow workspace info # Show workspace info\n$ giwow projects prune # Delete all projects present in the workspace file (Not projects by themself)\n$ giwow prune # Remove all configuration file from all workspaces including $HOME/.giwow\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnicolasdscp%2Fgiwow","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnicolasdscp%2Fgiwow","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnicolasdscp%2Fgiwow/lists"}