Skip to content

boly38/action-umami-report

Use this GitHub action with your project
Add this Action to an existing workflow or create a new one
View on Marketplace

Repository files navigation

action-umami-report

This action generates periodic umami reports into a given file, and action outputs.

Accepted periods are: 1h, 1d, 1w, 1m.

Inputs

input name required description
umami-cloud-api-key (1) Umami Cloud API key .
umami-server (2) Umami server instance .
umami-user (2) Umami API user. Default "admin".
umami-password (2) Umami API password.
umami-site-domain no Umami site domain name (*).
umami-report-file no Umami report file to generate.
umami-report-content no Report content to generate (*).
umami-period no (main) Report data/analysis period (*).
umami-unit no (main) Report interval unit (*).
umami-tz no (main) Report date time timezone (*).

legend(1)(2):

  • (1) umami-cloud-api-key is required for Umami CLOUD mode (create yours)

  • (2) umami-server umami-user umami-password is required for Umami Hosted mode

  • (2) Umami API login expected to be available at <umami-server>/api/auth/login.

    legend*:

  • umami-site-domain is the target analysis domain name, example "www.mysite.com" (select first domain by default ).

  • umami-report-content default is pageviews|events|sessions|urls (stats is always reported).

  • umami-period default is 24h (means 24 hours). But you can switch it to 24h/7d/1w/31d/1m.

  • umami-unit default is hour. But you can switch it to day depend on the period you choose.

  • umami-tz default is Europe/Paris. But you can switch it to another timezone supported by Umami API (ex. America/Los_Angeles).

Action outputs

This action produces some "action results" where an action result is a resultName, and a resultValue.

Each action result is available as output parameter : to use in following step orjob

resultName resultValue description
pageViews integer number of pageView in last 24h
umamiOneLineReport string short summary of domain stats
umamiReport multi-lines string detailed report of domain stats
umamiReportLength int v1.2, detailed report length

Action generated file

When an umami-report-file is set, the target file is written in ./umami/<umami-report-file>.

Example usage

jobs:
  umamiReport:
    name: umami report example
    runs-on: ubuntu-latest

    steps:
      - name: Create Umami report
        id: umamiReport
        uses: boly38/[email protected]
        with:
          umami-server: ${{secrets.UMAMI_SERVER}}
          umami-user: ${{secrets.UMAMI_USERNAME}}
          umami-password: ${{secrets.UMAMI_PASSWORD}}
          umami-site-domain: ${{secrets.UMAMI_SITE_DOMAIN}}
          umami-report-file: 'umamiReport.md'

      - name: Send report to discord if pageViews is positive
        if: steps.umamiReportStep.outputs.pageViews != '0'
        uses: tsickert/[email protected]
        with:
          webhook-url: ${{ secrets.UMAMI_TO_DISCORD_WEBHOOK_URL }}
          username: "Umami report"
          content: "${{ steps.umamiReportStep.outputs.umamiOneLineReport }}"
          filename: "${{ steps.umamiReportStep.outputs.umamiReportFile }}"
          # avatar-url: ..set user logo

cf. working sample: cf. (full) daily yml or (min) weekly yml

TIP: if your umami server version is not compatible with current GithubActions, you could change umami-server-2.17.0 keyword by one of the current repository tags with umami-server-x.y format.

See also

Umami

Umami server : API - source

Umami API clients:

  • boly38 JS umami-api-client
    • Import: import UmamiClient from 'umami-api-client'
  • (archived) jakobbouchard TS/JS umami-api-client
    • Import: import UmamiApiClient from 'umami-api'

possible next step

Services or activated bots

CI/CD Automated Release Notes by gren
  • Github actions : continuous tests + coverage using c8 reported on github pages website
  • Github security checks activated
  • Houndci : JavaScript automated review (configured by .hound.yml)
  • gren : Release notes automation
  • Github pages website hosts some metrics for the main branch of this project: code coverage