GitHub Action
Traffic to Badge
The GitHub action that using repositories Insights/traffic
data to generate badges that include views and clones.
Note: The badge counts the all traffic data which backed up in traffic_branch
, and only the latest 2 weeks data is official traffic data among them. In which the other data generated with older schedule action or the personal given. The count/week
badge generates by the official traffic data of a week before action done.
inputs:
my_token:
description: >
Set up a personal access token to obtain the secret repository traffic data.
required: true
static_list:
description: >
Set up a list of repositories to get.
Only when github.repository with setting into first item,
it can be correct to be current repository name.
required: false
default: ${{ github.repository }}
traffic_branch:
description: >
If empty traffic data will be backed up to the branch named traffic.
required: false
default: traffic
views_color:
description: >
Set a hex or named color value for the views badge background.
required: false
default: brightgreen
clones_color:
description: >
Set a hex or named color value for the clones badge background.
required: false
default: brightgreen
views_week_color:
description: >
Set a hex or named color value for the views per week badge background.
required: false
default: brightgreen
clones_week_color:
description: >
Set a hex or named color value for the clones per week badge background.
required: false
default: brightgreen
total_views_color:
description: >
Set a hex or named color value for the total views badge background.
required: false
default: brightgreen
total_clones_color:
description: >
Set a hex or named color value for the total clones badge background.
required: false
default: brightgreen
total_views_week_color:
description: >
Set a hex or named color value for the total views per week badge background.
required: false
default: brightgreen
total_clones_week_color:
description: >
Set a hex or named color value for the total clones per week badge background.
required: false
default: brightgreen
logo:
description: >
Insert a named logo or simple-icon to the left of the label.
required: false
default: github
year:
description: >
Set a year number for license year beginning.
If empty, it will no beginning year.
required: false
outputs:
traffic_branch:
description: >
Origin traffic data branch name
traffic_path:
description: >
Path to generate traffic data
If you want to deploy for your repository, the deployment step used peaceiris/actions-gh-pages need to be added. Add the follow code for your workflow.
name: traffic2badge
on:
push:
branches:
- main
schedule:
- cron: '1 0 * * *' #UTC
jobs:
run:
name: Make GitHub Traffic to Badge
runs-on: ubuntu-latest
steps:
- name: Checkout Code
uses: actions/checkout@v2.3.4
- name: Get Commit Message
id: message
uses: actions/github-script@v3.1.0
env:
FULL_COMMIT_MESSAGE: '${{ github.event.head_commit.message }}'
with:
result-encoding: string
script: |
var message = `${process.env.FULL_COMMIT_MESSAGE}`;
core.info(message);
if (message != '') return message;
var time = new Date(Date.now()).toISOString();
core.info(time);
return `Get traffic data at ${time}`;
- name: Set Traffic
id: traffic
uses: yi-Xu-0100/traffic-to-badge@v1.4.0
with:
my_token: ${{ secrets.TRAFFIC_TOKEN }}
#(default) static_list: ${{ github.repository }}
#(default) traffic_branch: traffic
#(default) views_color: brightgreen
#(default) clones_color: brightgreen
#(default) views_week_color: brightgreen
#(default) clones_week_color: brightgreen
#(default) total_views_color: brightgreen
#(default) total_clones_color: brightgreen
#(default) total_views_week_color: brightgreen
#(default) total_clones_week_color: brightgreen
#(default) logo: github
year: 2021
- name: Deploy
uses: peaceiris/actions-gh-pages@v3.7.3
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_branch: ${{ steps.traffic.outputs.traffic_branch }}
publish_dir: ${{ steps.traffic.outputs.traffic_path }}
user_name: 'github-actions[bot]'
user_email: 'github-actions[bot]@users.noreply.github.com'
full_commit_message: ${{ steps.message.outputs.result }}
- name: Show Traffic Data
run: |
echo ${{ steps.traffic.outputs.traffic_branch }}
echo ${{ steps.traffic.outputs.traffic_path }}
cd ${{ steps.traffic.outputs.traffic_path }}
ls -a
Explanation:
- The
actions/github-script
generates message for commit. - The
peaceiris/actions-gh-pages
publish traffic data totraffic_branch
. The options follow thisguide
. - The
TRAFFIC_TOKEN
needs to be generated, the guild in Generatemy_token
. - The
GITHUB_TOKEN
does not need to be generated,only reference it in your workflow file,and the document in Using theGITHUB_TOKEN
in a workflow.
More usage example:
yi-Xu-0100/traffic2badge
- Template repository for usage withyi-Xu-0100/repo-list-generator
which generaterepoList
forstatic_list
.
This file is build in ./github/dependabot.yml
to keep action up-to-date.
version: 2
updates:
# Maintain dependencies for GitHub Actions
- package-ecosystem: 'github-actions'
directory: '/'
schedule:
interval: 'daily'
This part is obtained from
sangonzal/repository-traffic-action
.
You'll first need to create a personal access token (PAT) which make the action having the access to the GitHub API.
You can generate a PAT by going to Settings(GitHub) -> Developer Settings -> Personal Access Tokens -> Generate new token
, and will need to grant repo
permission. For more information, see the GitHub documentation.
After you generated the PAT, go to Settings(repository) -> Secrets -> New secret
, name the secret TRAFFIC_TOKEN
and copy the PAT into the box.