Base de conhecimento Código
Trabalhando em um repositório git
O Pro pode trabalhar dentro de um de seus repositórios da mesma forma que um agente de codificação faz - ler seus arquivos reais, e com escritos, mudando-os.
Esta página foi traduzida automaticamente por conveniência. O original em inglês é a versão aplicável.
Conectando um repositório
?gitOu o Vá O chip na barra de ferramentas, conecta um provedor: GitHub, GitLab, ou Gitea/Forgejo – que cobre Codeberg e instâncias auto-hostadas.
announces itself on Nostr Pode ser inserido como seu endereço em vez disso.
Você não precisa digitar o nome do repositório. Colar o token e escolher Listar o que este token pode alcançar: Nymbot pergunta ao forge o que esse token pode ver e mostra a resposta como uma lista que você verifica. Checking conecta cada um com seu ramo padrão já preenchido, e coloca-os todos neste bate-papo. Tudo o que já está conectado é mostrado como tal em vez de oferecido uma segunda vez. Esse pedido vai do seu dispositivo diretamente para o forge - não através do trabalhador do Nymbot - então o token não viaja para onde já não vai. Um forge auto-hostado que recusa solicitações de origem cruzada simplesmente não pode ser listado; digite o repositório manualmente e tudo o resto funciona da mesma forma.
Uma vez conectado, o chip mostra o nome do repositório e as mensagens enviadas com um
Por Modelo selecionados no contexto desse repositório.
?git disconnect Remova isso . Desconectado na lista de repositório esquece o token, mas mantém o repositório lá, marcado como não tendo token, para que você possa adicionar um novo mais tarde.
Repositorios anunciados em Nostra
Alguns repositórios anunciam-se no Nostr em vez de apenas em um forjado, usando Página 34 O protocolo por trás Ninguém O anúncio é um evento Nostr que carrega o nome do projeto, seus mantenedores, os relés que coletam seus patches e problemas, e os URLs a partir dos quais pode ser clonado.
Paste um naddr ou a nostr:// O endereço para o formulário de repositório e press Olhe para cima. Nymbot reads the announcement off the relays and fills the
form in: the git host it is cloned from, the repository there, and the branch the project
itself says is current. You still add a token for that host, because Nostr carries the
announcement and the git server carries the code.
Um repositório cujo URL de clone está no GitHub, GitLab, Gitea ou Forgejo – auto-hostado incluído – é um Nymbot que pode ler. git:// ou ssh não tem uma API HTTP para ler arquivos através, e Nymbot diz isso em vez de meio-conectar. Onde o host é auto-hostado o provedor é uma adivinhação de seu nome, e você pode corrigi-lo antes de salvar.
Um repositório adicionado desta forma é badged Ninguém na lista, e as respostas chamá-lo pelo nome que anuncia, em vez de pelo seu caminho no espelho.
O que pode fazer
O modelo pode listar diretórios, ler arquivos e pesquisar a árvore, em seguida, responder usando o que realmente encontrou - então "por que o loop de retry desiste cedo" é respondido a partir do seu código, não de uma adivinhação sobre o código que parece o seu.
Ele vê o ramo que você conectou, em sua cabeça atual.
com Servidor em execução ativado para o bate-papo, ele também pode pedir para executar um comando contra o seu código, como os testes, em um servidor Nymbot.
Voltando a escrever
?git writes on adiciona a capacidade de cometer arquivos, criar ramos e abrir solicitações de arrastar ou fundir. Desligado por padrão, e vale a pena deixá-lo até que você queira.
Com escreve em, peça uma mudança e você recebe um ramo e uma solicitação de puxar para revisar em vez de um patch colado no bate-papo: cada tarefa funciona em Um ramo de sua própriaNada é empurrado para o seu ramo padrão a menos que você desligue isso, que é o ramo que você conectou, e você pediu isso.
As edições de uma execução entram como uma comissão por repositório, no final da execução ou quando o modelo decide que uma peça de trabalho está concluída. Pergunte antes de se comprometer A execução então retém suas alterações, a resposta mostra-as como um diff, e Aplique Comprometa-os enquanto Descarte Aplicar não custa nada.
Um ramo para cada tarefa
com Cada tarefa tem seu próprio ramo sobre, que é para cada repositório, a menos que você o desligue, uma tarefa que escreve compromete-se a um ramo próprio, chamado
nymbot/ Nymbot faz isso a partir da cabeça do ramo de trabalho quando a tarefa faz seu primeiro compromisso, de modo que uma tarefa que só lê não faz ramo em tudo.
Quando a tarefa é concluída, o Nymbot faz o que Quando feito diz ele. Abra um Pull Request É a falha; Ofereça uma combinação Deixe um botão na resposta; Deixe o ramo não faz mais nada. O padrão é definido em Configurações, sob Quando uma tarefa’s ramo é feito, e cada repositório pode escolher de forma diferente em sua própria forma.Se o forjador não tiver uma API para solicitações de puxar que o Nymbot possa usar, ou rejeitar uma, o ramo é deixado como está e a resposta diz que é.
A resposta mostra o ramo com Abertura do PR, Mergulhe e Delete, e o painel de tarefas lista-o com a tarefa. Enquanto a tarefa ainda está em execução, seu cartão, o painel de tarefas e a lista do que está em execução nomeia o ramo assim que existir, em cada dispositivo conectado à conta. Uma tarefa que é interrompida ou falha parcialmente ainda mantém seu ramo de volta, para que ele possa ser fundido, excluído ou limpo como qualquer outro. Uma fusão é um comitê de fusão através da solicitação de puxão própria do forge’, acoplado ao comitê Nymbot registrado, de modo que os novos comitês empurrados lá no meio tempo nunca são fundidos invisível. Nada é forçado. Se o ramo conflita com o ramo de trabalho, a resposta oferece Abre o PR para resolver ou Peça ao Nymbot para atualizar o ramoGitHub e Gitea ou Forgejo podem fazer isso; GitLab não tem API para isso, então lá você resolve no pedido de fusão.
Mudanças nos arquivos CI e fluxo de trabalho ainda aguardam sua revisão, exatamente como eles fazem sem um ramo próprio.
O aparelho lembra-se do nymbot/ A próxima tarefa nesse repositório, ou Limpe os ramos do Nymbot na lista de repositório, exclui aqueles cuja solicitação de pull é fundida ou fechada, ou que têm sete dias de idade e nada resta para fundir. Um ramo é excluído apenas se ele ainda termina no comit Nymbot gravado, então alguém pressionou para depois é deixado sozinho, e nenhum outro ramo é tocado. Ele é executado do seu dispositivo com o token que ele já envia; o servidor não mantém nenhum token para fazê-lo mais tarde.
Desligue a opção para se comprometer diretamente com o ramo de trabalho. Uma tarefa então tem o repositório para si, e um segundo no mesmo ramo só lê até que o primeiro tenha terminado.
Descobrir o que uma corrida mudou
Uma resposta que escreveu para o seu repositório diz o que tocou: o repositório, o ramo e cada arquivo. Enquanto essas mudanças coloca-os de volta – cada um desses caminhos é lido no compromisso que o ramo estava em frente à corrida e se comprometeu como estava. Um ramo de sua própria Deixou o ramo de trabalho sozinho, então não há nada lá para colocar de volta: Delete Remova seu ramo em vez disso.
Isso é uma reversão, não uma reescrita.Nada é apagado e nenhum histórico é reescrito: o que Nymbot fez permanece no log, simplesmente não é mais o estado do ramo.Qualquer um que puxou entre mantém um checkout que ainda funciona.
Undoing não atinge nenhum modelo, então não gasta créditos – o token de acesso viaja com esse pedido da mesma forma que faz com todos os outros, e nada sobre o ponto de controle é armazenado em qualquer lugar, exceto seu próprio dispositivo.
Fechar a solicitação de retirada de alguém em seu nome não é uma anulação, e excluir um ramo que outras pessoas podem ter recolhido não é nem - faça-os você mesmo se você quiser que eles saíssem.
Quanto custa uma tarefa de repo
Uma tarefa de repo usa até seis chamadas de modelo por mensagem – olhe, leia, procure, responda – cada uma cobrada no modelo acoplado. Por preçoApenas as chamadas realmente usadas são cobradas, então uma pergunta respondida a partir de um arquivo custa quanto custa uma resposta comum.
O aplicativo relata o total e o número de chamadas após cada tarefa de repo.
Quando uma tarefa sai da sala
Uma tarefa de repositório é um loop, não uma única resposta: o modelo lista um diretório, lê um arquivo, pesquisa a árvore, lê outro e só então escreve.
Quando uma tarefa usa sua permissão com o trabalho ainda por fazer, o Nymbot pára, dá-lhe o que tem e diz assim.
Você também pode deixá-lo continuar. Defina um orçamento de continuação em Configurações e o Nymbot compra outro subsídio do mesmo saldo quando uma tarefa expirar, pegar exatamente onde parou em vez de re-ler o repositório desde o início. Ele vai uma perna de cada vez, cada perna diz o que custou, e pára no momento em que o orçamento é gasto, a tarefa é concluída, ou você pressiona Stop.
Nada continua, e nada é gasto além da resposta que você pediu, a menos que você tenha definido um orçamento.
Normalmente, o seu dispositivo envia cada perna, de modo que uma tarefa só é executada enquanto o aplicativo estiver aberto. Fonte Corrida ligado, o servidor envia as próximas pernas enquanto o aplicativo está fechado, dentro do mesmo orçamento, a um máximo de 40 pernas e 6 horas, e diz-lhe uma vez quando a tarefa está concluída.Para fazer isso, mantém o token do repositório selado com uma chave que só detém enquanto a tarefa está a funcionar, e exclui-a quando a tarefa termina e sempre dentro de 6 horas.
Sobre esse token
O token de acesso é mantido em seus dispositivos e sincroniza entre eles dentro de suas configurações criptografadas end-to-end, então o servidor mantém apenas uma cópia selada que não pode ser lida. Dispositivo Wipe, viaja para o trabalhador Nymbot com cada solicitação, e nunca é armazenado legível do lado do servidor ou publicado para relays. Fonte Corrida você ligou está funcionando, por no máximo 6 horas. Escape-o para o repositório que você pretende usar, e revogá-lo em seu provedor quando você estiver pronto.
Uma vez que sincroniza, um bate-papo que usa o repositório funciona em todos os dispositivos que você entra sem ligá-lo novamente. Desligando o repositório em um dispositivo limpa o token nos outros também. Serviço Rundo contêiner.