使用存储库 Insights/traffic
数据来生成包含访问数和克隆数的徽章。
注意:徽章会计算备份在 traffic_branch
中的所有流量数据,其中只有最近 2 周的数据是官方流量数据。其中其他数据是较早的计划任务生成的获或个人给出的信息生成的。 count/week
徽章由行动之前一周的官方流量数据生成。
input:
my_token:
description: >
设置用以获取私密存储库流量数据的个人访问令牌。
required: true
static_list:
description: >
设置一个想要获取的存储库列表。
只有 github.repository 设置为第一个值时才可以被修正为当前仓库名。
required: false
default: ${{ github.repository }}
traffic_branch:
description: >
如果为空,则流量数据将备份到名为 traffic 的分支中。
required: false
default: traffic
views_color:
description: >
为 views 徽章背景设置一个十六进制或命名的颜色值。
required: false
default: brightgreen
clones_color:
description: >
为 clones 徽章背景设置一个十六进制或命名的颜色值。
required: false
default: brightgreen
views_week_color:
description: >
为 views/week 徽章背景设置一个十六进制或命名的颜色值。
required: false
default: brightgreen
clones_week_color:
description: >
为 clones/week 徽章背景设置一个十六进制或命名的颜色值。
required: false
default: brightgreen
total_views_color:
description: >
为 total views 徽章背景设置一个十六进制或命名的颜色值。
required: false
default: brightgreen
total_clones_color:
description: >
为 total clones 徽章背景设置一个十六进制或命名的颜色值。
required: false
default: brightgreen
total_views_week_color:
description: >
为 total views/week 徽章背景设置一个十六进制或命名的颜色值。
required: false
default: brightgreen
total_clones_week_color:
description: >
为 total clones/week 徽章背景设置一个十六进制或命名的颜色值。
required: false
default: brightgreen
logo:
description: >
在标签左侧插入命名的徽标或简单图标。
required: false
default: github
year:
description: >
设置协议的起始年份。
如果为空,则没有起始年份。
required: false
outputs:
traffic_branch:
description: >
原 traffic 分支名
traffic_path:
description: >
生成 traffic 数据的路径
如果你要为自己的仓库进行部署,则需要添加部署步骤,如 peaceiris/actions-gh-pages
。 使用如下示例并添加到你的工作流。
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/[email protected]
- name: Get Commit Message
id: message
uses: actions/[email protected]
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/[email protected]
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/[email protected]
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
说明:
actions/github-script
生成提交信息。peaceiris/actions-gh-pages
将流量数据推送到traffic_branch
。 使用的选项参考 使用手册 。- 需要生成
TRAFFIC_TOKEN
, 教程在 生成my_token
。 - 不需要生成
GITHUB_TOKEN
,按照配置填写即可,说明文档在 在工作流程中使用GITHUB_TOKEN
。
更多使用示例:
yi-Xu-0100/traffic2badge
- 使用yi-Xu-0100/repo-list-generator
的模板仓库,其中repo-list-generator
产生repoList
用于static_list
.
该文件可以在 ./github/dependabot.yml
创建以使 action 保持更新。
version: 2
updates:
# Maintain dependencies for GitHub Actions
- package-ecosystem: 'github-actions'
directory: '/'
schedule:
interval: 'daily'
这部分是从
sangonzal/repository-traffic-action
获得的。
首先,您需要创建一个个人访问令牌(PAT
),使该操作可以访问 GitHub API
。
您可以通过转到 Settings(GitHub) -> Developer Settings -> Personal Access Tokens -> Generate new token
来生成 PAT
,并且需要授予 repo
权限。 有关更多信息,请参见 GitHub 文档 。
生成 PAT
后,转到Settings(repository) -> Secrets -> New secret
,将 secret
命名为 TRAFFIC_TOKEN
,然后将 PAT
复制到框中。