Justin Carlson 9a7839ce42
Implement separate bot users per service (#573)
* Add service bots config

* Add joined rooms manager and keep track of joined rooms

* Add bot users manager and ensure registration and profiles

* Improve joined rooms manager and set up already joined rooms

* Handle invites with service bots

* Handle messages with service bots

* Use service bots for connections

* Use service bots in widget and provisioning APIs

* Use service bots in setup connections

* Use service bots for feed connections

* Handle admin rooms for service bots

* Fix confused event type and service type in provisioning and widget APIs

* Fix generic webhooks service name

* Fix enabled services config

* Handle power level change

* Create widgets with service scope

* Use service bots for gitlab repo connections

* Use service bots for gitlab issue connections

* Use service bots for generic webhook connections

* Use service bots for figma file connections

* Use service bots when verifying state events

* Use service bots for github repo connections

* Use service bots for github discussion connections

* Use service bots for github discussion space connections

* Use service bots for github project connections

* Use service bots for github issue connections

* Use service bots for github user space connections

* Use service bots for jira connections

* Make sure ghost users are invited for gitlab issue comments

* Configure one service per service bot

* Add changelog

* Update tests

* Fix up following rebase

* Fix comment

* Use getter for enabled services

* Ensure homeserver can be reached before registering bots

* Add intent getter on bot user

* Update config comment

* Merge joined rooms manager with bot users manager

* Remove unused localpart from bot user class

* Refactor to pass in bot users manager

* Improve priority sort function

Co-authored-by: Christian Paul <christianp@matrix.org>

* Fix priority sort

Higher priority should come first

* Add debug log when invites are rejected

* Use different state key for scoped setup widgets

* Use different subtitles to differentiate service bots setup widgets

* Refactor bot user setup into bot users manager

* Refactor to reduce duplication in widget API

* Consistent room ID and intent args order

* Add docs and update changelog

* Add overrideUserId deprecation warning

* Add service bots link

Co-authored-by: Christian Paul <christianp@matrix.org>
Co-authored-by: Will Hunt <will@half-shot.uk>
2023-01-13 15:32:09 +00:00
2022-08-11 17:09:33 +01:00
2021-11-21 12:34:56 +00:00
2022-09-01 15:01:08 +00:00
2022-06-17 09:20:23 +01:00
2022-03-30 11:36:37 +01:00
2022-01-02 01:54:57 +00:00
2022-07-19 11:50:01 -04:00
2022-07-19 11:50:01 -04:00
2022-12-02 13:47:18 +00:00
2022-06-08 15:30:46 +00:00
2021-11-22 16:02:07 +00:00
2023-01-06 17:21:08 +00:00
2019-08-02 19:07:05 +01:00
2022-03-07 20:01:51 +00:00

matrix-hookshot

Previously matrix-github

#hookshot:half-shot.uk Docker Image Version (latest by date)

A bridge between Matrix and multiple project management services, such as GitHub, GitLab and JIRA.

Featureset

This bridge supports:

  • Figma
    • File comments
  • GitHub
    • Webhooks (new issues, pull requests, releases etc)
    • Commands (create issues, assign issues, start workflows etc)
  • GitLab
    • Webhooks (new issues, merge requests etc)
    • Commands
  • Jira
    • Webhooks (new issues, issue changes)
    • Commands (create new issues)
  • Generic webhooks
    • Webhooks (via GET, PUT or POST with optional transformation functions)
  • RSS/Atom feeds
    • New entries

Setup

See the setup guide

Documentation

Documentation can be found on GitHub Pages.

You can build the documentation yourself by:

# cargo install mdbook
mdbook build
sensible-browser book/index.html

Contact

We have a bridge support room you can drop into at #hookshot:half-shot.uk.

Description
A bridge between Matrix and multiple project management services, such as GitHub, GitLab and JIRA.
Readme Apache-2.0 14 MiB
Languages
TypeScript 94.3%
Rust 3.1%
SCSS 0.8%
Smarty 0.6%
JavaScript 0.6%
Other 0.5%