Skip to content

Update gitlab.asc #1

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Dec 13, 2017
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
167 changes: 83 additions & 84 deletions book/04-git-server/sections/gitlab.asc
Original file line number Diff line number Diff line change
@@ -1,131 +1,130 @@
=== GitLab

(((serving repositories, GitLab)))(((GitLab)))
GitWeb is pretty simplistic though.
If you're looking for a more modern, fully featured Git server, there are some several open source solutions out there that you can install instead.
As GitLab is one of the more popular ones, we'll cover installing and using it as an example.
This is a bit more complex than the GitWeb option and likely requires more maintenance, but it is a much more fully featured option.
Embora o GitWeb seja bastante simplista, se você estiver procurando por um servidor Git mais moderno e completo, existem algumas soluções de código aberto lá fora que você pode instalar em vez deste.
Como o GitLab é um dos mais populares, vamos cobrir a instalação e usá-lo como um exemplo.
Este é um pouco mais complexo do que a opção GitWeb e provavelmente requer mais manutenção, mas é uma opção muito mais completa.

==== Installation
==== Instalação

GitLab is a database-backed web application, so its installation is a bit more involved than some other Git servers.
Fortunately, this process is very well-documented and supported.
O GitLab é um aplicativo da Web baseado em banco de dados, por isso sua instalação é um pouco mais trabalhosa do que alguns outros servidores Git.
Felizmente, este processo é muito bem documentado e apoiado.

There are a few methods you can pursue to install GitLab.
To get something up and running quickly, you can download a virtual machine image or a one-click installer from https://bitnami.com/stack/gitlab[], and tweak the configuration to match your particular environment.(((bitnami)))
One nice touch Bitnami has included is the login screen (accessed by typing alt-→); it tells you the IP address and default username and password for the installed GitLab.
Existem alguns métodos que você pode seguir para instalar o GitLab.
Para obter algo em execução rapidamente, você pode baixar uma imagem de máquina virtual ou um instalador de um clique em https://bitnami.com/stack/gitlab[] e ajustar a configuração para que corresponda ao seu ambiente particular.(((Bitnami))).
Um toque agradável que Bitnami incluiu é a tela de login (acessada digitando alt-→); Ele informa o endereço IP e o nome de usuário e senha padrão para o GitLab instalado.

[[bitnami]]
.The Bitnami GitLab virtual machine login screen.
image::images/bitnami.png[The Bitnami GitLab virtual machine login screen.]
[[Bitnami]]
.A tela de login da máquina virtual Bitnami GitLab.
image::images/bitnami.png[A tela de login da máquina virtual Bitnami GitLab.]

For anything else, follow the guidance in the GitLab Community Edition readme, which can be found at https://gitlab.com/gitlab-org/gitlab-ce/tree/master[].
There you'll find assistance for installing GitLab using Chef recipes, a virtual machine on Digital Ocean, and RPM and DEB packages (which, as of this writing, are in beta).
There's also ``unofficial'' guidance on getting GitLab running with non-standard operating systems and databases, a fully-manual installation script, and many other topics.
Para qualquer outra coisa, siga as orientações no readme do GitLab Community Edition, que pode ser encontrado em https://gitlab.com/gitlab-org/gitlab-ce/tree/master[].
Lá você encontrará assistência na instalação do GitLab usando receitas do Chef, a máquina virtual no Digital Ocean, e os pacotes RPM e DEB (que, no momento em que este texto foi escrito, estava na versão estável Omnibus, para os sistemas operacionais Ubuntu 14.04, Ubuntu 16.04, Debian 7, Debian 8, CentOS 6, CentOS 7, OpenSUSE 42.1 e Raspberry PI 2 em Raspbian).
Há também guias com orientações ``não oficiais'' para que o GitLab funcione em sistemas operacionais e bancos de dados diferentes dos citados acima, um script para instalação completamente manual e muitos outros tópicos.

==== Administration
==== Administração

GitLab's administration interface is accessed over the web.
Simply point your browser to the hostname or IP address where GitLab is installed, and log in as an admin user.
The default username is `[email protected]`, and the default password is `5iveL!fe` (which you will be prompted to change as soon as you enter it).
Once logged in, click the ``Admin area'' icon in the menu at the top right.
A interface de administração do GitLab é acessada através da web.
Basta apontar o seu navegador para o nome do host ou endereço IP onde o GitLab está instalado e efetuar login como um usuário admin.
O nome de usuário padrão é `[email protected]` e a senha padrão é `5iveL!fe` (que você será solicitado a alterar assim que você entrar nele).
Depois de efetuar login, clique no ícone ``Área de administração'' no menu no canto superior direito.

[[gitlab_menu]]
.The ``Admin area'' item in the GitLab menu.
image::images/gitlab-menu.png[The ``Admin area'' item in the GitLab menu.]
.O item ``Área de administração'' no menu GitLab.
image::images/gitlab-menu.png[O item Área de administração no menu GitLab.]

===== Users
===== Usuários

Users in GitLab are accounts that correspond to people.
User accounts don't have a lot of complexity; mainly it's a collection of personal information attached to login data.
Each user account comes with a *namespace*, which is a logical grouping of projects that belong to that user.
If the user +jane+ had a project named +project+, that project's url would be http://server/jane/project[].
Usuários no GitLab são contas que correspondem a pessoas.
As contas de usuário não têm muita complexidade; A conta de usuário é uma coleção de informações pessoais anexadas aos dados de login.
Cada conta de usuário vem com um *namespace*, que é um agrupamento lógico de projetos que pertencem a esse usuário.
Se o usuário +jane+ tivesse um projeto chamado +project+, o URL do projeto seria http://servidor/jane/project[].

[[gitlab_users]]
.The GitLab user administration screen.
image::images/gitlab-users.png[The GitLab user administration screen.]
.Tela de administração de usuários do GitLab.
image::images/gitlab-users.png[Tela de administração de usuários do GitLab.]

Removing a user can be done in two ways.
``Blocking'' a user prevents them from logging into the GitLab instance, but all of the data under that user's namespace will be preserved, and commits signed with that user's email address will still link back to their profile.
Remoção de um usuário pode ser feito de duas formas.
``Bloquear'' um usuário os impede de logar na instância do Gitlab, mas todos os dados sob o namespace do usuário serão preservados, e os commits assinados com o e-mail do usuário ainda irão direcionar para o perfil do mesmo.

``Destroying'' a user, on the other hand, completely removes them from the database and filesystem.
All projects and data in their namespace is removed, and any groups they own will also be removed.
This is obviously a much more permanent and destructive action, and its uses are rare.
``Destruir'' um usuário, por outro lado, remove o remove completamente do banco de dados e do sistema de arquivos.
Todos os projetos e dados no namespace são removidos, e qualquer outro grupo que ele possua também será removido.
Isso é obviamente uma ação muito mais permanete e destrutiva, e o uso disso é raro.

[[_gitlab_groups_section]]
===== Groups
===== Grupos

A GitLab group is an assemblage of projects, along with data about how users can access those projects.
Each group has a project namespace (the same way that users do), so if the group +training+ has a project +materials+, its url would be http://server/training/materials[].
Um grupo GitLab é um conjunto de projetos, juntamente com dados sobre como os usuários podem acessar esses projetos.
Cada grupo tem um espaço para nome de projeto (da mesma forma que os usuários), então se o grupo +training+ tiver um projeto +materials+, sua url seria http://servidor/training/materials[].

[[gitlab_groups]]
.The GitLab group administration screen.
image::images/gitlab-groups.png[The GitLab group administration screen.]
.Tela de administração de grupos do GitLab.
image::images/gitlab-groups.png[Tela de administração de grupos do GitLab.]

Each group is associated with a number of users, each of which has a level of permissions for the group's projects and the group itself.
These range from ``Guest'' (issues and chat only) to ``Owner'' (full control of the group, its members, and its projects).
The types of permissions are too numerous to list here, but GitLab has a helpful link on the administration screen.
Cada grupo está associado a um número de usuários, cada um com um nível de permissões para os projetos do grupo e para o próprio grupo.
Estes variam de ``Convidado'' (problemas e bate-papo somente) a ``Proprietário'' (controle total do grupo, seus membros e seus projetos).
Os tipos de permissões são muito numerosos para listar aqui, mas o GitLab tem um link útil na tela de administração.

===== Projects
===== Projetos

A GitLab project roughly corresponds to a single Git repository.
Every project belongs to a single namespace, either a user or a group.
If the project belongs to a user, the owner of the project has direct control over who has access to the project; if the project belongs to a group, the group's user-level permissions will also take effect.
Um projeto GitLab corresponde grosso modo a um único repositório Git.
Cada projeto pertence a um único namespace, a um usuário ou a um grupo.
Se o projeto pertence a um usuário, o proprietário do projeto tem controle direto sobre quem tem acesso ao projeto; Se o projeto pertence a um grupo, as permissões de nível de usuário do grupo também terão efeito.

Every project also has a visibility level, which controls who has read access to that project's pages and repository.
If a project is _Private_, the project's owner must explicitly grant access to specific users.
An _Internal_ project is visible to any logged-in user, and a _Public_ project is visible to anyone.
Note that this controls both `git fetch` access as well as access to the web UI for that project.
Cada projeto também tem um nível de visibilidade, que controla quem tem acesso de leitura às páginas desse projeto e ao repositório.
Se um projeto for _Privado_, o proprietário do projeto deve conceder explicitamente acesso a usuários específicos.
Um projeto _Interno_ é visível para qualquer usuário logado, e um projeto _Público_ é visível para qualquer pessoa.
Observe que isso controla tanto o acesso `git fetch` quanto o acesso à interface web do usuário a esse projeto.

===== Hooks
===== Ganchos (hooks)

GitLab includes support for hooks, both at a project or system level.
For either of these, the GitLab server will perform an HTTP POST with some descriptive JSON whenever relevant events occur.
This is a great way to connect your Git repositories and GitLab instance to the rest of your development automation, such as CI servers, chat rooms, or deployment tools.
O GitLab inclui suporte para ganchos (hooks), tanto a nível de projeto como de sistema.
Para qualquer um destes, o servidor GitLab executará um HTTP POST com algum JSON descritivo sempre que ocorrerem eventos relevantes.
Esta é uma ótima maneira de conectar seus repositórios Git e a instância GitLab ao resto de sua automação de desenvolvimento, como servidores CI, salas de bate-papo ou ferramentas de implantação.

==== Basic Usage
==== Uso Básico

The first thing you'll want to do with GitLab is create a new project.
This is accomplished by clicking the ``+'' icon on the toolbar.
You'll be asked for the project's name, which namespace it should belong to, and what its visibility level should be.
Most of what you specify here isn't permanent, and can be re-adjusted later through the settings interface.
Click ``Create Project'', and you're done.
A primeira coisa que você vai querer fazer com o GitLab é criar um novo projeto.
Isso é feito clicando no ícone ``+'' na barra de ferramentas.
Ser-lhe-á pedido o nome do projecto, a qual namespace ele deverá pertencer e que nível de visibilidade deverá ter.
A maior parte do que você especifica aqui não é permanente e pode ser reajustada posteriormente através da interface de configurações.
Clique em ``Criar projeto'' e pronto.

Once the project exists, you'll probably want to connect it with a local Git repository.
Each project is accessible over HTTPS or SSH, either of which can be used to configure a Git remote.
The URLs are visible at the top of the project's home page.
For an existing local repository, this command will create a remote named `gitlab` to the hosted location:
Uma vez que o projeto exista, você provavelmente vai querer conectá-lo com um repositório Git local.
Cada projeto é acessível através de HTTPS ou SSH, sendo que ambos podem ser usados para configurar um Git remoto.
As URLs estão visíveis na parte superior da página inicial do projeto.
Para um repositório local existente, este comando criará um remoto chamado `gitlab` para o local hospedado:

[source,console]
----
$ git remote add gitlab https://server/namespace/project.git
$ git remote add gitlab https://servidor/namespace/project.git
----

If you don't have a local copy of the repository, you can simply do this:
Se você não tem uma cópia local do repositório, você pode simplesmente fazer isso:

[source,console]
----
$ git clone https://server/namespace/project.git
$ git clone https://servidor/namespace/project.git
----

The web UI provides access to several useful views of the repository itself.
Each project's home page shows recent activity, and links along the top will lead you to views of the project's files and commit log.
A interface do usuário da Web fornece acesso a várias visualizações úteis do próprio repositório.
A página inicial de cada projeto mostra as atividades recentes e os links ao longo do topo levam você a exibições dos arquivos do projeto e do log de commits.

==== Working Together
==== Trabalhando juntos

The simplest way of working together on a GitLab project is by giving another user direct push access to the Git repository.
You can add a user to a project by going to the ``Members'' section of that project's settings, and associating the new user with an access level (the different access levels are discussed a bit in <<_gitlab_groups_section>>).
By giving a user an access level of ``Developer'' or above, that user can push commits and branches directly to the repository with impunity.
A maneira mais simples de trabalhar juntos em um projeto GitLab é dar a outro usuário acesso direto de push (envio de commits) ao repositório Git.
Você pode adicionar um usuário a um projeto indo para a seção ``Membros'' das configurações desse projeto e associando o novo usuário com um nível de acesso (os diferentes níveis de acesso estão um pouco descritos em <<_gitlab_groups_section>>).
Ao fornecer a um usuário um nível de acesso de ``Desenvolvedor'' ou superior, esse usuário pode empurrar branches e ramificações diretamente para o repositório.

Another, more decoupled way of collaboration is by using merge requests.
This feature enables any user that can see a project to contribute to it in a controlled way.
Users with direct access can simply create a branch, push commits to it, and open a merge request from their branch back into `master` or any other branch.
Users who don't have push permissions for a repository can ``fork'' it (create their own copy), push commits to _that_ copy, and open a merge request from their fork back to the main project.
This model allows the owner to be in full control of what goes into the repository and when, while allowing contributions from untrusted users.
Outra maneira mais dissociada de colaboração é usar solicitações de mesclagem.
Esse recurso permite que qualquer usuário que possa ver um projeto contribua para ele de forma controlada.
Os usuários com acesso direto podem simplesmente criar uma ramificação, empurrá-la para ele e abrir uma solicitação de mesclagem de seu ramo de volta para `master` ou qualquer outra ramificação.
Os usuários que não têm permissões push para um repositório podem "fork" (criar sua própria cópia), push commit para _aquela_ cópia e abrir uma solicitação de mesclagem de sua bifurcação de volta para o projeto principal.
Este modelo permite que o proprietário esteja no controle total do que entra no repositório e quando, embora permita contribuições de usuários não confiáveis.

Merge requests and issues are the main units of long-lived discussion in GitLab.
Each merge request allows a line-by-line discussion of the proposed change (which supports a lightweight kind of code review), as well as a general overall discussion thread.
Both can be assigned to users, or organized into milestones.
Os pedidos de mesclagem e os problemas são as principais unidades de discussão de longa duração no GitLab.
Cada solicitação de mesclagem permite uma discussão linha a linha da alteração proposta (que suporta um tipo leve de revisão de código), bem como um tópico geral de discussão geral.
Ambos podem ser atribuídos a usuários ou organizados em marcos.

This section is focused mainly on the Git-related features of GitLab, but as a mature project, it provides many other features to help your team work together, such as project wikis and system maintenance tools.
One benefit to GitLab is that, once the server is set up and running, you'll rarely need to tweak a configuration file or access the server via SSH; most administration and general usage can be accomplished through the in-browser interface.
Esta seção é focada principalmente nos recursos relacionados ao Git do GitLab, mas como um projeto maduro, ele fornece muitos outros recursos para ajudar sua equipe a trabalhar em conjunto, como wikis de projeto e ferramentas de manutenção do sistema.
Um benefício para o GitLab é que, uma vez que o servidor está configurado e em execução, você raramente precisará ajustar um arquivo de configuração ou acessar o servidor via SSH; A maior parte da administração e o uso geral podem ser realizados através da interface no navegador.