FILterBot is a Slack bot that periodically checks GitHub repos, tallies issues, and posts messages in Slack channels. FILterBot is used across multiple workstreams, and it is configurable for different teams.
FILterBot is highly configurable. The configuration is stored as a YAML file in this repository.
Each check is a repeating schedule which performs the following each time the check is triggered:
- Search GitHub issues and pull requests for a given query.
- Compose a message with the resulting data.
- Post the message to a given Slack channel.
Each check has the following configuration properties.
Example:
on Wednesday at 9:00
The interval at which this check will be performed. The syntax used is the Later text format.
Here are some examples of schedule definitions supported by Later:
on the 15th day of the month at 13:15
every weekday at 9:00
on the last day of the month at 16:30
Times are specified in UTC.
The parameters that will be passed to the GitHub Search API. The full set of parameters is supported. Refer to the GitHub API documentation for the complete documentation for each of these parameters.
The search will be limited to 1,000 results, which is a limitation of the GitHub API.
Example:
"repo:filecoin-project/filecoin-plus-large-datasets is:issue is:open label:status:needsDiligence"
See the GitHub Search documentation for available search operators.
Example:
created
Can be comments
, reactions
, reactions-+1
, reactions-smile
,
reactions-thinking_face
, reactions-heart
, reactions-tada
, interactions
,
created
, or updated
.
See Searching Issues and Pull Requests for complete documentation.
Example:
asc
Can be asc
or desc
.
See Searching Issues and Pull Requests for complete documentation.
Example:
There are {{items.length}} open issues.
A Handlebars template which controls the text of the message that will be posted to Slack when this check is triggered.
The items
variable is available in the context for the template. items
is a list of search results from the GitHub API, in the form returned by GitHub. See Searching Issues and Pull
Requests for the complete form of each item.
It is recommended to use the multiline string syntax in YAML for composing message templates, for example:
message: |
There are {{items.length}} open issues:
{{#each items}}• <{{this.html_url}}|{{this.title}} (#{{this.number}})>
{{/each}}
Example:
"#fil-plus-notaries"
The channel to which the message will be posted. FILterBot must be invited to the channel (/invite @FILterBot
) before it will be able to post messages to a channel.