Contexto
Github, es uno de los repositorios más famosos del control de versiones GIT. Github cuenta con una herramienta CLI (Command Line Interface) que abre un abanico de posibilidades interesantes para la gestión de los repositorios.
Recientemente, me toco configurar distintos ambientes para un proyecto grande, para la configuración de los pipelines en Github utilizamos las variables y los secreto por ambientes que ofrece Github. El número de variables y entornos a configurar era interesante, con lo cual no era una opción seguirlo haciendo a mano
A continuación resumiré las opciones que ofrece Github cli para configurar las variables de entorno de tus repositorios desde la terminal.
Instalar gh
Para todas las plataformas, todas las opciones de sistemas operativos, el link de instalación[Link], en mi caso macOS.
brew install gh
El comando con el que trabajaremos es gh
gh --version
# Output
# gh version 2.27.0 (2023-04-07)
# https://github.com/cli/cli/releases/tag/v2.27.0
Configurando las variables
gh Ofrece varias opciones de configuración, desde archivos, variables de entorno y a mano.
Configurando las variables una a una
# El valor directamente
$ gh variable set MYVARIABLE_ONE --body value1
# Desde una variable de entorno
$ gh variable set MYVARIABLE_TWO --body "$ENV_VALUE"
# Desde un archivo
$ gh variable set MYVARIABLE_THREE < myfile.txt
Configurando un grupo de variables
Posiblemente, la más poderosa de las opciones porque permite tener varios ambientes configurados localmente y realizando la configuración para cada ambiente, por ejemplo si tenemos .env_dev
, .env_test
# Los ambientes (dev, test) tienen que estar creados previamente
$ gh variable set -f .env_dev --env dev
$ gh variable set -f .env_test --env test
Por ejemplo, el archivo .env_dev
podría ser como se muestra a continuación.
MYVARIABLE_ONE: "value1"
MYVARIABLE_TWO: "value2"
MYVARIABLE_THREE: "value3"
Revisando las variables desde la terminal
con un simple comandos podemos revisar las variables en cada uno de los ambientes que tengamos configurados.
gh variable list --env dev
# Ouput ->
# NAME VALUE UPDATED
# MYVARIABLE_ONE value1 about 4 minutes ago
# MYVARIABLE_THREE value3 about 4 minutes ago
# MYVARIABLE_TWO value2 about 4 minutes ago
y en la web de Github ...
Finalmente, lo mismo funciona para los secretos, se pueden configurar de forma similar, dejo los links en las referencias para que lo revisen ustedes...
¡Saludos y gracias!