From 3b940788e4568e390d0ee09a1eb09adc9a205561 Mon Sep 17 00:00:00 2001 From: Abdul Rahman Reza Date: Wed, 28 May 2025 01:12:04 +0900 Subject: [PATCH 1/6] apply notif success & failed --- .woodpecker.yml | 49 +++++++++++++++++++++++++++++++++++++------------ 1 file changed, 37 insertions(+), 12 deletions(-) diff --git a/.woodpecker.yml b/.woodpecker.yml index 5036b0e..18765d0 100644 --- a/.woodpecker.yml +++ b/.woodpecker.yml @@ -1,5 +1,5 @@ steps: - - name: telegram_start_notify + - name: telegram start notify image: appleboy/drone-telegram settings: token: 7616010754:AAGXMf8x-roKozdT0j-bOZ1y9dmbulbKPbM @@ -11,12 +11,12 @@ steps: *Repo Link:* ${CI_REPO_URL} *Branch:* ${CI_COMMIT_BRANCH} - *Build Status:* starting + *Build Status:* *starting* *Build Link:* ${CI_PIPELINE_URL} *Commit ID:* `${CI_COMMIT_SHA:0:8}` - *Commit By:* ${CI_PREV_COMMIT_AUTHOR} - *Commit Link:* ${CI_PREV_COMMIT_URL} + *Commit By:* {{commit.author}} + *Commit Link:* {{commit.link}} *Commit Msg:* {{commit.message}} 🙏 hopefully success Mas Bro. when: @@ -59,7 +59,7 @@ steps: branch: - master - - name: telegram_end_notify + - name: telegram failed notify image: appleboy/drone-telegram settings: token: 7616010754:AAGXMf8x-roKozdT0j-bOZ1y9dmbulbKPbM @@ -71,18 +71,43 @@ steps: *Repo Link:* ${CI_REPO_URL} *Branch:* ${CI_COMMIT_BRANCH} - *Build Status:* *${CI_PREV_PIPELINE_STATUS}* + *Build Status:* *Failed* *Build Link:* ${CI_PIPELINE_URL} *Commit ID:* `${CI_COMMIT_SHA:0:8}` - *Commit By:* ${CI_PREV_COMMIT_AUTHOR} - *Commit Link:* ${CI_PREV_COMMIT_URL} + *Commit By:* {{commit.author}} + *Commit Link:* {{commit.link}} *Commit Msg:* {{commit.message}} - {{#success build.status}} - 😎 build succeeded. Good job. - {{else}} 🙈 build failed. Fix me please, before client is aware. - {{/success}} when: + status: + - failure + - cancel + branch: + - master + + - name: telegram success notify + image: appleboy/drone-telegram + settings: + token: 7616010754:AAGXMf8x-roKozdT0j-bOZ1y9dmbulbKPbM + to: -4765409490 + message: | + 🚀 *Woodpecker CI Build Finish* 🚀 + + *Repo:* ${CI_REPO_OWNER}/${CI_REPO_NAME} + *Repo Link:* ${CI_REPO_URL} + *Branch:* ${CI_COMMIT_BRANCH} + + *Build Status:* *Success* + *Build Link:* ${CI_PIPELINE_URL} + + *Commit ID:* `${CI_COMMIT_SHA:0:8}` + *Commit By:* {{commit.author}} + *Commit Link:* {{commit.link}} + *Commit Msg:* {{commit.message}} + 😎 build succeeded. Good job. + when: + status: + - success branch: - master From 7237b483b4bd925422e22073ea967c61f43b0955 Mon Sep 17 00:00:00 2001 From: bagusajisaputroo Date: Tue, 27 May 2025 23:24:10 +0700 Subject: [PATCH 2/6] add field "deduct_when" on transfer type and rename entity on transfertypecontext --- .../transfer/transferfee/blocks/AddDialog.tsx | 32 +- .../transferfee/blocks/EditDialog.tsx | 329 ++++++++++-------- .../hooks/ManageTransferFeeContext.tsx | 15 + .../hooks/ManageTransferTypeContext.tsx | 46 +-- 4 files changed, 248 insertions(+), 174 deletions(-) diff --git a/src/pages/transfer/transferfee/blocks/AddDialog.tsx b/src/pages/transfer/transferfee/blocks/AddDialog.tsx index 13469dc..612ac36 100644 --- a/src/pages/transfer/transferfee/blocks/AddDialog.tsx +++ b/src/pages/transfer/transferfee/blocks/AddDialog.tsx @@ -114,7 +114,8 @@ const AddFeeDialog = () => { deduct_from_account: '', credit_to: '', credit_destination: '00000000-0000-0000-0000-000000000000', - credit_destination_account: '' + credit_destination_account: '', + deduct_when: 'A' }; const [formField, setFormField] = useState(initialState); @@ -389,13 +390,19 @@ const AddFeeDialog = () => { ); }; + useEffect(() => { + if (formField.status_include === 'N') { + setFormField((prev) => ({ ...prev, deduct_when: 'A' })); + } + }, [formField.status_include]); + return ( { if (!open) { - handleAddFeeDialog(open); - handleCloseDialog(); + handleAddFeeDialog(open); + handleCloseDialog(); } }} > @@ -835,6 +842,25 @@ const AddFeeDialog = () => { + {formField.status_include === 'Y' && ( +
+ + +
+ )}
-
-
-
{ placeholder="Enter Minimum Amount" />
-
{ placeholder="Enter Maximum Amount" />
-
-
-
{ placeholder="Enter Deduct Amount" />
-
{ placeholder="Enter Deduct Percentage" />
-
+ {formField.deduct_from === 'I' && ( +
+ +
+
setOpenDeductOrigin(!openDeductOrigin)} + > + + {customers.find((customer) => customer.id === formField.deduct_origin) + ?.username || 'Search customer...'} + +
-{formField.deduct_from === 'I' && ( -
- -
-
setOpenDeductOrigin(!openDeductOrigin)} - > - - {customers.find((customer) => customer.id === formField.deduct_origin)?.username || 'Search customer...'} - -
- - {openDeductOrigin && ( -
-
- setCustomerSearchTerm(e.target.value)} - autoComplete="off" - onClick={(e) => e.stopPropagation()} - autoFocus - /> -
-
- {customers - .filter( - (customer) => - customer.username.toLowerCase().includes(customerSearchTerm.toLowerCase()) || - customer.msisdn.includes(customerSearchTerm) - ) - .map((customer) => ( -
{ - setFormField({ ...formField, deduct_origin: customer.id }); - setOpenDeductOrigin(false); - }} - > - {customer.username} -
- ))} - {customers.filter( - (customer) => - customer.username.toLowerCase().includes(customerSearchTerm.toLowerCase()) || - customer.msisdn.includes(customerSearchTerm) - ).length === 0 && ( -
No customer found
- )} -
-
- )} -
-
-)} - - + {openDeductOrigin && ( +
+
+ setCustomerSearchTerm(e.target.value)} + autoComplete="off" + onClick={(e) => e.stopPropagation()} + autoFocus + /> +
+
+ {customers + .filter( + (customer) => + customer.username + .toLowerCase() + .includes(customerSearchTerm.toLowerCase()) || + customer.msisdn.includes(customerSearchTerm) + ) + .map((customer) => ( +
{ + setFormField({ ...formField, deduct_origin: customer.id }); + setOpenDeductOrigin(false); + }} + > + {customer.username} +
+ ))} + {customers.filter( + (customer) => + customer.username + .toLowerCase() + .includes(customerSearchTerm.toLowerCase()) || + customer.msisdn.includes(customerSearchTerm) + ).length === 0 && ( +
+ No customer found +
+ )} +
+
+ )} +
+
+ )}
+ {formField.credit_to === 'I' && ( +
+ +
+
setOpenCreditDestination(!openCreditDestination)} + > + + {customers.find( + (customer) => customer.id === formField.credit_destination + )?.username || 'Search customer...'} + +
-{formField.credit_to === 'I' && ( -
- -
-
setOpenCreditDestination(!openCreditDestination)} - > - - {customers.find((customer) => customer.id === formField.credit_destination) - ?.username || 'Search customer...'} - -
- - {openCreditDestination && ( -
-
- setCustomerSearchTerm(e.target.value)} - autoComplete="off" - onClick={(e) => e.stopPropagation()} - autoFocus - /> -
-
- {customers - .filter( - (customer) => - customer.username - .toLowerCase() - .includes(customerSearchTerm.toLowerCase()) || - customer.msisdn.includes(customerSearchTerm) - ) - .map((customer) => ( -
{ - setFormField({ - ...formField, - credit_destination: customer.id - }); - setOpenCreditDestination(false); - }} - > - {customer.username} -
- ))} - {customers.filter( - (customer) => - customer.username - .toLowerCase() - .includes(customerSearchTerm.toLowerCase()) || - customer.msisdn.includes(customerSearchTerm) - ).length === 0 && ( -
No customer found
- )} -
-
- )} -
-
-)} - - + {openCreditDestination && ( +
+
+ setCustomerSearchTerm(e.target.value)} + autoComplete="off" + onClick={(e) => e.stopPropagation()} + autoFocus + /> +
+
+ {customers + .filter( + (customer) => + customer.username + .toLowerCase() + .includes(customerSearchTerm.toLowerCase()) || + customer.msisdn.includes(customerSearchTerm) + ) + .map((customer) => ( +
{ + setFormField({ + ...formField, + credit_destination: customer.id + }); + setOpenCreditDestination(false); + }} + > + {customer.username} +
+ ))} + {customers.filter( + (customer) => + customer.username + .toLowerCase() + .includes(customerSearchTerm.toLowerCase()) || + customer.msisdn.includes(customerSearchTerm) + ).length === 0 && ( +
+ No customer found +
+ )} +
+
+ )} +
+
+ )}
-
-
- + {formField.status_include === 'Y' && ( +
+ + +
+ )}
@@ -362,7 +363,7 @@ const ManageTransferTypeContextProvider = ({ children }: { children: React.React ], [handleEditDialog, handleDeleteDialog] ); - +console.log(selectedTransferType) const doGetTransferTypeListData = async ( page: number, limit: number, @@ -400,6 +401,7 @@ const ManageTransferTypeContextProvider = ({ children }: { children: React.React }); } + const response = await GetData(`${API_URL}/transactiontype/list`, { limit: limit, page: page + 1, @@ -408,7 +410,7 @@ const ManageTransferTypeContextProvider = ({ children }: { children: React.React order_direction: orderDirection, filter: JSON.stringify(filterObject) }); - // console.log(response); + console.log(response); return { data: response?.data.list, totalCount: response?.data.total_count }; }; From b21b2f2c79cee7968d7ed2e03cadcca491d27f7d Mon Sep 17 00:00:00 2001 From: bagusajisaputroo Date: Tue, 27 May 2025 23:28:53 +0700 Subject: [PATCH 3/6] remove console.log --- .../transfer/transfertype/hooks/ManageTransferTypeContext.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/pages/transfer/transfertype/hooks/ManageTransferTypeContext.tsx b/src/pages/transfer/transfertype/hooks/ManageTransferTypeContext.tsx index c201578..44e5e52 100644 --- a/src/pages/transfer/transfertype/hooks/ManageTransferTypeContext.tsx +++ b/src/pages/transfer/transfertype/hooks/ManageTransferTypeContext.tsx @@ -363,7 +363,7 @@ const ManageTransferTypeContextProvider = ({ children }: { children: React.React ], [handleEditDialog, handleDeleteDialog] ); -console.log(selectedTransferType) +// console.log(selectedTransferType) const doGetTransferTypeListData = async ( page: number, limit: number, @@ -410,7 +410,7 @@ console.log(selectedTransferType) order_direction: orderDirection, filter: JSON.stringify(filterObject) }); - console.log(response); + // console.log(response); return { data: response?.data.list, totalCount: response?.data.total_count }; }; From 5d04031d666d3da917718b143583439b687883be Mon Sep 17 00:00:00 2001 From: bagusajisaputroo Date: Wed, 28 May 2025 15:58:16 +0700 Subject: [PATCH 4/6] rename entity on transfer --- .../hooks/ManageTransferTypeContext.tsx | 44 +++++++++---------- 1 file changed, 21 insertions(+), 23 deletions(-) diff --git a/src/pages/transfer/transfertype/hooks/ManageTransferTypeContext.tsx b/src/pages/transfer/transfertype/hooks/ManageTransferTypeContext.tsx index 44e5e52..569156e 100644 --- a/src/pages/transfer/transfertype/hooks/ManageTransferTypeContext.tsx +++ b/src/pages/transfer/transfertype/hooks/ManageTransferTypeContext.tsx @@ -51,7 +51,7 @@ interface TransferType { walletOriginId: string; walletDestinationId: string; status: string; - TransactionType_type: string; + type: string; } interface ContextProps { @@ -134,7 +134,7 @@ const ManageTransferTypeContextProvider = ({ children }: { children: React.React const columns = useMemo[]>( () => [ { - accessorFn: (row) => row.TransactionType_id, + accessorFn: (row) => row.id, id: 'id', header: ({ column }) => ( @@ -144,7 +144,7 @@ const ManageTransferTypeContextProvider = ({ children }: { children: React.React meta: { headerClassName: 'w-[250px]' } }, { - accessorFn: (row) => row.TransactionType_name, + accessorFn: (row) => row.name, id: 'name', header: ({ column }) => ( @@ -154,7 +154,7 @@ const ManageTransferTypeContextProvider = ({ children }: { children: React.React meta: { headerClassName: 'w-[250px]' } }, { - accessorFn: (row) => row.TransactionType_description, + accessorFn: (row) => row.description, id: 'description', header: ({ column }) => , enableSorting: false, @@ -162,7 +162,7 @@ const ManageTransferTypeContextProvider = ({ children }: { children: React.React meta: { headerClassName: 'w-[250px]' } }, { - accessorFn: (row) => row.WalletOrigin_name || 'N/A', + accessorFn: (row) => row.wallet_origin?.name || 'N/A', id: 'wallet_origin', header: ({ column }) => , enableSorting: false, @@ -170,7 +170,7 @@ const ManageTransferTypeContextProvider = ({ children }: { children: React.React meta: { headerClassName: 'w-[250px]' } }, { - accessorFn: (row) => row.WalletDestination_name || 'N/A', + accessorFn: (row) => row.wallet_destination.name || 'N/A', id: 'wallet_destination', header: ({ column }) => , enableSorting: false, @@ -178,36 +178,36 @@ const ManageTransferTypeContextProvider = ({ children }: { children: React.React meta: { headerClassName: 'w-[250px]' } }, { - accessorFn: (row) => row.TransactionType_maximum_amount, + accessorFn: (row) => row.maximum_amount, id: 'maximum_amount', header: ({ column }) => , - cell: ({ row }) => formatNumber(row.original.TransactionType_maximum_amount), + cell: ({ row }) => formatNumber(row.original.maximum_amount), enableSorting: false, enableHiding: false, meta: { headerClassName: 'w-[250px]' } }, { - accessorFn: (row) => row.TransactionType_minimum_amount, + accessorFn: (row) => row.minimum_amount, id: 'minimum_amount', header: ({ column }) => , - cell: ({ row }) => formatNumber(row.original.TransactionType_minimum_amount), + cell: ({ row }) => formatNumber(row.original.minimum_amount), enableSorting: false, enableHiding: false, meta: { headerClassName: 'w-[250px]' } }, { - accessorFn: (row) => row.TransactionType_max_transaction_per_day, + accessorFn: (row) => row.max_transaction_per_day, id: 'max_transaction_per_day', header: ({ column }) => ( ), - cell: ({ row }) => formatInteger(row.original.TransactionType_max_transaction_per_day), + cell: ({ row }) => formatInteger(row.original.max_transaction_per_day), enableSorting: false, enableHiding: false, meta: { headerClassName: 'w-[250px]' } }, { - accessorFn: (row: { TransactionType_type: string }) => { + accessorFn: (row: { type: string }) => { const mapping: Record = { D: 'Disbursement', O: 'Other', @@ -232,7 +232,7 @@ const ManageTransferTypeContextProvider = ({ children }: { children: React.React DN: 'Donation' }; - return mapping[row.TransactionType_type] || 'Unknown'; + return mapping[row.type] || 'Unknown'; }, id: 'type', header: ({ column }) => ( @@ -244,7 +244,7 @@ const ManageTransferTypeContextProvider = ({ children }: { children: React.React }, { - accessorFn: (row) => row.TransactionType_status, + accessorFn: (row) => row.status, id: 'status', header: ({ column }) => , enableSorting: false, @@ -267,15 +267,14 @@ const ManageTransferTypeContextProvider = ({ children }: { children: React.React cellClassName: 'text-center' } }, - { - accessorFn: (row) => row.TransactionType_status_kind, + accessorFn: (row) => row.status_kind, id: 'status_kind', header: ({ column }) => , enableSorting: false, enableHiding: false, cell: ({ row }) => { - const kind = row.original.TransactionType_status_kind; + const kind = row.original.status_kind; const mapping: Record = { R: { label: 'Return', className: 'bg-blue-100 text-blue-600' }, @@ -314,7 +313,7 @@ const ManageTransferTypeContextProvider = ({ children }: { children: React.React meta: { headerClassName: 'w-[250px]', cellClassName: 'text-center' } }, { - accessorFn: (row) => row.TransactionType_status_approval, + accessorFn: (row) => row.status_approval, id: 'status_approval', header: ({ column }) => , enableSorting: false, @@ -345,13 +344,13 @@ const ManageTransferTypeContextProvider = ({ children }: { children: React.React <> @@ -363,7 +362,7 @@ const ManageTransferTypeContextProvider = ({ children }: { children: React.React ], [handleEditDialog, handleDeleteDialog] ); -// console.log(selectedTransferType) + const doGetTransferTypeListData = async ( page: number, limit: number, @@ -401,7 +400,6 @@ const ManageTransferTypeContextProvider = ({ children }: { children: React.React }); } - const response = await GetData(`${API_URL}/transactiontype/list`, { limit: limit, page: page + 1, From a41bbcabcd0765bc8b03eb98695dc028d91db339 Mon Sep 17 00:00:00 2001 From: bagusajisaputroo Date: Wed, 28 May 2025 17:36:13 +0700 Subject: [PATCH 5/6] rename entity on transfer --- .../hooks/ManageTransferTypeContext.tsx | 44 +++++++++---------- 1 file changed, 21 insertions(+), 23 deletions(-) diff --git a/src/pages/transfer/transfertype/hooks/ManageTransferTypeContext.tsx b/src/pages/transfer/transfertype/hooks/ManageTransferTypeContext.tsx index 44e5e52..569156e 100644 --- a/src/pages/transfer/transfertype/hooks/ManageTransferTypeContext.tsx +++ b/src/pages/transfer/transfertype/hooks/ManageTransferTypeContext.tsx @@ -51,7 +51,7 @@ interface TransferType { walletOriginId: string; walletDestinationId: string; status: string; - TransactionType_type: string; + type: string; } interface ContextProps { @@ -134,7 +134,7 @@ const ManageTransferTypeContextProvider = ({ children }: { children: React.React const columns = useMemo[]>( () => [ { - accessorFn: (row) => row.TransactionType_id, + accessorFn: (row) => row.id, id: 'id', header: ({ column }) => ( @@ -144,7 +144,7 @@ const ManageTransferTypeContextProvider = ({ children }: { children: React.React meta: { headerClassName: 'w-[250px]' } }, { - accessorFn: (row) => row.TransactionType_name, + accessorFn: (row) => row.name, id: 'name', header: ({ column }) => ( @@ -154,7 +154,7 @@ const ManageTransferTypeContextProvider = ({ children }: { children: React.React meta: { headerClassName: 'w-[250px]' } }, { - accessorFn: (row) => row.TransactionType_description, + accessorFn: (row) => row.description, id: 'description', header: ({ column }) => , enableSorting: false, @@ -162,7 +162,7 @@ const ManageTransferTypeContextProvider = ({ children }: { children: React.React meta: { headerClassName: 'w-[250px]' } }, { - accessorFn: (row) => row.WalletOrigin_name || 'N/A', + accessorFn: (row) => row.wallet_origin?.name || 'N/A', id: 'wallet_origin', header: ({ column }) => , enableSorting: false, @@ -170,7 +170,7 @@ const ManageTransferTypeContextProvider = ({ children }: { children: React.React meta: { headerClassName: 'w-[250px]' } }, { - accessorFn: (row) => row.WalletDestination_name || 'N/A', + accessorFn: (row) => row.wallet_destination.name || 'N/A', id: 'wallet_destination', header: ({ column }) => , enableSorting: false, @@ -178,36 +178,36 @@ const ManageTransferTypeContextProvider = ({ children }: { children: React.React meta: { headerClassName: 'w-[250px]' } }, { - accessorFn: (row) => row.TransactionType_maximum_amount, + accessorFn: (row) => row.maximum_amount, id: 'maximum_amount', header: ({ column }) => , - cell: ({ row }) => formatNumber(row.original.TransactionType_maximum_amount), + cell: ({ row }) => formatNumber(row.original.maximum_amount), enableSorting: false, enableHiding: false, meta: { headerClassName: 'w-[250px]' } }, { - accessorFn: (row) => row.TransactionType_minimum_amount, + accessorFn: (row) => row.minimum_amount, id: 'minimum_amount', header: ({ column }) => , - cell: ({ row }) => formatNumber(row.original.TransactionType_minimum_amount), + cell: ({ row }) => formatNumber(row.original.minimum_amount), enableSorting: false, enableHiding: false, meta: { headerClassName: 'w-[250px]' } }, { - accessorFn: (row) => row.TransactionType_max_transaction_per_day, + accessorFn: (row) => row.max_transaction_per_day, id: 'max_transaction_per_day', header: ({ column }) => ( ), - cell: ({ row }) => formatInteger(row.original.TransactionType_max_transaction_per_day), + cell: ({ row }) => formatInteger(row.original.max_transaction_per_day), enableSorting: false, enableHiding: false, meta: { headerClassName: 'w-[250px]' } }, { - accessorFn: (row: { TransactionType_type: string }) => { + accessorFn: (row: { type: string }) => { const mapping: Record = { D: 'Disbursement', O: 'Other', @@ -232,7 +232,7 @@ const ManageTransferTypeContextProvider = ({ children }: { children: React.React DN: 'Donation' }; - return mapping[row.TransactionType_type] || 'Unknown'; + return mapping[row.type] || 'Unknown'; }, id: 'type', header: ({ column }) => ( @@ -244,7 +244,7 @@ const ManageTransferTypeContextProvider = ({ children }: { children: React.React }, { - accessorFn: (row) => row.TransactionType_status, + accessorFn: (row) => row.status, id: 'status', header: ({ column }) => , enableSorting: false, @@ -267,15 +267,14 @@ const ManageTransferTypeContextProvider = ({ children }: { children: React.React cellClassName: 'text-center' } }, - { - accessorFn: (row) => row.TransactionType_status_kind, + accessorFn: (row) => row.status_kind, id: 'status_kind', header: ({ column }) => , enableSorting: false, enableHiding: false, cell: ({ row }) => { - const kind = row.original.TransactionType_status_kind; + const kind = row.original.status_kind; const mapping: Record = { R: { label: 'Return', className: 'bg-blue-100 text-blue-600' }, @@ -314,7 +313,7 @@ const ManageTransferTypeContextProvider = ({ children }: { children: React.React meta: { headerClassName: 'w-[250px]', cellClassName: 'text-center' } }, { - accessorFn: (row) => row.TransactionType_status_approval, + accessorFn: (row) => row.status_approval, id: 'status_approval', header: ({ column }) => , enableSorting: false, @@ -345,13 +344,13 @@ const ManageTransferTypeContextProvider = ({ children }: { children: React.React <> @@ -363,7 +362,7 @@ const ManageTransferTypeContextProvider = ({ children }: { children: React.React ], [handleEditDialog, handleDeleteDialog] ); -// console.log(selectedTransferType) + const doGetTransferTypeListData = async ( page: number, limit: number, @@ -401,7 +400,6 @@ const ManageTransferTypeContextProvider = ({ children }: { children: React.React }); } - const response = await GetData(`${API_URL}/transactiontype/list`, { limit: limit, page: page + 1, From 41a2184ae3c6c41c4a6305bb9a76e73d47e800e6 Mon Sep 17 00:00:00 2001 From: Abdul Rahman Reza Date: Thu, 29 May 2025 00:44:49 +0900 Subject: [PATCH 6/6] update wording notif ci cd --- .woodpecker.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.woodpecker.yml b/.woodpecker.yml index 18765d0..a6f593a 100644 --- a/.woodpecker.yml +++ b/.woodpecker.yml @@ -18,7 +18,7 @@ steps: *Commit By:* {{commit.author}} *Commit Link:* {{commit.link}} *Commit Msg:* {{commit.message}} - 🙏 hopefully success Mas Bro. + 🙏 hopefully success {{commit.author}} when: branch: - master @@ -105,7 +105,7 @@ steps: *Commit By:* {{commit.author}} *Commit Link:* {{commit.link}} *Commit Msg:* {{commit.message}} - 😎 build succeeded. Good job. + 😎 build succeeded. Good job {{commit.author}} when: status: - success