Skip to content

The GitHub action that using repositories Insights/traffic data to generate badges that include views and clones.

License

Notifications You must be signed in to change notification settings

demos-platform/traffic-to-badge

 
 

Repository files navigation

⚡️ Traffic to Badge GitHub Action

sync2gitee(list) traffic2badge Github last commit Github latest release Github license

GitHub views GitHub clones

English | 简体中文

The GitHub action that using repositories Insights/traffic data to generate badges that include views and clones.

🎨 Table of contents

🚀 Action configuration

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
  logo:
    description: >
      Insert a named logo or simple-icon to the left of the label.
    required: false
    default: github

outputs:
  traffic_branch:
    description: >
      Origin traffic data branch name
  traffic_path:
    description: >
      Path to generate traffic data

📝 Example usage

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/[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) logo: github

      - 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

Explanation:

  1. The actions/github-script generates message for commit.
  2. The peaceiris/actions-gh-pages publish traffic data to traffic_branch. The options follow this guide.
  3. The TRAFFIC_TOKEN needs to be generated, the guild in Generate my_token.
  4. The GITHUB_TOKEN does not need to be generated,only reference it in your workflow file,and the document in Using the GITHUB_TOKEN in a workflow.

More usage example:

📝 Use dependabot to keep action up-to-date

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'

🙈 Generate my_token

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.

🔊 CHANGELOG

📄 LICENSE

🎉 Thanks

About

The GitHub action that using repositories Insights/traffic data to generate badges that include views and clones.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • JavaScript 100.0%