Este é o primeiro de 4 scripts que comecei a escrever conforme indicado na arquitetura do sistema. Me senti animado! foi um passo na direção de criar a experiência "wiki" que obtém uma contribuição para o código aberto sem fazer interface com a interface do GitHub?.
Estes são arquivos js que contêm algumas funções reutilizáveis relacionadas, especialmente destinadas a serem usadas para interagir com as APIs do GitHub; eles são consumidos no mesmo script ou exportados para serem usados para executar sua funcionalidade básica em outro lugar do projeto. Eles aceitam uma instância autenticada do Octokit de um usuário como parâmetros de outros. Esta instância é usada para executar ações/funções por meio das APIs do GitHub em nome do usuário autenticado.
A necessidade de criar um fluxo de contribuição para o código aberto sem interface com a interface do GitHub significou que tivemos que automatizar alguns processos - simulando todas as etapas que um usuário executará se contribuísse por meio da interface do GitHub, as etapas são como segue..
Comecei a escrever este script logo após o commit inicial, este foi de fato o PR # 2, mas sofreu um golpe durante o longo intervalo do mês? tirei do projeto antes de voltar a trabalhar no recurso de dicionário básico.
A tarefa aqui era criar "The Fork Script" - cujo objetivo final é criar/obter um fork do repositório jargons.dev na/a partir da conta de um usuário. Deve abrigar todas as funções que farão o seguinte.
Compreendendo a tarefa, "mergulhei" diretamente no trabalho no roteiro.
Já estou muito acostumado com as APIs do GitHub devido ao meu consumo frequente no meu trabalho diário no Hearts ❤️... Então eu tinha a documentação do Fork do GitHub parecendo um broski para mim ?...
Passando pela minha mente? enquanto escrevia este script, tive um pensamento que mantive depois de ler o parágrafo citado abaixo na documentação do GitHub Fork
Nota: a bifurcação de um repositório acontece de forma assíncrona. Talvez seja necessário esperar um curto período de tempo antes de poder acessar os objetos git. Se isso demorar mais de 5 minutos, entre em contato com o suporte do GitHub.
Eu entendi isso mal e presumi que só seríamos capazes de iniciar um processo de fork, seguir em frente e certamente não seríamos capazes de esperar por um objeto de resposta que retornasse os detalhes da nova bifurcação porque não sabemos quando o processo de bifurcação for concluído.
Essa suposição me forçou a não retornar nenhum dado da função forkRepository principal e eu já estava começando a pensar neste ponto - como vou fazer com que os detalhes do fork sejam processados para a próxima fase do processo de contribuição!? Hmm, talvez eu use webhooks?!?
Acontece que eu estava pensando demais?, percebi mais tarde que de fato obterei detalhes de resposta para o fork e isso me levou a fazer um PR de acompanhamento para abordar o retorno dos dados necessários do objeto de resposta do fork para consumo em o processo de contribuição.
Principal:
Esta solicitação pull implementa o script fork; este script deve ser usado para bifurcar programaticamente o repositório principal do projeto para uma conta de usuário; Ele abriga uma função principal e outras funções auxiliares que usa para executar algumas ações necessárias a fim de garantir uma operação eficiente do repo fork.
Resolve #2
https://github.com/babblebey/jargons.dev/assets/25631971/16221b7e-3c28-4c6c-a1f3-24d583ce7e3a
?
Este PR é uma continuação de uma etapa que faltava na implementação inicial do script fork em #3; o script fork falhou ao retornar um repositório que pode ser usado na próxima etapa do cálculo. Isso ocorreu por causa de uma suposição estranha que tive durante a implementação inicial. ?Veja minha suposição abaixo...
Presumo que a chamada para o endpoint "POST /repos/{owner}/{repo}/forks" apenas garante o início de um processo de bifurcação, sem nos garantir nenhuma resposta. O que significa que podemos não obter exatamente um response.data após a chamada
... mas isso não era verdade, descobri que um response.data realmente vem, mas pode levar algum tempo e apenas nos casos em que o repositório que está sendo bifurcado é enorme... e no momento a bifurcação do repositório do projeto acontece em menos de 5 segundos.
?
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3