... | @@ -17,7 +17,54 @@ Quando se deseja desenvolver um projeto de software e utilizar uma ou mais ferra |
... | @@ -17,7 +17,54 @@ Quando se deseja desenvolver um projeto de software e utilizar uma ou mais ferra |
|
|
|
|
|
Os procedimentos de instalação são detalhados na [documentação do GitLab](https://about.gitlab.com/install/) e a instalação numa máquina com um dos SOs compatíveis (ex.: Ubuntu Linux) e dedicada ao GitLab é bem simples e direta.
|
|
Os procedimentos de instalação são detalhados na [documentação do GitLab](https://about.gitlab.com/install/) e a instalação numa máquina com um dos SOs compatíveis (ex.: Ubuntu Linux) e dedicada ao GitLab é bem simples e direta.
|
|
|
|
|
|
No LabES, o GitLab foi instalado no mesmo servidor que hospeda a [página do laboratório](http://labes.inf.ufes.br/). Neste caso, visto que o GitLab é baseado no servidor HTTP [nginx](https://nginx.org/) e o site do LabES estava sendo hospedado numa instância do servidor [Apache](https://httpd.apache.org/), ajustes tiveram que ser realizados no procedimento de instalação.
|
|
Ao concluir os procedimentos de instalação, obtenha a senha do usuário `root` no arquivo `/etc/gitlab/initial_root_password`, acesse o GitLab recém instalado e entre com este usuário, trocando sua senha no primeiro acesso. Aproveite para editar o perfil do `root`, substituindo o e-mail por um endereço real. O GitLab enviará um e-mail para este endereço para confirmá-lo. Verifique se o recebeu.
|
|
|
|
|
|
|
|
Caso não tenha recebido, confira no arquivo de log `/var/log/mail.log` se há algum problema. [Esta resposta no Stack Overflow](https://stackoverflow.com/a/22866811) sugere que seja instalado um pacote (`sudo apt-get install mailutils`) para poder realizar testes de envio de e-mail a partir do terminal do servidor, verificando assim se o `postfix` é capaz de enviar mensagens. Caso você veja no log uma mensagem parecida com a seguinte:
|
|
|
|
|
|
|
|
```log
|
|
|
|
connect to ASPMX.L.GOOGLE.COM[2404:6800:4008:c04::1a]:25: Network is unreachable
|
|
|
|
```
|
|
|
|
|
|
|
|
Siga as instruções [desta outra resposta no Stack Exchange](https://serverfault.com/a/493099), edite o arquivo `/etc/postfix/main.cf` e substitua a configuração abaixo, reiniciando o serviço (`/etc/init.d/postfix restart`) após a alteração:
|
|
|
|
|
|
|
|
```shell
|
|
|
|
inet_protocols = ipv4
|
|
|
|
```
|
|
|
|
|
|
|
|
Pode ser interesante também [alterar o fuso-horário do GitLab](https://docs.gitlab.com/ee/administration/timezone.html) para o fuso local. Para isso, edite o arquivo `/etc/gitlab/gitlab.rb`, remova o comentário e altere o valor da configuração abaixo, reconfigure (`sudo gitlab-ctl reconfigure`) e reinicie (`sudo gitlab-ctl restart`) o GitLab após a alteração:
|
|
|
|
|
|
|
|
```shell
|
|
|
|
gitlab_rails['time_zone'] = 'Brazil/East'
|
|
|
|
```
|
|
|
|
|
|
|
|
Por fim, realize a [ativação do GitLab](https://docs.gitlab.com/ee/administration/license.html), caso você tenha uma licença. Instituições de ensino podem participar do [GitLab for Education](https://about.gitlab.com/solutions/education/join/).
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
## Como usar/aplicar?
|
|
|
|
|
|
|
|
Durante o procedimento de instalação é criado um usuário administrador (`root`). Entrando no sistema como _root_, outros usuários podem ser criados clicando-se em **Menu > Admin** e selecionando a opção **Overview > Users**. Ao indicar o e-mail do novo usuário, ele receberá uma notificação para entrar na plataforma e configurar sua senha.
|
|
|
|
|
|
|
|
Projetos podem ser criados por usuários que tenham permissão para tal em **Menu > Projects > Create new project**. Existem modelos (_templates_) de projetos, mas pode-se também importar projetos de outros repositórios (ex.: [GitHub](https://github.com/)) ou criar projetos em branco. Após criados os projetos, eles podem ser encontrados em **Menu > Projects > Your projects**.
|
|
|
|
|
|
|
|
Ao abrir um projeto, pode-se acessar as funcionalidades mais comuns a partir do menu à esquerda, por exemplo:
|
|
|
|
|
|
|
|
- **Project Information > Labels**: criação de rótulos para organização das tarefas do projeto em quadros (_boards_). Por exemplo, pode-se usar para montar quadros Kanban;
|
|
|
|
- **Project Information > Members**: adicionar usuários da plataforma ao projeto;
|
|
|
|
- **Repository > Files**: navegar pelos arquivos já produzidos no contexto do projeto, com destaque para o `README.md` que pode conter instruções gerais do projeto em formato [MarkDown](https://daringfireball.net/projects/markdown/);
|
|
|
|
- **Issues > Boards**: gerenciar as tarefas do projeto em quadros (_boards_), por exemplo quadros Kanban;
|
|
|
|
- **Merge Requests**: gerenciar as requisições de fusão e fazer revisões de código.
|
|
|
|
|
|
|
|
Em um contexto acadêmico, recomenda-se o professor administrador da plataforma [se cadastrar no programa GitLab for Education](https://about.gitlab.com/solutions/education/join/) de modo a conseguir gratuitamente uma licença GitLab Ultimate.
|
|
|
|
|
|
|
|
|
|
|
|
## Lições aprendidas a partir do uso no LabES
|
|
|
|
|
|
|
|
A partir do uso do GitLab no contexto do LabES, temos as seguintes dicas para compartilhar:
|
|
|
|
|
|
|
|
### Instalação conjunta com o site do LabES:
|
|
|
|
|
|
|
|
Em sua primeira encarnação no LabES, o GitLab foi instalado no mesmo servidor que hospeda a [página do laboratório](http://labes.inf.ufes.br/). Neste caso, visto que o GitLab é baseado no servidor HTTP [nginx](https://nginx.org/) e o site do LabES estava sendo hospedado numa instância do servidor [Apache](https://httpd.apache.org/), ajustes tiveram que ser realizados no procedimento de instalação.
|
|
|
|
|
|
Dentre as opções: (a) adaptar o GitLab para rodar no Apache; (b) colocar o site do LabES para rodar no nginx; ou (c) manter os dois servidores HTTP, gerenciando portas de acesso, redirecionamentos, etc., optou-se pela alternativa (b) após algumas experimentações em que os resultados foram sendo avaliados. A alternativa (b) se mostrou a menos problemática.
|
|
Dentre as opções: (a) adaptar o GitLab para rodar no Apache; (b) colocar o site do LabES para rodar no nginx; ou (c) manter os dois servidores HTTP, gerenciando portas de acesso, redirecionamentos, etc., optou-se pela alternativa (b) após algumas experimentações em que os resultados foram sendo avaliados. A alternativa (b) se mostrou a menos problemática.
|
|
|
|
|
... | @@ -140,28 +187,6 @@ $ gitlab-ctl reconfigure |
... | @@ -140,28 +187,6 @@ $ gitlab-ctl reconfigure |
|
$ gitlab-ctl restart
|
|
$ gitlab-ctl restart
|
|
```
|
|
```
|
|
|
|
|
|
|
|
|
|
## Como usar/aplicar?
|
|
|
|
|
|
|
|
Durante o procedimento de instalação é criado um usuário administrador (`root`). Entrando no sistema como _root_, outros usuários podem ser criados clicando-se em **Menu > Admin** e selecionando a opção **Overview > Users**. Ao indicar o e-mail do novo usuário, ele receberá uma notificação para entrar na plataforma e configurar sua senha.
|
|
|
|
|
|
|
|
Projetos podem ser criados por usuários que tenham permissão para tal em **Menu > Projects > Create new project**. Existem modelos (_templates_) de projetos, mas pode-se também importar projetos de outros repositórios (ex.: [GitHub](https://github.com/)) ou criar projetos em branco. Após criados os projetos, eles podem ser encontrados em **Menu > Projects > Your projects**.
|
|
|
|
|
|
|
|
Ao abrir um projeto, pode-se acessar as funcionalidades mais comuns a partir do menu à esquerda, por exemplo:
|
|
|
|
|
|
|
|
- **Project Information > Labels**: criação de rótulos para organização das tarefas do projeto em quadros (_boards_). Por exemplo, pode-se usar para montar quadros Kanban;
|
|
|
|
- **Project Information > Members**: adicionar usuários da plataforma ao projeto;
|
|
|
|
- **Repository > Files**: navegar pelos arquivos já produzidos no contexto do projeto, com destaque para o `README.md` que pode conter instruções gerais do projeto em formato [MarkDown](https://daringfireball.net/projects/markdown/);
|
|
|
|
- **Issues > Boards**: gerenciar as tarefas do projeto em quadros (_boards_), por exemplo quadros Kanban;
|
|
|
|
- **Merge Requests**: gerenciar as requisições de fusão e fazer revisões de código.
|
|
|
|
|
|
|
|
Em um contexto acadêmico, recomenda-se o professor administrador da plataforma [se cadastrar no programa GitLab for Education](https://about.gitlab.com/solutions/education/join/) de modo a conseguir gratuitamente uma licença GitLab Ultimate.
|
|
|
|
|
|
|
|
|
|
|
|
## Lições aprendidas a partir do uso no LabES
|
|
|
|
|
|
|
|
A partir do uso do GitLab no contexto do LabES, temos as seguintes dicas para compartilhar:
|
|
|
|
|
|
|
|
### Projetos Públicos:
|
|
### Projetos Públicos:
|
|
|
|
|
|
Após a instalação do GitLab, grupos e projetos são criados como privativos por padrão, exigindo que a pessoa tenha uma conta no GitLab e seja membro do projeto para poder abrir e ver o mesmo. Alguns projetos (como, por exemplo, o próprio [Catálogo do LabES](https://gitlab.labes.inf.ufes.br/labes/catalogo/)) devem estar abertos ao público em geral e, portanto, devem ser configurados como públicos.
|
|
Após a instalação do GitLab, grupos e projetos são criados como privativos por padrão, exigindo que a pessoa tenha uma conta no GitLab e seja membro do projeto para poder abrir e ver o mesmo. Alguns projetos (como, por exemplo, o próprio [Catálogo do LabES](https://gitlab.labes.inf.ufes.br/labes/catalogo/)) devem estar abertos ao público em geral e, portanto, devem ser configurados como públicos.
|
... | | ... | |