Browse Source

Merge branch 'master' into feat/6982-textlint

Yuki Takei 4 years ago
parent
commit
1e5cd1722c
52 changed files with 185 additions and 574 deletions
  1. 7 3
      .github/release-drafter.yml
  2. 75 521
      CHANGELOG.md
  3. 22 0
      SECURITY.md
  4. 1 0
      bin/github-actions/list-branches.js
  5. 1 1
      lerna.json
  6. 1 1
      package.json
  7. 2 2
      packages/app/docker/README.md
  8. 7 7
      packages/app/package.json
  9. BIN
      packages/app/public/images/slack-integration/activate-public-dist.png
  10. BIN
      packages/app/public/images/slack-integration/basicinfo-all-checked.png
  11. BIN
      packages/app/public/images/slack-integration/click-add-to-slack.png
  12. BIN
      packages/app/public/images/slack-integration/growi-bot-kun-icon.png
  13. BIN
      packages/app/public/images/slack-integration/growi-register-modal.png
  14. BIN
      packages/app/public/images/slack-integration/growi-register-sentence.png
  15. BIN
      packages/app/public/images/slack-integration/growi-set-proxy-url.png
  16. BIN
      packages/app/public/images/slack-integration/impossible.png
  17. BIN
      packages/app/public/images/slack-integration/possible.png
  18. BIN
      packages/app/public/images/slack-integration/slack-bot-install-to-workspace-joined-bot.png
  19. BIN
      packages/app/public/images/slack-integration/slack-bot-install-to-workspace.png
  20. BIN
      packages/app/public/images/slack-integration/slack-bot-install-your-app-complete.png
  21. BIN
      packages/app/public/images/slack-integration/slack-bot-install-your-app-introduction-to-channel.png
  22. BIN
      packages/app/public/images/slack-integration/slack-bot-install-your-app-introduction.png
  23. BIN
      packages/app/public/images/slack-integration/slack-bot-install-your-app-transition-destination.png
  24. BIN
      packages/app/public/images/slack-integration/triangle-basic-gray.png
  25. 1 1
      packages/app/src/components/Admin/SlackIntegration/CustomBotWithoutProxySettingsAccordion.jsx
  26. 21 8
      packages/app/src/migrations/20210913153942-migrate-slack-app-integration-schema.js
  27. 5 1
      packages/app/src/server/service/slack-command-handler/search.js
  28. 3 2
      packages/app/src/server/util/slack-integration.ts
  29. 7 0
      packages/app/src/styles/_variables.scss
  30. 2 1
      packages/app/src/styles/theme/_apply-colors.scss
  31. 1 1
      packages/app/src/styles/theme/antarctic.scss
  32. 1 1
      packages/app/src/styles/theme/christmas.scss
  33. 2 2
      packages/app/src/styles/theme/default.scss
  34. 1 1
      packages/app/src/styles/theme/future.scss
  35. 1 1
      packages/app/src/styles/theme/halloween.scss
  36. 2 2
      packages/app/src/styles/theme/hufflepuff.scss
  37. 1 1
      packages/app/src/styles/theme/island.scss
  38. 1 1
      packages/app/src/styles/theme/kibela.scss
  39. 2 2
      packages/app/src/styles/theme/mono-blue.scss
  40. 1 1
      packages/app/src/styles/theme/nature.scss
  41. 1 1
      packages/app/src/styles/theme/spring.scss
  42. 1 1
      packages/app/src/styles/theme/wood.scss
  43. 1 1
      packages/core/package.json
  44. 1 1
      packages/plugin-attachment-refs/package.json
  45. 1 1
      packages/plugin-lsx/package.json
  46. 1 1
      packages/plugin-pukiwiki-like-linker/package.json
  47. 1 1
      packages/slack/package.json
  48. 4 0
      packages/slack/src/utils/get-supported-growi-actions-regexps.ts
  49. 2 2
      packages/slackbot-proxy/package.json
  50. 1 1
      packages/slackbot-proxy/src/controllers/growi-to-slack.ts
  51. 2 2
      packages/slackbot-proxy/src/services/RelationsService.ts
  52. 1 1
      packages/ui/package.json

+ 7 - 3
.github/release-drafter.yml

@@ -41,10 +41,14 @@ autolabeler:
       - '/^chore\/.+/'
     title:
       - '/^chore/i'
-
+include-labels:
+  - breaking
+  - feature
+  - improvement
+  - bug
+  - support
+  - dependencies
 exclude-labels:
   - 'exclude from changelog'
 template: |
-  ### Changes
-
   $CHANGES

File diff suppressed because it is too large
+ 75 - 521
CHANGELOG.md


+ 22 - 0
SECURITY.md

@@ -0,0 +1,22 @@
+# Security Policy
+
+## Supported Versions
+
+| Version | Supported          |
+| ------- | ------------------ |
+| 4.4.x   | :white_check_mark: |
+| < 4.3   | :x:                |
+
+## Reporting Security Issues
+
+**please do not report security vulnerabilities through public GitHub issues.**
+
+If you believe you have found a security vulnerability in any GROWI related repository, please report it to us using one of the methods described below.
+
+  * [Join our Slack team](https://growi-slackin.weseek.co.jp/) and send DM to `@yuki` who is the lead developer
+  * Report to JPCERT/CC ([en](https://www.jpcert.or.jp/english/ir/form.html)/[ja](https://www.jpcert.or.jp/form/))
+
+## Preferred Languages
+
+Communication in English and Japanese is possible.  
+In Japanese, we can reply more quickly. 

+ 1 - 0
bin/github-actions/list-branches.js

@@ -18,6 +18,7 @@ const EXCLUDE_PATTERNS = [
   // https://regex101.com/r/Lnx7Pz/3
   /^dev\/[\d.x]*$/,
   /^release\/.+$/,
+  /^dependabot\/.+$/,
 ];
 const LEGAL_PATTERNS = [
   /^master$/,

+ 1 - 1
lerna.json

@@ -1,7 +1,7 @@
 {
   "npmClient": "yarn",
   "useWorkspaces": true,
-  "version": "4.4.3-RC.0",
+  "version": "4.4.4-RC.0",
   "packages": [
     "packages/*"
   ]

+ 1 - 1
package.json

@@ -1,6 +1,6 @@
 {
   "name": "growi",
-  "version": "4.4.3-RC.0",
+  "version": "4.4.4-RC.0",
   "description": "Team collaboration software using markdown",
   "tags": [
     "wiki",

+ 2 - 2
packages/app/docker/README.md

@@ -10,8 +10,8 @@ GROWI Official docker image
 Supported tags and respective Dockerfile links
 ------------------------------------------------
 
-* [`4.4.2`, `4.4`, `4`, `latest` (Dockerfile)](https://github.com/weseek/growi/blob/v4.4.2/docker/Dockerfile)
-* [`4.4.2-nocdn`, `4.4-nocdn`, `4-nocdn`, `latest-nocdn` (Dockerfile)](https://github.com/weseek/growi/blob/v4.4.2/docker/Dockerfile)
+* [`4.4.3`, `4.4`, `4`, `latest` (Dockerfile)](https://github.com/weseek/growi/blob/v4.4.3/docker/Dockerfile)
+* [`4.4.3-nocdn`, `4.4-nocdn`, `4-nocdn`, `latest-nocdn` (Dockerfile)](https://github.com/weseek/growi/blob/v4.4.3/docker/Dockerfile)
 * [`4.3.3`, `4.3` (Dockerfile)](https://github.com/weseek/growi/blob/v4.3.3/docker/Dockerfile)
 * [`4.3.3-nocdn`, `4.3-nocdn` (Dockerfile)](https://github.com/weseek/growi/blob/v4.3.3/docker/Dockerfile)
 

+ 7 - 7
packages/app/package.json

@@ -1,6 +1,6 @@
 {
   "name": "@growi/app",
-  "version": "4.4.3-RC.0",
+  "version": "4.4.4-RC.0",
   "license": "MIT",
   "scripts": {
     "//// for production": "",
@@ -54,11 +54,11 @@
   "dependencies": {
     "@browser-bunyan/console-formatted-stream": "^1.6.2",
     "@google-cloud/storage": "^5.8.5",
-    "@growi/codemirror-textlint": "^4.4.3-RC.0",
-    "@growi/plugin-attachment-refs": "^4.4.3-RC.0",
-    "@growi/plugin-pukiwiki-like-linker": "^4.4.3-RC.0",
-    "@growi/plugin-lsx": "^4.4.3-RC.0",
-    "@growi/slack": "^4.4.3-RC.0",
+    "@growi/codemirror-textlint": "^4.4.4-RC.0",
+    "@growi/plugin-attachment-refs": "^4.4.4-RC.0",
+    "@growi/plugin-pukiwiki-like-linker": "^4.4.4-RC.0",
+    "@growi/plugin-lsx": "^4.4.4-RC.0",
+    "@growi/slack": "^4.4.4-RC.0",
     "@promster/express": "^5.0.1",
     "@promster/server": "^6.0.0",
     "@slack/events-api": "^3.0.0",
@@ -154,7 +154,7 @@
     "@alienfast/i18next-loader": "^1.0.16",
     "@atlaskit/drawer": "^5.3.7",
     "@atlaskit/navigation-next": "^8.0.5",
-    "@growi/ui": "^4.4.3-RC.0",
+    "@growi/ui": "^4.4.4-RC.0",
     "@handsontable/react": "=2.1.0",
     "@types/compression": "^1.7.0",
     "@types/express": "^4.17.11",

BIN
packages/app/public/images/slack-integration/activate-public-dist.png


BIN
packages/app/public/images/slack-integration/basicinfo-all-checked.png


BIN
packages/app/public/images/slack-integration/click-add-to-slack.png


BIN
packages/app/public/images/slack-integration/growi-bot-kun-icon.png


BIN
packages/app/public/images/slack-integration/growi-register-modal.png


BIN
packages/app/public/images/slack-integration/growi-register-sentence.png


BIN
packages/app/public/images/slack-integration/growi-set-proxy-url.png


BIN
packages/app/public/images/slack-integration/impossible.png


BIN
packages/app/public/images/slack-integration/possible.png


BIN
packages/app/public/images/slack-integration/slack-bot-install-to-workspace-joined-bot.png


BIN
packages/app/public/images/slack-integration/slack-bot-install-to-workspace.png


BIN
packages/app/public/images/slack-integration/slack-bot-install-your-app-complete.png


BIN
packages/app/public/images/slack-integration/slack-bot-install-your-app-introduction-to-channel.png


BIN
packages/app/public/images/slack-integration/slack-bot-install-your-app-introduction.png


BIN
packages/app/public/images/slack-integration/slack-bot-install-your-app-transition-destination.png


BIN
packages/app/public/images/slack-integration/triangle-basic-gray.png


+ 1 - 1
packages/app/src/components/Admin/SlackIntegration/CustomBotWithoutProxySettingsAccordion.jsx

@@ -125,7 +125,7 @@ const CustomBotWithoutProxySettingsAccordion = (props) => {
       <Accordion
         defaultIsActive={defaultOpenAccordionKeys.has(botInstallationStep.CONNECTION_TEST)}
         // eslint-disable-next-line max-len
-        title={<><span className="mr-2">④</span>{t('admin:slack_integration.accordion.manage_commands')}{isLatestConnectionSuccess && <i className="ml-3 text-success fa fa-check"></i>}</>}
+        title={<><span className="mr-2">④</span>{t('admin:slack_integration.accordion.manage_commands')}</>}
       >
         <ManageCommandsProcessWithoutProxy
           commandPermission={props.commandPermission}

+ 21 - 8
packages/app/src/migrations/20210913153942-migrate-slack-app-integration-schema.js

@@ -29,14 +29,26 @@ module.exports = {
 
     // create operations
     const operations = slackAppIntegrations.map((doc) => {
-      const copyForBroadcastUse = defaultDataForBroadcastUse;
-      const copyForSingleUse = defaultDataForSingleUse;
-      doc._doc.supportedCommandsForBroadcastUse.forEach((commandName) => {
-        copyForBroadcastUse[commandName] = true;
-      });
-      doc._doc.supportedCommandsForSingleUse.forEach((commandName) => {
-        copyForSingleUse[commandName] = true;
-      });
+      const copyForBroadcastUse = { ...defaultDataForBroadcastUse };
+      const copyForSingleUse = { ...defaultDataForSingleUse };
+      // when the document does NOT have supportedCommandsFor... columns
+      if (doc._doc.supportedCommandsForBroadcastUse == null) {
+        defaultSupportedCommandsNameForBroadcastUse.forEach((commandName) => {
+          copyForBroadcastUse[commandName] = true;
+        });
+        defaultSupportedCommandsNameForSingleUse.forEach((commandName) => {
+          copyForSingleUse[commandName] = true;
+        });
+      }
+      // // when the document has supportedCommandsFor... columns
+      else {
+        doc._doc.supportedCommandsForBroadcastUse.forEach((commandName) => {
+          copyForBroadcastUse[commandName] = true;
+        });
+        doc._doc.supportedCommandsForSingleUse.forEach((commandName) => {
+          copyForSingleUse[commandName] = true;
+        });
+      }
 
       return {
         updateOne: {
@@ -63,6 +75,7 @@ module.exports = {
 
   async down(db, next) {
     logger.info('Rollback migration');
+    // return next();
     mongoose.connect(config.mongoUri, config.mongodb.options);
 
     const SlackAppIntegration = getModelSafely('SlackAppIntegration') || require('~/server/models/slack-app-integration')();

+ 5 - 1
packages/app/src/server/service/slack-command-handler/search.js

@@ -35,6 +35,10 @@ module.exports = (crowi) => {
       pages, offset, resultsTotal,
     } = searchResult;
 
+    if (pages.length === 0) {
+      return;
+    }
+
     const keywords = this.getKeywords(args);
 
 
@@ -361,7 +365,7 @@ module.exports = (crowi) => {
         user: body.user_id,
         text: `No page found with "${keywords}"`,
         blocks: [
-          markdownSectionBlock(`*No page that matches your keyword(s) "${keywords}".*`),
+          markdownSectionBlock(`*No page matches your keyword(s) "${keywords}".*`),
           markdownSectionBlock(':mag: *Help: Searching*'),
           divider(),
           markdownSectionBlock('`word1` `word2` (divide with space) \n Search pages that include both word1, word2 in the title or body'),

+ 3 - 2
packages/app/src/server/util/slack-integration.ts

@@ -1,3 +1,5 @@
+import { getSupportedGrowiActionsRegExp } from '@growi/slack';
+
 type CommandPermission = { [key:string]: string[] | boolean }
 
 export const checkPermission = (
@@ -8,8 +10,7 @@ export const checkPermission = (
   Object.entries(commandPermission).forEach((entry) => {
     const [command, value] = entry;
     const permission = value;
-    const commandRegExp = new RegExp(`(^${command}$)|(^${command}:\\w+)`);
-
+    const commandRegExp = getSupportedGrowiActionsRegExp(command);
     if (!commandRegExp.test(commandOrActionIdOrCallbackId)) return;
 
     // permission check

+ 7 - 0
packages/app/src/styles/_variables.scss

@@ -2,6 +2,13 @@
 $growi-green: #74bc46;
 $growi-blue: #175fa5;
 
+//== Marker Color
+$grw-marker-yellow: #ff6;
+$grw-marker-red: #f6c;
+$grw-marker-blue: #6cf;
+$grw-marker-cyan: cyan;
+$grw-marker-green: #6f6;
+
 $font-family-for-staff-credit: Lato, -apple-system, BlinkMacSystemFont, 'Hiragino Kaku Gothic ProN', Meiryo, sans-serif !default;
 $font-family-monospace-not-strictly: Monaco, Menlo, Consolas, 'Courier New', MeiryoKe_Gothic, monospace;
 

+ 2 - 1
packages/app/src/styles/theme/_apply-colors.scss

@@ -17,6 +17,7 @@ $bordercolor-nav-tabs-active: $bordercolor-nav-tabs $bordercolor-nav-tabs $bgcol
 $color-seen-user: #549c79 !default;
 $reload-btn-rc-color: $gray-500;
 $reload-btn-cs-color: $gray-500;
+$bgcolor-highlighted: $grw-marker-yellow !default;
 
 // override bootstrap variables
 $body-bg: $bgcolor-global;
@@ -450,7 +451,7 @@ ul.pagination {
  */
 .wiki {
   .highlighted {
-    @include highlighted($bgcolor-highlighted);
+    background: linear-gradient(transparent 60%, $bgcolor-highlighted 60%);
   }
 
   a {

+ 1 - 1
packages/app/src/styles/theme/antarctic.scss

@@ -51,7 +51,7 @@ html[dark] {
   $bgcolor-global: $themelight;
   $bgcolor-inline-code: $gray-100; //optional
   $bgcolor-card: $gray-50;
-  $bgcolor-highlighted: rgba($primary, 0.15);
+  //$bgcolor-highlighted: $grw-marker-yellow;
 
   // Font colors
   $color-global: black;

+ 1 - 1
packages/app/src/styles/theme/christmas.scss

@@ -43,7 +43,7 @@ html[dark] {
   // Background colors
   $bgcolor-card: $gray-50;
   $bgcolor-inline-code: $gray-100; //optional
-  $bgcolor-highlighted: rgba($primary, 0.5);
+  // $bgcolor-highlighted: $grw-marker-yellow;
 
   // Font colors
   $color-global: #112744;

+ 2 - 2
packages/app/src/styles/theme/default.scss

@@ -22,7 +22,7 @@ html[light] {
   $bgcolor-global: white;
   $bgcolor-inline-code: $gray-100; //optional
   $bgcolor-card: $gray-50;
-  $bgcolor-highlighted: rgba($primary, 0.1);
+  // $bgcolor-highlighted: $grw-marker-yellow;
 
   // Font colors
   $color-global: #112744;
@@ -123,7 +123,7 @@ html[dark] {
   $bgcolor-global: #131418;
   $bgcolor-inline-code: #1f1f22; //optional
   $bgcolor-card: darken($bgcolor-global, 5%);
-  $bgcolor-highlighted: rgba($primary, 0.4);
+  $bgcolor-highlighted: $grw-marker-red;
 
   // Font colors
   $color-global: $gray-400;

+ 1 - 1
packages/app/src/styles/theme/future.scss

@@ -11,7 +11,7 @@ html[dark] {
   $bgcolor-global: $themecolor;
   $bgcolor-inline-code: #1f1f22; //optional
   $bgcolor-card: darken($themecolor, 5%);
-  $bgcolor-highlighted: rgba($primary, 0.4);
+  $bgcolor-highlighted: $grw-marker-red;
 
   // Font colors
   $color-global: #95abba;

+ 1 - 1
packages/app/src/styles/theme/halloween.scss

@@ -39,7 +39,7 @@ html[dark] {
   $bgcolor-global: #050000;
   $bgcolor-inline-code: #1f1f22; //optional
   $bgcolor-card: $bgcolor-global;
-  $bgcolor-highlighted: rgba($primary, 0.4);
+  $bgcolor-highlighted: $grw-marker-cyan;
 
   // Font colors
   $color-global: #e9af2b;

+ 2 - 2
packages/app/src/styles/theme/hufflepuff.scss

@@ -35,7 +35,7 @@ html[light] {
   $bgcolor-global: lighten($themelight, 10%);
   $bgcolor-inline-code: $gray-100; //optional
   $bgcolor-card: $gray-100;
-  $bgcolor-highlighted: rgba($primary, 0.5);
+  $bgcolor-highlighted: $grw-marker-green;
 
   // Font colors
   $color-global: $subthemecolor;
@@ -174,7 +174,7 @@ html[dark] {
   // $bgcolor-navbar: #27343b;
   $bgcolor-inline-code: $subthemecolor;
   $bgcolor-card: darken($themedark, 5%);
-  $bgcolor-highlighted: rgba($primary, 0.5);
+  $bgcolor-highlighted: $grw-marker-red;
 
   // Font colors
   $color-global: #efe2cf;

+ 1 - 1
packages/app/src/styles/theme/island.scss

@@ -11,7 +11,7 @@ html[dark] {
   $bgcolor-card: $gray-50;
   $bgcolor-global: lighten($color-themelight, 10%);
   $bgcolor-inline-code: $gray-100; //optional
-  $bgcolor-highlighted: rgba($primary, 0.3);
+  // $bgcolor-highlighted: $grw-marker-yellow;
 
   // Font colors
   $color-global: #112744;

+ 1 - 1
packages/app/src/styles/theme/kibela.scss

@@ -45,7 +45,7 @@ html[dark] {
   $primary: $bgcolor-theme;
   $info: lighten($bgcolor-theme, 20%);
 
-  $bgcolor-highlighted: rgba($primary, 0.2);
+  // $bgcolor-highlighted: $grw-marker-yellow;
 
   // List Group colors
   $color-list: $color-global;

+ 2 - 2
packages/app/src/styles/theme/mono-blue.scss

@@ -14,7 +14,7 @@ html[light] {
   $bgcolor-global: $themelight;
   $bgcolor-inline-code: $gray-100; //optional
   $bgcolor-card: darken($themelight, 5%);
-  $bgcolor-highlighted: rgba($primary, 0.1);
+  // $bgcolor-highlighted: $grw-marker-yellow;
 
   // Font colors
   $color-global: $themecolor;
@@ -112,7 +112,7 @@ html[dark] {
   $bgcolor-navbar: #27343b;
   $bgcolor-inline-code: #1f1f22; //optional
   $bgcolor-card: darken($themedark, 5%);
-  $bgcolor-highlighted: rgba($primary, 0.5);
+  $bgcolor-highlighted: $grw-marker-green;
 
   // Font colors
   $color-global: #d3d4d4;

+ 1 - 1
packages/app/src/styles/theme/nature.scss

@@ -45,7 +45,7 @@ html[dark] {
   $bgcolor-inline-code: $gray-100; //optional
   $bgcolor-card: #f1ffe4;
   $bgcolor-subnav: #fafafa;
-  $bgcolor-highlighted: rgba($primary, 0.1);
+  // $bgcolor-highlighted: $grw-marker-yellow;
 
   // Font colors
   $color-global: #460039;

+ 1 - 1
packages/app/src/styles/theme/spring.scss

@@ -34,7 +34,7 @@ html[dark] {
   $bgcolor-global: white;
   $bgcolor-inline-code: $gray-100; //optional
   $bgcolor-card: $gray-50;
-  $bgcolor-highlighted: rgba($primary, 0.5);
+  $bgcolor-highlighted: $grw-marker-cyan;
 
   // Font colors
   $color-global: black;

+ 1 - 1
packages/app/src/styles/theme/wood.scss

@@ -43,7 +43,7 @@ html[dark] {
   // Background colors
   $bgcolor-global: white;
   $bgcolor-card: #ece8de;
-  $bgcolor-highlighted: rgba($primary, 0.3);
+  $bgcolor-highlighted: $grw-marker-blue;
 
   // Font colors
   // $color-global: black;

+ 1 - 1
packages/core/package.json

@@ -1,6 +1,6 @@
 {
   "name": "@growi/core",
-  "version": "4.4.3-RC.0",
+  "version": "4.4.4-RC.0",
   "description": "GROWI Core Libraries",
   "license": "MIT",
   "keywords": [

+ 1 - 1
packages/plugin-attachment-refs/package.json

@@ -1,6 +1,6 @@
 {
   "name": "@growi/plugin-attachment-refs",
-  "version": "4.4.3-RC.0",
+  "version": "4.4.4-RC.0",
   "description": "GROWI Plugin to add ref/refimg/refs/refsimg tags",
   "license": "MIT",
   "keywords": [

+ 1 - 1
packages/plugin-lsx/package.json

@@ -1,6 +1,6 @@
 {
   "name": "@growi/plugin-lsx",
-  "version": "4.4.3-RC.0",
+  "version": "4.4.4-RC.0",
   "description": "GROWI plugin to list pages",
   "license": "MIT",
   "keywords": [

+ 1 - 1
packages/plugin-pukiwiki-like-linker/package.json

@@ -1,6 +1,6 @@
 {
   "name": "@growi/plugin-pukiwiki-like-linker",
-  "version": "4.4.3-RC.0",
+  "version": "4.4.4-RC.0",
   "description": "GROWI plugin to add PukiwikiLikeLinker",
   "license": "MIT",
   "keywords": [

+ 1 - 1
packages/slack/package.json

@@ -1,6 +1,6 @@
 {
   "name": "@growi/slack",
-  "version": "4.4.3-RC.0",
+  "version": "4.4.4-RC.0",
   "license": "MIT",
   "main": "dist/index.js",
   "typings": "dist/index.d.ts",

+ 4 - 0
packages/slack/src/utils/get-supported-growi-actions-regexps.ts

@@ -1,3 +1,7 @@
 export const getSupportedGrowiActionsRegExps = (supportedGrowiCommands: string[]): RegExp[] => {
   return supportedGrowiCommands.map(command => new RegExp(`^${command}:\\w+`));
 };
+
+export const getSupportedGrowiActionsRegExp = (supportedGrowiCommand: string): RegExp => {
+  return new RegExp(`(^${supportedGrowiCommand}$)|(^${supportedGrowiCommand}:\\w+)`);
+};

+ 2 - 2
packages/slackbot-proxy/package.json

@@ -1,6 +1,6 @@
 {
   "name": "@growi/slackbot-proxy",
-  "version": "4.4.3-RC.0",
+  "version": "4.4.4-RC.0",
   "license": "MIT",
   "scripts": {
     "build": "yarn tsc && tsc-alias -p tsconfig.build.json",
@@ -23,7 +23,7 @@
   "// comments for dependencies": {},
   "dependencies": {
     "@godaddy/terminus": "^4.8.0",
-    "@growi/slack": "^4.4.3-RC.0",
+    "@growi/slack": "^4.4.4-RC.0",
     "@slack/oauth": "^2.0.1",
     "@slack/web-api": "^6.2.4",
     "@tsed/common": "^6.43.0",

+ 1 - 1
packages/slackbot-proxy/src/controllers/growi-to-slack.ts

@@ -296,7 +296,7 @@ export class GrowiToSlackCtrl {
       logger.error(err);
 
       if (err.code === ErrorCode.PlatformError) {
-        return res.simulateWebAPIPlatformError(err.message, err.code);
+        return res.simulateWebAPIPlatformError(err.message, err.data.error);
       }
 
       return res.simulateWebAPIRequestError(err.message, err.response?.status);

+ 2 - 2
packages/slackbot-proxy/src/services/RelationsService.ts

@@ -3,7 +3,7 @@ import { Inject, Service } from '@tsed/di';
 import axios from 'axios';
 import { addHours } from 'date-fns';
 
-import { REQUEST_TIMEOUT_FOR_PTOG } from '@growi/slack';
+import { REQUEST_TIMEOUT_FOR_PTOG, getSupportedGrowiActionsRegExp } from '@growi/slack';
 import { Relation } from '~/entities/relation';
 import { RelationRepository } from '~/repositories/relation';
 
@@ -163,7 +163,7 @@ export class RelationsService {
     [...singleUse, ...broadCastUse].forEach(async(tempCommandName) => {
 
       // ex. search OR search:handlerName
-      const commandRegExp = new RegExp(`(^${tempCommandName}$)|(^${tempCommandName}:\\w+)`);
+      const commandRegExp = getSupportedGrowiActionsRegExp(tempCommandName);
       // skip this forEach loop if the requested command is not in permissionsForBroadcastUseCommands and permissionsForSingleUseCommands
       if (!commandRegExp.test(actionId) && !commandRegExp.test(callbackId)) {
         return;

+ 1 - 1
packages/ui/package.json

@@ -1,6 +1,6 @@
 {
   "name": "@growi/ui",
-  "version": "4.4.3-RC.0",
+  "version": "4.4.4-RC.0",
   "description": "GROWI UI Libraries",
   "license": "MIT",
   "keywords": [

Some files were not shown because too many files changed in this diff