Emissor - ação do GitHub para forçar o autoatendimento para usuários do repositório

No âmbito do projeto Emissora foi preparado um bot para GitHub, resolvendo problemas de autoatendimento forçado para usuários do repositório. No GitHub você encontra repositórios cuja única função é coordenar pessoas através do sistema Issue. Alguns deles pedem a quem está deixando um problema que preencha um formulário. Em seguida, chega um moderador, verifica se o formulário está preenchido corretamente e coloca as tags de acordo com as especificadas no formulário (as tags só podem ser adicionadas por um usuário privilegiado se não estiverem especificadas no modelo). Um exemplo de tal comunidade é ideias de código aberto/ideias de código aberto.

O moderador não chega imediatamente. Portanto, para validar formulários e realizar operações preparado apresentado nas notícias do GitHub. O bot é escrito em Python, mas você ainda precisa iniciá-lo por meio do node.js, já que o GitHub tem apenas 2 tipos de ações - node.js e docker, e para o docker, o mesmo contêiner é carregado primeiro como node.js, e carregado nele outro contêiner, isso é muito tempo. Considerando que o container com node.js contém python3 e tudo mais que você precisa, é racional simplesmente carregar as dependências nele, já que elas são pequenas.

Características:

  • A ação é controlada usando configuração YAML e modelos Markdown;
  • A cada template Markdown é adicionado um bloco que descreve as condições para o correto preenchimento do formulário e as ações desejadas;
  • Um arquivo de configuração com configurações globais é adicionado;
  • Os formulários consistem em seções. Existem 2 tipos de seções:
    • Texto livre. A ação pode verificar se o usuário se preocupou em preencher algo ali. O significado do texto não é verificado automaticamente.
    • Caixas de seleção. Você pode exigir que n caixas de seleção sejam preenchidas de forma que 0 {= m1 {= n {= m2 {= número total de caixas de seleção na seção. A ação verifica se as caixas de seleção correspondem às caixas de seleção do modelo. Se os sinalizadores estiverem definidos corretamente, a ação poderá adicionar tags para emitir, respectivamente. bandeiras.
  • Caso o formulário seja preenchido incorretamente, a ação orienta o usuário sobre como preenchê-lo corretamente e coloca uma etiqueta especial nele.
  • Se o formulário não for corrigido dentro de um determinado prazo, a ação poderá encerrar o problema. Banimento automático de usuários, exclusão e movimentação de problemas ainda não foram implementados devido à falta de uma API oficial para as ações necessárias e problemas com armazenamento estatal.
  • Se o problema for resolvido, a ação remove o rótulo.
  • Os modelos de resposta de ação são, obviamente, personalizáveis.

Fonte: opennet.ru

Adicionar um comentário