mawesome/README.md
2022-07-29 16:03:10 +02:00

80 lines
2.9 KiB
Markdown

# My Awesome List
This action query the github api to get starred list of the user and then generates a list ordered by languages.
You can see an example of the output at my own [simonecorsi/awesome](https://github.com/simonecorsi/awesome)
## Table of Contents
<!-- toc -->
- [Documentation](#documentation)
- [Requirements](#requirements)
- [Configuration](#configuration)
- [`api-token`](#api-token)
- [`compact-by-topic`](#compact-by-topic)
- [`template-path`](#template-path)
- [Example workflow](#example-workflow)
<!-- tocstop -->
## Documentation
### Requirements
- An empty repository
- A personal github api key
### Configuration
The service can be configured setting the appropriate environment variables or writing an `.env` file.
| Variable | Description | Default |
| ------------------ | ------------------------------------------------------------------- | -------------------------------- |
| `api-token` | Personal Token is used to avoid rate limit, [read more](#api-token) | `${{ secrets.API_TOKEN }}` |
| `compact-by-topic` | Render another list in `TOPICS.md` compacted by github topics | `'false'` |
| `github-name` | Name used for the commit | Github Action |
| `github-email` | email used for commit | actions@users.noreply.github.com |
| `template-path` | Custom `README.md` template, [read more](#template-path) |
| `output-filename` | Output filename | `README.md` |
#### `api-token`
The Personal API Access Token is mandatory to fetch stars from the API without incurring in Rate Limits.
You'll have to generate a [personal api token](https://github.com/settings/tokens/new) and then add
#### `compact-by-topic`
If `compact-by-topic` is `'true'` it will generate another markdown file `TOPICS.md` whith all stars compacted by their github topics, be aware that this list will be bigger since data is duplicated.
#### `template-path`
If you don't like the output (default example [here](./TEMPLATE.ejs) ), you can provide your custom template that will be rendered using [EJS](https://ejs.co/) template engine.
**Path provided is relative to your current repository directory, if file is not found it will default.**
## Example workflow
```yml
name: Update awesome list
on:
workflow_dispatch:
schedule:
- cron: '0 0 * * *'
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Awesome generator
uses: simonecorsi/mawesome@latest
with:
api-token: ${{ secrets.API_TOKEN }}
github-token: ${{ secrets.GITHUB_TOKEN }}
github-email: ${{ secrets.USER_EMAIL }}
github-name: ${{ github.repository_owner }}
```