5-gitlab.tex 11.1 KB
\chapter{Gitlab}
\label{cap:gitlab}

O GitLab é um software livre de colaboração de código online que utiliza o sistema de controle de versão Git (explicado mais detalhadamente no capítulo \ref{cap:git}). O GitLab disponibiliza uma interface para o gerenciamento de códigos, rastreamento e estado de problemas (issue tracker), uma wiki interna, ferramentas para gerenciamento de grupos, de revisão de código (code review) e mescla de código (merge requests), que auxilia em especial, os projetos com muitos integrantes.

Ele ainda proporciona ainda diversas outras ferramentas para manter seus usuários sempre atentos aos eventos relacionados aos seus projetos, através de \textit{feeds} e formas bem diretas de se observar mudanças em códigos de uma versão para outra. Há também uma forma de se observar graficamente, as atividades dos membros dos projetos e os estados das diversas ramificações (\textit{branches}) que o Git permite criar. Abaixo é apresentado a lista das principais funcionalidades que o Gitlab possui:

\begin{itemize}
	\item Editor web.
	\item Notificações globais e por projeto.
	\item \textit{Branches} (ramificações) e gráficos de \textit{branches}.
	\item Pesquisa no código.
	\item \textit{Feeds} de atividades por projeto.
	\item Administração de membros e projetos.
	\item Rastreamento de problemas (\textit{issue tracker}).
	\item \textit{Merge Request}.
	\item Merge automático.
	\item \textit{Wiki}.
	\item Revisão de código.
	\item Acesso ao código fonte.
	\item Mural do projeto.
\end{itemize}

Atualmente existe uma versão do Gitlab no novo portal do Software Público, que é utilizado pelos desenvolvedores para criação/divulgação do seu software no portal.

\section{Trabalhando com o Gitlab}
\subsection{Configuração do Gitlab}

O Gitlab utiliza a chave pública SSH da máquina para realizar a autenticação sem a necessidade da utilização de senhas. Através da configuração dessa chave é possível utilizar todas as funções que o Gitlab oferece, para realizar a configuração basta:

	\begin{itemize}
		\item Gerar a chave SSH pública e colocá-la no Gitlab. 
		\item Disponibilizar a chave no Gitlab.
	\end{itemize}

Para gerar a chave pública SSH, existe um tutorial disponível no site oficial do git, ou até mesmo no próprio SPB. Esses links estão disponiveis em

	\begin{itemize}
		\item Git: \url{https://git-scm.com/book/pt-br/v1/Git-no-Servidor-Gerando-Sua-Chave-P\%C3\%BAblica-SSH};
		\item SPB: \url{https://softwarepublico.gov.br/social/spb/como-faco-pra-utilizar-o-ambiente-colaborativo}

	\end{itemize}
	
Logo após gerar essa chave pública, o usuário deve adicioná-la no Gitlab do novo Software Público Brasileiro. Para isso o usuário deve:

	\begin{itemize}
		\item Logar no portal SPB;
	\end{itemize}	 

Em seguida, o usuário deve acessar o Menu superior > Desenvolvimento > Perfil. A tela ilustrada pela Figura X será apresentada.

IMAGEM

Logo após o usuário, deve selecionar a opção "SSH Keys" no menu superior, de acordo com a Figura X.

IMAGEM

Depois de selecionar a opção "SSH Keys", o usuário vera a tela ilustrada pela Figura X. Nessa tela possui todos as chaves SSH cadastradas pelos usuários, isto é, cada chave pode ou não representar cada computador utilizado pelo desenvolvedor. Para adicionar uma nova chave, o usuário deve clicar na opção "Add SSH Key".

IMAGEM

No momento de adição da chave SSH, o usuário deve preencher um formulário com 2 (dois) campos, que contém: 
	\begin{itemize}	
		\item \textbf{Title} - Nome que identifica o computador do desenvolvedor. (Ex: Computador do Trabalho)
		\item \textbf{Key} - Campo da Chave SSH gerada e que deve ser copiada para o campo.
	\end{itemize}
	
Após isso, será necessário somente a configuração do Git no ambiente de desenvolvimento do usuário, que será apresentada na seção /ref{cap:git}. 

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\subsection{Projetos}

Projetos são repositórios que abrigam os artefatos de um software, sendo eles documentos, códigos, modelos, entre outros. Normalmente cada software possui seu próprio projeto, caso existam módulos ou outras partes do projeto é recomendado que se crie um grupo (a parte de grupos será explicado na seção \ref{sub:grupos}).

No link \url{https://softwarepublico.gov.br/gitlab/explore/projects}, possui todos os repositórios e softwares públicos disponíveis.

\label{sub:gitlab_projeto}
\subsubsection{Criando um novo Projeto}

Caso esteja começando um novo projeto de software, é necessário que faça a criação de um novo projeto no Gitlab. Para realizar isso, o usuário deve acessar no menu superior a opção de "Desenvolvimento" e logo após "Novo Projeto", após isso, é apresentada a tela ilustrada pela Figura X.

Na tela da criação do projeto serão requisitados alguns dados como:

\begin{itemize}
	\item Project Name: Nome do Software;
	\item Namespace: Pessoa ou grupo que terá a permissão no projeto;
	\item Description: Descrição sucinta e clara do Software; 
	\item Visibility: Privacidade do Projeto\footnote{O Gitlab permite que os projetos possam ser configurados de acordo com a necessidade do desenvolvedor}
		\begin{itemize}
			\item Private - O projeto só pode ser acessado pelos membros do mesmo. Além disso, ele fica oculto para todos os usuários.
			\item Internal - O projeto fica aberto para os usuários, no entanto, só podem ser clonado apenas por usuários logados.
			\item Public - Qualquer usuário independente de estar logado, consegue visualizar e clonar o projeto.
		\end{itemize}
\end{itemize}

\subsubsection{Acessando a página inicial do Projeto}

Quando 

\subsubsection{Transferindo Projeto}



\subsubsection{Excluíndo o Projeto}

Para excluir um projeto, o usuário deve acessar a página inicial do projeto e entrar nas configurações, escolhendo a opção "Settings", que está localizada na barra superior do Gitlab.


Na tela de configuração, o usuário deve localizar a opção "Remove project", conforme Figura X. Depois deve selecionar o botão chamado de "Remove project".


Será aberta uma popup pedindo para o usuário confirmar a exclusão do projeto, para isso, ele deve digitar o nome do projeto de acordo com o destacado pela mensagem. Feito esses passos, o projeto já está excluído:

Observação: É importante ressaltar que uma vez que o projeto é excluído, não será possível recuperá-lo, então utilize essa opção se tiver certeza que deseja excluir.


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\subsection{Grupos}
\label{sub:grupos}

O Gitlab permite a criação de grupos para trabalho conjunto entre os usuários. O grupo permite a criação de uma coleção de projetos relacionados. 

\subsubsection{Criação do grupo}

Para criar um grupo, o usuário deve localizar a opção "Desenvolvimento" no menu superior, logo após deve acessar a opção "Grupos", a Figura X representa o menu de Grupos.

IMAGEM

Após acessar o menu de Grupos, o usuário deve selecionar a opção "New Group", que é mostrado pela Figura X

IMAGEM

O usuário deve preencher três campos, que são:

\begin{itemize}
	\item \textbf{Group name -} O nome que identificará o grupo;
	\item \textbf{Details -} Detalhes sobre o grupo, projetos que estão; e relacionados, entre outros
	\item \textbf{Group avatar -} Imagem de avatar do grupo.
\end{itemize}

Após isso o grupo já está criado, e podem ser colocados projetos e membros para trabalho. O link para acesso o grupo (como mostrado em \ref{link:gitlab_grupo}) será:

\begin{lstlisting}[caption={Link de disponibilização do grupo}, label=link:gitlab_grupo]
	https://softwarepublico.gov.br/gitlab/groups/NOMEDOGRUPO
\end{lstlisting}

Observação: Ao criar o grupo do software a equipe de administração do portal colocará os administradores com a permissão de administração no grupo do projeto. O administrador receberá um e-mail com orientações.

\subsubsection{Adicionando membros e permissões}

Após criar e acessar o grupo, o usuário deve localizar no menu superior direito (abaixo do cabeçalho do SPB), a opção "Members". A Figura X ilustra a página do projeto com a opção "Members" destacada.

IMAGEM

Logo após, o Gitlab vai oferecer uma tela que contém todos os membros que fazem parte do grupo, o usuário deve acessar a opção Add members e preencher o campo com o nome do usuário que deseja adicionar. Além disso, o dono do grupo deve adicionar o tipo de permissão que o usuário pode ter. Essas permissões estão disponíveis (em inglês) nesse \href{http://doc.gitlab.com/ce/ci/permissions/README.html}{link}.
 
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\subsection{Issue Tracker}

O Gitlab possui um sistema para controle de problemas, requisições, demandas, bugs, entre outros. Esse sistema que é chamado de issue tracker, facilita o controle do desenvolvimento do projeto.

Para acessar a páginas de issue do seu projeto, o usuário deve acessar a página inicial do projeto e localizar a opção "Issues" no menu superior do Gitlab. Será disponibilizada uma tela semelhante a ilustrada pela Figura X.

IMAGEM

\subsubsection{Cadastrando uma nova issue}

Acessando a tela principal de controle das issues, logo ao lado do campo de pesquisa de issues, existe uma opção chamada *NEW ISSUES*. Após selecionar a opção, uma tela de cadastro semelhante a ilustrada pela Figura X será apresentada.

IMAGEM

Nessa tela de cadastro o usuário deve informar o problema/sugestão encontrada

\subsubsection{Tags}

Um issue tracker permite a categorização das demandas de acordo com tags, isto é, uma issue quando aberta pode ser categorizada de acordo com o seu tipo, ferramenta, release de ajuste, entre outros filtros, que podem ser definidos pelos desenvolvedores. 

\subsubsection{Milestones}

Milestones são marcos do projeto, ou seja, são objetivos que devem estar prontos em uma determinada data. Esses marcos podem ser um conjunto de várias issues, merge requests e participantes associados.

Para criação de milestones o usuário deve acessar a página inicial do projeto, em seguida deve localizar a opção Issues no menu superior. Será apresentada a mesma tela da Figura X (ISSUES). Após isso, o usuário deve selecionar a aba *MILESTONES*, abaixo do menu principal do Gitlab.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{Wiki}

O Gitlab também fornece uma wiki colaborativa, para que os desenvolvedores que não desejem colocar a documentação dentro do código fonte do software, possam colocar todos os artefatos relacionados a este software dentro do próprio sistema de wikis do Gitlab.

Para acessar a wiki, o usuário deve acessar a página inicial do projeto no Gitlab (repositório) e no menu superior direito (ao lado de "Settings"), deve acessar a opção Wiki.

Existem 3 tipos de notações para escrita na Wiki do Gitlab, sendo a mais utilizada a Markdown. Toda a documentação e notação relacionada ao Markdown está disponível neste \href{https://softwarepublico.gov.br/gitlab/help/markdown/markdown}{link}.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%g