See action.yml For comprehensive list of options.
This is a fork of https://github.com/rectalogic/notify-irc
but I had issues getting it to send multiline messages.
This has been tweaked to issue IRC notifications mimicking
the style of n.tkte.ch's Notifico.
Jorgen Lundman [email protected]
V1: Add --ansicolor
V2: Add --mirccolor
- It seems MIRC color works in more IRC clients than ANSI.
Unreleased:
servermay be a comma separated list ofhost[:port], tried in order until one delivers, and each attempt getstimeoutseconds (default 15) instead of asyncio's 60 second TLS handshake wait. The action fails only if every server fails.only_repository: owner/repo patterns. On any other repository the action does nothing, so a fork that copies the workflow stays quiet.- Issue, PR and comment messages name the person who acted (
sender), not the author of the issue or PR. - Pushes report the real commit count. GitHub truncates the event to 20
commits, so the compare API is used (
github_token, defaults to the workflow token); if that is unavailable the count shows as20+. - PR messages link to the PR.
Example, send notifications to Libera Chat IRC channel:
name: Notify IRC on: push: issues: types: - opened - edited - closed issue_comment: pull_request: discussion: types: - created - edited - closed - answered discussion_comment: create: delete: jobs: notify-irc: runs-on: ubuntu-latest steps: - name: Notify IRC uses: openzfsonwindows/notify-irc@v2 with: channel: "#yourchannel" # Tried in order; a stalled server no longer fails the run server: "irc.libera.chat,irc.eu.libera.chat" # Stay quiet on forks that copy this workflow only_repository: "yourorg/yourrepo" nickname: "irc-bot-name" mirccolor: "true" eventpath: ${{ github.event_path }}
Handling Pull Requests: pull_request vs. pull_request_target
GitHub provides two different event types for pull requests:
pull_request
Runs in the context of the contributor’s fork. Requires manual approval for first-time contributors (i.e., actions won't trigger until approved). Best for workflows that need to inspect the PR’s contents safely (e.g., linting, tests).
pull_request_target
Runs in the context of the base repository (not the contributor’s fork). Does not require manual approval—PR events (opened, synchronized, etc.) will trigger immediately, even from forks. Best for workflows that don’t need to inspect untrusted code (e.g., sending notifications, labeling PRs).
For this GitHub Action (notify-irc), we use pull_request_target instead of pull_request to ensure that PR notifications are always sent to IRC, even from first-time contributors.
