{"id":18632320,"url":"https://github.com/apenella/gitlabcli","last_synced_at":"2025-05-07T17:42:34.737Z","repository":{"id":44883022,"uuid":"393998220","full_name":"apenella/gitlabcli","owner":"apenella","description":"Gitlabcli is a command line tool to interact with Gitlab","archived":false,"fork":false,"pushed_at":"2024-12-18T06:45:14.000Z","size":153,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-12-18T07:41:40.965Z","etag":null,"topics":["clean-code","cli","gitlab","golang","golang-application"],"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/apenella.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","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":"2021-08-08T15:27:57.000Z","updated_at":"2024-12-18T06:45:17.000Z","dependencies_parsed_at":"2024-06-20T21:50:47.187Z","dependency_job_id":"a0efad53-f956-4632-a424-52505595d2fc","html_url":"https://github.com/apenella/gitlabcli","commit_stats":{"total_commits":40,"total_committers":2,"mean_commits":20.0,"dds":"0.025000000000000022","last_synced_commit":"217b29740d619953e813ba97d47a233b19b1c13c"},"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apenella%2Fgitlabcli","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apenella%2Fgitlabcli/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apenella%2Fgitlabcli/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apenella%2Fgitlabcli/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/apenella","download_url":"https://codeload.github.com/apenella/gitlabcli/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":231455858,"owners_count":18379375,"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":["clean-code","cli","gitlab","golang","golang-application"],"created_at":"2024-11-07T05:11:39.576Z","updated_at":"2024-12-27T07:42:58.677Z","avatar_url":"https://github.com/apenella.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Gitlabcli\n\nGitlabcli is a command line tool to interactuate with Gitlab repository\n\n- [Gitlabcli](#gitlabcli)\n  - [Getting started](#getting-started)\n    - [Installation](#installation)\n      - [Installation from tarball](#installation-from-tarball)\n    - [Configuration](#configuration)\n      - [Environment variables](#environment-variables)\n      - [Configuration parameteres](#configuration-parameteres)\n    - [Commands](#commands)\n    - [Authentication](#authentication)\n  - [Comming updates, new features or ideas](#comming-updates-new-features-or-ideas)\n  - [License](#license)\n\n\u003e **Disclaimer**: gitlabcli has only been tested on Linux systems\n\n## Getting started\n\n### Installation\n\n#### Installation from tarball\n- Download `gitlabcli` tarball from github releases\n```sh\n$ curl -sLO https://github.com/apenella/gitlabcli/releases/download/v0.3.1/gitlabcli_0.3.1_Linux-x86_64.tar.gz\n```\n\n- Untar `gitlabcli` package\n```sh\n$ tar xzfv gitlabcli_0.3.1_Linux-x86_64.tar.gz\n```\n\n- Start using `gitlabcli`\n```sh\n$ gitlabcli -help\nSet of utils to manage Gitlab repositories\n\nUsage:\n  gitlabcli [flags]\n  gitlabcli [command]\n\nAvailable Commands:\n  clone       Clone repositories from Gitlab to localhost\n  completion  generate the autocompletion script for the specified shell\n  get         Get information from Gitlab\n  help        Help about any command\n  initialize  Initializes gitlabcli\n  list        List Gitlab contents\n  version     gitlabcli version\n\nFlags:\n      --config string   Configuration file\n  -h, --help            help for gitlabcli\n\nUse \"gitlabcli [command] --help\" for more information about a command.\n```\n\n### Configuration\nBefore start using *gitlabcli* you must create its configuration file.\nBy default, configuration file location is `~/.config/gitlabcli/config.yml` but you could store it to any location. In that case, `--config` flag must be provided on the command call.\n\nYou could run the `initialize` subcommand to initialize `gitlabcli`. That command takes care to initialize the configuration parameters properly.\n```sh\n$ gitlabcli initialize --gitlab-api-url https://mygitlab.com/api/v4 --working-dir /projects\n```\n\n#### Environment variables\n`gitlabcli` supports environment variables configuration. In that case, environment variables must be named as uppercased parameter name and prefixed by `GITLABCLI_`. For instance, `working_dir` parameter could be configured by `GITLABCLI_WORKING_DIR` environment variable.\n\n#### Configuration parameteres\n\n| Parameter  | Type  | Description |\n|---|---|---|\n| **gitlab_api_url** | string | Gitlab API URL base. Check it on [Gitlab documentation](https://docs.gitlab.com/ee/api/#how-to-use-the-api) |\n| **gitlab_token** | string | Token to authenticate to Gitlab API |\n| **working_dir** | string | Location to store cloned projects |\n\n\nExample:\n```yaml\ngitlab_api_url: https://mygitlab.com/api/v4\ngitlab_token: ThatIsAGitlabToken\nworking_dir: /projects\n```\n\n### Commands\n- **Clone**: Clone one or multiple projects from Gitlab. It also supports to clone all Gitlab projects or those projects that belong to a group.\n- **List**\n    - Achieve a Gitlab *projects* list\n    - Achieve a Gitlab *groups* list\n- **Get**\n    - Get *project* details\n    - Get *group* details\n- **Initialize**: Initialize gitlabcli configuration\n\n### Authentication\n*list* and *get* operations uses Gitlab API and requires a Gitlab token.\n\n*Clone* operations only support to clone over ssh and the only supported authentication method is ssh-agent\n\n## Comming updates, new features or ideas\n- Private key file authentication when cloning projects\n- User/pass authentication when cloning projects over HTTP/S\n  \n## License\ngitlabcli is available under [MIT](https://github.com/apenella/gitlabcli/blob/master/LICENSE) license.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fapenella%2Fgitlabcli","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fapenella%2Fgitlabcli","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fapenella%2Fgitlabcli/lists"}