1
0
mirror of https://github.com/SAP/jenkins-library.git synced 2025-01-30 05:59:39 +02:00

937 Commits

Author SHA1 Message Date
Daniel Mieg
8109f6fbe8
OData V4 error message handling (#5013)
* OData V4 error message handling

* Adapt tests
2024-08-16 13:41:23 +02:00
Pavel Busko
98e4e01635
feat(cnbBuild): warn users when dockerConfigJSON is missing necessary credentials (#5007)
* feat(cnbBuild): warn users when dockerConfigJSON is missing necessary credentials

* Update cmd/cnbBuild.go

Co-authored-by: Ralf Pannemans <ralf.pannemans@sap.com>

* Update pkg/cnbutils/auth.go

Co-authored-by: Ralf Pannemans <ralf.pannemans@sap.com>

* fix linting

---------

Co-authored-by: Ralf Pannemans <ralf.pannemans@sap.com>
2024-08-15 10:20:01 +02:00
Googlom
61b9df54b1
add --kube-context to uninstall command (#4999) 2024-07-29 19:48:56 +05:00
Googlom
8c79fcee36
disable log application/octet-stream (#4997) 2024-07-26 13:26:26 +05:00
Googlom
58616619bd
helmExecute: add --kube-context to helm upgrade and install commands (#4995)
* add --kube-context to helm upgrade and install commands

* disable parallel running of unit tests

* undo disable parallel running of unit tests
2024-07-25 14:25:00 +05:00
Googlom
a564a121a6
fix vaultDisableOverwrite handling (#4990) 2024-07-23 15:43:24 +05:00
Anil Keshav
5809632672
(fix) syft, fixing cyclone dx version to sbom version 1.4 for syft (#4991)
* fixing cyclone dx version to version 1.4 for syft

* fixing unit test for kaniko

* fixing integration test for cnb
2024-07-22 15:17:35 +02:00
Akramdzhon Azamov
eed058d47d
Mend verbose mode improvements (#4982)
* Excluded directory './pipeline' for detectExecuteScan step

* fixed unit-tests

* changed config path from "pipeline/*" to ".pipeline/*"

* Refactor exclude handling

* Mend verbose mode improvements

* Mend verbose mode improvements

* Mend verbose mode improvements

* Mend verbose mode improvements

* Mend verbose mode improvements

* Mend verbose mode improvements

* Mend verbose mode improvements

---------

Co-authored-by: Vijayan T <vijayanjay@gmail.com>
2024-07-10 16:02:14 +02:00
Dmitrii Pavlukhin
8e962a7729
DetectExecuteScan enhance logging && Adding new parameter (includeDevDependencies) for WS step (#4958)
* Enhanced logging of build params for detectExecuteScan

* amended-parameter-description

* added-parameter-for-npm-dev-deps-inclusion

* amended-tests

* new-generated-file

* added-parameter-explicitly
2024-07-08 15:33:42 +03:00
Vijayan T
06df2d4463
Improving buildDescriptorExcludeList for npm (#4976)
Signed-off-by: Vijayan T <vijayanjay@gmail.com>
2024-06-27 16:06:31 +05:30
Vijayan T
c3eeb3398e
Resilience improvement for mend JRE download (#4974)
Signed-off-by: Vijayan T <vijayanjay@gmail.com>
2024-06-25 15:38:27 +02:00
Simon Dold
65dbd4526c
Adapt clone step to work with customer-managed Repos (BYOG) (#4966)
* adding byog credentials for clone command

* adding unit tests for clone body

* adding parameters

* adding optional byog parameters

* fixing typo in username

* remove aliases in config yaml

* change yaml config

* logs

* change info log

* change logs

* remove logs

* adding log statements

* remove log statements

* fixing typo in test class

* change repoTest structure

* remove comment

* remove comment

* generate

* adding unit test comments

* adding error handling

* adding isByog check

* fixing unit test

* generate

* Update manageGitRepositoryUtils_test.go

* restructure isByog parameter

* adding empty line for md linter

* adding config.yaml example to docs

* Update documentation/docs/steps/abapEnvironmentCloneGitRepo.md

Co-authored-by: Daniel Mieg <56156797+DanielMieg@users.noreply.github.com>

* Update documentation/docs/steps/abapEnvironmentCloneGitRepo.md

Co-authored-by: Daniel Mieg <56156797+DanielMieg@users.noreply.github.com>

* Update documentation/docs/steps/abapEnvironmentCloneGitRepo.md

Co-authored-by: Daniel Mieg <56156797+DanielMieg@users.noreply.github.com>

* Update documentation/docs/steps/abapEnvironmentCloneGitRepo.md

Co-authored-by: Daniel Mieg <56156797+DanielMieg@users.noreply.github.com>

* Update documentation/docs/steps/abapEnvironmentCloneGitRepo.md

Co-authored-by: Daniel Mieg <56156797+DanielMieg@users.noreply.github.com>

* adding release

---------

Co-authored-by: Daniel Mieg <56156797+DanielMieg@users.noreply.github.com>
2024-06-25 08:09:31 +00:00
Tilo Körner
b9022dc10d
Publish TargetVector enhanced retry (#4971)
* cache Error, increase max polling duration

* Update abapAddonAssemblyKitPublishTargetVector_generated.go
2024-06-24 14:49:40 +02:00
Tilo Körner
bf9c743fb6
errorcause and remove telemetry warnings (#4951) 2024-06-20 10:44:12 +02:00
Dmitrii Pavlukhin
1b728ccd3e
Enabled the possibility to avoid aggregation of NPM projects in WhitesourceExecuteScan (#4956)
* Enabled the possibility to avoid aggregation of NPM projects

* renamed-function

---------

Co-authored-by: Vyacheslav Starostin <32613074+vstarostin@users.noreply.github.com>
2024-06-20 09:08:24 +03:00
Vijayan T
4827785a73
support for sub-module in maven build (#4950)
* support for sub-module in maven build

* fixed test-cases

Signed-off-by: Vijayan T <vijayanjay@gmail.com>

* fixed test-cases

Signed-off-by: Vijayan T <vijayanjay@gmail.com>

* changed the function name

---------

Signed-off-by: Vijayan T <vijayanjay@gmail.com>
Co-authored-by: Vyacheslav Starostin <32613074+vstarostin@users.noreply.github.com>
2024-06-19 12:52:03 +05:30
Daniel Mieg
8eeba2d005
[ABAP] Migrate SAP_COM_0510 to SAP_COM_0948 (#4925)
* Migrate SAP_COM_0510 to SAP_COM_0948

* Update error message

* Update error message

* Fix error message in unit test

* Update unit tests
2024-06-10 10:51:22 +02:00
Tilo Körner
df1db9eed7
ABAP aakaas and build steps: Parse odata error json (#4946)
* parseErrorBody Implemented
2024-06-05 13:51:58 +02:00
Christopher Fenner
0ca2f72699
chore(mockery): add mockery configuration (#4941)
* update mockery config

* update mockery config

* rename mockery config

* update existing mocks

* update mockery config

* update mockery config

* move cmd mocks to cmd pkg

* add hadolint mocks to config

* use moved files

* remove comment
2024-06-04 13:40:35 +02:00
thtri
683ca35001
CxOne: Add param to tag scan and project (#4944)
* Initial in progress

* compiling but not yet functional

* Missed file

* updated checkmarxone step

* Working up to fetching a project then breaks

* Missed file

* Breaks when retrieving projects+proxy set

* Create project & run scan working, now polling

* Fixed polling

* added back the zipfile remove command

* Fixed polling again

* Generates and downloads PDF report

* Updated and working, prep for refactor

* Added compliance steps

* Cleanup, reporting, added groovy connector

* fixed groovy file

* checkmarxone to checkmarxOne

* checkmarxone to checkmarxOne

* split credentials (id+secret, apikey), renamed pullrequestname to branch, groovy fix

* Fixed filenames & yaml

* missed the metadata_generated.go

* added json to sarif conversion

* fix:type in new checkmarxone package

* fix:type in new checkmarxone package

* removed test logs, added temp error log for creds

* extra debugging to fix crash

* improved auth logging, fixed query parse issue

* fixed bug with group fetch when using oauth user

* CWE can be -1 if not defined, can't be uint

* Query also had CweID

* Disabled predicates-fetch in sarif generation

* Removing leftover info log message

* Better error handling

* fixed default preset configuration

* removing .bat files - sorry

* Cleanup per initial review

* refactoring per Gist, fixed project find, add apps

* small fix - sorry for commit noise while testing

* Fixing issues with incremental scans.

* removing maxretries

* Updated per PR feedback, further changes todo toda

* JSON Report changes and reporting cleanup

* removing .bat (again?)

* adding docs, groovy unit test, linter fixes

* Started adding tests maybe 15% covered

* fix(checkmarxOne): test cases for pkg and reporting

* fix(checkmarxOne):fix formatting

* feat(checkmarxone): update interface with missing method

* feat(checkmarxone):change runStep signature to be able to inject dependency

* feat(checkmarxone): add tests for step (wip)

* Adding a bit more coverage

* feat(checkmarxOne): fix code review

* feat(checkmarxOne): fix code review

* feat(checkmarxOne): fix code review

* feat(checkmarxOne): fix integration test PR

* adding scan-summary bug workaround, reportgen fail

* enforceThresholds fix when no results passed in

* fixed gap when preset empty in yaml & project conf

* fixed another gap in preset selection

* fix 0-result panic

* fail when no preset is set anywhere

* removed comment

* initial project-under-app support

* fixing sarif reportgen

* some cleanup of error messages

* post-merge test fixes

* revert previous upstream merge

* adding "incremental" to "full" triggers

* wrong boolean

* project-in-application api change prep

* Fixing SARIF report without preset access

* fix sarif deeplink

* removing comments

* fix(cxone):formatting

* fix(cxone):formatting

* small sarif fixes

* fixed merge

* attempt at pulling git source repo branch

* fix(cxone):new endpoint for project creation

* fix(cxOne): taxa is an array

* fix(cxOne): get Git branch from commonPipelineEnvironment

* fix(cxOne): add params to tag a scan and a project

* fix(cxOne): unit test - update project

* fix(cxOne): unit test - update project tags

* fix(cxOne): improve logs

* fix(cxOne): improve logs

---------

Co-authored-by: michael kubiaczyk <michael.kubiaczyk@checkmarx.com>
Co-authored-by: michaelkubiaczyk <48311127+michaelkubiaczyk@users.noreply.github.com>
Co-authored-by: sumeet patil <sumeet.patil@sap.com>
2024-06-03 10:01:50 +02:00
Oliver Nocon
22ff5717b3
fix(vault): consider vault flags (#4486)
* fix(vault): consider vault flags

* fix problem introduced with merge conflict resolution

---------

Co-authored-by: Jk1484 <35270240+Jk1484@users.noreply.github.com>
2024-06-03 12:45:07 +05:00
Ralf Pannemans
77758b3db0
feat(cnbBuild): Only use sbom-cataloger with cnb images (#4934) 2024-05-23 13:44:22 +02:00
Ralf Pannemans
a5061f3328
chore(deps): update syft version to 1.4.1 (#4933)
* Bump default syft version to 1.4.1

Co-authored-by: Pavel Busko <pavel.busko@sap.com>
2024-05-23 13:32:11 +02:00
Vyacheslav Starostin
bbd087e03d
Add Vault resource to parameters (#4932) 2024-05-21 14:35:26 +05:00
Jordi van Liempt
7de5fdfa8a
feat(gcpPublishEvent): Add additionalEventData param (#4928)
* add additionalEventData param

* fix double JSON marshalling

* go generate

* add logging of events and config

* change logging to debug

* add event log

* fix CloudEvent JSON type

* apply review feedback

* fix log

* add missing error handling

---------

Co-authored-by: jliempt <>
2024-05-17 08:24:31 +00:00
Daniel Mieg
125c48ee75
Fix output for log protocol header (#4926)
* Fix output for log protocol header

* Fix wrong merge
2024-05-10 09:54:07 +02:00
Tilo Körner
ac55ddf525
support trustedCerts for cloneGitRepo (#4909)
* support trustedCerts for cloneGitRepo

* some more steps

* Update sap_com_0948.go

* remove warning for config value type

* updated description for certificateNames

* go generate artifacts

* variable order and space in "[]interface {}"
2024-05-10 08:58:46 +02:00
Simon Dold
ff9b3d4296
[ABAP] update ConvertTime (#4919)
* update ConvertTime

* clean up

* fix typo

---------

Co-authored-by: Daniel Mieg <56156797+DanielMieg@users.noreply.github.com>
2024-05-08 14:25:13 +02:00
Jordi van Liempt
f5fbb7e9d9
feat(vault): Facilitate Vault OIDC token (#4916)
* add functionality to retrieve Vault OIDC token

* fix tests for now

* update error

Co-authored-by: Christopher Fenner <26137398+CCFenner@users.noreply.github.com>

* implement commented tests

* run mockery for config pkg

---------

Co-authored-by: jliempt <>
Co-authored-by: Christopher Fenner <26137398+CCFenner@users.noreply.github.com>
2024-05-07 12:19:39 +00:00
Johannes Eschrig
6c4a860bd5
OSS report for PRs: fix detect documentation url and quiet down formatting (#4895)
* fix detect docs url and quiet down formatting

* remove markdown header from unit test

* whitespace missing for test

---------

Co-authored-by: tiloKo <70266685+tiloKo@users.noreply.github.com>
2024-05-07 13:33:17 +02:00
tiloKo
dd5106ab5d
Update http.go (#4922)
typo
2024-05-07 13:26:58 +02:00
tiloKo
40693d30cd
config.go, more space in warning (#4921) 2024-05-07 13:20:22 +02:00
tiloKo
d6f3ba1b02
update semantic version too (#4924) 2024-05-07 09:33:32 +00:00
tiloKo
daf559a8ca
increase http timeout (#4923) 2024-05-07 10:03:11 +02:00
thtri
9a8b146945
fix(cxOne): set taxa in SARIF as array (#4911) 2024-05-06 13:32:31 +05:30
Christopher Fenner
0f83941765
feat(events): add step to emit events to GCP (#4901)
* feat(gcp): add step to send events to GCP (#4896)

* add gcp token handling

* add initial step

* publish events

* add test cases

* fix test case

---------

Co-authored-by: Jordi van Liempt <35920075+jliempt@users.noreply.github.com>

* feat(gcp): Generate and validate the GCP OIDC token (#4899)

* test setup for generation of jwt token

* oidc token generator

* push new step files

* formatted code

* removed toolchain and jose

* removed toolchain:go 1.22.2

---------

Co-authored-by: jliempt <>
Co-authored-by: D071696 <sachin.baral.ramesh@sap.com>
Co-authored-by: d071696 <153099976+d071696@users.noreply.github.com>

* feat(events): add pipeline start and end event (#4900)

* add gcp token handling

* add initial step

* publish events

* add test cases

* fix test case

* move files

* add possible values

* handle start and end event

* add sap events

* dependencies

---------

Co-authored-by: Jordi van Liempt <35920075+jliempt@users.noreply.github.com>

* log successful event publish

* remove dummy step

* prevent step from failing

* improve event creation

* improve event creation

* simplify eventing

* remove detailed events

* update parameter scope

* update go.sum

* fix test case

* add missing method

* refactor OIDC part

* add oidc.go to vault pkg

* mock OIDC token retrieval

* mock GCP functions

* update OIDC function name in Vault mocks

* get event data from CPE

* don't encode data payload in b64

* remove vault related changes

* remove vault changes from step code

* remove commented out code

* documentation/steps/gcpPublishEvent.md

* documentation/steps/gcpPublishEvent.md

* remove hardcoded eventData

* update roleID

* go generate

* add ordering key for pubsub event

---------

Co-authored-by: Jordi van Liempt <35920075+jliempt@users.noreply.github.com>
Co-authored-by: D071696 <sachin.baral.ramesh@sap.com>
Co-authored-by: d071696 <153099976+d071696@users.noreply.github.com>
Co-authored-by: jliempt <>
2024-05-06 09:28:28 +02:00
tiloKo
0aac69625e
Provide addonDescriptor to build System (#4914) 2024-05-02 13:22:35 +02:00
Daniel Mieg
9bb306adad
[ABAP] Add execution log (#4902)
* [ABAP] Add output for execution log

* Add buil comments

* Rename to avoid build issue

---------

Co-authored-by: tiloKo <70266685+tiloKo@users.noreply.github.com>
2024-04-24 16:01:34 +02:00
michaelkubiaczyk
7a3024c697
fix(cxOne): fix SARIF duplicated entries and branch name (#4904)
* Initial in progress

* compiling but not yet functional

* Missed file

* updated checkmarxone step

* Working up to fetching a project then breaks

* Missed file

* Breaks when retrieving projects+proxy set

* Create project & run scan working, now polling

* Fixed polling

* added back the zipfile remove command

* Fixed polling again

* Generates and downloads PDF report

* Updated and working, prep for refactor

* Added compliance steps

* Cleanup, reporting, added groovy connector

* fixed groovy file

* checkmarxone to checkmarxOne

* checkmarxone to checkmarxOne

* split credentials (id+secret, apikey), renamed pullrequestname to branch, groovy fix

* Fixed filenames & yaml

* missed the metadata_generated.go

* added json to sarif conversion

* fix:type in new checkmarxone package

* fix:type in new checkmarxone package

* removed test logs, added temp error log for creds

* extra debugging to fix crash

* improved auth logging, fixed query parse issue

* fixed bug with group fetch when using oauth user

* CWE can be -1 if not defined, can't be uint

* Query also had CweID

* Disabled predicates-fetch in sarif generation

* Removing leftover info log message

* Better error handling

* fixed default preset configuration

* removing .bat files - sorry

* Cleanup per initial review

* refactoring per Gist, fixed project find, add apps

* small fix - sorry for commit noise while testing

* Fixing issues with incremental scans.

* removing maxretries

* Updated per PR feedback, further changes todo toda

* JSON Report changes and reporting cleanup

* removing .bat (again?)

* adding docs, groovy unit test, linter fixes

* Started adding tests maybe 15% covered

* fix(checkmarxOne): test cases for pkg and reporting

* fix(checkmarxOne):fix formatting

* feat(checkmarxone): update interface with missing method

* feat(checkmarxone):change runStep signature to be able to inject dependency

* feat(checkmarxone): add tests for step (wip)

* Adding a bit more coverage

* feat(checkmarxOne): fix code review

* feat(checkmarxOne): fix code review

* feat(checkmarxOne): fix code review

* feat(checkmarxOne): fix integration test PR

* adding scan-summary bug workaround, reportgen fail

* enforceThresholds fix when no results passed in

* fixed gap when preset empty in yaml & project conf

* fixed another gap in preset selection

* fix 0-result panic

* fail when no preset is set anywhere

* removed comment

* initial project-under-app support

* fixing sarif reportgen

* some cleanup of error messages

* post-merge test fixes

* revert previous upstream merge

* adding "incremental" to "full" triggers

* wrong boolean

* project-in-application api change prep

* Fixing SARIF report without preset access

* fix sarif deeplink

* removing comments

* fix(cxone):formatting

* fix(cxone):formatting

* small sarif fixes

* fixed merge

* attempt at pulling git source repo branch

* fix(cxone):new endpoint for project creation

---------

Co-authored-by: thtri <trinhthanhhai@gmail.com>
Co-authored-by: Thanh-Hai Trinh <thanh.hai.trinh@sap.com>
2024-04-22 18:21:02 +02:00
tiloKo
265105efa1
AAKaaS holistic pv check (#4893)
* new step abapAddonAssemblyKitCheck
2024-04-22 13:12:38 +02:00
tiloKo
787176b6da
Update helper.go (#4874)
go generate fix parameter type for new steps
2024-04-22 13:02:08 +02:00
Egor Balakin
077ecfe342
feat: bump go to 1.21 (#4846)
* bump go to 1.21, add toolchain go1.21.7

* bump go to 1.21

* fix test

---------

Co-authored-by: Egor Balakin <egor.balakin@sap.com>
2024-04-19 03:17:39 +04:00
Daria Kuznetsova
df0b288ecb
refactor codeqlExecuteScan (#4888)
* refactored codeql step

* fixed tests

* fixed reports output dir

* refactored

* fixed returning error

* fixed tests

---------

Co-authored-by: sumeet patil <sumeet.patil@sap.com>
2024-04-16 11:35:56 +03:00
Vyacheslav Starostin
b0ecbf68ad
feat(artifactPrepareVersion): Introduce build tool CAP (#4890)
* feat(artifactPrepareVersion): Introduce build tool CAP

* feat(artifactPrepareVersion): Introduce build tool CAP

* Add CAPVersioningPreference to versioning.Options

* Include CAP to allowed build tool list

* Update go.mod

* Include CAP to allowed build tool list

* Delete CAP from additionalTargetTools

* Delete CAP from additionalTargetTools

* Fix test

* Update comment

* Update comment

* Add param description

* Add param description
2024-04-10 13:45:21 +05:00
thtri
3ae51e2661
fix(cxone): new endpoint for project creation (#4889)
* Initial in progress

* compiling but not yet functional

* Missed file

* updated checkmarxone step

* Working up to fetching a project then breaks

* Missed file

* Breaks when retrieving projects+proxy set

* Create project & run scan working, now polling

* Fixed polling

* added back the zipfile remove command

* Fixed polling again

* Generates and downloads PDF report

* Updated and working, prep for refactor

* Added compliance steps

* Cleanup, reporting, added groovy connector

* fixed groovy file

* checkmarxone to checkmarxOne

* checkmarxone to checkmarxOne

* split credentials (id+secret, apikey), renamed pullrequestname to branch, groovy fix

* Fixed filenames & yaml

* missed the metadata_generated.go

* added json to sarif conversion

* fix:type in new checkmarxone package

* fix:type in new checkmarxone package

* removed test logs, added temp error log for creds

* extra debugging to fix crash

* improved auth logging, fixed query parse issue

* fixed bug with group fetch when using oauth user

* CWE can be -1 if not defined, can't be uint

* Query also had CweID

* Disabled predicates-fetch in sarif generation

* Removing leftover info log message

* Better error handling

* fixed default preset configuration

* removing .bat files - sorry

* Cleanup per initial review

* refactoring per Gist, fixed project find, add apps

* small fix - sorry for commit noise while testing

* Fixing issues with incremental scans.

* removing maxretries

* Updated per PR feedback, further changes todo toda

* JSON Report changes and reporting cleanup

* removing .bat (again?)

* adding docs, groovy unit test, linter fixes

* Started adding tests maybe 15% covered

* fix(checkmarxOne): test cases for pkg and reporting

* fix(checkmarxOne):fix formatting

* feat(checkmarxone): update interface with missing method

* feat(checkmarxone):change runStep signature to be able to inject dependency

* feat(checkmarxone): add tests for step (wip)

* Adding a bit more coverage

* feat(checkmarxOne): fix code review

* feat(checkmarxOne): fix code review

* feat(checkmarxOne): fix code review

* feat(checkmarxOne): fix integration test PR

* adding scan-summary bug workaround, reportgen fail

* enforceThresholds fix when no results passed in

* fixed gap when preset empty in yaml & project conf

* fixed another gap in preset selection

* fix 0-result panic

* fail when no preset is set anywhere

* removed comment

* initial project-under-app support

* fixing sarif reportgen

* some cleanup of error messages

* post-merge test fixes

* revert previous upstream merge

* adding "incremental" to "full" triggers

* wrong boolean

* project-in-application api change prep

* Fixing SARIF report without preset access

* fix sarif deeplink

* removing comments

* fix(cxone):formatting

* fix(cxone):formatting

* fix(cxone):new endpoint for project creation

---------

Co-authored-by: michael kubiaczyk <michael.kubiaczyk@checkmarx.com>
Co-authored-by: michaelkubiaczyk <48311127+michaelkubiaczyk@users.noreply.github.com>
2024-04-05 14:08:43 +02:00
Jordi van Liempt
a129cc4dde
fix(maven): Add proper error handling for invalid settings.xml when publishing (#4884)
Co-authored-by: jliempt <>
2024-04-04 09:45:33 +02:00
Daria Kuznetsova
bf59a28aba
feat(codeqlExecuteScan): added open configs for codeql database creation and analysis (#4869)
Co-authored-by: sumeet patil <sumeet.patil@sap.com>
2024-04-02 10:18:17 +05:30
Ralf Pannemans
70dac23c73
Revert "feat(cnbBuild): validate docker credentials (#4840)" (#4872)
Apparently this pr caused some regression.

This reverts commit df2e976eaab00e3dc71f2fec117d23a67a085742.
2024-03-25 10:43:23 +01:00
Daria Kuznetsova
2d2d357599
feat(contrastExecuteScan): new step contrastExecuteScan (#4818) 2024-03-21 10:13:59 +05:30
Akramdzhon Azamov
18bc753233
Removed the enforcement for gradle.aggregateModules parameter whitesource step (#4747)
Co-authored-by: sumeet patil <sumeet.patil@sap.com>
2024-03-20 14:57:14 +05:30