Automatically generate contributors.svg
for your repository
Create a workflow file such as .github/workflows/contributors.yml
:
name: Contributors
on:
schedule:
- cron: '0 1 * * 0' # At 01:00 on Sunday.
push:
branches:
- master
jobs:
contributors:
runs-on: ubuntu-latest
steps:
- uses: wow-actions/contributors-list@v1
with:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
svgPath: CONTRIBUTORS.svg
Various inputs are defined to let you configure the action:
Note: Workflow command and parameter names are not case-sensitive.
sort
: Specify if sort contributors by contributions or not. Default:true
.round
: Specify if clip the avatar to rounded or not. Default:true
.count
: Specify the max count of contributors listed. Default list all contributors.truncate
: Truncate username by specified length,0
for no truncate. Default:12
.affiliation
: Specify the type of collaborators. Default:direct
. Options:all/direct/outside
.'outside'
: All outside collaborators of an organization-owned repository.'direct'
: All collaborators with permissions to an organization-owned repository, regardless of organization membership status.'all'
: All collaborators the authenticated user can see.
includeBots
: Specify if include bots in the contributors list or not. Defaulttrue
.excludeUsers
: Users separated by space to exclude in the contributors list.svgPath
: The path to save generated SVG. Default'CONTRIBUTORS.svg'
.svgWidth
: Width of the generated SVG. Default:740
.avatarSize
: Size of user avatar. Default:64
.avatarMargin
: Margin of user avatar. Default:5
.userNameHeight
: Height of user name. Default:0
.svgTemplate
: Template to render SVG. Default:<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="{{ width }}" height="{{ contributorsHeight }}" > <style> .contributor-link { cursor: pointer; } </style> {{{ contributors }}} </svg>
itemTemplate
: Template to render user item. Default:<a id="{{{ name }}}" title="{{{ name }}}" xlink:href="{{{ url }}}" class="contributor-link" target="_blank" rel="nofollow sponsored" > <image x="{{ x }}" y="{{ y }}" width="{{ width }}" height="{{ height }}" xlink:href="{{{ avatar }}}" /> </a>
commitMessage
: Commit message of the github action. Default:'chore: update contributors'
noCommit
: Changes will not be committed. This options requires a local clone and will updated if required the contributor svg. Default:false
.
name: Contributors
on:
schedule:
- cron: '0 1 * * 0' # At 01:00 on Sunday.
push:
branches:
- master
jobs:
contributors:
runs-on: ubuntu-latest
steps:
- uses: wow-actions/contributors-list@v1
with:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
round: true
name: Contributors
on:
schedule:
- cron: '0 1 * * 0' # At 01:00 on Sunday.
push:
branches:
- master
jobs:
contributors:
runs-on: ubuntu-latest
steps:
- uses: wow-actions/contributors-list@v1
with:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
round: false
name: Contributors
on:
schedule:
- cron: '0 1 * * 0' # At 01:00 on Sunday.
push:
branches:
- master
jobs:
contributors:
runs-on: ubuntu-latest
steps:
- uses: wow-actions/contributors-list@v1
with:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
userNameHeight: 19
itemTemplate: >
<g transform="translate({{ x }}, {{ y }})">
<a xlink:href="{{{ url }}}" class="contributor-link" target="_blank" rel="nofollow sponsored" title="{{{ name }}}" id="{{{ name }}}">
<image width="{{ width }}" height="{{ height }}" xlink:href="{{{ avatar }}}" />
<text x="32" y="74" text-anchor="middle" alignment-baseline="middle" font-size="10">{{{ name }}}</text>
</a>
</g>
name: Contributors
on:
schedule:
- cron: '0 1 * * 0' # At 01:00 on Sunday.
push:
branches:
- master
jobs:
contributors:
runs-on: ubuntu-latest
steps:
- uses: wow-actions/contributors-list@v1
with:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
svgTemplate: >
<svg
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
version="1.1"
width="{{ width }}"
height="{{ botsHeight }}"
>
<style>.contributor-link { cursor: pointer; }</style>
{{{ bots }}}
</svg>
name: Contributors
on:
schedule:
- cron: '0 1 * * 0' # At 01:00 on Sunday.
push:
branches:
- master
jobs:
contributors:
runs-on: ubuntu-latest
steps:
- uses: wow-actions/contributors-list@v1
with:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
svgTemplate: >
<svg
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
version="1.1"
width="{{ width }}"
height="{{ collaboratorsHeight }}"
>
<style>.contributor-link { cursor: pointer; }</style>
{{{ collaborators }}}
</svg>
name: Contributors
on:
schedule:
- cron: '0 1 * * 0' # At 01:00 on Sunday.
push:
branches:
- master
jobs:
contributors:
runs-on: ubuntu-latest
steps:
- uses: wow-actions/contributors-list@v1
with:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
includeBots: false
svgTemplate: |
<svg
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
version="1.1"
width="{{ width }}"
height="{{#sum}} {{ contributorsHeight }} + {{ botsHeight }} + 32 + 32 {{/sum}}"
>
<style>.contributor-link { cursor: pointer; }</style>
<text x="5" y="8" text-anchor="start" alignment-baseline="before-edge" font-size="24">Contributors</text>
<g transform="translate(0, 32)">
{{{ contributors }}}
</g>
<text x="5" y="{{#sum}} {{ contributorsHeight }} + 32 + 8 {{/sum}}" text-anchor="start" alignment-baseline="before-edge" font-size="24">Bots</text>
<g transform="translate(0, {{#sum}} {{ contributorsHeight }} + 32 + 32 {{/sum}})">
{{{ bots }}}
</g>
</svg>
name: Contributors
on:
schedule:
- cron: '0 1 * * 0' # At 01:00 on Sunday.
push:
branches:
- master
jobs:
contributors:
runs-on: ubuntu-latest
steps:
- uses: wow-actions/contributors-list@v1
with:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
includeBots: false
svgTemplate: |
<svg
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
version="1.1"
width="{{ width }}"
height="{{#sum}} {{ contributorsHeight }} + {{ botsHeight }} + {{ collaboratorsHeight }} + 32 + 32 + 32 {{/sum}}"
>
<style>.contributor-link { cursor: pointer; }</style>
<text x="5" y="5" text-anchor="start" alignment-baseline="before-edge" font-size="24">Contributors</text>
<g transform="translate(0, 32)">
{{{ contributors }}}
</g>
<text x="5" y="{{#sum}} {{ contributorsHeight }} + 32 + 8 {{/sum}}" text-anchor="start" alignment-baseline="before-edge" font-size="24">Bots</text>
<g transform="translate(0, {{#sum}} {{ contributorsHeight }} + 32 + 32 {{/sum}})">
{{{ bots }}}
</g>
<text x="5" y="{{#sum}} {{ contributorsHeight }} + {{ botsHeight }} + 32 + 32 + 8 {{/sum}}" text-anchor="start" alignment-baseline="before-edge" font-size="24">Collaborators</text>
<g transform="translate(0, {{#sum}} {{ contributorsHeight }} + {{ botsHeight }} + 32 + 32 + 32 {{/sum}})">
{{{ collaborators }}}
</g>
</svg>
The scripts and documentation in this project are released under the MIT License.