This project provides a means of archiving a Slack conversation or thread as markdown. For convenience it is installable as a gh
extension.
gh extension install https://github.com/rneatherway/gh-slack
gh extension upgrade gh-slack
Usage:
gh-slack [command]
If no command is specified, the default is "read". The default command also requires a permalink argument <START> for the first message to fetch.
Use "gh-slack read --help" for more information about the default command behaviour.
Examples:
gh-slack --details --issue <issue-url> <slack-permalink> # defaults to read command
gh-slack read <slack-permalink>
gh-slack read -i <issue-url> <slack-permalink>
gh-slack send -m <message> -c <channel-name> -t <team-name>
gh-slack api post chat.postMessage -b '{"channel":"123","blocks":[...]}
eval $(gh-slack auth -t <team-name>)
# Example configuration (add to gh's configuration file at $HOME/.config/gh/config.yml):
extensions:
slack:
team: foo
channel: ops
bot: robot # Can be a user id (most reliable), bot profile name or username
Available Commands:
api Send an API call to slack
auth Prints authentication information for the Slack API (treat output as secret)
completion Generate the autocompletion script for the specified shell
help Help about any command
read Reads a Slack channel and outputs the messages as markdown
send Sends a message to a Slack channel
Flags:
-h, --help help for gh-slack
-v, --verbose Show verbose debug information
Use "gh-slack [command] --help" for more information about a command.
The send
subcommand supports storing default values for the team
, bot
and
channel
required parameters in gh's own configuration file using a block like:
extensions:
slack:
team: foo
channel: ops
bot: robot # Can be a user id (most reliable), bot profile name or username
This is particularly useful if you want to use the send
subcommand to interact
with a bot serving chatops in a standard operations channel.
Many and varied, but at least:
- No paging is used when fetching messages, so if the conversation is too long the output will be truncated.
To release a new version, simply tag it. The goreleaser
workflow will take care of the rest. E.g:
git tag 0.0.6
git push origin 0.0.6