O GitHub oferece uma API que permite gerenciar notificações e repositórios programaticamente. Combinando isso com um script em shell, você pode desativar notificações para repositórios favoritos diretamente pela CLI.
-
Gere um token de acesso pessoal (PAT) no GitHub com as permissões necessárias:
- Vá para Settings > Developer Settings > Personal Access Tokens no GitHub.
- Crie um token com escopos:
repoenotifications.
-
Use o script abaixo, substituindo
<YOUR_GITHUB_TOKEN>pelo token gerado.
#!/bin/bash
# Configurações
GITHUB_USERNAME="<SEU_USUÁRIO_GITHUB>"
GITHUB_TOKEN="<SEU_TOKEN_DE_ACESSO>"
# URL base da API do GitHub
API_URL="https://api.github.com"
# Função para desativar notificações
disable_notifications() {
local repo="$1"
echo "Desativando notificações para o repositório: $repo"
curl -s -X PATCH \
-H "Authorization: token $GITHUB_TOKEN" \
-H "Accept: application/vnd.github+json" \
"${API_URL}/repos/${GITHUB_USERNAME}/${repo}/subscription" \
-d '{"ignored": true}'
}
# Obtendo repositórios favoritos
echo "Buscando repositórios favoritos..."
favorite_repos=$(curl -s -H "Authorization: token $GITHUB_TOKEN" \
-H "Accept: application/vnd.github+json" \
"${API_URL}/users/${GITHUB_USERNAME}/starred" | jq -r '.[].full_name')
if [ -z "$favorite_repos" ]; then
echo "Nenhum repositório favorito encontrado."
exit 0
fi
# Desativando notificações para cada repositório favorito
for repo in $favorite_repos; do
disable_notifications "$repo"
done
echo "Notificações desativadas para todos os repositórios favoritos."-
Instale o
jq:- No Ubuntu/Debian:
sudo apt install jq - No macOS:
brew install jq
- No Ubuntu/Debian:
-
Execute o Script: Salve o script como
disable_github_notifications.she torne-o executável:chmod +x disable_github_notifications.sh ./disable_github_notifications.sh
-
Busca Repositórios Favoritos: O endpoint
/users/{username}/starredda API do GitHub retorna os repositórios marcados como favoritos. -
Desativa Notificações: Para cada repositório favorito, o script envia uma requisição
PATCHpara o endpoint/repos/{owner}/{repo}/subscriptioncom o campo"ignored": true. -
Resultado: As notificações para os repositórios favoritos são desativadas.
- Certifique-se de proteger o token (
GITHUB_TOKEN), pois ele concede acesso à sua conta GitHub. - Se o número de repositórios for grande, o script pode precisar de paginação para listar todos (use parâmetros como
?per_page=100na API).