Skip to content
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

PR: Configuração básica do repositório #1

Merged
merged 8 commits into from
Feb 18, 2025
51 changes: 51 additions & 0 deletions .github/ISSUE_TEMPLATE/bug-report.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
---
name: Bug Report
about: Declaração de erros ou bugs envolvendo a biblioteca
title: "[BUG]"
labels: bug
assignees: ThiagoPanini

---

✍️ **_Descrição do problema:_**

ToDo: proporcione uma visão clara do bug a ser reportado. Adicionalmente, insira blocos de código capazes de facilitar na identificação e reprodução do problema.

```python
# Insira seu código aqui
```
___

🐞 **_Reproduzindo o problema:_**

Para reproduzir o bug, siga os passos abaixo (exemplo):

1. [ ] Importar o módulo ```package.module```
2. [ ] Executar a função ```function()```
3. [ ] Incluir os parâmetros ```(param_a='a', param_b='b')```
4. [ ] Verificar os erros ```Exception e```
___

⚙️ **_Comportamento esperado:_**

ToDo: descreva o comportamento esperado pela função.

___

🌎 **_Informações adicionais:_**

ToDo: se aplicável, forneça detalhes adicionais sobre o ambiente utilizado (por exemplo, o sistema operacional, versão da linguagem de programa, versão da biblioteca, entre outras).

___

📷 **_Screenshots:_** [OPCIONAL]

ToDo: se aplicável, forneça algumas capturas de tela para ajudar no entendimento do bug/problema

___

💬 **_Possíveis soluções:_** [OPCIONAL]

Provavelmente soluções para o problema poderiam ser testadas através dos caminhos:
- Tentativa A
- Tentativa B
16 changes: 16 additions & 0 deletions .github/ISSUE_TEMPLATE/documentation.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
---
name: Documentação
about: Aprimoramento de Documentação
title: "[DOC]"
labels: documentation
assignees: ThiagoPanini

---

📚 **_Aprimoramentos necessários:_**

ToDo: Liste aqui seções, módulos, classes ou funções que precisam melhorar, corrigir ou até mesmo incluir documentações:

- Seção X
- Módulo Y
- Método Z da Classe W
42 changes: 42 additions & 0 deletions .github/ISSUE_TEMPLATE/feature-request.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
---
name: Feature Request
about: Requisição de novas funcionalidades
title: "[FEATURE]"
labels: feature
assignees: ThiagoPanini

---

🚀 **_Funcionalidade requerida:_**

ToDo: forneça detalhes sobre as funcionalidades requeridas.

___

🏆 **_Benefícios da nova funcionalidade:_**

Possíveis benefícios atrelados à nova funcionalidade
* Aprimoramento...
* Melhoria...
* Garantia de que...
* Aumento...
* ...

___

🧙‍♂️ **_Complexidade:_**

- [ ] Extrema
- [ ] Alta
- [ ] Média
- [ ] Baixa

___

💡 **_Ideias de desenvolvimento:_** [OPCIONAL]

Alguns caminhos promissores para o desenvolvimento desta nova funcionalidade seriam:

- Procurar por...
- Aplicar...
- Tentar...
21 changes: 21 additions & 0 deletions .github/ISSUE_TEMPLATE/help-needed.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
---
name: Help
about: Ajuda Necessária
title: "[HELP]"
labels: help wanted
assignees: ''

---

⚠️ **_Pedido de ajuda:_**

ToDo: descreva aqui o pedido de ajuda

___

✅ **_Checklist útil antes da oficialização do pedido:_**

- [ ] Eu já li a documentação do projeto
- [ ] Já levantei a possibilidade de conflitos de ambiente, como sistema operacional, versão do Python, versão da biblioteca, entre outros
- [ ] Já consumi as demonstrações das funcionalidades existentes na documentação
- [ ] Já procurei por issues similares no repositório do projeto
28 changes: 28 additions & 0 deletions .github/pull_request_template.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
📑 **_Detalhes do Pull Request:_**

ToDo: forneça uma breve descrição sobre o PR aberto e garanta que os demais usuários interessados possam entender facilmente as alterações propostas.

___

🔨 **_Atividades/features contempladas:_**

- Atividade A
- Melhoria B
- ...

___

🔗 **_Issues vinculadas_**

Este PR eventualmente está atrelado às seguintes *issues*:

- [ ] Nenhuma *issue vinculada*
- [ ] #

___

✅ **_Checklist:_**

- [ ] As novas parcelas de código seguiram as boas práticas de desenvolvimento
- [ ] Novas funcionalidades foram testadas adequadamente
- [ ] Espera-se que as novas funcionalidades não comprometam a solução como um todo
58 changes: 58 additions & 0 deletions .github/workflows/ci-feature.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
name: "⚙️ CI Feature Branch"

on:
push:
branches:
- feature**
- '[0-9].[0-9].x'
- 'v[0-9].[0-9].[0-9]'
- 'v[0-9].[0-9].x'
- docs**

permissions:
id-token: write
contents: write
pull-requests: write

jobs:
ci-terraform-dynamodb-table:
name: 🛠️ ci-terraform-dynamodb-table
runs-on: ubuntu-latest

steps:
- name: 🔄 Checkout
uses: actions/checkout@v4

- name: ⛏️ Terraform Setup
uses: hashicorp/setup-terraform@v2
with:
terraform_version: 1.10.5

- name: 🍃 Terraform Init
run: terraform init
working-directory: aws/dynamodb-table

- name: ✅ Terraform Validate
run: terraform validate
working-directory: aws/dynamodb-table

open-pr-to-main:
name: 🔓 open-pr-to-main
runs-on: ubuntu-latest
needs:
- ci-terraform-dynamodb-table

steps:
- name: 🔄 Checkout
uses: actions/checkout@v4

- name: 🔓 PR to main
uses: peter-evans/create-pull-request@v7
with:
base: main
branch: ${{ github.ref }}
title: "pr(main): ${{ github.ref }} -> main"
body-path: ".github/pull_request_template.md"
labels: "github-bot 🤖"
commit-message: "bot: abertura automática de PR para branch main"

52 changes: 52 additions & 0 deletions .github/workflows/ci-tf-module-releaser.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
name: "🚀 CI Terraform Module Releaser"

on:
pull_request:
types: [opened, reopened, synchronize, closed] # Closed required
branches:
- main

permissions:
contents: write # Required for to push tags, create release, and push changes to the wiki
pull-requests: write # Required to comment on pull request

jobs:
ci-terraform-dynamodb-table:
name: 🛠️ ci-terraform-dynamodb-table
runs-on: ubuntu-latest

steps:
- name: 🔄 Checkout
uses: actions/checkout@v4

- name: ⛏️ Terraform Setup
uses: hashicorp/setup-terraform@v2
with:
terraform_version: 1.10.5

- name: 🍃 Terraform Init
run: terraform init
working-directory: aws/dynamodb-table

- name: ✅ Terraform Validate
run: terraform validate
working-directory: aws/dynamodb-table

release:
name: 🚀 terraform-module-releaser
runs-on: ubuntu-latest
needs:
- ci-terraform-dynamodb-table

steps:
- name: 🔄 Checkout
uses: actions/checkout@v4

- name: 🚀 Terraform Module Releaser
uses: techpivot/terraform-module-releaser@v1.4.1
with:
default-first-tag: v0.0.1
major-keywords: major change,breaking change
minor-keywords: feat,feature
patch-keywords: fix,hotfix,chore,docs,config,ci
terraform-docs-version: v0.19.0
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
# Local .terraform directories
**/.terraform/*
**.terraform.**

# .tfstate files
*.tfstate
Expand Down
11 changes: 11 additions & 0 deletions aws/dynamodb-table/data.tf
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
/* --------------------------------------------------------
ARQUIVO: data.tf

Arquivo criado para centralizar todas as definições de
data sources do Terraform definidos para facilitar a
declaração e configuração de recursos ao longo do módulo
-------------------------------------------------------- */

# Definindo data sources para coleta de ID da conta e nome da regiao
data "aws_caller_identity" "current" {}
data "aws_region" "current" {}
15 changes: 15 additions & 0 deletions aws/dynamodb-table/locals.tf
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
/* --------------------------------------------------------
ARQUIVO: locals.tf

Arquivo responsável por declarar variáveis/valores locais
capazes de auxiliar na obtenção de informações dinâmicas
utilizadas durante a implantação do projeto, como por
exemplo, o ID da conta alvo de implantação ou o nome da
região.
-------------------------------------------------------- */

locals {
# Extraindo ID da conta e nome da região
account_id = data.aws_caller_identity.current.account_id
region_name = data.aws_region.current.name
}
12 changes: 12 additions & 0 deletions aws/dynamodb-table/main.tf
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
/* --------------------------------------------------------
ARQUIVO: main.tf @ aws/dynamodb-table module

Definição e aplicação de regras necessárias para criação
e implantação de uma tabela pré configurada no DynamoDB.
-------------------------------------------------------- */

resource "aws_dynamodb_table" "this" {
name = var.name
billing_mode = var.billing_mode

}
23 changes: 23 additions & 0 deletions aws/dynamodb-table/variables.tf
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
/* --------------------------------------------------------
ARQUIVO: variables.tf @ get-active-tickers module

Variáveis utilizadas no módulo aws/dynamodb-table para
definição e criação de tabelas no DynamoDB
-------------------------------------------------------- */

variable "name" {
description = "[REQUIRED] Nome da tabela a ser criada no DynamoDB"
type = string
}


variable "billing_mode" {
description = "Tipo de cobrança associada ao consumo dos itens da tabela criada"
type = string
default = "PAY_PER_REQUEST"

validation {
condition = var.billing_mode == "PROVISIONED" || var.billing_mode == "PAY_PER_REQUEST"
error_message = "O valor da variável deve ser 'PROVISIONED' ou 'PAY_PER_REQUEST'."
}
}
17 changes: 17 additions & 0 deletions aws/dynamodb-table/versions.tf
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
/* --------------------------------------------------------
ARQUIVO: versions.tf @ aws/dynamodb-table module

Configuração de versão do Terraform e do provider utilizado
para implantação de recursos de infraestrutura do módulo.
-------------------------------------------------------- */

terraform {
required_version = ">= 1.4"

required_providers {
aws = {
source = "hashicorp/aws"
version = "~> 4.61"
}
}
}