Userlog
• Changelog
• Dependencies
• Known issues
• Copyright and License
Tutorial to use with: https://github.com/andry81-devops/accum-content
All tutorials: https://github.com/andry81/index#tutorials
-
Repository to track and repository to store traffic statistic can be different, and you may directly point the statistic as commits list:
https://github.com/{{REPO_OWNER}}/{{REPO}}--gh-stats/commits/master/traffic/board/phpbb
-
Workflow is used accum-stats.sh bash script to accumulate traffic statistic
-
The script accumulates statistic both into a single file and into a set of files grouped by year and allocated per day:
traffic/board/phpbb/by_year/YYYY/YYYY-MM-DD.json
-
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 formatHH: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
-
ENABLE_PRINT_CURL_RESPONSE_ON_ERROR=1
: Prints curl response in case of an error (by default only the progress prints)
Warning
You must replace all placeholder into respective values:
{{REPO_OWNER}}
-> repository owner{{REPO}}
-> your repository{{BRANCH}}
-> your repository branch or reference{{TOPIC_KEYWORDS}}
-> topic keywords{{TOPIC_AUTHOR}}
-> topic author
.github/workflows/accum-phpbb-board-stats.yml
:
name: phpbb board stats updating every 4 hours
on:
schedule:
- cron: "0 */4 * * *"
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:
jobs:
accum-phpbb-board-stats:
runs-on: ubuntu-latest
steps:
- uses: {{REPO_OWNER}}/gh-action--accum-board-stats@master
with:
# CAUTION: Beware of double quotes strip in case of usage yaml `>-` operator or even a single-quotted string!
topic_query_url: https://phpbb.com/board/search.php?keywords=\"{{TOPIC_KEYWORDS}}\"&terms=all&author={{TOPIC_AUTHOR}}&fid%5B%5D=6&sc=0&sf=titleonly&sr=topics&sk=i&sd=d&st=0&ch=1&t=0&submit=Search
replies_sed_regexp: s/.*class=\"posts\"[^0-9]*([0-9.]+).*/\1/p
views_sed_regexp: s/.*class=\"views\"[^0-9]*([0-9.]+).*/\1/p
curl_flags: >-
-v
-H 'Cache-Control: no-cache'
deps_repo_owner: {{REPO_OWNER}}
deps_repo_branch: master
deps_repo_read_token: ${{ github.token }}
commit_msg_entity: my-board-1
output_repo_owner: {{REPO_OWNER}}
output_repo: {{REPO}}--phpbb-stats
output_repo_branch: master
output_repo_dir: traffic/board/phpbb
output_repo_write_token: ${{ secrets.READ_STATS_TOKEN }}
flags: >-
ENABLE_PRINT_INITIAL_ENV_INTO_STDOUT=1
env: >-
ENABLE_GENERATE_CHANGELOG_FILE=1
CHANGELOG_FILE=changelog.txt
ENABLE_PRINT_CURL_RESPONSE_ON_ERROR=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
# ENABLE_YAML_DIFF_PRINT_AFTER_EDIT=1
# ENABLE_YAML_DIFF_PRINT_BEFORE_PATCH=1
# ERROR_ON_EMPTY_CHANGES_WITHOUT_ERRORS=1
# CONTINUE_ON_INVALID_INPUT=1
# CONTINUE_ON_EMPTY_CHANGES=1
Note
You can use secrets.READ_STATS_TOKEN
instead of secrets.WRITE_STATS_TOKEN
as long as both repositories under the same repository owner.
Warning
You must use different values for deps_repo_owner
and output_repo_owner
if respective repositories actually under different repository 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.
https://github.com/andry81-devops/gh-known-issues#known-issues
https://github.com/andry81-devops/gh-known-issues#last-known-issues-updates
Code and documentation copyright 2021 Andrey Dibrov. Code released under MIT License