Sistema de coleta automática de métricas com base na API do Github.
Para executar o projeto localmente, é necessário instalar as seguintes ferramentas:
Instalação do intérprete pode ser realizada de acordo com o manual disponível na documentação oficial. Pode ser necessário realizar a instalação através dos repositórios do deadsnakes.
Ambientes virtuais são a maneira mais convencional de isolar a instalação de pacotes python no contexto do sistema operacional. A ferramenta pode ser instalada de acordo com a documentação oficial. Pode ser necessário realizar a instalação através dos repositórios do deadsnakes.
pipx é um gerenciador de pacotes que permite a execução de apliações Python em ambientes isolados. A instalação da ferramenta é opcional, porém recomendada para instalar o Python Poetry (ver próxima seção), que é utilizado para o gerenciamento de dependências do projeto. O processo de instalação está disponível na documentação oficial.
O Poetry é a ferramenta de gerenciamento de dependências do projeto; pode ser
instalada de acordo com o manual encontrado na
documentação oficial;
recomenda-se realizar a instalação através do pipx
.
Docker e a ferramenta auxiliar Compose são utilizados para isolar a execução de processos e aplicações em máquinas virtualizadas separadamente do ambiente do sistema operacional. Para instalar as ferramentas, siga os passos especificados para a distribuição do seu SO de acordo com a documentação oficial.
Para instalar as dependências do projeto basta inicializar o ambiente virtual e executar o comando de instalação:
source venv/bin/activate
poetry install
Antes de inicializar a aplicação, é necessário ativar o container do banco de dados do projeto no docker. Para verificar o status atual do container execute o comando
docker ps
:docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 918266dc5863 mongo "docker-entrypoint.s…" 6 days ago Up About an hour 27017/tcp metrify_mongo_1
Caso o container do metrify não conste na lista apresentada, execute o compose (dentro do projeto) para ativar os containers:
# Dependendo da versão do Docker instalada no sistema, execute "docker compose" ou "docker-compose", se o compose for instalado separadamente. Consultar documentação oficial. docker compose up -d mongo Creating metrify_mongo_1 ... done
É necessário exportar as credenciais da aplicação em um arquivo .env
para que
seja possível realizar a integração com os serviços do Github; para fazer isso,
adicione o arquivo na raiz do projeto da seguinte maneira:
.
├── .coverage
├── docker-compose.yml
├── docs
│ ├── build
│ ├── make.bat
│ ├── Makefile
│ └── source
+ ├── .env
├── .flaskenv
├── .github
│ └── workflows
├── .gitignore
├── LICENSE.rst
├── metrify
...
Registre os dados de configuração para a integração:
# .env
APP_ID="app_id"
PRIVATE_KEY_PATH="./.private-key.pem"
INSTALLATION_ID="your_installation_id"
As variáveis APP_ID
e INSTALLATION_ID
são referentes ao ID universal do
Github App e ID da instalação do app na organização de destino, respectivamente.
A variável de ambiente PRIVATE_KEY_PATH
deve apontar para a localização do
arquivo .pem
da chave privada da aplicação (consultar com equipe de
desenvolvimento para adquirir uma chave de acesso).
Recomenda-se salvar a chave de acesso em um arquivo .private-key.pem
na raiz
do projeto, como demonstrado no exemplo de configuração, da seguinte maneira:
.
├── .coverage
├── docker-compose.yml
├── docs
│ ├── build
│ ├── make.bat
│ ├── Makefile
│ └── source
├── .env
+ ├── .private-key.pem
├── .flaskenv
├── .github
│ └── workflows
├── .gitignore
├── LICENSE.rst
├── metrify
...
Após a instalação de todos os recursos, certifique-se de ativar o ambiente virtual para executar o servidor Flask:
source venv/bin/activate
flask run
A aplicação estará disponível em no endereço 127.0.0.1:5000
.