gitlab icon indicating copy to clipboard operation
gitlab copied to clipboard

Doesn't seem to work with multiple accounts

Open deepbluev7 opened this issue 4 years ago • 2 comments

When I try to close an issue, while I am connected to 2 accounts (nheko.im and gitlab.com), the command throws various exceptions in my logs and gives me neither feedback nor does it do anything:

If I don't provide an account I get the following exception:

[2021-06-23 18:32:15,505] [[email protected].@gitlab:nheko.im] Failed to run handler
Traceback (most recent call last):
  File "/usr/lib/python3.8/site-packages/sqlalchemy/orm/query.py", line 3490, in one
    ret = self.one_or_none()
  File "/usr/lib/python3.8/site-packages/sqlalchemy/orm/query.py", line 3467, in one_or_none
    raise orm_exc.MultipleResultsFound(
sqlalchemy.orm.exc.MultipleResultsFound: Multiple rows were found for one_or_none()

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/usr/lib/python3.8/site-packages/mautrix/client/syncer.py", line 200, in _catch_errors
    await handler(data)
  File "/usr/lib/python3.8/site-packages/maubot/handlers/command.py", line 108, in __call__
    ok, res = await self.__call_subcommand__(evt, call_args, remaining_val)
  File "/usr/lib/python3.8/site-packages/maubot/handlers/command.py", line 128, in __call_subcommand__
    return True, await subcommand(evt, _existing_args=call_args,
  File "/usr/lib/python3.8/site-packages/maubot/handlers/command.py", line 108, in __call__
    ok, res = await self.__call_subcommand__(evt, call_args, remaining_val)
  File "/usr/lib/python3.8/site-packages/maubot/handlers/command.py", line 128, in __call_subcommand__
    return True, await subcommand(evt, _existing_args=call_args,
  File "/usr/lib/python3.8/site-packages/maubot/handlers/command.py", line 104, in __call__
    ok, remaining_val = await self.__parse_args__(evt, call_args, remaining_val)
  File "/usr/lib/python3.8/site-packages/maubot/handlers/command.py", line 136, in __parse_args__
    remaining_val, call_args[arg.name] = arg.match(remaining_val.strip(), evt=evt,
  File "/var/lib/maubot/plugins/xyz.maubot.gitlab-v0.1.1.mbp/gitlab_matrix/util/arguments.py", line 41, in match
    return val, instance.bot.db.get_login(evt.sender)
  File "/var/lib/maubot/plugins/xyz.maubot.gitlab-v0.1.1.mbp/gitlab_matrix/db.py", line 160, in get_login
    row = (s.query(Token)
  File "/usr/lib/python3.8/site-packages/sqlalchemy/orm/query.py", line 3492, in one
    util.raise_(
  File "/usr/lib/python3.8/site-packages/sqlalchemy/util/compat.py", line 182, in raise_
    raise exception
sqlalchemy.orm.exc.MultipleResultsFound: Multiple rows were found for one()

If I provide the server in the command, I get the following error:

[2021-06-23 18:41:22,210] [[email protected].@gitlab:nheko.im] Failed to run handler  
Traceback (most recent call last):                                                                                     
  File "/usr/lib/python3.8/site-packages/mautrix/client/syncer.py", line 200, in _catch_errors                         
    await handler(data)                                                                                                
  File "/usr/lib/python3.8/site-packages/maubot/handlers/command.py", line 108, in __call__
    ok, res = await self.__call_subcommand__(evt, call_args, remaining_val)         
  File "/usr/lib/python3.8/site-packages/maubot/handlers/command.py", line 128, in __call_subcommand__
    return True, await subcommand(evt, _existing_args=call_args,
  File "/usr/lib/python3.8/site-packages/maubot/handlers/command.py", line 108, in __call__
    ok, res = await self.__call_subcommand__(evt, call_args, remaining_val)
  File "/usr/lib/python3.8/site-packages/maubot/handlers/command.py", line 128, in __call_subcommand__
    return True, await subcommand(evt, _existing_args=call_args,
  File "/usr/lib/python3.8/site-packages/maubot/handlers/command.py", line 104, in __call__
    ok, remaining_val = await self.__parse_args__(evt, call_args, remaining_val)
  File "/usr/lib/python3.8/site-packages/maubot/handlers/command.py", line 136, in __parse_args__
    remaining_val, call_args[arg.name] = arg.match(remaining_val.strip(), evt=evt,
  File "/var/lib/maubot/plugins/xyz.maubot.gitlab-v0.1.1.mbp/gitlab_matrix/util/arguments.py", line 40, in match           return " ".join(vals[1:]), instance.bot.db.get_login(evt.sender, url_alias=val[0])                                 
  File "/var/lib/maubot/plugins/xyz.maubot.gitlab-v0.1.1.mbp/gitlab_matrix/db.py", line 154, in get_login              
    row = (s.query(Token)
  File "/usr/lib/python3.8/site-packages/sqlalchemy/orm/query.py", line 3500, in one
    raise orm_exc.NoResultFound("No row was found for one()")
sqlalchemy.orm.exc.NoResultFound: No row was found for one()

I would like one of the command versions to work and best case even set a default instance per room :3

deepbluev7 avatar Jun 23 '21 19:06 deepbluev7

I get the same error as the second one you pasted with one account on gitlab.com, without aliases, with and without a default_server, with and without specifying it in the command.

rissson avatar Jul 29 '21 03:07 rissson

Yep adding "gitlab.com" as the only server on v0.2.1, then doing a !gitlab webhook add https://gitlab.com/ user/repository fails with this error. When removing the https://gitlab.com from the command, no error and the command works.

jaywink avatar Apr 02 '22 21:04 jaywink