From 23a3ed4170b0766b1a65a3c39f0e497b409b9919 Mon Sep 17 00:00:00 2001 From: leedongmyung Date: Tue, 2 Jan 2024 11:23:19 +0900 Subject: [PATCH] =?UTF-8?q?jira=20contents=EA=B0=80=20=EC=97=86=EC=9D=84?= =?UTF-8?q?=20=EA=B2=BD=EC=9A=B0=EC=97=90=EB=8F=84=20=EB=8F=99=EC=9E=91?= =?UTF-8?q?=EB=90=98=EB=8F=84=EB=A1=9D=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/oto/commands/command.dart | 5 +- lib/oto/commands/util/jira.dart | 80 +++++++++++++++++--------------- lib/oto/commands/util/json.dart | 1 + lib/oto/data/command_data.dart | 2 +- lib/oto/data/command_data.g.dart | 8 +++- slack_test.yaml | 2 +- 6 files changed, 56 insertions(+), 42 deletions(-) diff --git a/lib/oto/commands/command.dart b/lib/oto/commands/command.dart index c54c036..f0f5057 100644 --- a/lib/oto/commands/command.dart +++ b/lib/oto/commands/command.dart @@ -170,9 +170,12 @@ abstract class Command { String getAbs(String path) { path = getPathNormal(path); - if (path == '.' || path.startsWith('./')) { + if (path == '.' || path.startsWith('./') || path.startsWith('.\\')) { path = path.replaceFirst('.', getPathNormal(pathlib.current)); } + if (path == '..' || path.startsWith('../') || path.startsWith('..\\')) { + path = path.replaceFirst('..', '${getPathNormal(pathlib.current)}/..'); + } return path; } diff --git a/lib/oto/commands/util/jira.dart b/lib/oto/commands/util/jira.dart index 9b3df8a..e7f7c27 100644 --- a/lib/oto/commands/util/jira.dart +++ b/lib/oto/commands/util/jira.dart @@ -42,49 +42,55 @@ class Jira extends Command { if(slackID.isNotEmpty) { var arr = issue.fields?.description?.content; - if(arr != null && arr.isNotEmpty) { - arr = arr.first.content; - if(arr != null && arr.isNotEmpty) + var summary = issue.fields?.summary; + if((arr != null && arr.isNotEmpty) || summary != null) { + var content = ''; + if(arr != null) { - var browseUrl = 'https://${data.domain}/browse/${data.issue}'; - DataSlack Function(String) getData = (channel) { - var slackData = DataSlack(channel); + content = arr.first.content!.first.text!; + } + else + { + content = summary!; + } + var browseUrl = 'https://${data.domain}/browse/${data.issue}'; + DataSlack Function(String) getData = (channel) { + var slackData = DataSlack(channel); - slackData.attachments = []; - var attachment = SlackAttachment(); - slackData.blocks = []; - var blockSection = SlackBlockSection(); - blockSection.text = SlackBlockText(); - blockSection.text!.text = ':jira: 새 Jira 업무가 할당되었습니다.'; - slackData.blocks!.add(blockSection); + slackData.attachments = []; + var attachment = SlackAttachment(); + slackData.blocks = []; + var blockSection = SlackBlockSection(); + blockSection.text = SlackBlockText(); + blockSection.text!.text = ':jira: 새 Jira 업무가 할당되었습니다.'; + slackData.blocks!.add(blockSection); - attachment.blocks = []; + attachment.blocks = []; - blockSection = SlackBlockSection(); - blockSection.text = SlackBlockText(); - blockSection.text!.type = SlackTextType.mrkdwn; - blockSection.text!.text = '*<$browseUrl|${data.issue}> ${issue.fields?.summary}*'; - attachment.blocks!.add(blockSection); + blockSection = SlackBlockSection(); + blockSection.text = SlackBlockText(); + blockSection.text!.type = SlackTextType.mrkdwn; + blockSection.text!.text = '*<$browseUrl|${data.issue}> ${issue.fields?.summary}*'; + attachment.blocks!.add(blockSection); - blockSection = SlackBlockSection(); - blockSection.text = SlackBlockText(); - blockSection.text!.text = arr!.first.text; - blockSection.accessory = SlackAccessory(); - blockSection.accessory!.type = SlackActionType.button; - blockSection.accessory!.url = browseUrl; - blockSection.accessory!.text = SlackBlockText(); - blockSection.accessory!.text!.type = SlackTextType.plain_text; - blockSection.accessory!.text!.text = 'Open'; - attachment.blocks!.add(blockSection); - - slackData.attachments!.add(attachment); - return slackData; - }; - setReturn(data.return_slack_data, getData(slackID)); + blockSection = SlackBlockSection(); + blockSection.text = SlackBlockText(); + blockSection.text!.text = content; + blockSection.accessory = SlackAccessory(); + blockSection.accessory!.type = SlackActionType.button; + blockSection.accessory!.url = browseUrl; + blockSection.accessory!.text = SlackBlockText(); + blockSection.accessory!.text!.type = SlackTextType.plain_text; + blockSection.accessory!.text!.text = 'Open'; + attachment.blocks!.add(blockSection); + + slackData.attachments!.add(attachment); + return slackData; + }; + setReturn(data.return_slack_data, getData(slackID)); - if(data.sub_channel != null) { - setReturn(data.return_slack_channel, getData(data.sub_channel!)); - } + if(data.sub_channel != null) { + setReturn(data.return_slack_channel, getData(data.sub_channel!)); } } } else { diff --git a/lib/oto/commands/util/json.dart b/lib/oto/commands/util/json.dart index ce182e6..892c9bb 100644 --- a/lib/oto/commands/util/json.dart +++ b/lib/oto/commands/util/json.dart @@ -9,6 +9,7 @@ class JsonReader extends Command { @override Future execute(DataCommand command) async { var data = DataJsonReader.fromJson(command.param); + var workspace = getWorkspace(data.workspace); var path = getAbs(data.path); var file = File(path); if (file.existsSync()) { diff --git a/lib/oto/data/command_data.dart b/lib/oto/data/command_data.dart index 8f255b7..2e3814f 100644 --- a/lib/oto/data/command_data.dart +++ b/lib/oto/data/command_data.dart @@ -270,7 +270,7 @@ class DataSlackSender extends DataParam { late String token; late String? property; - late DataSlack message; + late DataSlack? message; factory DataSlackSender.fromJson(Map json) => _$DataSlackSenderFromJson(json); diff --git a/lib/oto/data/command_data.g.dart b/lib/oto/data/command_data.g.dart index e23b659..0e9093a 100644 --- a/lib/oto/data/command_data.g.dart +++ b/lib/oto/data/command_data.g.dart @@ -308,7 +308,9 @@ DataSlackSender _$DataSlackSenderFromJson(Map json) => ..workspace = json['workspace'] as String? ..token = json['token'] as String ..property = json['property'] as String? - ..message = DataSlack.fromJson(json['message'] as Map); + ..message = json['message'] == null + ? null + : DataSlack.fromJson(json['message'] as Map); Map _$DataSlackSenderToJson(DataSlackSender instance) => { @@ -323,7 +325,9 @@ DataSlackBuild _$DataSlackBuildFromJson(Map json) => ..workspace = json['workspace'] as String? ..token = json['token'] as String ..property = json['property'] as String? - ..message = DataSlack.fromJson(json['message'] as Map) + ..message = json['message'] == null + ? null + : DataSlack.fromJson(json['message'] as Map) ..appName = json['appName'] as String ..type = $enumDecode(_$SlackBuildTypeEnumMap, json['type']) ..color = json['color'] as String diff --git a/slack_test.yaml b/slack_test.yaml index be00b26..5fa4134 100644 --- a/slack_test.yaml +++ b/slack_test.yaml @@ -19,7 +19,7 @@ commands: id: leedongmyung@lguplus.co.kr token: ATATT3xFfGF0mklis_51fqVtxqIatXsuUoOsgu6HXdWXh6nTnQOE964iSZnh0QhgUFZejaljlqsZVBA6OlG8hg74lnmyYKPB7M2Et2mAq3TsvvQskT6VwnG4mGXQ1ff-KIhPvfMvGmGzrQ7UeefC5muJusEcmy1nknxZC8CK4OhYQjAc07GnRmg=B6CBDA6F domain: lgu-cto.atlassian.net - issue: M3-1 + issue: M3-21 sub-channel: build-test users: - mail: leedongmyung@lguplus.co.kr