A GitHub client and webhook receiver for maubot.
You can use the instance hosted on maunium.net by talking to @github:maunium.net.
See steps 4 and 5 below.
-
Set up the plugin like any other maubot plugin.
You just have to upload the plugin, and then create an instance i.e. an association of a plugin and a client.
You have to give this new instance an
instance_id
/ a name, for example "my_github_bot" -
Register a GitHub OAuth application to get a
client_id
andclient_secret
.Set the callback URL to
https://{maubot_host}/{plugin_base_path}/{instance_id}/auth
Following our example, if your instance is hosted on
maubot.example.com
and you kept the defaultplugin_base_path
i.e._matrix/maubot/plugin
, the Github's new OAuth App's form should go like this:- Application name: My Github Bot
- Homepage URL: https://maubot.example.com/
- Application description: A Maubot Github bot for tracking repositories! Yay!
- Authorization callback URL: https://maubot.example.com/_matrix/maubot/plugin/my_github_bot/auth
-
Set the
client_id
andclient_secret
in maubot.Copy these informations from your Github's OAuth App page and paste them in the instance page options.
client_id: <replace> client_secret: <replace>
And save the instance configuration.
-
Use
!github login
to log in.After inviting your bot / client to a matrix channel, use the
!gh
or!github
command to use the github instance.Using
gh login
first is mandatory and needed once per instance.The bot will reply with a link leading to your personal Github's allowed OAuth apps page, where you shall grant the necessary rights to the bot OAuth app.
By default, the bot will request access to all public repos and to add webhooks. You can control the permissions it wants with some flags:
--no-repo
makes it not ask for repo access at all. Only!github webhook add
will work, other commands like!github create
will not.--no-hook
makes it not ask for webhook access.!github webhook add
will not work.--private
makes it ask for private repo access. Necessary if you want to use the bot to manage private repos.
-
Use
!github webhook add <owner>/<repo>
to add webhooks.This will let you see in the current channel all the commits, comments, issues, stars, forks, pull requests, and so on, for that given repository.
You must have admin rights on the repositories you want to track, as adding webhooks to a repository requires manager access rights to a project.
Once you create a webhook and track a repository, it will be tracked only in the room from which you are in.