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: stdoutNo 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: commentThe 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 toParameters:
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: actionsOutputs:
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: commentPer-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: commentWhen 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