Oi Fabiano!
Parece que você está no caminho certo, mas com algumas dificuldades na implementação. O processo de exclusão de arquivos do GitHub via API realmente exige a inclusão do SHA do arquivo, além de algumas outras informações que precisam ser passadas no corpo da requisição.
Vou tentar te ajudar com a sintaxe correta para usar o requests.delete() no seu caso. 
Passo a passo para deletar um arquivo do GitHub via API
- Obtenha o SHA do arquivo: Como você já mencionou, você precisa do SHA do arquivo para deletá-lo. Para isso, você pode primeiro fazer uma requisição GET para obter as informações sobre o arquivo, incluindo o SHA. - Aqui está um exemplo para pegar as informações de um arquivo: - import requests
url = 'https://api.github.com/repos/usuario/repo/contents/caminho/do/arquivo'
headers = {
    'Authorization': 'token SEU_TOKEN_AQUI',
}
response = requests.get(url, headers=headers)
if response.status_code == 200:
    file_info = response.json()
    sha = file_info['sha']
    print(f'SHA do arquivo: {sha}')
else:
    print('Erro ao obter informações do arquivo:', response.status_code)
 
- Deletando o arquivo: Agora, com o SHA em mãos, você pode fazer a requisição - DELETEpara excluir o arquivo. Para isso, você vai precisar passar o SHA no corpo da requisição, junto com o nome do arquivo e o caminho completo.
 - Exemplo para deletar o arquivo: - import requests
url = 'https://api.github.com/repos/usuario/repo/contents/caminho/do/arquivo'
headers = {
    'Authorization': 'token SEU_TOKEN_AQUI',
}
# Dados necessários para deletar o arquivo
data = {
    'message': 'Deletando o arquivo via API',
    'sha': sha,  # SHA do arquivo
    'branch': 'main',  # Se estiver utilizando uma branch diferente da main, especifique aqui
}
response = requests.delete(url, headers=headers, json=data)
if response.status_code == 200:
    print('Arquivo deletado com sucesso!')
else:
    print('Erro ao deletar o arquivo:', response.status_code)
 
- O SHA que você pegou na etapa anterior é crucial para identificar o arquivo que você deseja excluir.
- A chave 'message'no corpo da requisição é obrigatória e descreve a alteração que está sendo feita (neste caso, a exclusão).
- A chave 'branch'é opcional, mas se o arquivo estiver em uma branch diferente damain, você precisa especificar qual branch.
Se você seguir esses passos, deve conseguir excluir o arquivo corretamente. Caso continue enfrentando problemas, vale a pena conferir a resposta completa da requisição para entender se está retornando algum erro adicional que pode estar ajudando a diagnosticar o problema.
Espero que isso ajude! Qualquer dúvida, só chamar.