Integrations
Gong supports multiple integration channels to notify reviewers about pending pull requests. These integrations can be configured globally or per rule in your configuration file.
Available Integrations
Gong currently supports the following integrations:
Standard Output (stdout
)
The simplest integration that outputs review request information to the console. This is useful for local development or when running Gong manually.
Configuration:
integrations:
- type: stdout
No additional parameters are required for this integration.
GitHub Comment (comment
)
This integration adds a comment to the Pull Request that mentions all reviewers who need to review the PR.
Configuration:
integrations:
- type: comment
The GitHub token must be provided via the --github-token
flag or the GONG_GITHUB_TOKEN
environment variable.
Slack (slack
)
Sends notifications to a specified Slack channel about pending review requests.
Configuration:
integrations:
- type: slack
params:
channel: "#reviews" # The Slack channel to send notifications to
Parameters:
channel
: The Slack channel to send the notifications to (required)
GitHub Actions (actions
)
When used within GitHub Actions workflows, this integration outputs results as GitHub Actions environment variables and workflow outputs for further processing.
Configuration:
integrations:
- type: actions
Outputs:
To GITHUB_OUTPUT
:
reviewers
: Comma-separated list of reviewers to pingreviewersCount
: Number of reviewers to pingreviewersDetails
: Multiline list of all reviewers with their status
To GITHUB_ENV
:
GONG_REVIEWERS
: Comma-separated list of reviewers to pingGONG_REVIEWERS_COUNT
: Number of reviewers to pingGONG_REVIEWERS_DETAILS
: Multiline list of all reviewers with their status
Using Multiple Integrations
You can configure multiple integrations to run simultaneously:
integrations:
- type: stdout
- type: slack
params:
channel: "#reviews"
- type: comment
Per-Rule Integrations
In addition to global integrations, you can specify different integrations for specific rules:
rules:
- matchName: "urgent-team"
delay: 0
integrations:
- type: slack
params:
channel: "#urgent"
- type: comment
- matchName: "external-*"
delay: 172800
integrations:
- type: comment
When a rule doesn’t specify any integrations, the global integrations are used.
Example Configuration
Here’s a complete example of a configuration using multiple integrations with rule-specific overrides:
repository: Djiit/gong
delay: 0
enabled: true
# Global integrations configuration
integrations:
- type: stdout
- type: slack
params:
channel: "#reviews"
# Rules with custom integrations
rules:
- matchName: "@org/*"
delay: 86400 # 24 hours delay for organization members
integrations:
- type: slack
params:
channel: "#org-reviews"
- type: comment
- matchName: "external-*"
delay: 172800 # 48 hours delay for external reviewers
integrations:
- type: comment
- matchName: "urgent-team"
delay: 0 # No delay for urgent team members
integrations:
- type: slack
params:
channel: "#urgent"
- type: comment