An open API service indexing awesome lists of open source software.

https://github.com/andry81-devops/gh-action--accum-gh-rate-limits

GitHub composite action to request and accumulate an account rate limits. • :page_with_curl: https://github.com/andry81-stats/gh-action--accum-gh-rate-limits--gh-stats :page_with_curl:
https://github.com/andry81-devops/gh-action--accum-gh-rate-limits

action composite-action devops github github-action github-statistic insights rate-limit traffic

Last synced: about 2 months ago
JSON representation

GitHub composite action to request and accumulate an account rate limits. • :page_with_curl: https://github.com/andry81-stats/gh-action--accum-gh-rate-limits--gh-stats :page_with_curl:

Awesome Lists containing this project

README

        



GitHub repo size in bytes


lines of code by tokei.rs



GitHub views|any|total
GitHub views|any|14d


GitHub views|unique per day|total
GitHub views|unique per day|14d



GitHub clones|any|total
GitHub clones|any|14d


GitHub clones|unique per day|total
GitHub clones|unique per day|14d



GitHub commits since latest version


latest release name


GitHub all releases


donate

---


Userlog
Changelog
Dependencies
Known issues
copyright and license Copyright and License

GitHub composite action to request and accumulate an account rate limits.

Tutorial to use with: https://github.com/andry81-devops/github-accum-stats

All tutorials: https://github.com/andry81/index#tutorials

##

# gh-action--accum-gh-rate-limits@master

## Features:

* You may directly point the statistic as commits list:
`https://github.com/{{REPO_OWNER}}/{{REPO}}--gh-stats/commits/master/traffic/rate/limits`

* Workflow is used [accum-rate-limits.sh](https://github.com/andry81-devops/gh-workflow/tree/HEAD/bash/github/accum-rate-limits.sh) bash script to accumulate rate limits statistic

* The script accumulates statistic both into a single file and into a set of files grouped by year and allocated per day:
`traffic/rate/limits/by_year/YYYY/YYYY-MM-DD.json`

## Functionality of the script:

* `CONTINUE_ON_INVALID_INPUT=1`, `CONTINUE_ON_EMPTY_CHANGES=1`:
Treats invalid input or empty changes as not an error as by default.

* `ENABLE_GENERATE_CHANGELOG_FILE=1`, `CHANGELOG_FILE=".../changelog.txt"`:
Generates a textual changelog file with notes about changes per commit including the changes absence in case of skipped errors.

* `ENABLE_COMMIT_MESSAGE_DATE_WITH_TIME=1`:
Inserts the time string in format `HH:MMZ` additionally after the date in each commit message (by default inserts only a date for shorter commit messages).

* `ENABLE_COMMIT_MESSAGE_WITH_WORKFLOW_RUN_NUMBER=1`:
Inserts the workflow run number after date/time prefix in each commit message (by default does not insert for shorter commit messages).

* `ENABLE_GITHUB_ACTIONS_RUN_URL_PRINT_TO_CHANGELOG=1`:
Prints GitHub Actions Run URL (with or without workflow run number) into the changelog file to reference the log on the GitHub from the changelog file.

* `ENABLE_REPO_STATS_COMMITS_URL_PRINT_TO_CHANGELOG=1`:
Prints Statistic Output Repository commit URL into the changelog file to reference the commit from being committed changelog file.

> [!NOTE]
> The actual hash of the commit can not be know on the moment of the commit. So instead of the commit hash, an approximate date of the commit is used (~ +5 min ahead) in format of:
> `https://github.com/{{REPO_OWNER}}/{{REPO}}--gh-stats/commits?branch={{BRANCH}}&time_zone=utc&until=YYYY-MM-DD`

# USAGE

> [!WARNING]
> You must replace all placeholder into respective values:

* `{{REPO_OWNER}}` -> repository owner
* `{{REPO}}` -> your repository
* `{{BRANCH}}` -> your repository branch or reference

## Examples:

`.github/workflows/accum-gh-rate-limits.yml`:

```yml
name: GitHub rate limits at every 8 hours accumulator

on:
schedule:
- cron: "0 */8 * * *"
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:

jobs:
accum-gh-rate-limits:
runs-on: ubuntu-latest

steps:
- uses: {{REPO_OWNER}}/gh-action--accum-gh-rate-limits@master
with:
deps_repo_owner: {{REPO_OWNER}}
deps_repo_branch: master
deps_repo_read_token: ${{ github.token }}

stat_owner: {{REPO_OWNER}}
stat_entity: rate_limit
stat_read_token: ${{ secrets.READ_STATS_TOKEN }}

#commit_msg_entity: rt

curl_flags: >-
-H 'Cache-Control: no-cache'

output_repo_owner: {{REPO_OWNER}}
output_repo: {{REPO}}--gh-stats
output_repo_branch: master
output_repo_dir: traffic/rate/limits
output_repo_write_token: ${{ secrets.WRITE_STATS_TOKEN }}

flags: >-
ENABLE_PRINT_INITIAL_ENV_INTO_STDOUT=1

env: >-
CONTINUE_ON_INVALID_INPUT=1
CONTINUE_ON_EMPTY_CHANGES=1
ENABLE_GENERATE_CHANGELOG_FILE=1
ENABLE_COMMIT_MESSAGE_DATE_WITH_TIME=1 # insert the time string in format HH:MMZ additionally after the date in each commit message
ENABLE_COMMIT_MESSAGE_WITH_WORKFLOW_RUN_NUMBER=1 # insert the workflow run number after date/time prefix in each commit message
ENABLE_GITHUB_ACTIONS_RUN_URL_PRINT_TO_CHANGELOG=1
ENABLE_REPO_STATS_COMMITS_URL_PRINT_TO_CHANGELOG=1
# CHANGELOG_FILE=changelog.txt
```

> You can use `secrets.READ_STATS_TOKEN` instead of `secrets.WRITE_STATS_TOKEN` as long as there is the same owner.

> [!WARNING]
> You must use different values for `deps_repo_owner`, `stat_owner` and `output_repo_owner` if there is actually different owners.

> [!NOTE]
> See REUSE section for details if you have multiple repositories and want to store all GitHub workflow scripts (`.github/workflows/*.yml`) in a single repository.

## Dependencies

* https://github.com/andry81-devops/gh-workflow

## Known Issues

https://github.com/andry81-devops/gh-known-issues#known-issues

## Last known issues updates

https://github.com/andry81-devops/gh-known-issues#last-known-issues-updates

## Copyright and License

Code and documentation copyright 2022 Andrey Dibrov. Code released under [MIT License](https://github.com/andry81-devops/gh-action--accum-gh-rate-limits/tree/HEAD/license.txt)