Um vez criado o token, vá ao grupo que deseja clonar e anote o número (porque ele será usado na chamada à API).
curl "https://git.acme.com/api/v4/groups/$GRUPO?private_token=$TOKEN" \
| jq .projects[].ssh_url_to_repo \
| tr -d '"' \
| xargs -I{} git clone {}
Troque $GRUPO pelo número do grupo e $TOKEN pelo token criado para autenticar.Um comando alternativo:
curl "https://git.acme.com/api/v4/groups/$GRUPO/projects?private_token=$TOKEN" \
| jq .[].http_url_to_repo \
| tr -d '"' \
| xargs -I{} git clone {}
Separei o comando em 4 partes:
- O curl busca um json que descreve o grupo e todos os projetos;
- O jq extrai de cada projeto a url de acesso;
- O tr retira as aspas que circundam a url do projeto;
- O xargs executa o git clone para cada projeto.
find . -type f -exec grep -Pi "my_funny_var" /dev/null {} \; > search.txt
Neste caso, procuro por "my_funny_var". As opções usadas são:- -type f - analisa apenas arquivos;
- -exec - executa esse comando para cada arquivo encontrado;
- -Pi - usa expressões regulares do Perl (porque permitem agrupamentos, opções, etc) sem considerar a caixa.
- /dev/null - é um nome de arquivo extra para obrigar o grep a imprimir o nome do arquivo antes da linha encontrada (como estamos pesquisando por vários arquivos, queremos identificar cada um nos resultados).