notify-issues-to-slack

command module
v0.1.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 15, 2020 License: MIT Imports: 15 Imported by: 0

README

notify-issues-to-slack

Build Status

This project is alpha quality. The interface may change in the future.

Description

The CLI tool to notify Github issues and pull requests to Slack with color like following. It is useful for review reminder and checking issues regularly.

example

Installation

go get
$ go get github.com/shibayu36/notify-issues-to-slack
$ notify-issues-to-slack --help
Docker
$ docker pull shibayu36/notify-issues-to-slack
$ docker run --rm shibayu36/notify-issues-to-slack -help
Built binaries

Built binaries are available on gihub releases. https://github.com/shibayu36/notify-issues-to-slack/releases

Synopsis

$ notify-issues-to-slack -github-token=... -slack-webhook-url=... -query='repo:shibayu36/notify-issues-to-slack state:open label:"bug"' -text="Please check bug reports @shibayu36"

Usage

You can post issues and pull requests matched by -query to slack. By -query options, you can use all syntax on Searching issues and pull requests document.

$ notify-issues-to-slack -github-token=... -slack-webhook-url=... \
    -query='repo:shibayu36/notify-issues-to-slack state:open label:"bug"' \
    -text="Please check bug reports @shibayu36" \
    -channel="bug-report-channel" # slack channel to be posted

Github doesn't support relative time query, but -query option supports this.

$ notify-issues-to-slack -github-token=... -slack-webhook-url=... \
    -query='repo:shibayu36/notify-issues-to-slack state:open label:"bug" created:<now-1w' \
    -text="Please check bug reports made more than a week ago @shibayu36"

You can colorize issue attachments using -danger-filter and warning-filter. Like -query option, you can use github's search query. Following example colorize an issue danger if its last update is a week ago, and colorize an issue warning if its last update is three days ago.

$ notify-issues-to-slack -github-token=... -slack-webhook-url=... \
    -query='repo:shibayu36/notify-issues-to-slack state:open label:"bug"' \
    -danger-filter='updated:<now-1w' \
    -warning-filter='updated:<now-3d'

Of course, you can customize slack username and icon.

$ notify-issues-to-slack -github-token=... -slack-webhook-url=... \
    -query='repo:shibayu36/notify-issues-to-slack state:open label:"bug"' \
    -username='bug reporter' \
    -icon-emoji=':bug:'

If you use Github Enterprise, please specify -github-api-url.

$ notify-issues-to-slack -github-token=... -slack-webhook-url=... \
    -github-api-url='https://ghe.example.com/api/v3'
    -query=...

Format

If you want to customize text's and attachment's format posted to slack, -text and -issue-text-format options are useful. You can use text/template syntax in -text and -issute-text-format.

[]github.Issue is passed to -text as ., and github.Issue is passed to -issue-text-format as .. github.Issue struct is described in go-github document.

For example, you can use following command if you want to post "please review them" when issues are found, and to post "no review request" when issues are not found by your query

$ notify-issues-to-slack -github-token=... -slack-webhook-url=... \
    -query=...
    -text="{{ if . }}please review them @channel{{ else }}no review request{{end}}"

And following command customizes each issue's format.

$ notify-issues-to-slack -github-token=... -slack-webhook-url=... \
    -query=...
    -issue-text-format="{{.GetTitle}}: created by @{{.GetUser.GetLogin}} at {{.GetCreatedAt}}"

Useful queries

Following command colorizes warning when no reviewer is assigned, and colorizes danger when no reviewer is assigned since two days ago.

$ notify-issues-to-slack -github-token=... -slack-webhook-url=... \
    -query='repo:shibayu36/notify-issues-to-slack label:"review required" state:open' \
    -warning-filter="type:pr review:none" \
    -danger-filter=""updated:<=now-2d type:pr review:none"

Following command notifies issues with "In Progress" label but without assignee.

$ notify-issues-to-slack -github-token=... -slack-webhook-url=... \
    -query='repo:shibayu36/notify-issues-to-slack label:"In Progress" state:open no:assignee' \
    -text='Do you forget deciding the assignment?'

Following command notifies pull requests assigned me as reviewer.

$ notify-issues-to-slack -github-token=... -slack-webhook-url=... \
    -query='repo:shibayu36/notify-issues-to-slack state:open type:pr review-requested:shibayu36'

Author

shibayu36

Documentation

The Go Gopher

There is no documentation for this package.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL