maubot / gitlab

A GitLab client and webhook receiver for maubot.
GNU Affero General Public License v3.0
95 stars 30 forks source link

roadmap/plans? #75

Open wolfspyre opened 2 months ago

wolfspyre commented 2 months ago

There's a few things that would be nifty quality-of-life improvements, but I'm uncertain as to the desired way to encourage they happen, as project trajectory is a little confusing...

groups seem unsupported as 'repo' targets, which is a bit of a drag.

there's quite a few places where the bot assumes that the individual in question is logged in individually; puking into logs but not responding to the user. ie !gitlab whoami:

[2024-09-09 16:41:27,620] [ERROR@maubot.client.@instance:homeserver.fqdn] Failed to run handler
Traceback (most recent call last):
  File "/usr/lib/python3.12/site-packages/mautrix/client/syncer.py", line 236, in _catch_errors
    await handler(data)
  File "/opt/maubot/maubot/handlers/command.py", line 142, in __call__
    ok, res = await self.__call_subcommand__(evt, call_args, remaining_val)
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/maubot/maubot/handlers/command.py", line 163, in __call_subcommand__
    return True, await subcommand(
                 ^^^^^^^^^^^^^^^^^
  File "/opt/maubot/maubot/handlers/command.py", line 138, in __call__
    ok, remaining_val = await self.__parse_args__(evt, call_args, remaining_val)
                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/maubot/maubot/handlers/command.py", line 173, in __parse_args__
    remaining_val, call_args[arg.name] = arg.match(
                                         ^^^^^^^^^^
  File "/data/plugins/xyz.maubot.gitlab-v0.2.1.mbp/gitlab_matrix/util/arguments.py", line 41, in match
    return val, instance.bot.db.get_login(evt.sender)
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/plugins/xyz.maubot.gitlab-v0.2.1.mbp/gitlab_matrix/db.py", line 163, in get_login
    return AuthInfo(server=row.gitlab_server, api_token=row.api_token)
                           ^^^^^^^^^^^^^^^^^
AttributeError: 'NoneType' object has no attribute 'gitlab_server'

[2024-09-09 16:41:39,877] [INFO@aiohttp.access] 19x.xx.xx.xx "HEAD /_matrix/maubot/favicon.png 200 139 in 0.0013s"

or !gitlab room default_repo:

[2024-09-09 16:45:51,904] [ERROR@maubot.client.@instance:homeserver] Failed to run handler
Traceback (most recent call last):
  File "/usr/lib/python3.12/site-packages/mautrix/client/syncer.py", line 236, in _catch_errors
    await handler(data)
  File "/opt/maubot/maubot/handlers/command.py", line 142, in __call__
    ok, res = await self.__call_subcommand__(evt, call_args, remaining_val)
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/maubot/maubot/handlers/command.py", line 163, in __call_subcommand__
    return True, await subcommand(
                 ^^^^^^^^^^^^^^^^^
  File "/opt/maubot/maubot/handlers/command.py", line 142, in __call__
    ok, res = await self.__call_subcommand__(evt, call_args, remaining_val)
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/maubot/maubot/handlers/command.py", line 163, in __call_subcommand__
    return True, await subcommand(
                 ^^^^^^^^^^^^^^^^^
  File "/opt/maubot/maubot/handlers/command.py", line 138, in __call__
    ok, remaining_val = await self.__parse_args__(evt, call_args, remaining_val)
                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/maubot/maubot/handlers/command.py", line 173, in __parse_args__
    remaining_val, call_args[arg.name] = arg.match(
                                         ^^^^^^^^^^
  File "/data/plugins/xyz.maubot.gitlab-v0.2.1.mbp/gitlab_matrix/util/arguments.py", line 41, in match
    return val, instance.bot.db.get_login(evt.sender)
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/plugins/xyz.maubot.gitlab-v0.2.1.mbp/gitlab_matrix/db.py", line 163, in get_login
    return AuthInfo(server=row.gitlab_server, api_token=row.api_token)
                           ^^^^^^^^^^^^^^^^^
AttributeError: 'NoneType' object has no attribute 'gitlab_server'

There's a handful of others... but if bigger changes are planned before doing anything else, it makes no sense to try to get stuff like this fixed