Gerência de Configuração
Estratégia de Backup
Versão do documento: 2.0, 02/01/2025
Introdução
Objetivo
Este documento tem por objetivo documentar toda a estratégia de backup utilizada pela Basis, bem como estabelecer critérios de backup e evidenciar a realização da prática através de relatórios, apontando problemas e correções.
Escopo
Considera-se no escopo deste documento abordar todas as etapas e procedimentos que são necessários para a construção efetiva de um backup, tal como as configurações e breves explicações sobre o funcionamento de ferramentas envolvidas.
Ferramentas Utilizadas
Todo o processo de backup da Basis é realizado através da ferramenta Bacula, centralizada em uma máquina especializada, de nome Amsterdam. O Bacula é um framework para administração, restauração e verificação de backups e dados de máquinas seletas em uma rede. A configuração do Bacula é dividida em três partes:
Bacula Director
O Director (bacula-dir.conf) é a parte mais complexa do sistema, em que se figura toda a configuração dos trabalhos de backup (job), agendamentos, pools, seleção dos alvos de backup (FileSet), definição do tipo de armazenamento, etc. Em suma, configuram-se os clientes e arquivos que farão parte do backup, além de realizar a comunicação entre os clientes e dispositivos de armazenamento.
Bacula File Daemon
File Daemon (bacula-fd.conf). Todos os clientes que possuem esse daemon em execução estabelecem uma comunicação com o Director, que por sua vez gerencia todas as máquinas e redireciona os dados destas para o Storage.
Bacula Storage Daemon
Storage Daemon (bacula-sd.conf) é o arquivo de configuração do Bacula, em que se relacionam os dispositivos de armazenamento, como fitas e discos, para organizar os dados armazenados advindos do Director. Esse agente estabelece a comunicação com tais dispositivos, armazenando ou recuperando os arquivos específicos de cada cliente.
Backup
Há três tipos diferenciados de backup realizados na Basis:
- Backup Full/Total
-
backup completo dos dados. O próximo backup, seja ele Diferencial ou Incremental, usará este como referencial, portanto, é obrigatório para seguir com todos os backups seguintes. Na Basis, esse tipo de backup é realizado no primeiro domingo de cada mês. Para restaurar um backup Full, pode-se restaurar todo o job que realizou o backup, ou seja, restaurar todos os arquivos copiados, ou selecionar apenas os arquivos que se deseja restaurar a partir deste job.
- Backup Diferencial
-
somente os arquivos novos ou modificados desde o último backup completo (Full) são transmitidos. Neste modelo, o espaço ocupado com o armazenamento dos arquivos é maior em relação ao Incremental, mas o tempo para restauração dos dados é menor. Na Basis, fazemos esse tipo de backup todos os domingos, às 23h. Para restaurar um backup Diferencial, pode-se restaurar todo o job do backup Diferencial desejado, ou seja, apenas aqueles arquivos que foram copiados, tomando como referência o último backup Full. Se o desejado for restaurar outro diferencial que não seja o imediatamente anterior, é preciso inicialmente restaurar o último backup Full, e depois avançar até o diferencial desejado.
- Backup Incremental
-
somente os arquivos novos ou modificados desde a última execução do backup são transmitidos. Nesse modelo, o espaço ocupado com o armazenamento dos arquivos é menor, e o tempo para restauração dos dados é maior. Na Basis, esse tipo de backup é realizado todos os dias, às 23h. Para restaurar um Backup Incremental, pode-se restaurar todo o Job do backup desejado, ou seja, apenas os arquivos copiados, tomando como referência o último backup, seja ele Full, Diferencial ou Incremental. Caso o interesse seja restaurar todo o backup, desde outro referencial que não seja o imediatamente anterior, é preciso inicialmente restaurar o backup Diferencial antecedente ao desejado, e em seguida os incrementais seguintes até o que se deseja restaurar.
As máquinas internas que seguem as especificações de backup acima listadas são as seguintes:
- orlando
-
Máquina do SGO, inclui todas as configurações e anexos de ocorrências da Basis. Os seguintes diretórios são salvos:
/etc /var/lib /volumes
- brasilia
-
Servidores reverse proxy que servem de ponto de entrada externo para os principais sistemas utilizados pela Basis. Os seguintes diretórios são salvos:
/etc/apache2
- bridgetown
-
Servidores reverse proxy que servem de ponto de entrada externo para os principais sistemas desenvolvidos pela Basis. Os seguintes diretórios são salvos:
/etc/nginx
- praga
-
Máquina do NFS com drive SSD, onde são salvos os dados utilizados em ambientes de produção da Basis que exigem mais dinamismo de escrita e leitura, como os repositórios e configurações do Git (Gitlab) e SonarQube, entre outros. Os seguintes diretórios são salvos:
/etc /opt /export/rancher
- mykonos
-
Máquina do NFS com drive HD, onde são salvos os dados utilizados em ambientes de produção da Basis, como dados do site da Basis, Chat Basis (RocketChat), repositórios de imagens e bibliotecas (Nexus), entre outros. Os seguintes diretórios são salvos:
/mnt/nfs_kube/nexus_docker
- ottawa
-
Máquina do NFS com drive HD, onde são salvos os dados utilizados pelo Jenkins, como configurações de Jobs, plugins, bibliotecas baixadas do Nexus para construção, entre outros. Os seguintes diretórios são salvos:
/etc /opt /export/rancher
- panama
-
Máquina do Rancher de produção da Basis, onde fica armazenada toda a configuração da infraestrutura de produção rodando em Rancher 2. Os seguintes diretórios são salvos:
/etc /opt /srv/rancher2/volume
- amsterdam
-
Máquina do Bacula, inclui toda a configuração de backup para restauração dos clientes. O seguinte diretório é salvo:
/etc/bacula
Estratégia de Verificação, Verificação por pares e Validação
Versão do documento: 4.0, 02/01/2025
Verificação por Pares
A verificação por pares é executada para identificar defeitos na documentação dos candidatos enviada aos clientes.
A Basis realiza verificações por pares em seus artefatos através da técnica de Inspeção, onde um revisor fará uma inspeção com base em critérios, nos artefatos selecionados.
São efetuadas inspeções em documentações dos candidatos enviadas aos clientes, com base em critérios definidos nas ferramentas SGO. No momento da inspeção, a tarefa deve ser atribuída ao revisor, que deverá então analisar os documentos à luz dos critérios padronizados. Caso problemas sejam identificados, estes poderão ser relatados no texto de observação existente no checklist, bem como em evidências de captura de tela, quando pertinente.
Em todas as revisões por pares o revisor deve se preocupar em:
Verificar se o modelo está na versão mais atual da Biblioteca de Ativos * Garantir que o formato do documento está conforme o modelo * Garantir que as seções estão conforme o modelo * Garantir que houve correção ortográfica automática no documento * Garantir que não foram excluídas as seções do modelo
Artefatos verificados por pares
Documentação dos candidatos
-
Analista de RH deve revisar as informações dos candidatos apresentadas na documentação antes do envio ao cliente:
-
Verificar se comprovações de experiência estão conforme o definido no contrato
-
Verificar se certificações estão conforme o definido no contrato, caso aplicável
-
Verificar se versão atual do currículo do candidato
Guia de Gerência de Configuração
Versão do documento: 4.1, 17/02/2025
Critérios
A BASIS define 2 modos de controle de itens de configuração:
- FORMAL
-
todo item de configuração de controle formal, que não seja elaborado internamente ao SGO, deverá ser inserido em baseline e sua alteração deverá ser analisada e aprovada antes da execução. Todo o ciclo de vida é gerenciado em ferramenta. Para alterações nestes itens é necessário criar uma tarefa de descrição da mudança a ser realizadas.
Obs.: A Baseline deve ser gerada conforme o estabelecimento dos requisitos dos serviços na fase de planejamento. Para ICs organizacionais, a periodicidade está definida no cronograma do projeto de melhoria de processos. Nelas estarão presentes todos os Ics de nível de controle formal.
- CONTROLE DE VERSÃO
-
itens de configuração de controle de versão não necessitam ser inseridos em baseline, mas podem constar como forma de rastreamento de registro. Sua alteração é gerenciada em ferramenta (SGO), sendo que o registro da causa de alteração é realizado no momento do versionamento.
A BASIS define que todo produto de trabalho é um item de configuração, e o nível de seu controle é caracterizado conforme abaixo:
-
Os requisitos dos perfis definidos no contrato serão considerados itens de configuração de controle formal.
-
Os produtos de trabalho decorrentes de atividades gerenciais e de suporte serão considerados itens de configuração com controle de versão.
-
Os produtos de trabalho decorrentes de atividades da biblioteca de ativos serão considerados itens de configuração com controle Formal por solicitações de melhoria no SGO. Exemplo: Modelos, definição de processos, fluxos…
-
Os produtos de trabalho decorrentes de atividades de RH serão considerados itens de configuração com controle de versão. Exemplo: Mapeamento de Competências, Plano Estratégico Tático de Treinamento…
-
A regra para preencher o histórico de revisões dos documentos é a seguinte:
-
Para mudanças estruturais do documento (seções novas, seções removidas, criação de subseções), a numeração avança para o próximo número inteiro (por exemplo, de 1.0 para 2.0).
-
Para mudanças que não afetem a estrutura do documento, a numeração avança um decimal (por exemplo, 1.0 para 1.1).
-
Alguns documentos (conforme definido no Guia de Gerência de Configuração), como por exemplo a Política da Basis, devem passar por aprovação formal da direção, caso sofram uma mudança estrutural.
Gerente de RH
| Repositório | Permissão |
|---|---|
Documentação do contrato |
Visualização |
Ocorrência de contrato |
Visualização |
Ocorrência de perfis |
Edição |
Biblioteca de ativos |
Visualização |
Projeto de melhoria |
Visualização |
Administrativo / Assistente de RH
| Repositório | Permissão |
|---|---|
Documentação do contrato |
Sem acesso |
Ocorrência de contrato |
Sem acesso |
Ocorrência de perfis |
Visualização |
Biblioteca de ativos |
Visualização |
Projeto de melhoria |
Sem acesso |
Entrevistador
| Repositório | Permissão |
|---|---|
Documentação do contrato |
Sem acesso |
Ocorrência de contrato |
Sem acesso |
Ocorrência de perfis |
Visualização |
Biblioteca de ativos |
Visualização |
Projeto de melhoria |
Sem acesso |
Gestor de Contratos/ Preposto
| Repositório | Permissão |
|---|---|
Documentação do contrato |
Visualização |
Ocorrência de contrato |
Edição |
Ocorrência de perfis |
Visualização |
Biblioteca de ativos |
Visualização |
Projeto de melhoria |
Visualização |
EPG
| Repositório | Permissão |
|---|---|
Documentação do contrato |
Visualização |
Ocorrência de contrato |
Edição |
Ocorrência de perfis |
Edição |
Biblioteca de ativos |
Edição |
Projeto de melhoria |
Edição |
Analista de Configuração
| Repositório | Permissão |
|---|---|
Documentação do contrato |
Visualização |
Ocorrência de contrato |
Edição |
Ocorrência de perfis |
Edição |
Biblioteca de ativos |
Edição |
Projeto de melhoria |
Edição |
Analista de Qualidade / Auditor de Configuração
| Repositório | Permissão |
|---|---|
Documentação do contrato |
Visualização |
Ocorrência de contrato |
Visualização |
Ocorrência de perfis |
Visualização |
Biblioteca de ativos |
Visualização |
Projeto de melhoria |
Visualização |
Regras de Nomenclatura
Baseline
-
Projeto de Melhoria: BASIS_BL_MELHORIA_numerosequencial
-
ex: BASIS_BL_MELHORIA_04
-
obs: caso haja uma revisão da baseline, pode ser colocado um número decimal
-
ex: BASIS_BL_MELHORIA_04.1
-
-
Organizacional: BASIS_BL_ORG_numerosequencial
-
ex: BASIS_BL_ORG_04
-
Commit
Os commits deverão obedecer a seguinte regra:
Assunto - XXX (Obrigatório) (Linha em branco) Corpo (Opcional)
Onde: * XXX - é o número da ocorrência no SGO;
-
Assunto - Um resumo do commit. Limitar esse campo a 72 caracteres. Para padronizar o preenchimento desse item, escrever complementando a expressão "Quando aplicar esse commit vai…" e informar o assunto do commit. Por exemplo, Quando aplicar esse commit vai… "Corrigir a cor do botão cancelar - BASIS-12345"
| A expressão Quando aplicar esse commit vai… não deve fazer parte da mensagem de commit! |
-
Corpo - Uma descrição detalhada do commit;
-
Somente os membros da equipe de gestão de configuração podem alterar meta-dados (propriedades no sistema de controle de versão) dos artefatos. No GIT deve-se informar a ocorrência SGO que está trabalhando para a alteração do documento ao fazer o commit/push.
Rastreabilidade
Conforme definido no item Regras de Nomenclatura e no item Fluxo Git os commits podem ser relacionados à tarefa aberta para implementação da funcionalidade pelo número da ocorrência contido na mensagem de commit ou no nome da branch. Com isso é possível rastrear o requisito associado, no SGO, a partir da OS que originou a tarefa.
Ambientes
Integrantes Basis
Perfis: Analista de Qualidade, Gestor de Contratos/ Preposto, Gerente de RH, Assistente de RH, Auditor de Configuração, Analista de Configuração, EPG, Responsável por Medição e Análise, Analista Financeiro, Entrevistador.
-
Acesso ao Repositório: TortoiseGIT (última versão disponível) ou GIT (na linha de comando).
-
Elaboração e Consulta de Documentos: Suite Office 2016 ou superior.
-
Acesso às Ferramentas On-Line: Navegador Web (Edge, Firefox ou Chrome)
-
Gestão de Tarefas: SGO
-
Repositório de documentos Alfresco
-
Comunicação online Mattermost, Cliente Desktop ou via web.
Grupo de Processos
Perfis: EPG, Analista de Qualidade, Responsável por Medição e Análise
-
Edição de Processos BizAgi, AsciiDoc
-
Alta Maturidade MiniTab Versão 17.0 ou superior
-
Hardware: Configuração Mínima: RAM:8GB HD:450GB CPU: 2,5Ghz
Gerência de Configuração
Perfis: Analista de Configuração, Auditor de Configuração.
-
Repositório de Gerência de Configuração Git .
-
Ferramentas: AsciiDoc, Vmware vSphere, Vscode, Putty ou cliente SSH, Client Open VPN, OCS Inventory.
-
Hardware: Configuração Mínima: RAM:8GB HD:450GB CPU: 2,5Ghz.
Itens de Configuração
Contratos
| Obrigatoriedade | Artefatos | Controle de Versão | Controle Formal | Produto Entregável ao Cliente | Baseline documentação | Baseline fontes | Quem elabora | Publico-Alvo | Forma de Envio | Padrão de Nomes dos Artefatos | Localização |
|---|---|---|---|---|---|---|---|---|---|---|---|
Análise e decisão |
Gestor de contratos/ preposto |
Equipe do contrato |
SGO (E-mail) |
|
SGO |
||||||
Ata de reunião Kick-off |
Gestor do contrato |
Cliente, Gerente de contrato e Diretor |
SGO (E-mail) |
|
SGO ou pasta de contrato no Alfresco |
||||||
ATAS DE REUNIÕES - GERAIS |
Gestor do contrato/ Preposto |
Cliente |
SGO (E-mail) |
|
SGO ou pasta de contrato no Alfresco |
||||||
Riscos e Oportunidades |
Gestor do contrato/ Preposto |
Gestor do contrato/ Preposto, Equipe de contrato e Diretor |
SGO (E-mail) |
|
SGO |
||||||
BASELINES |
Analista de configuração |
Gestor do contrato/ Preposto, equipe de contrato |
Disponibilização em repositório |
|
Versão no Alfresco |
||||||
Checklist de auditoria de configuração - documentação |
Auditor de configuração |
Gestor do contrato/ preposto, equipe de contrato |
SGO (E-mail) |
|
SGO |
||||||
Checklist de garantia da qualidade |
Analista de qualidade |
Gestor do contrato/ Preposto |
SGO (E-mail) |
|
SGO |
||||||
Checklist de revisão técnica |
Revisor técnico |
Gestor do contrato/ Preposto |
SGO (E-mail) |
|
SGO |
||||||
Não conformidades |
Analista de qualidade e auditor de configuração |
Gestor do contrato/ Preposto, Analista de qualidade, EPG |
SGO (E-mail) |
|
SGO |
||||||
Plano de medição |
Gestor do contrato/ Preposto |
Equipe do contrato |
SGO (E-mail) |
|
SGO - Ocorrência do contrato |
||||||
Ocorrência de perfil |
Gerente de RH |
Assistente de RH, GEstor de contrato, Diretor e Entrevistador |
SGO (E-mail) |
|
SGO |
||||||
Ocorrência do contrato |
Gestor do contrato/ Preposto |
EQUIPE DO CONTRATO |
SGO (E-MAIL) |
|
SGO |
||||||
Relatório de monitoramento |
Gestor do contrato/ Preposto |
Diretor |
SGO (E-mail) |
|
Comentários na ocorrência do contrato no SGO |
||||||
Relatório de Status |
Gestor do contrato/ Preposto |
DIRETOR |
SGO (E-MAIL) |
|
Comentários na ocorrência do contrato no SGO |
||||||
Qualquer outro documento relevante do contrato (faturamento, relatório de despesas, infraestrutura e etc) que não esteja definido acima e que o Gestor do contrato/ Preposto queira armazenar no repositório |
Equipe do contrato |
Equipe do contrato |
SGO (E-mail) OU Alfresco |
|
SGO – Anexo na ocorrência do contrato ou documento da pasta do contrato no Alfresco |
-
Obs 1: O assunto é livre e deve indicar o objetivo da reunião. Por exemplo: reunião com cliente, alta direção, equipe, lições aprendidas, encerramento.
-
Obs 2: Para baselines, a branch utilizada no repositório deve ser a Master.
-
Obs 3: Necessário apenas quando o cliente exigir a elaboração do artefato.
Projeto de Melhoria
Os itens de Melhoria são armazenados em um repositório próprio: Projeto de Melhoria
A pasta de Estatísticas é dividida por Baselines, sendo que cada nova Baseline terá uma pasta específica associada.
| Artefatos | Controle Formal | Controle de Versão | Publico-Alvo | Forma de Envio | Padrão de Nomes dos Artefatos | Localização |
|---|---|---|---|---|---|---|
Ata de Reunião |
EPG |
Repositório |
|
01.Comunicação |
||
Relatório de Auditoria Informal |
EPG |
Repositório |
|
01.Comunicação |
||
Relatório de Análise de Gap |
EPG |
Repositório |
|
01.Comunicação |
||
Ata de Reunião de Kick-off |
EPG |
Repositório |
|
01.Comunicação |
||
Publicação da Biblioteca de Ativos |
Todos da Organização |
E-mail, Repositório, SGO |
|
01.Comunicação ou SGO |
||
Plano de Avaliação SCAMPI |
EPG, Avaliador CMMI |
E-mail e Repositório |
|
02.Planejamento |
||
Ata de Reunião de Análise de Gap |
EPG |
Repositório |
|
02.Planejamento |
||
Cronograma de Melhoria |
Todos da Organização |
E-mail, Repositório, SGO |
|
02.Planejamento ou SGO |
||
Plano de Projeto de Melhoria |
Todos da Organização |
E-mail e Repositório |
|
02.Planejamento |
||
Comprometimento com Projeto de Melhoria |
EPG |
Repositório |
|
04.Implementação |
||
MPSBr - F Declaração Avaliação |
EPG |
Repositório |
|
04.Implementação |
||
MPSBr - Press Release Avaliação |
EPG |
Repositório |
|
04.Implementação |
||
MPSBr - Resultado da Avaliacao |
EPG |
Repositório |
|
04.Implementação |
||
Planejamento Auditoria da Qualidade |
EPG |
Repositório |
|
04.Implementação |
||
Basis Tecnologia da Informação - SCAMPI B |
EPG, Avaliadores CMMI |
Repositório e Dropbox |
|
04.Implementação |
||
Relacao entre as SPs das PAs e as praticas do processo |
Analista de Métrica e Diretor |
Repositório |
|
04.Implementação |
||
Relatório Estatístico |
EPG |
Repositório |
|
06. Estatisticas/Baseline XX |
||
Análise de Causas Organizacional |
EPG |
SGO |
|
Tarefa de Análise de Causas |
||
Resultado Análise Organizacional |
EPG |
Repositório |
|
06. Estatisticas/Baseline XX |
||
Relatório Monte Carlo Organizacional |
EPG |
Repositório |
|
06. Estatisticas/Baseline XX |
||
Resumo Baseline Organizacional |
EPG |
Repositório |
|
06. Estatisticas/Baseline XX |
||
Laudo de Qualidade de Alta Maturidade |
EPG |
Repositório |
|
06. Estatisticas/Baseline XX |
||
Análise de Causas do Contrato |
EPG |
SGO |
|
Tarefa de Análise de Causas |
||
Relatório Monte Carlo do Contrato |
EPG |
Repositório |
|
06. Estatisticas/Baseline XX/Contratos/CONTRATO |
||
Relatório Estatístico do Contrato |
EPG |
Repositório |
|
06. Estatisticas/Baseline XX/Contratos/CONTRATO |
||
Contratos de Análise de Produtividade e Qualidade do Contrato |
EPG |
Repositório |
|
06. Estatisticas/Baseline XX/Contratos/CONTRATO/Dados da Analise |
||
Análise Simulação Monte Carlo |
EPG |
Repositório |
|
06. Estatisticas/Baseline XX |
||
Lista de Profissionais |
EPG |
Repositório |
|
06. Estatisticas/Baseline XX/Relatorios SGO |
||
Dados de desempenho das Tarefas, separadas por subgrupo |
EPG |
Repositório |
|
06. Estatisticas/Baseline XX/Relatorios SGO |
Biblioteca de Ativos
A partir da Baseline BASIS_BL_ORG_06, a Biblioteca é inteiramente elaborada em AsciiDoc e publicada no site http://foundation.basis.com.br.
Todos os itens da Biblioteca de Ativos têm controle formal e são obrigatórios.
| Nome | Gerência | Endereço |
|---|---|---|
Política da Basis |
Diretoria |
|
Descrição dos Ciclos de Vida da Organização |
Gerencia de Qualidade |
|
Estratégia de Gerência de Portfólio de Projetos |
Diretoria |
|
Planilha de Portfólio |
Diretoria |
(armazenada em Google Drive) |
Objetivos e Ações Estratégicas |
Diretoria |
|
Plano Estratégico de Treinamento |
Gerência de RH |
|
Estratégia de Gerenciamento de RH |
Gerência de RH |
|
Quadro de Competências |
Gerência de RH |
|
Modelo de Avaliação de Eficácia de Treinamento |
Gerência de RH |
|
Modelo de Avaliação de Desempenho |
Gerência de RH |
|
Modelo de Lista de Presença |
Gerência de RH |
|
Base de Medição e Análise Organizacional |
Gerência de Qualidade |
|
Modelo de Relatório Estatístico |
Gerência de Qualidade |
|
Guia de Gerenciamento de Riscos |
EPG |
|
Orientação das Equipes de Trabalho |
EPG |
|
Base de Riscos |
EPG |
|
Modelo Relatório Monitoramento |
EPG |
|
Modelo Ata Kick-off / Planning |
EPG |
|
Modelo de Controle Financeiro |
EPG |
|
Modelo de Relatório de Status |
EPG |
|
Checagem Automática de Seguimento dos Processos |
Gerência de Qualidade |
|
Checklist de Auditoria de Biblioteca de Ativos |
Gerência de Qualidade |
|
Checklist de Auditoria de Ativos Organizacionais |
Gerência de Qualidade |
|
Modelo Checklist de Alta Maturidade |
Gerência de Qualidade |
|
Estratégia de backup |
Gerência de Configuração |
|
Estratégia de Verificação, Validação e Integração |
Gerência de Configuração |
Estratégia de Verificação, Verificação por pares e Validação |
Guia de Gerência de Configuração |
Gerência de Configuração |
|
Manual Clone e Commit no Git |
Gerência de Configuração |
|
Manual Criação de Repositório |
Gerência de Configuração |
|
Checklist de Auditoria de Ativos Organizacionais |
Gerência de Configuração |
|
Portal de Processos FOUNDATION |
EPG |
Ativos de Treinamento
| Obrigatoriedade | Nome | Local de Armazenamento | Visibilidade |
|---|---|---|---|
Lista de presença |
SGO - Tarefa RH Treinamento |
RH, Gerentes |
|
Avaliação de Efetividade |
SGO - Tarefa RH Treinamento |
RH, Gerentes |
|
Certificado de Participação |
SGO - Tarefa RH Treinamento e do funcionário |
RH, Gerentes e Funcionário |
|
Quadro de Competências |
Foundation |
Todos |
Manual Clone e Commit no Git
Versão do documento: 4.0, 02/01/2025
Introdução
Este documento tem como objetivo orientar todos os colaboradores sobre o uso correto dos repositórios Git, bem como das ferramentas associadas.
Como efetuar o Clone
Um clone, no Git, é a replicação inicial de um repositório remoto para uma pasta no computador pessoal, semelhante a um SVN Checkout. Inicialmente, acessar o Gitlab, repositório interno da Basis: https://gitlab.basis.com.br/. O login será realizado através do SSO Basis, usando as mesmas credenciais do SGO.
Conforme a figura acima, o usuário e a senha da rede devem ser digitados.
Ao entrar, a tela inicial é apresentada. Nela, é possível verificar projetos aos quais se tem acesso, bem como os grupos que abrangem tais projetos.
É possível pesquisar o repositório do qual se deseja fazer um clone na caixa de pesquisa no canto superior direito da tela. Ou, se preferir, usar os menus de Projetos ou Grupos, no canto superior esquerdo.
Se o repositório não aparecer logo na busca inicial, ao pressionar Enter ou selecionar a caixa "em todo o Gitlab", o sistema apresentará uma tela mais completa com todos os resultados encontrados, bem como a possibilidade de pesquisar em grupos e projetos específicos.
Ao selecionar um repositório, serão apresentados os arquivos e pastas de sua raiz, de forma que se pode explorar e visualizar detalhes dos mesmos:
Para obter o endereço de clone, basta clicar no botão destacado Clonar, no canto direito, atentando para a seleção do tipo de clone, que pode ser HTTPS ou SSH. Para esta seção, será usado o clone via HTTPS. Clicando no ícone de prancheta ao lado do link, a URL será copiada.
Instalação e configuração do TortoiseGit
Baixando e instalando o TortoiseGit
O software TortoiseGit é uma de várias possíveis interfaces gráficas para Git no Windows. Ele pode ser baixado em sua versão mais recente no site: https://tortoisegit.org/download/. Para que o TortoiseGit funcione corretamente, faz-se necessária a instalação do Git for Windows, no site: http://git-scm.com/download/win. Apenas após a instalação do mesmo, o TortoiseGit deve ser instalado. Atenção à versão baixada (32-bit ou 64-bit), que deve obedecer às especificações da sua máquina para as duas instalações.
Usando TortoiseGit para o clone
Usando o Windows Explorer, na pasta onde se deseja manter o repositório local, clica-se com o botão direito. No menu de contexto, a opção "Git Clone" deve ser selecionada.
Na janela que segue, no campo URL, deve ser colado o link de clone copiado da página de repositório do Gitlab. Se o link já estiver previamente copiado, deve aparecer automaticamente no campo.
Da primeira vez que se faz qualquer operação num repositório, o TortoiseGit exige informações de usuário. Basta colocar o nome de usuário e e-mail Basis, e clicar em OK.
O nome de usuário e a senha da rede devem ser digitados para validar o clone.
Os mesmos ficarão salvos no Gerenciador de Credenciais do Windows, caso precisem ser alterados.
Após a confirmação da senha, uma tela será exibida informando o progresso do clone.
Ao concluir, o repositório já estará localmente replicado na máquina do usuário.
Usando SSH
O Git oferece a opção de clone dos repositórios via HTTPS, como já foi apresentado, ou via SSH. O SSH costuma ser mais prático e menos limitado que o HTTPS, mas necessita de várias configurações locais e remotas para funcionar devidamente.
Inicialmente, deve ser gerada uma chave SSH localmente na sua máquina. Para tanto, vamos usar a interface padrão de console do Git for Windows, que também serve como alternativa ao próprio TortoiseGit, se for mais interessante usar comandos de linha diretamente em vez de uma interface gráfica.
Na máquina local, buscar, no menu Iniciar ou na barra de buscas do Windows, o programa Git Bash. A janela inicial será um console em preto:
Digitar o seguinte, e pressionar Enter:
ssh-keygen -t rsa
O console vai pedir, na ordem:
-
Um caminho para os arquivos de chave. Apenas pressione Enter, e mantenha o padrão.
-
Uma senha para a chave. É opcional, mas dará mais segurança à mesma (obs.: com o preenchimento desse campo, será necessário inserir a mesma senha toda vez que for fazer alguma operação no repositório).
-
Escrever a senha outra vez. Deixar vazio se ficou vazio anteriormente. Ao final, a chave será gerada dentro do diretório selecionado na primeira entrada. Por padrão:
C:\Users\[SeuUsuario]\.ssh
Acessando o caminho da chave no Windows, devem haver dois arquivos: id_rsa e id_rsa.pub. O segundo deve ser aberto em qualquer editor de texto, para que se possa copiar a chave.
Com a chave em mãos, entrar no Gitlab, e adentrar a seção "Configurações", no menu do canto superior direito.
Ali dentro, selecionar no menu esquerdo "Chaves SSH". Na seção que se abrir, colar a chave do id_rsa.pub, dar um título para identificar a chave, então clicar no botão "Adicionar Chave" abaixo.
Feita a adição com sucesso, a última coisa que precisa ser feita é uma alteração local do programa utilizado para SSH no TortoiseGit. No menu iniciar ou de busca, procurar por Settings, um programa que tenha o ícone do TortoiseGit. Entrando no mesmo, selecionar o item Network no menu esquerdo. Ali dentro em SSH, basta colocar o caminho do executável SSH do Git for Windows (por padrão, C:\Program Files\Git\usr\bin\ssh.exe, variando o início do caminho de acordo com a sua pasta de instalação) e clicar em OK.
Feito isso, operações de repositório já podem ser realizadas usando SSH. Basta fazer o clone do repositório utilizando o link SSH que o mesmo fornece na página do repositório.
Commit e Push
Sempre, antes que seja feita qualquer alteração de arquivos num repositório via Commit/Push, deve ser executado um Pull, que atualiza o repositório local com as últimas mudanças do repositório online.
Vale lembrar o Git solicitará o nome e a senha de rede do usuário que sempre que houver uma requisição HTTPS ao repositório da Basis, seja clone, Pull ou Push. Se o clone for feito usando SSH, não será necessário.
Podemos dizer que um Pull é semelhante a um Update no SVN. É importante reparar, porém, que ao contrário do SVN Update, um Git Pull mescla a versão mais recente do repositório remoto (online) com a versão local do mesmo. Ou seja, mudanças feitas no repositório local não serão automaticamente sobrescritas pelo Pull, nem mesmo arquivos excluídos. Para recuperar originais, faz-se necessário realizar um Revert antes do commit.
Após a conclusão das alterações desejadas aos arquivos do repositório, incialmente deve ser feito o commit, que vai validar as mudanças, ainda apenas no repositório local. Deve-se clicar com o botão direito na pasta do repositório em que foram realizadas as modificações (não necessariamente a pasta raiz, porém preferencialmente, para evitar erros em potencial relativos a mudanças em outras pastas) e selecionar a opção Git Commit.
Para que o commit seja feito, é necessário relatar, na caixa de mensagem, quais alterações foram feitas e informar com qual ocorrência do SGO elas se relacionam. Ex:
Atualizar x, y e z - BASIS-1234
|
OBSERVAÇÕES IMPORTANTES SOBRE O COMMIT
|
Após a conclusão do commit, as mudanças estarão efetivadas, mas apenas no repositório local. Para enviá-las ao repositório remoto online, a opção Push deve ser selecionada logo em seguida.
Após o usuário digitar seu nome e senha, se necessário, o Push será executado. Uma vez finalizado sem erro, as mudanças podem ser conferidas no site do Repositório Gitlab Basis.
Gerando Tags
Ao finalizar uma versão de código-fonte, ou finalizar um requisito específico, faz-se necessária a criação de tags nos repositórios para representar a baseline relativa àquela versão. É bastante simples fazer isso utilizando TortoiseGit.
Levando em conta que o commit que será marcado como tag já foi realizado, clicar com o botão direito na pasta do repositório em questão e selecionar TortoiseGit > Show log.
A janela que segue lista todos os commits realizados naquele repositório. A tag deve ser criada no commit específico que finalizou o requisito ou versão em questão. Clicar nele com o botão direito e selecionar "Create Tag at this version".
Na janela que se abre, entrar com o nome da versão/baseline em questão, seguindo os padrões estabelecidos no Guia de Gerência de Configuração, que estabelecem nomes diferentes para código-fonte e documentação, e atentando às versões já existentes no repositório, que podem ser verificadas na combo Tag do item Base On, ou no próprio repositório online no Gitlab. Atentar à marcação original, que deve ser o commit em questão.
Uma vez que a tag esteja criada, aparecendo em amarelo na janela do Git Log, deve ser feito um novo push, dessa vez especificando que as tags devem ser incluídas.
Trabalhando com Forks
Certos usuários do Gitlab têm o acesso direto aos repositórios dos sistemas limitado a apenas leitura. Para que possam fazer suas próprias alterações no código, é necessário que façam um fork, que vai gerar uma cópia do repositório em questão, para que eventualmente seja mesclado por um representante da equipe (revisor técnico), seguindo o ciclo da imagem:
Criando Fork
Dentro da página no Gitlab do repositório que se deseja copiar, clicar em Fork, no canto superior direito.
Selecionar como namespace o próprio nome de usuário, apresentado por padrão na página.
O repositório será criado e toda a estrutura de commits passará por uma importação. Uma vez finalizada, o repositório apresentará a mesma exata estrutura que o original. Desse ponto em diante, as ações de clone e push seguirão os mesmos princípios já apresentados.
Merge do Fork
Para que o código atualizado no fork seja replicado no repositório original, é necessário que seja aberto um merge request a partir do fork, apontando para a branch do repositório original. Esse merge request precisa ser aberto por um usuário que tenha acesso de escrita no repositório original, e é necessário que haja mais de um commit para o merge, pois será realizado um git squash. Caso seja aberto pelo próprio dono do Fork, que possui acesso somente leitura ao original, ou caso possua apenas um único commit, será fechado imediatamente pelo próprio sistema.
Na tela do repositório fork, no menu esquerdo, clicar em "Merge Requests".
Dentro da tela, haverá um botão "Novo Merge Request". Selecionando o mesmo, será aberta uma nova tela para seleção de quais branches e repositórios servirão como origem e destino. Para origem ("Source Branch"), selecionar o seu fork e a branch onde se trabalhou. Para destino, selecionar o repositório original, e a branch do mesmo onde o merge deverá ser feito. Clicar em "Compare branches and continue".
Na tela que se segue, escrever um título para o seu merge request, preferencialmente incluindo a ocorrência relativa aos commits em questão para que esteja na mensagem de squash. Adicionar também uma descrição, que será unida ao template de MR da Basis, quando aplicável. No campo Assignee, apontar um usuário responsável pela aprovação do MR, caso necessário. A opção "Delete source branch when merge request is accepted" apagará a branch original do fork assim que houver o merge de fato. E a opção "Squash commits when merge request is accepted" será marcada automaticamente, mesmo que seja desmarcada nesta tela.
Uma vez criado, o merge request será listado no menu de Merge Requests do repositório original.
Também será criado um link para acessar o merge request na ocorrência do SGO mencionada pelo mesmo.
Quando aprovado e selecionada a opção Merge, será realizado um commit de squash combinando os commits do repositório de fork, mais um commit de merge mesclando os dois repositórios. O código então será disponibilizado na branch do repositório original. Se houver algum problema no merge ou na criação do próprio merge request, o próprio sistema informará em mensagem.
Atualizando o Fork
Quando o fork se encontra atrasado em relação ao repositório original, é possível atualizá-lo em seu repositório fork clonado localmente. Para isso, é necessário inicialmente adicionar o repositório original como um novo remote caso não exista, executando no seu repositório local o seguinte comando:
git remote add upstream endereco_repositorio_original.git
Atualiza-se então esse remote "upstream" usando um fetch:
git fetch upstream
Para sincronizar de fato seus arquivos locais com os do repositório original, realiza-se um merge do seu repositório local, usando como base a branch requisitada do original (por padrão, "master"; alterar de acordo):
git merge upstream/master
Por fim, para atualizar o repositório no Gitlab, realiza-se o push padrão:
git push origin sua_branch
Lidando com Problemas
Push retorna erro
Verifique, antes de tudo, se seu repositório local está atualizado. Diferente do SVN, não basta que apenas a pasta específica em que se está editando esteja devidamente atualizada; o repositório inteiro deve estar em dia. Realize sempre um Pull antes de fazer quaisquer modificações.
Se o repositório não estava atualizado, mas o commit foi feito ainda assim, realize um Pull de todo modo. Pode ser que não haja conflitos de arquivos modificados. Se for o caso, o Pull não retornará erros, não haverá ícones de conflito nas pastas, e o seu Push pode ser realizado diretamente em seguida (sem o commit, nesse caso, pois este já havia sido feito).
Entretanto, se houver conflitos, cabe verificar com a sua equipe se os arquivos em questão foram modificados. O próprio Log do Git deve retornar informações sobre quais foram as últimas modificações sobre o determinado arquivo, o que pode ser verificado clicando sobre o mesmo com o botão direito e selecionando, sob o menu do TortoiseGit, Show Log.
A janela seguinte terá informações de quais foram os últimos commits, e quem os realizou, para devida informação e discussão.
Uma vez que se tenha certeza que o arquivo existente no seu repositório local é o mais atualizado, deve-se selecionar, no menu do TortoiseGit na pasta, a opção "Resolve".
Marca-se então os arquivos atualizados, confirma, e então o Commit/Push pode ser realizado novamente com maior segurança.
Se ainda houver erro, experimente executar um Clean up, opção logo acima também representada. Execute também um novo Pull em seguida, para poder realizar o commit depois com segurança, e certifique-se de que todos os arquivos estão presentes no repositório local.
| É importante também lembrar que é obrigatório incluir um número de ocorrência em todo e qualquer commit. Se este estiver faltando, o servidor retornará erro no Push |
Para corrigir essa situação, é necessário emendar à mensagem do commit uma ocorrência válida do SGO. Se apenas um commit errôneo foi realizado, basta selecionar Git Commit novamente no repositório em questão e selecionar a opção Ammend Last Commit na caixa logo abaixo da entrada de mensagem:
Em seguida, clicar em Ok e seguir com o mesmo modelo de Commit/Push apresentado mais acima.
Se houver mais de um commit na fila, no entanto, e até mesmo em outros casos de erro recorrente, será necessário fazer um Rebase, ou refazer os commits do zero antes de realizar o Push.
Quando um commit é feito no Git, ele se mantém na fila para subir ao repositório remoto num Push. Outros commits em cima do mesmo apenas se acumulam na fila. Ou seja, se o primeiro commit está errado, ele permanecerá sem enviar para o sistema até que seja removido ou editado na fila. Nesse caso, como existem vários commits errados na fila, a procedência possível seria editar ou eliminar a mesma.
Para o primeiro caso, o chamado Rebase, clicar com o botão direito na pasta do repositório com os commits problemáticos, e dentro do menu do TortoiseGit, selecionar a opção Rebase.
Na janela que segue, marcar inicialmente a opção Force Rebase, para que o sistema leve em conta todos os commits diferentes entre o repositório local e o remoto. Em seguida, clicar com o botão direito no commit que está com problemas (pode ser mais de um), e selecionar a opção Edit. Feito isso, iniciar o Rebase através do botão Start Rebase no rodapé da janela.
Uma vez iniciado, se configurado corretamente, ele vai parar para edição da mensagem do(s) commit(s) em questão. Adicionar a ocorrência faltante, e clicar em Ammend, e em seguida em Done.
Terminado o processo de Rebase, o Push já pode ser feito sem a necessidade de fazer um novo commit.
Para o caso de refazer a fila de commits do zero, primeiramente, é interessante fazer um backup dos arquivos alterados em tais commits, pois serão apagados ou substituídos pelas versões atualmente presentes no repositório remoto. Com o backup feito, selecionar na pasta raiz do repositório: TortoiseGit > Switch/Checkout. Na janela aberta, deixar exatamente como está na imagem abaixo, com todas as marcações (ênfase na branch remote/origin/master do primeiro menu, não é a master originalmente selecionada).
Após clicar em OK, o repositório retornará ao seu estado anterior aos commits errôneos, exatamente igual ao repositório online. Com isso, os arquivos no backup podem ser copiados de volta para a pasta do repositório, e o commit pode ser refeito.
Se houver mais erros, entre em contato com a gerência de configuração.
Pull ou Clone retorna erro
É possível que o repositório em questão tenha nomes de arquivos ou caminhos muito grandes e, quando se realiza um Clone do mesmo num sistema Windows, ele não consiga abranger todo o caminho, retornando erros de Filename too long. Se for esse o caso, experimente realizar o Clone em outra pasta do seu sistema, preferencialmente alguma num caminho bem curto, como C:\git.
Outro erro possível teria a seguinte mensagem: error:14094410:SSL routines:ssl3_read_bytes:sslv3 alert handshake failure. Nesse caso, é necessário atualizar os protocolos de conexão SSL na configuração do Git para uma versão mais segura. Execute o seguinte comando no Git Bash (para seu uso, consultar a seção de SSH):
git config --global http.sslVersion tlsv1.2
Após essa alteração, o Clone/Pull deve funcionar corretamente. Caso contrário, ou se o comando retornar algum erro, é recomendável reinstalar o Git numa versão mais recente.
Se tais soluções não funcionarem, ou se o erro for diferente, entre em contato com a gerência de configuração.
Manual Criação de Novo Repositório
Versão do documento: 4.0, 02/01/2025
Introdução
Objetivo
Este documento objetiva apresentar todos os passos necessários para que os interessados em realizar a criação de um novo repositório sejam capazes de, seguindo as instruções, chegarem ao resultado esperado, de uma forma correta e padronizada.
Escopo
Considera-se no escopo deste documento abordar todas as etapas e procedimentos, que são necessários para a criação efetiva de um repositório remoto, englobando desde a conexão com a máquina até o commit inicial com a estrutura de pastas padrão de novos projetos da empresa.
Não Escopo
Está fora do limite definido como escopo deste tutorial as informações inerentes à configuração e conexão da VPN da Basis, bem como de acesso remoto aos servidores internos.
Definições, Acrônimos e Abreviações
-
Repositório Git: espaço, local ou remoto, para armazenamento de arquivos e controle dos mesmos, quanto à versão;
-
Commit: submeter o repositório às novas ações realizadas em suas pastas;
-
VPN: rede privada de comunicação, que busca assegurar a confidencialidade e integridade na troca de informações pela rede.
Criação do Repositório Git via SGO
Por padrão, a criação de repositórios deve ser feita de maneira automatizada a partir das ocorrências dos respectivos sistemas no SGO.
Acessar Ocorrência do Sistema
A princípio, nenhum repositório de sistema deve ser criado sem uma ocorrência do tipo Tarefa com essa requisição, encaminhada para o departamento de Configuração. Para iniciar a criação, basta entrar nessa ocorrência, e na aba Dados do Sistema, clicar na ocorrência repassada em "Ocorrências do Sistema".

Aplicar transição "Criar Repositórios"
Dentro da ocorrência do sistema, nas transições de fluxo de trabalho, selecionar a transição "Criar Repositórios".

Uma janela pop-up deve aparecer na ocorrência, com os dados do sistema e campos para especificar quais repositórios serão criados. Caso nada seja escrito, por padrão, e seguindo o Guia de Gerência de Configuração, são criados os repositórios "codigo_fonte", "documentacao" e "gravacoes". O nome do sistema é preposto ao nome de cada repositório, ou seja, caso se escreva "backend", o nome do repositório será "sistema_backend".
Os repositórios por padrão são criados usando a estrutura padrão estabelecida para cada tipo de repositório, tendo um commit inicial apropriado. Entretanto, caso o repositório precise ser migrado de algum cliente e o projeto precise ser criado vazio, basta marcar o campo "Repositórios Migrados do Cliente". Todos serão criados sem qualquer commit, ficando a responsabilidade de popular o repositório para quem for importar o projeto do cliente.

A transição desencadeará as seguintes ações via webhook:
-
Criação do grupo no Gitlab relativo ao próprio contrato, caso não exista;
-
Criação do grupo relativo ao sistema no AD Basis, caso não exista;
-
Criação dos repositórios dentro do grupo;
-
Associação dos repositórios à ocorrência do SGO e ao grupo do AD, via aplicação de custom attributes no repositório;
-
Commits iniciais para cada tipo de repositório (caso o campo "Repositórios Migrados do Cliente" não esteja marcado);
-
Criação de hooks nas pastas dos repositórios para filtrar os commits realizados no mesmo.
Finalizada a transição, os repositórios serão listados ao fundo aba Cadastro do Sistema, juntamente ao grupo relacionado no AD.

Aplicar transição "Associar Usuários a Repos"
Caso também exista, requisitado via tarefa no SGO, um pedido para associar usuários específicos aos repositórios, é necessário realizar outra transição. Dentro da ocorrência do sistema, nas transições de fluxo de trabalho, selecionar a transição "Associar Usuários a Repos".

A janela da transição apresentará dois campos para preenchimento, sendo um para usuários que terão acesso de escrita e outro que terá usuários cujo acesso será de somente leitura. Preencher com o nome de usuário de cada um, separado com vírgulas (o próprio sistema auxilia auto-completando nomes), e realizar a transição.

Realizado este passo, os usuários serão associados ao grupo relativo ao sistema no AD Basis. Um serviço periódico de sincronização de usuários, executando em paralelo ao Gitlab, será responsável por associar esses usuários também aos repositórios do próprio Gitlab. O acesso, portanto, não é imediato, mas deve ser atualizado em menos de uma hora. A lista de usuários com acesso pode ser visualizada na seção Pessoas, à direita da ocorrência do sistema, no campo "Equipe Git".

Adicionalmente, existem grupos no AD cujos membros possuem acesso a todos os repositórios do cliente (“nomecliente_all” para escrita e “nomecliente_all_ro” para leitura). Caso haja requisição no SGO para acesso a todos os repositórios de determinado cliente, o acesso precisa ser dado diretamente nesses grupos, a partir do gerenciamento de usuários do próprio SGO ou do AD.
Criação do Repositório Git via Gitlab
Se, por alguma razão, não houver a possibilidade de criar o repositório diretamente pelo SGO, é possível também criar o mesmo pelo próprio Gitlab.
Conectar ao Repositório Gitlab
Na tela do Sistema de Gestão de Ocorrências (SGO) da Basis, acessar o menu no topo esquerdo da tela, e selecionar "Repositório Git", ou acessar diretamente o link https://gitlab.basis.com.br/. Se o login já estiver realizado via SSO no próprio SGO, o acesso será automático. Do contrário, a tela de login será apresentada. As credenciais de acesso são as mesmas do SGO.
Criar novo grupo
Na página inicial após o login, clicar em "Grupos" para visualizar os clientes disponíveis e selecionar o desejado que receberá o novo repositório. Caso seja um novo cliente, clicar no botão "Novo Grupo" acima dos existentes.

Entrar com a chave do cliente, atribuir um avatar e editar a URL se necessário. Vale constar que a chave por padrão é a mesma usada na alocação do contrato no SGO, e não pode conter espaços ou caracteres especiais. Além disso, o nível de visibilidade deve ser marcado como Privado.

Criar novo repositório
Na tela do grupo, no canto direito da tela, clicar em "Novo projeto".

Entre com o nome que o repositório receberá, seguindo o padrão:
-
Código: nomedosistema_codigo_fonte
-
Documentação: nomedosistema_documentacao
-
Gravações: nomedosistema_gravacoes
Vale constar que o nome não pode conter espaços ou caracteres especiais.

Uma vez criado, o projeto terá as configurações padrão do sistema aplicados a si. Salvo exceções especificadas pelos próprios gestores e clientes, não é necessário alterá-las. Contudo, essas mesmas configurações impedem que equipes possam fazer alterações nos repositórios se não houver uma branch inicial, portanto faz-se necessário criar um primeiro commit.
Commit inicial do repositório de código
Dentro do próprio Gitlab, é possível já criar um único arquivo de commit para base do repositório. No projeto vazio, clicar em Novo Arquivo.

Preencher o caminho do arquivo com o seguinte nome:
.gitlab/merge_request_templates/basis_template.md
Preencher o conteúdo do arquivo com o seguinte texto:
De acordo com a [Estratégia de Verificação, Validação e Integração](https://foundation.basis.com.br/gerencia_configuracao.html#estrat%C3%A9gia-de-verifica%C3%A7%C3%A3o-valida%C3%A7%C3%A3o-e-integra%C3%A7%C3%A3o) definida no Foundation, os seguintes itens de check-list devem ser validados para aceitação do Merge Request: - [ ] `liquibase` Não usar SQL nas migrações - [ ] `liquibase` Edição de changeset já aplicado - [ ] `config` Níveis de logs nos arquivos de configuração globais - [ ] `config` Configuração externalizada (vs fixa no código) - [ ] `config` Dependências desnecessárias - [ ] `qualidade` Nomenclatura REST - Uri Design - [ ] `qualidade` Complexidade dos algoritmos - [ ] `qualidade` Nomes das variáveis/métodos/classes - [ ] `qualidade` Reinvenção de roda - classes Utils (usar commons, guava, lodash, ...) - [ ] `qualidade` Código testável - [ ] `qualidade` Pesquisa dentro de estrutura de repetição (Banco, WS, etc.)
Por fim, preencher o campo de mensagem de commit, substituindo a chave de ocorrência pela chave relativa à Tarefa de criação do repositório, ou sistema associado:
Criação do repositório com template de Merge Request. BASIS-XXXXX

Estando tudo de acordo, como na imagem, clicar em Commit abaixo. O arquivo estará então aplicado ao código, permitindo commits da equipe e merge requests seguindo o padrão Basis.
Criação da estrutura de pastas do repositório de documentação
A partir do Gitlab, clonar o novo repositório de documentação seguindo as instruções de Como efetuar o clone do Manual de _Git.
Dentro da pasta local clonada do repositório vazio, colar e executar o arquivo: mkdirsgit.bat (ou mkdirsgit.sh caso o sistema seja Linux).

Se o script rodou corretamente, a pasta agora possui oito novas pastas na sua raiz. Apagar ou mover para fora o arquivo mkdirsgit.bat ou mkdirsgit.sh.

Clicar com o botão direito na pasta raiz do repositório e selecionar "Git commit → master…".

Se surgir uma mensagem informando que o nome de usuário e E-mail precisam ser setados, clicar em Yes, preencher o formulário seguinte com seu nome de usuário e E-mail Basis, selecionar "Save as Global" e clicar em Ok.

Marcar todos os arquivos da lista (vários .gitignore para manutenção das pastas), comentar e executar o commit.
Mensagem de commit sugerida:
Criação da estrutura de pastas de acordo com o Guia de Gerência de Configuração. [CHAVE-OCORRÊNCIA]

Quando finalizar o commit, clicar em Push logo abaixo.

Clicar em OK, digitar sua senha e aguardar a finalização.

Ao terminar de enviar o push, o repositório estará configurado e já poderá receber os documentos do sistema.
Caso um commit ou push dê errado, faz-se necessário realizar um Pull para manter o repositório local atualizado e estável. Clicar com o botão direito na pasta raiz do repositório e selecionar "Git Sync…".

Na janela resultante, selecionar Pull. Entrar com sua senha e aguardar a finalização.

Nessa janela, também é possível realizar commits e pushes, se for conveniente. Lembrando que, após o pull, o push deve ser executado novamente. Um novo commit não é necessário, exceto se tiver conflitos em arquivos do repositório que precisem ser resolvidos.
Concessão de acesso aos repositórios
Nos casos em que o repositório seja criado via SGO, os acessos serão concedidos pelo mesmo, como já orientado acima. Estando associado ao grupo no AD, o mesmo será concedido no Gitlab via serviço de sincronização periódico.
Alternativamente, caso não haja associação com o SGO ou com grupos no AD, os acessos devem ser concedidos manualmente dentro do próprio Gitlab. No projeto ou no grupo, selecionar a seção Membros no menu esquerdo.

Na tela que segue, listar os nomes usuários que deverão ter acesso ao repositório, bem como qual tipo de acesso deverão ter, e clicar em Convidar. Para referência:
-
Maintainer: acesso de gerenciamento;
-
Developer: acesso de escrita;
-
Reporter: acesso de leitura;

Em todos os repositórios criados, deve ser realizada por padrão a liberação de acesso para os seguintes usuários:
-
Cédric Lamalle;
-
Miguel Negrelli;
-
Leonardo Lopes;
-
Arquitetos;
-
Gerente do Projeto;
-
Gerentes GCO.
Checklist de Auditoria de Ativos Organizacionais
Versão do documento: 2.0, 02/01/2025
Instruções (retirar essa seção no preenchimento real)
-
Para cada tarefa o revisor deverá copiar o conteúdo abaixo e colar no comentário da tarefa a ele atribuída.
-
Para cada critério avaliado preencher a coluna "Resultado" com: "Sim", "Não" ou "N/A".
-
Para cada resultado "Não se Aplica" justificar na coluna "Ações/Justificativa".
-
As tarefas não devem seguir no fluxo de desenvolvimento até que todos os itens sejam respondidos com "Sim".
Auditoria de Configuração Organizacional
Critério |
Resultado |
Ações/Justificativa |
Todas as baselines geradas até o momento passaram pela auditoria de gerência de configuração? |
||
A estrutura de diretórios do repositório está conforme a estrutura de diretórios estabelecida no Guia de GC? |
||
Os artefatos estão seguindo os padrões de nomenclatura estabelecidos no Guia de Gerência de Configuração? |
||
Os artefatos estão armazenados nas pastas corretas do repositório conforme o estabelecido no Guia de Gerência de Configuração? |
||
As permissões de acesso aos itens de configuração foram implementadas conforme estabelecido no Guia de Gerência de Configuração? |
||
As baselines foram criadas seguindo a nomenclatura e local pré-estabelecidos? |
||
A baseline foi gerada a partir da branch master? |
||
O conteúdo da baseline está completo, conforme o estabelecido no Guia de Gerência de Configuração para a fase auditada? |
||
O backup dos dados está sendo realizado conforme PolÍtica de Backup? |
||
Alterações nos artefatos de controle formal estão sendo realizadas conforme o processo de mudança? |
||
O histório de revisão dos documentos está sendo preenchido corretamente? |