> ## Documentation Index
> Fetch the complete documentation index at: https://docs.airys.chat/llms.txt
> Use this file to discover all available pages before exploring further.

# Contribuindo para o AirysChat

> Guia completo para contribuir com o AirysChat - desde a configuração do seu ambiente de desenvolvimento até o envio de pull requests.

# Guia de Contribuição

Obrigado por se interessar em contribuir para o AirysChat! Este guia o ajudará a começar a contribuir com nossa plataforma de suporte ao cliente de código aberto. Antes de enviar sua contribuição, reserve um momento para ler as diretrizes a seguir.

## Começando

<Warning>
  Antes de começar seu trabalho, certifique-se de que existe uma issue para ele. Se não, sinta-se à vontade para criar uma. Você também pode dar uma olhada nas issues marcadas como [Good first issues](https://github.com/airyschat/airyschat/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22).
</Warning>

### Passos Iniciais

1. **Verifique Issues Existentes**: Navegue pelas [issues do GitHub](https://github.com/airyschat/airyschat/issues) para ver se alguém já está trabalhando no que você deseja contribuir.

2. **Comente na Issue**: Adicione um comentário na issue e aguarde que a issue seja atribuída a você antes de começar a trabalhar nela.
   * Isso ajuda a evitar que várias pessoas trabalhem em issues semelhantes.

3. **Proponha Soluções Complexas**: Se a solução for complexa, proponha a solução na issue e aguarde a aprovação de um dos principais contribuidores antes de iniciar a implementação.
   * Isso ajuda a reduzir o tempo de retorno na mesclagem de PRs.

4. **Justifique Novos Recursos**: Para solicitações de novos recursos, forneça um motivo convincente para adicionar esse recurso. Casos de uso de negócios da vida real serão super úteis.

5. **Junte-se à Comunidade**: Sinta-se à vontade para ingressar em nossa [comunidade do Discord](https://discord.com/invite/cJXdrwS) se precisar de mais discussões com a equipe principal.

## Diretrizes de Pull Request

<Info>
  Usamos o modelo de ramificação git-flow. A branch base é `develop`. Por favor, abra seus PRs contra a branch `develop`.
</Info>

### Antes de Enviar

* Certifique-se de ter lido as [diretrizes de triagem de issues](https://www.airyschat.com/hc/handbook/articles/issue-triage-29) antes de fazer uma contribuição.
* É bom e encorajado ter vários commits pequenos enquanto você trabalha no PR - nós iremos fazer o squash dos commits antes de mesclar.
* Para outras diretrizes, consulte as [Diretrizes de PR](https://www.airyschat.com/hc/handbook/articles/pull-request-guidelines-32)
* Certifique-se de que todos os textos que você adicionar no produto sejam traduzíveis por i18n. Você só precisa adicionar a versão em `English` das strings. Nós extraímos as traduções de outros idiomas de nossos contribuidores no crowdin. Consulte as [Diretrizes de tradução](https://www.airyschat.com/docs/contributing-guide/translation-guidelines) para saber mais.

## Fluxo de Trabalho de Desenvolvimento

### Desenvolvendo um Novo Recurso

```bash theme={null}
# Crie uma branch no seguinte formato:
feature/<issue-id>-<issue-name>

# Exemplo:
feature/235-contact-panel
```

**Requisitos:**

* Adicione casos de teste complementares
* Siga nossos padrões de codificação
* Inclua documentação adequada

### Correções de Bugs ou Tarefas Menores (Chores)

```bash theme={null}
# Nomenclatura de branch para correções de bugs:
fix/<issue-id>-<issue-name>

# Nomenclatura de branch para tarefas menores:
chore/<description>
```

**Requisitos:**

* Se você estiver resolvendo uma issue específica, adicione `fix: Fixes xxxx` (#xxxx é a issue) no título do seu PR
* Forneça uma descrição detalhada do bug no PR
* Adicione cobertura de teste apropriada, se aplicável

## Configuração do Ambiente

Escolha o guia que corresponde ao seu sistema operacional:

<CardGroup cols={2}>
  <Card title="Configuração no macOS" icon="apple" href="/contributing-guide/environment-setup/mac-os">
    Guia de configuração completo para desenvolvedores macOS
  </Card>

  <Card title="Configuração no Ubuntu" icon="ubuntu" href="/contributing-guide/environment-setup/ubuntu">
    Guia de instalação passo a passo para Ubuntu
  </Card>

  <Card title="Configuração no Windows" icon="windows" href="/contributing-guide/environment-setup/windows">
    Configuração do ambiente de desenvolvimento no Windows 10/11
  </Card>

  <Card title="Configuração com Docker" icon="docker" href="/contributing-guide/environment-setup/docker">
    Configuração rápida usando contêineres Docker
  </Card>
</CardGroup>

### Acelere o Desenvolvimento

Use nossos [Comandos Make](/contributing-guide/environment-setup/make) para acelerar seu fluxo de trabalho de desenvolvimento local.

## Configuração do Projeto

Depois de configurar o ambiente, siga estes guias para colocar o AirysChat para funcionar localmente:

1. **[Guia de Configuração Rápida](/contributing-guide/setup-guide)** - Instruções de configuração passo a passo
2. **[Variáveis de Ambiente](/contributing-guide/environment-variables)** - Opções de configuração
3. **[Erros Comuns](/contributing-guide/common-errors)** - Guia de solução de problemas

### Integrações de Aplicativos Especiais

Se você estiver trabalhando em integrações específicas:

* **[Configuração do Aplicativo Telegram](/contributing-guide/telegram-channel-setup)**
* **[Configuração do Aplicativo Line](/contributing-guide/line-channel-setup)**
* **[Desenvolvimento de Aplicativo Móvel](/contributing-guide/mobile-app)**

## Testando suas Contribuições

Usamos testes abrangentes para garantir a qualidade do código:

### Tipos de Teste

* **Testes Unitários**: Testam componentes e funções individuais
* **Testes de Integração**: Testam interações de componentes
* **Testes Ponta a Ponta (End-to-End)**: Testam fluxos de trabalho completos do usuário com [Cypress](/contributing-guide/tests/cypress)

### Executando Testes

```bash theme={null}
# Executa todos os testes
bundle exec rspec

# Executa um arquivo de teste específico
bundle exec rspec spec/models/user_spec.rb

# Executa testes Cypress
npm run cypress:open
```

## Documentação e Tradução

### Diretrizes de Documentação

* Mantenha a documentação clara e concisa
* Inclua exemplos de código onde for útil
* Atualize a documentação ao alterar a funcionalidade
* Siga nossas [diretrizes de tradução](https://www.airyschat.com/docs/contributing-guide/other/translation-guidelines)

### Internacionalização

* Todo o texto voltado para o usuário deve ser traduzível
* Adicione apenas strings em inglês - outros idiomas são tratados via [Crowdin](https://translate.airyschat.com/)
* Use formatação e chaves i18n adequadas

## Diretrizes da Comunidade

Nós nos esforçamos para manter uma comunidade acolhedora e inclusiva:

* **[Código de Conduta](https://www.airyschat.com/docs/contributing-guide/other/code-of-conduct)** - Nossos padrões da comunidade
* **[Diretrizes da Comunidade](https://www.airyschat.com/docs/contributing-guide/other/community-guidelines)** - Como interagimos
* **[Relatórios de Segurança](https://www.airyschat.com/docs/contributing-guide/other/security-reports)** - Relatando problemas de segurança

## Desenvolvimento de API

Se você estiver trabalhando em recursos relacionados a API:

* **[APIs do AirysChat](https://www.airyschat.com/docs/contributing-guide/other/airyschat-apis)** - Guia de desenvolvimento de API
* **[Documentação da API](https://www.airyschat.com/docs/contributing-guide/other/api-documentation)** - Documentando APIs
* **[APIs da Plataforma](https://www.airyschat.com/docs/contributing-guide/other/airyschat-platform-apis)** - APIs em nível de plataforma

## Reconhecimento

Valorizamos todas as contribuições para o AirysChat. Confira nossa página de [Contribuidores](https://www.airyschat.com/docs/contributing-guide/other/contributors) para ver as pessoas incríveis que ajudaram a tornar o AirysChat melhor.

## Obtendo Ajuda

Precisa de assistência? Aqui estão suas opções:

* **Issues do GitHub**: Para relatórios de bugs e solicitações de recursos
* **Comunidade do Discord**: Para discussões em tempo real com a equipe principal
* **Documentação**: Guias abrangentes e referências de API
* **Fóruns da Comunidade**: Conecte-se com outros contribuidores

***

Pronto para começar a contribuir? Escolha uma issue que lhe interesse e siga nossas diretrizes acima. Cada contribuição, por menor que seja, ajuda a tornar o AirysChat melhor para todos! 🚀
