Gitlab wird am 24.09. wg. Wartungsarbeiten nicht zur Verfügung stehen

  1. 03 Sep, 2021 1 commit
  2. 27 Aug, 2021 3 commits
  3. 23 Aug, 2021 2 commits
    • Lukas Epple's avatar
      doc: make sure integration test POD is built, mention in manual · 10158a26
      Lukas Epple authored
      Should probably get a proper description in the manual at some point,
      but putting this off until we'll write a proper developer manual.
      10158a26
    • Lukas Epple's avatar
      Implement integration test suite for otobo-rocketchat · ed5430c7
      Lukas Epple authored
      Lives in otobo-rocketchat/scripts/test/otobo-rocketchat.t and may be
      invoked similarly to most OTOBO unit tests (see RUNNING POD section in
      said file).
      
      When invoked we create fresh OTOBO and Rocket.Chat accounts as well as a
      Ticket and check that the group corresponding to the Ticket is correctly
      created and contains all involved users. This is confirmed using
      multiple configurations (discovery type, invite-feature).
      
      All requisites are setup from scratch (except for the Rocket.Chat
      instance and a Rocket.Chat admin account which must be given as
      environment variables) and cleaned up after running. Thanks to OTOBO's
      DB rollback feature it also should be possible to run the integration
      tests without breaking an existing configuration although it may not be
      safe to run in a production environment.
      ed5430c7
  4. 13 Aug, 2021 14 commits
    • Lukas Epple's avatar
      Implement Owner management in Kernel::System::RocketChat · 2c6f1146
      Lukas Epple authored
      Adds a new function to Kernel::System::RocketChat, SyncTicketGroupRoles
      which currently makes the ticket owner channel owner as well (although
      this may be made more flexible in the future). It's useful to split this
      out as we may want to test this in the future.
      2c6f1146
    • Lukas Epple's avatar
      AgentTicketRocketChat: log a warning if announcement update fails · 3f2cd3d2
      Lukas Epple authored
      We probably should not silently fail here in case admins wonder what's up.
      3f2cd3d2
    • Lukas Epple's avatar
      Move group creation into Kernel::System::RocketChat · 97b0a086
      Lukas Epple authored
      We'll want to unit test this works correctly, so having it as a library
      function seems useful. Additionally this declutters the
      Kernel::Modules::AgentTicketRocketChat implementation for creation a
      lot, although there is further cutting down to be done since we do not
      set the announcement nor the owner in CreateGroupForTicket() yet.
      
      Also start using Perl 5.10 switch feature to make the $DiscoveryType if
      clauses less awkward.
      97b0a086
    • Lukas Epple's avatar
      Kernel::System::RocketChat: minor style adjustments · 28dbeda9
      Lukas Epple authored
      * M-x sort-lines @ObjectDependencies
      
      * Use single quotes consistently in examples
      28dbeda9
    • Lukas Epple's avatar
      Kernel::Modules::AgentTicketRocketChat: let GroupCreate invite users · a13dad0a
      Lukas Epple authored
      Split some more logic out of AgentTicketRocketChat into Kernel::System::RocketChat.
      a13dad0a
    • Lukas Epple's avatar
      treewide: docs.rocket.chat -> developer.rocket.chat · a1ef9cb8
      Lukas Epple authored
      We only reference the API documentation which unfortunately has been relocated.
      a1ef9cb8
    • Lukas Epple's avatar
      dev: add docker compose environment for development and tests · ec20225c
      Lukas Epple authored
      This setup has been consolidated from otobo-docker, local patches to
      the main otobo repository and Rocket.Chat's docker compose file.
      
      It is based around a patched docker image which also includes a few
      extra perl libraries as well as OTRS's module-tools for linking in
      requester-headers and otobo-rocketchat which are mounted as modules
      from local folders to allow fast iteration on development. It also
      starts plackup in development mode, so changed files result in a reload.
      
      Documentation will follow as part of a development / testing documentation.
      ec20225c
    • Lukas Epple's avatar
      treewide: make casing and usage of SysConfig more consistent · dad55621
      Lukas Epple authored
      * Always use SysConfig over Sysconfig
      
      * Use SysConfigObject over SysConfig where appropriate
      dad55621
    • Lukas Epple's avatar
      Kernel::Modules::AdminRocketChat: no longer require API URL · 46d80952
      Lukas Epple authored
      We can infer the the API base URL from the regular base URL reliably —
      which also should prevent any trouble should /api/v2 ever come around.
      
      Internally we no longer use RemoteSystem to store the base URL, but
      take the base URL directly from Requester->Transport->Config->Host
      unless RemoteSystem is set (which can be used to override the value
      and to keep backwards compatibility with old webservices).
      
      Resolves #13 and #14.
      46d80952
    • Lukas Epple's avatar
      dev: draft shell.nix for a development environment · 97f12933
      Lukas Epple authored
      Current features:
      
      * Add all perlPackages specified in `dev/otobo-perl-deps.json` to
        `PERL_PATH`. This file has the following format: Keys are nix
        attributes and their values is a list of perl packages that are
        actually needed. The latter are intended for generating cpanfiles
        for a development docker image in the future and still need to be
        populated.
      
      * check-syntax: a small script which gets added to PATH. It runs
        `perl -cw` on all `*.pm` files in `otobo-rocketchat/Kernel` to
        check for obvious mistakes.
      97f12933
    • Lukas Epple's avatar
      doc: fetch otobo source in dedicated file · d105085e
      Lukas Epple authored
      We'll need the otobo source for some development-environment related
      things, so splitting it out of the perl-api-documentation.nix
      expression is required.
      d105085e
    • Lukas Epple's avatar
      Move webservice creation into Kernel::System::RocketChat::Util · a443899f
      Lukas Epple authored
      * For unit testing, we want to be able to call this independently of
        the frontend module, also this reduces the mess in
        `Kernel::Modules::AdminRocketChat` a bit
      
      * Refactor `_WebserviceError` to reuse `DeleteRocketChatWebservice`
      a443899f
    • Lukas Epple's avatar
      Allow overriding webservice in DeleteRocketChatWebservice · 23af75f4
      Lukas Epple authored
      Providing a WebserviceID skips the lookup in the WebserviceID which is
      useful when we reuse this function in the clean up step when creating
      a webservice fails — then the configuration may not yet have been
      updated to include the webservice ID, but we'd still want to delete
      the (known) webservice.
      23af75f4
    • Lukas Epple's avatar
      Move webservice deletion into Kernel::System::RocketChat::Util · d674ffd2
      Lukas Epple authored
      Cleans up Kernel::Modules::AdminRocketChat a bit and will allow us to
      write integration tests for the extension.
      d674ffd2
  5. 11 Jun, 2021 16 commits
  6. 21 May, 2021 3 commits
  7. 14 May, 2021 1 commit
    • Lukas Epple's avatar
      Kernel::System::RocketChat: cache GeneralConfig in the rocketchat object · 092eacbd
      Lukas Epple authored
      Instead of looking up GeneralConfig in the system configuration on
      demand, do it once (in new()) and cache the result for
      Kernel::Modules::AgentTicketRocketChat as well as any functions needing
      it in Kernel::System::RocketChat.
      
      This reduces the config lookups to 2-3 per request now (still room for
      improvement, pending improvement of the activation mechanism!).
      092eacbd