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

# Contribuir para um projeto do GitHub

> Importe um repositório a partir de um chat, peça uma pequena mudança, confira em uma prévia e deixe o Agent abrir o pull request.

export const Connectors = ({items}) => <div style={{
  margin: "8px 0 20px"
}}>
    <style>{`
      .connectors-list, .connectors-list * { margin-top: 0 !important; margin-bottom: 0 !important; }
      .connectors-row {
        display: flex !important;
        align-items: flex-start !important;
        gap: 10px !important;
        padding: 4px 0 !important;
        min-height: 0 !important;
        height: auto !important;
      }
      .connectors-row img {
        width: 20px !important;
        height: 20px !important;
        max-width: 20px !important;
        max-height: 20px !important;
        margin: 2px 0 0 !important;
        display: block !important;
      }
    `}</style>
    <div className="connectors-list">
      {items.map((item, i) => <div key={item.id} className="connectors-row" style={{
  borderTop: i === 0 ? "none" : "1px solid rgba(130,130,130,0.22)"
}}>
          <img src={`/images/connectors/${item.id}.svg`} alt="" width={20} height={20} />
          <div style={{
  minWidth: 0
}}>
            <div>
              <strong>{item.name}</strong>
              {item.why ? <span style={{
  opacity: 0.72
}}> · {item.why}</span> : null}
            </div>
            {item.auth === "api-key" ? <div style={{
  fontSize: "11.5px",
  lineHeight: 1.35,
  color: "#F26207",
  marginTop: "2px"
}}>
                Not a native connector. Agent will ask for your API key.
              </div> : null}
          </div>
        </div>)}
    </div>
  </div>;

export const AiPrompt = ({children}) => {
  return <CodeBlock className="relative block max-w-full overflow-x-hidden font-sans !whitespace-pre-wrap !break-words" style={{
    overflowWrap: "anywhere",
    wordBreak: "break-word"
  }}>
      <div className="pr-7" style={{
    whiteSpace: "pre-wrap",
    overflowWrap: "anywhere",
    wordBreak: "break-word"
  }}>
        {children}
      </div>
    </CodeBlock>;
};

Faça uma pequena mudança em um repositório ao qual você tem acesso de escrita, direto de um
chat. Importe o repositório pela caixa de prompt, peça a mudança em linguagem simples e
confira em uma prévia ao vivo. Quando estiver certo, o Agent faz o commit em uma branch,
envia o push e abre o pull request com a descrição preenchida.

## Ideal para

* Desenvolvedores que querem entregar mudanças sem configurar um ambiente local.
* Pessoas não desenvolvedoras que precisam de uma pequena mudança, como um erro de digitação ou um ajuste de texto, sem tirar um desenvolvedor do que está fazendo.

## Conectores

<Connectors
  items={[
{
  id: "github",
  name: "GitHub",
  why: "O repositório que você importa, a branch para a qual faz push e o pull request",
},
]}
/>

## Antes de começar

Escolha uma mudança pequena e bem delimitada e consulte o guia de contribuição do projeto,
se houver um. Você precisa de acesso de escrita ao repositório, já que o Agent envia a
branch diretamente e abre o pull request a partir dela.

Na caixa de prompt, abra o menu **plus**, selecione **Import an existing project**,
escolha **GitHub** e cole a URL do repositório. Você também pode simplesmente colar o link
do repositório diretamente na caixa de prompt.

## Dê o prompt ao agente

<AiPrompt>
  Este é o \[link do repositório], importado do GitHub. Altere o H1 da página
  inicial de \[texto atual] para \[novo texto]. Mantenha o estilo e as convenções
  de texto existentes do projeto, não toque em mais nada e mostre-me uma prévia
  da página em execução.
</AiPrompt>

## O que esperar

<Steps>
  <Step title="O Agent configura o projeto">
    Ele lê o repositório, instala as dependências e pergunta o que não consegue
    deduzir, como uma variável de ambiente ausente.
  </Step>

  <Step title="Ele encontra o arquivo certo">
    Não apenas a string correspondente, e diz o que pretende mudar antes de
    editar.
  </Step>

  <Step title="Ele aplica a mudança e abre uma prévia">
    Assim você vê a página real em vez de um diff.
  </Step>

  <Step title="Peça o pull request">
    Quando a prévia estiver certa, peça no mesmo chat. Isso salva sua mudança e a
    envia ao seu time como um pull request, para que alguém a revise antes de ir
    ao ar. Confirme antes que sua conexão com o GitHub ainda está ativa.

    <AiPrompt>
      Faça o commit desta mudança e abra um pull request para revisão. Dê a ele
      um título claro e escreva a descrição com base no que mudou e em como eu
      conferi.
    </AiPrompt>
  </Step>
</Steps>

No fim, você tem um pull request no repositório, preenchido com o que mudou, por quê e como
você conferiu. Revise o diff você mesmo antes de enviar: revisores resistem a mudanças
extensas, então qualquer coisa não relacionada deve ir em um pull request separado.

## Adapte ao seu caso

<AiPrompt>
  Antes de fazer o commit, execute o linter e a suíte de testes do projeto e
  mostre-me o que falhar. Liste todos os arquivos que o diff altera e sinalize
  qualquer coisa não relacionada a \[mudança].
</AiPrompt>

<AiPrompt>
  Um revisor deixou estes comentários de revisão \[cole]. Aplique os que são
  correções factuais, diga-me com quais você discorda e por quê e depois faça
  push na mesma branch.
</AiPrompt>

## Solução de problemas

<AccordionGroup>
  <Accordion title="A prévia não inicia">
    O projeto precisa do comando de execução ou das variáveis de ambiente. Peça
    ao Agent para ler o guia de contribuição e o arquivo de exemplo de env e
    depois dizer exatamente o que está faltando.
  </Accordion>

  <Accordion title="O push é rejeitado">
    Confirme que você tem acesso de escrita ao repositório e que sua conexão com
    o GitHub ainda está ativa. Algumas organizações também restringem nomes de
    branch ou exigem commits assinados. Peça ao Agent para mostrar o erro exato.
  </Accordion>

  <Accordion title="Um revisor pede alterações">
    Faça o commit na mesma branch e envie o push novamente. O pull request se
    atualiza sozinho, então não abra um segundo.
  </Accordion>
</AccordionGroup>

## Relacionados

<CardGroup cols={2}>
  <Card title="Gerar notas de versão" href="/pt/use-cases/generate-release-notes">
    Transforme pull requests mesclados em notas que as pessoas consigam ler.
  </Card>

  <Card title="Visualizar seu app" href="/pt/features/editor/preview">
    Veja as mudanças rodando ao vivo antes de abrir o pull request.
  </Card>
</CardGroup>
