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
Set the callback URL to
Following our example, if your instance is hosted on
maubot.example.comand you kept the default
_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
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.
!github loginto log in.
After inviting your bot / client to a matrix channel, use the
!githubcommand to use the github instance.
gh loginfirst 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-repomakes it not ask for repo access at all. Only
!github webhook addwill work, other commands like
!github createwill not.
--no-hookmakes it not ask for webhook access.
!github webhook addwill not work.
--privatemakes it ask for private repo access. Necessary if you want to use the bot to manage private repos.
!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.