Como automatizei as contribuições diárias para o GitHub com o GitHub Actions
O gráfico de contribuições do GitHub é um recurso essencial que rastreia as contribuições diárias dos desenvolvedores. Esse recurso motiva os desenvolvedores a continuar contribuindo regularmente para seus projetos de código aberto. No entanto, existem vários motivos pelos quais os desenvolvedores podem não conseguir fazer contribuições diárias
- Talvez a maior parte da sua codificação aconteça em outro host de controle de versão, como GitLab ou Bitbucket.
- Talvez sua empresa use o GitHub Enterprise, mas não habilitou contribuições unificadas .
- Talvez você esteja procurando um novo trabalho de desenvolvimento de software e esteja preocupado que os recrutadores o prejudiquem por seu escasso gráfico de contribuição.
- Ou talvez você tenha outras razões .

Crie uma pasta em seu repositório GitHub, .github/workflow
é aqui que criaremos o trabalho para o fluxo de trabalhojob.yaml
name: Daily Contributions
on:
schedule:
- cron: '0 0 * * 1-5'
jobs:
make-contribution:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v2
with:
# Checkout with full commit history
fetch-depth: 0
- name: Make daily contribution
run: |
# Replace this command with your own command or script that makes the changes
echo "Making daily contribution"
echo "$(date)" >> README.md
- name: Commit changes
uses: EndBug/add-and-commit@v7
with:
author_name: "GitHub Actions"
author_email: "[email protected]"
message: "Daily contribution"
# Set the files to commit - replace this with your own file paths
add: "README.md"
- name: Push changes
uses: ad-m/github-push-action@master
with:
branch: daily-contribution
# Set the Git credentials - replace this with your own secrets
github_token: ${{ secrets.GITHUB_TOKEN }}
- name: Open pull request
uses: peter-evans/create-pull-request@v3
with:
title: "Daily Contribution"
commit-message: "Daily contribution"
branch: daily-contribution
base: main
# Set the pull request body - replace this with your own content
body: "This pull request was created automatically by a GitHub Actions workflow to make a daily contribution."
# Set the Git credentials - replace this with your own secrets
token: ${{ secrets.GITHUB_TOKEN }}
A primeira linha do trecho de código é o nome do fluxo de trabalho do GitHub Actions. Nesse caso, o fluxo de trabalho é chamado de “Contribuições diárias”. A próxima seção define quando o fluxo de trabalho deve ser executado. Nesse caso, ele é configurado para ser executado em um agendamento usando a sintaxe do cron. A sintaxe do cron permite que você configure o fluxo de trabalho para ser executado em horários específicos do dia ou da semana. Eu configurei o meu para rodar de segunda a sexta à meia-noite UTC.
Na seção “trabalhos”, há apenas um trabalho definido, chamado “fazer-contribuição”. Este trabalho está configurado para ser executado em uma máquina Ubuntu com a versão mais recente do Ubuntu instalada.
A seção “etapas” contém as tarefas que o trabalho executará. A primeira etapa é verificar o código do repositório GitHub usando a ação actions/ checkout@v2 . Essa ação busca o código do repositório e configura o ambiente para as etapas subsequentes.
O segundo passo é fazer uma contribuição diária. É aqui que você pode adicionar seu próprio comando ou script para fazer alterações no código. Nesse caso, o script simplesmente anexa a data atual ao arquivo README.md.
A terceira etapa é confirmar as alterações no repositório. Esta etapa usa a ação EndBug/ add-and-commit@v7 para confirmar as alterações. O nome e o e-mail do autor são definidos como “Ações do GitHub” e “ [email protected] ”, que defini como meu nome e e-mail do GitHub, respectivamente.
Os arquivos a serem confirmados são especificados usando o parâmetro “add”. Neste caso, é definido como “README.md”.
A quarta etapa é enviar as alterações para o repositório usando a ação ad-m/ github-push-action@master . O nome da ramificação é definido como “contribuição diária” e as credenciais do Git são definidas usando a secrets.GITHUB_TOKEN
variável de ambiente.
Por fim, a quinta etapa é abrir uma solicitação pull usando a ação peter-evans/ create-pull-request@v3 . O título e a mensagem de confirmação são definidos como "Contribuição diária" e o corpo da solicitação pull é definido como "Esta solicitação pull foi criada automaticamente por um fluxo de trabalho do GitHub Actions para fazer uma contribuição diária". Os parâmetros ramal e base são configurados para “diário - contribuição” e “principal”, respectivamente. As credenciais do Git são novamente definidas usando a secrets.GITHUB_TOKEN
variável de ambiente.

Se você receber erros 403, certifique-se de que seu token tenha permissão de gravação para o contents
escopo .
Como alternativa, você pode definir isso como um padrão de nível de repo, Settings
em Actions
:

Em resumo, usando o GitHub Actions, podemos automatizar o processo de fazer contribuições diárias ao nosso repositório, o que pode nos ajudar a manter nosso gráfico de contribuições atualizado. Com o arquivo de fluxo de trabalho fornecido, podemos personalizar facilmente o processo para atender às nossas necessidades, modificando os comandos ou script que fazem as alterações.