{"id":30344462,"url":"https://github.com/lingrino/glen","last_synced_at":"2025-08-18T12:42:18.277Z","repository":{"id":39617130,"uuid":"182138702","full_name":"lingrino/glen","owner":"lingrino","description":"cli to export gitlab variables","archived":false,"fork":false,"pushed_at":"2025-08-07T11:31:47.000Z","size":1309,"stargazers_count":16,"open_issues_count":2,"forks_count":2,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-08-07T13:26:42.142Z","etag":null,"topics":["cli","gitlab","go","golang"],"latest_commit_sha":null,"homepage":"https://lingrino.com","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/lingrino.png","metadata":{"funding":{"github":"lingrino"},"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2019-04-18T18:33:00.000Z","updated_at":"2025-07-06T01:12:42.000Z","dependencies_parsed_at":"2022-07-10T14:46:41.545Z","dependency_job_id":"172c2325-435d-43b0-ac92-bc2aa34116fe","html_url":"https://github.com/lingrino/glen","commit_stats":null,"previous_names":[],"tags_count":31,"template":false,"template_full_name":null,"purl":"pkg:github/lingrino/glen","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lingrino%2Fglen","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lingrino%2Fglen/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lingrino%2Fglen/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lingrino%2Fglen/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lingrino","download_url":"https://codeload.github.com/lingrino/glen/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lingrino%2Fglen/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":270996197,"owners_count":24681933,"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-18T02:00:08.743Z","response_time":89,"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":["cli","gitlab","go","golang"],"created_at":"2025-08-18T12:42:15.955Z","updated_at":"2025-08-18T12:42:18.236Z","avatar_url":"https://github.com/lingrino.png","language":"Go","funding_links":["https://github.com/sponsors/lingrino"],"categories":[],"sub_categories":[],"readme":"# Glen\n\n[![Glen](assets/logo-md.png?raw=true)](assets/logo-md.png \"Glen\")\n\n[![PkgGoDev](https://pkg.go.dev/badge/github.com/lingrino/glen/glen)](https://pkg.go.dev/github.com/lingrino/glen/glen)\n[![goreportcard](https://goreportcard.com/badge/github.com/lingrino/glen)](https://goreportcard.com/report/github.com/lingrino/glen)\n\nGlen is a simple command line tool that, when run within a local GitLab project, will call the GitLab API to get all environment variables from your project's CI/CD pipeline and print them locally, ready for exporting.\n\nWith the default flags you can run `eval $(glen -r)` to export your project's variables and the variables of every parent group.\n\n## Installation\n\nThe easiest way to install glen is with [homebrew][]\n\n```console\nbrew install lingrino/tap/glen\n```\n\nGlen can also be installed using [asdf][]:\n\n```console\nasdf plugin-add glen\nasdf install glen latest\nasdf global glen latest\n```\n\nGlen can also be installed by downloading the latest binary from the releases page and adding it to your path.\n\nAlternatively you can install glen using `go get`, assuming you have `$GOPATH/bin` in your path.\n\n```console\ngo install github.com/lingrino/glen@latest\n```\n\n## Usage\n\nBy default glen assumes that you have a GitLab API key exported as `GITLAB_TOKEN` and that you are calling glen from within a git repo where the GitLab remote is named `origin` (see `git remote -v`).\n\nYou can override all of these settings, specifying the API key, git directory, or GitLab remote name as flags on the command line (see `glen --help`).\n\nBy default glen will only get the variables from the current GitLab project. If you would also like glen to merge in variables from all of the project's parent groups then you can use `glen -r`\n\nLastly, the default output for glen is called `export`, meaning that the output is ready to be read into your shell and will export all variables. This lets you call glen as `eval $(glen)` as a one line command to export all variables locally. You can also specify a `json` or `table` output for more machine or human friendly outputs.\n\n```console\n$ glen --help\nGlen is a simple command line tool that, when run within a GitLab project,\nwill call the GitLab API to get all environment variables from your project's\nCI/CD pipeline and print them locally, ready for exporting.\n\nWith the default flags you can run 'eval $(glen -r)' to export your project's\nvariables and the variables of every parent group.\n\nUsage:\n  glen [flags]\n  glen [command]\n\nAvailable Commands:\n  completion  Generate the autocompletion script for the specified shell\n  help        Help about any command\n  version     Returns the current glen version\n\nFlags:\n  -k, --api-key string       Your GitLab API key, if not set as a GITLAB_TOKEN environment variable (default \"GITLAB_TOKEN\")\n  -d, --directory string     The directory where you're git repo lives. Defaults to your current working directory (default \".\")\n  -g, --group-only           Set group to true to get only variables from the parent groups.\n  -h, --help                 help for glen\n  -o, --output string        One of 'export', 'json', 'table'. Default 'export', which can be executed to export variables (default \"export\")\n  -r, --recurse              Set recurse to true if you want to include the variables of the parent groups\n  -n, --remote-name string   Name of the GitLab remote in your git repo. Defaults to 'origin' (default \"origin\")\n\nUse \"glen [command] --help\" for more information about a command.\n```\n\n## Contributing\n\nGlen does one thing (reads variables from GitLab projects) and should do that one thing well. If you notice a bug with glen please file an issue or submit a PR.\n\nAlso, all contributions and ideas are welcome! Please submit an issue or a PR with anything that you think could be improved.\n\nIn particular, this project could benefit from the following:\n\n- [ ] Tests that mock git repos\n\n|                Contributors                |\n| :----------------------------------------: |\n| [@solidnerd](https://github.com/solidnerd) |\n|    [@bradym](https://github.com/bradym)    |\n\n[homebrew]: https://brew.sh/\n[asdf]: https://asdf-vm.com/\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flingrino%2Fglen","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flingrino%2Fglen","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flingrino%2Fglen/lists"}