Auto: Atingindo o limite de taxa de GH ao gerar changelog em uma quantidade muito grande de commits

Criado em 30 jul. 2020  ·  29Comentários  ·  Fonte: intuit/auto

Descreva o bug

O comando auto shipit alguma forma consegue ultrapassar o limite de taxa de API do GH ao tentar gerar um changelog pós-lançamento. (Veja as capturas de tela)

Reproduzir



Execute auto shipit

Para ter esse erro, você precisa ter um repositório que não tenha lançamentos, mas tenha muitos prs e commits, portanto, uma base de código essencialmente de alta velocidade.

Comportamento esperado

Uma nova versão é lançada com um changelog e lançamento.

Capturas de tela

Screenshot_2020-07-30_at_12_01_49

Screenshot_2020-07-30_at_12_01_18

Informações ambientais:

Environment Information:

"auto" version: v9.49.1
"git"  version: v2.26.0
"node" version: v13.12.0

Project Information:

✔ Repository:      project (​https://github.com/username/project​)
✔ Author Name:     Paul Dariye
✔ Author Email:    [email protected]
✔ Current Version: v0.0.23
✔ Latest Release:  0.0.1 (​https://github.com/username/project/releases/tag/0.0.1​)

✖ Labels configured on GitHub project (Try running "auto create-labels")

GitHub Token Information:

✔ Token:            [Token starting with 76e5]
✔ Repo Permission:  admin
✔ User:             dariye
✔ API:              undefined (​undefined​)
✔ Enabled Scopes:   read:packages, repo, write:packages
✔ Rate Limit:       552/5000

Contexto adicional

Consegui contornar isso passando a bandeira --no-changelog .

Rastreei o erro até esta linha de código https://github.com/intuit/auto/blob/d419b17f46638ebee68d125467891ac2e1d25304/packages/core/src/release.ts#L484

bug

Comentários muito úteis

@vincentbriglia Tenho quase certeza de que

Você poderia instalar a versão canário? Está tudo em um escopo diferente, então você terá que substituir todos os nomes de pacotes:

yarn add @auto-canary/[email protected]

yarn add @auto-canary/[email protected]
yarn add @auto-canary/[email protected]
yarn add @auto-canary/[email protected]
yarn add @auto-canary/[email protected]

@dariye Se você pudesse tentar fazer o teste também, eu agradeceria!

Todos 29 comentários

Alguma chance de eu ver o repo para brincar?

uau, são muitos pedidos

Além disso, se eu pudesse obter um registro mais completo, isso poderia ajudar

Foi realmente capaz de recriar localmente. Não preciso de nada de você além de esperança 😉

Nós criamos muitos pedidos semelhantes em semantic-release e não atingimos o limite de abuso, não que eu saiba. Deve haver um tempo limite de 3s entre as solicitações que criam um comentário, você vê isso acontecendo em seus logs?

Apenas para ter certeza: você usa uma única instância do Octokit em todas essas solicitações?

Certeza de que estamos criando apenas 1.

Isso acontece aqui https://github.com/intuit/auto/blob/master/packages/core/src/git.ts#L123

que só deve ser inicializado uma vez na inicialização https://github.com/intuit/auto/blob/master/packages/core/src/auto.ts#L1643

Eu posso verificar embora

Verificado: criado apenas uma vez

Para testar este problema no automóvel:

yarn
yarn build
yarn auto changelog --from v1.0.0 -d

Acho que isso está relacionado a https://github.com/octokit/plugin-throttling.js/issues/108, mas temos apenas 1 instância do octokit em execução, portanto, não precisamos agrupar

você faz alguma solicitação GraphQL?

Você pode confirmar se os registros "ultrapassou os limites de abuso" ocorrem a uma taxa de aproximadamente 1 a cada 3 segundos?

Ah, pode ser isso. usamos @ octokit / graphql, mas vi hoje que você pode fazer isso direto pelo octokit. vou tentar isso também

usamos @ octokit / graphql, mas eu vi hoje que você pode fazer isso direto através do octokit

Sim, dessa forma ele compartilha as mesmas configurações de solicitação e ganchos de ciclo de vida de solicitação

🙏

Ok, correndo agora. Ainda tenho uma hora no meu limite de taxa, mas ainda resta 😢

@hipstersmoothie, você pode usar nossa instância github se estiver acertando isso - estamos vendo a mesma coisa

Você pode me vincular ao log de construção?

Enviei a você o log de compilação, pois ele está em um repositório fechado.

@vincentbriglia Tenho quase certeza de que

Você poderia instalar a versão canário? Está tudo em um escopo diferente, então você terá que substituir todos os nomes de pacotes:

yarn add @auto-canary/[email protected]

yarn add @auto-canary/[email protected]
yarn add @auto-canary/[email protected]
yarn add @auto-canary/[email protected]
yarn add @auto-canary/[email protected]

@dariye Se você pudesse tentar fazer o teste também, eu agradeceria!

Tentei com

"@auto-canary/all-contributors": "9.49.2-canary.1424.17767.0",
"@auto-canary/auto": "9.49.2-canary.1424.17767.0",
"@auto-canary/conventional-commits": "9.49.2-canary.1424.17767.0",
"@auto-canary/first-time-contributor": "9.49.2-canary.1424.17767.0",
"@auto-canary/npm": "9.49.2-canary.1424.17767.0",
"@auto-canary/released": "9.49.2-canary.1424.17767.0",

ainda um problema com o github runner GITHUB_TOKEN

tentando com um token pessoal agora (eu vi algumas discrepâncias antes)

também não funcionou com um token pessoal.

Dei a você acesso ao repositório privado

Obrigado! Conseguiu resolver seu problema muito rápido. https://github.com/intuit/auto/pull/1424/commits/d6e7be20f17160d253298146b77648b408377890

Não acho que seja o mesmo problema que @dariye está tendo.

confirmou que isso corrigiu o problema que estava recebendo @hipstersmoothie - tenha um bom fim de semana!

no entanto @hipstersmoothie esta mudança agora parou de publicar e / ou calcular corretamente as versões do Semver.

Acho que auto está se comportando conforme o esperado. Eu aludi a isso aqui . Isso ocorre porque o plug-in conventional commits trata todas as mensagens de commit não sempre como skip-release (ex: chore, docs, etc).

Este é o PR que o implementou https://github.com/intuit/auto/pull/1086

Você prefere que o plugin de commit convencional não faça isso? (por exemplo: não pule para doc / chore / etc)

@vincentbriglia Tenho quase certeza de que

Você poderia instalar a versão canário? Está tudo em um escopo diferente, então você terá que substituir todos os nomes de pacotes:

yarn add @auto-canary/[email protected]

yarn add @auto-canary/[email protected]
yarn add @auto-canary/[email protected]
yarn add @auto-canary/[email protected]
yarn add @auto-canary/[email protected]

@dariye Se você pudesse tentar fazer o teste também, eu agradeceria!

Vou testar hoje e retorno para você.

@hipstersmoothie ainda é um problema ao gerar um changelog.

Então, tudo parecia funcionar quando eu tinha o sinalizador --no-changelog. No entanto, eu o tirei e apenas tentamos usar auto shipit no IC e ele falhou com o mesmo erro de acerto de limite de taxa.

@hipstersmoothie Eu adicionei um pouco mais de contexto ☝️

@hipstersmoothie muito obrigado por investigar isso. Acho que os lançamentos recentes corrigiram isso. Vou fechar isso. auto está funcionando muito bem para nós agora. obrigado novamente

Esta página foi útil?
0 / 5 - 0 avaliações