GitHub Issues Apache License 2.0


All Projects

Discord Github Thing Doer


The discord-github-thing-doer is a WIP Discord bot that does github-related things. It is primarily for personal use, but I’m open-sourcing it because… why not. You can see it in action in the Discord server below.


GitHub Travis
GitHub Discord Logo Travis Discord Logo

^ github-thing-doer’s awesome logo by rjt (Travis variant by me)


The program is split into two bot accounts, one for GitHub and one for Travis, that both share configuration files located in ~/.config/discord-github-thing-doer/*. Despite being written independently, in terms of functionality the Travis module is seen as a sort of “plugin” for the GitHub bot; most of the Travis functionality requires the GitHub bot to already be set up. As such, the GitHub bot is also in charge of handling general functionality such as ending the process if the restart command is sent.

Several commands can be used to invoke the GitHub bot to perform various actions:

!github sync <user/repo> [category]	Creates channels under [category], the first category
					with the name 'projects', or 'uncategorized' (prioritized
					in that order) linked to a specified user's GitHub repos
					(or to the specified repo) via webhooks.

!github auth [token]			Verifies a user's GitHub account and assigns the 'github-auth'
					role accordingly.

!github auth <username> gist		Verifies a user's GitHub account and does the same as the normal
					'auth' command, but verifies their account through the creation of
					a gist instead of using GitHub's OAuth APIs.

!github whois <user>			Outputs the user's verified identity, if any; passing an @mention
					or GitHub login should both result in the same output.

!github ls contributors			Lists the contributors to the repository that the current channel
					is linked to, if any.

!github help				Displays this beautiful message.

The Travis bot responds to a few commands as well:

!travis sync				Creates a webhook for Travis deployments in each channel that
					is linked to a GitHub repository; `!github sync` must be run
					before this is used. The webhook URL will be set as the
					'DISCORD_WEBHOOK' environment variable in Travis for each

!travis help				Displays this beautiful message.

And finally,

!thing-doer server			Output information about the server, such as the CPU, current user,
					uptime, memory, etc.

!thing-doer restart			Ends the process that the bot is running on; particularly useful
					if the bot is run in a loop of `git pull; npm install; node index.js`
					so it can be restarted to pull the latest source code automatically.

!thing-doer help			Displays this beautiful message.

Last updated: 2019-02-13T20:09:24Z

This site may do shady things with cookies and stuff because it's evil. Please don't read my privacy policy. close