5
respostas

Erro 401

Assim como nos dois tópicos acima, também estou recebendo esse erro. Consigo rodar a paginação com sucesso, o que me pareceria confirmar que minha autenticação teve sucesso. Ao acessar minhas chaves token no meu usuário no GitHub, no entanto, ela diz que nunca houve utilização da chave.

5 respostas

Oii Iratã, tudo bem contigo?

Você poderia copiar e colar aqui no fórum a parte do seu código que está gerando o erro, por favor?

Assim eu tento executar ele aqui no meu ambiente pra tentar te ajudar a identificar o erro :)

Claro:

import requests
import pandas as pd

access_token = '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'
headers = {'Authorization': 'Bearer' + access_token,
           'X-GitHub-Api-Version': '2022-11-28'}

api_base_url = 'https://api.github.com'
owner = 'amzn'
url = f'{api_base_url}/users/{owner}/repos'
url_2 = 'https://api.github.com/user/repos'

repos_list = []
for page_num in range(1, 6):
    try:
        url_page = f'{url}?page={page_num}'
        response = requests.get(url_page, headers=headers)
        print(response)
        repos_list.append(response.json())
    except:
        repos_list.append(None)

repos_name = []
for page in repos_list:
    for repo in page:
        repos_name.append(repo['name'])

repos_language = []
for page in repos_list:
    for repo in page:
        repos_language.append(repo['language'])

dados_amz = pd.DataFrame()
dados_amz["repository_name"] = repos_name
dados_amz['language'] = repos_language
dados_amz.to_csv('amazon.csv')

print(len(dados_amz))
print(dados_amz.head())

data = dict(name='linguagens-utilizadas', description='Repositorio com linguagens de prog da Amazon', private=True)
print(data)

response_2 = requests.post(url_2, json=data, headers=headers)

print(response_2.status_code)

print(response_2)

Esse monte de print sou eu tentando achar erros.

Oii Iratã!

Executei seu código aqui utilizando meu token e acredito que identifiquei o problema :)

No cabeçalho "headers" falta adicionar um espaço depois da palavra Bearer:

headers = {'Authorization': 'Bearer ' + access_token,
           'X-GitHub-Api-Version': '2022-11-28'}

Este pequeno detalhe pode passar despercebido, mas é crucial. Isso não causou problemas na paginação porque o GitHub permite um número limitado de requisições sem autenticação. Contudo, para criar repositórios, a autenticação é essencial.

E vale destacar que para você conseguir criar o repositório, é muito importante que no momento da criação do token no GitHub você tenha marcado o escopo "repo", conforme faço no vídeo Autenticação.

Espero que isso ajude. Qualquer dúvida estou por aqui.

Bons estudos!

Oi Milena, obrigado pela ajuda. Ao adicionar o espaço depois da palavra Bearer agora o código de erro que recebo é 422. O Token tem marcado o escopo "repo" sim. Me certifiquei disso.

Oii Iratã!

Normalmente o erro 422 aparece quando você está tentando criar um repositório com o mesmo nome de um repositório já existente.

Confira nos seus repositórios do GitHub se você já possui algum repositório com o nome "linguagens-utilizadas". Caso possua, faça a exclusão dele e execute o código novamente.

Qualquer coisa me sinaliza aqui :)