Skip to content

🌱 PR digest: show age, filter stale change requests - #912

Merged
msajidmansoori12 merged 5 commits into
migtools:mainfrom
msajidmansoori12:update-digest-wf
Sep 3, 2026
Merged

🌱 PR digest: show age, filter stale change requests#912
msajidmansoori12 merged 5 commits into
migtools:mainfrom
msajidmansoori12:update-digest-wf

Conversation

@msajidmansoori12

@msajidmansoori12 msajidmansoori12 commented Sep 2, 2026

Copy link
Copy Markdown
Contributor

Summary

Updates the daily Slack ready-for-review digest workflow (.github/workflows/pr-ready-for-review-digest-slack.yml) to make the digest more actionable for reviewers.

  • Shows how long each PR has been open (e.g. opened 5d ago) on every digest line.
  • Excludes draft PRs from the digest.
  • Excludes PRs only when a reviewer's latest review is CHANGES_REQUESTED on the current HEAD commit. PRs where the author pushed fixes after an earlier change request still appear in the digest.
  • Keeps existing type-based grouping (feature, bugfix, test, etc.) with oldest PRs listed first within each section.

Closes #888.

Impact

  • Severity: Low — workflow-only change; no product code affected.
  • Affected component: PR Ready For Review Daily Digest GitHub Actions workflow and its Slack output.
  • Behavior change: Digest may include PRs that were previously hidden when reviewDecision was CHANGES_REQUESTED but the request targeted an older commit.

Test plan

  • Ran gh pr list + jq filter locally against migtools/crane to verify age formatting and head-aware review filtering.
  • Triggered workflow via workflow_dispatch on fork and confirmed digest message builds successfully.
  • Verified PRs with stale change requests (e.g. 🧪 Add comprehensive unit tests for transfer-pvc command #355) are included after author pushes new commits.
  • Verified PRs with CHANGES_REQUESTED on current HEAD are excluded.

Summary by CodeRabbit

  • New Features

    • Pull request review digests now display how long each pull request has been open.
    • Digest information includes additional pull request details to improve review visibility.
  • Bug Fixes

    • Draft pull requests are excluded from review digests.
    • Pull requests with outstanding change requests on their current revision are excluded.

Signed-off-by: M Sajid Mansoori <mmansoor@redhat.com>
Signed-off-by: M Sajid Mansoori <mmansoor@redhat.com>
Signed-off-by: M Sajid Mansoori <mmansoor@redhat.com>
Signed-off-by: M Sajid Mansoori <mmansoor@redhat.com>
@msajidmansoori12 msajidmansoori12 self-assigned this Sep 2, 2026
@msajidmansoori12 msajidmansoori12 linked an issue Sep 2, 2026 that may be closed by this pull request
@coderabbitai

coderabbitai Bot commented Sep 2, 2026

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Team

Run ID: 19e57590-c379-4cff-8469-f5f1529e47bc

📥 Commits

Reviewing files that changed from the base of the PR and between 77cbb57 and 4845087.

📒 Files selected for processing (1)
  • .github/workflows/pr-ready-for-review-digest-slack.yml

Included review availability: Your plan provides up to 1 included review per hour; 0 remain after this review.


📝 Walkthrough

Walkthrough

The Slack digest workflow now excludes draft PRs and current-head PRs with latest CHANGES_REQUESTED reviews. It formats PR creation times into human-readable ages and adds the age to each digest entry. The workflow documentation references issue 888.

Changes

Pull request digest

Layer / File(s) Summary
PR eligibility and age calculation
.github/workflows/pr-ready-for-review-digest-slack.yml
The workflow queries review and commit data, excludes draft PRs and current-head PRs with latest CHANGES_REQUESTED reviews, and formats PR creation timestamps.
Digest age rendering
.github/workflows/pr-ready-for-review-digest-slack.yml
The workflow computes each PR age and adds it to the Slack digest entry. The documentation references issue 888.

Estimated code review effort: 3 (Moderate) | ~20 minutes

Merge Risk: ⚪ Minimal · up to 48450

The change only filters stale pull requests and adds creation age to the existing Slack digest; no actionable merge-blocking risk remains after normal checks and review.

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 0…
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Title check ✅ Passed The title clearly summarizes the main changes: displaying PR age and excluding stale change requests from the digest.
Full details: Docstring Coverage

Explanation

No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 0 files. (1 skipped: 1 unsupported.)

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@github-actions

github-actions Bot commented Sep 2, 2026

Copy link
Copy Markdown
Contributor

Test Coverage Report

Total: 48.9%

Per-package coverage

  • github.com/konveyor/crane — 0.0%
  • github.com/konveyor/crane/cmd/apply — 50.6%
  • github.com/konveyor/crane/cmd/convert — 0.0%
  • github.com/konveyor/crane/cmd/export — 93.9%
  • github.com/konveyor/crane/cmd/plugin-manager — 0.0%
  • github.com/konveyor/crane/cmd/plugin-manager/add — 0.0%
  • github.com/konveyor/crane/cmd/plugin-manager/list — 0.0%
  • github.com/konveyor/crane/cmd/plugin-manager/remove — 0.0%
  • github.com/konveyor/crane/cmd/skopeo-sync-gen — 0.0%
  • github.com/konveyor/crane/cmd/transfer-pvc — 33.5%
  • github.com/konveyor/crane/cmd/transform — 59.8%
  • github.com/konveyor/crane/cmd/transform/listplugins — 21.1%
  • github.com/konveyor/crane/cmd/transform/optionals — 0.0%
  • github.com/konveyor/crane/cmd/tunnel-api — 0.0%
  • github.com/konveyor/crane/cmd/validate — 69.6%
  • github.com/konveyor/crane/cmd/version — 20.0%
  • github.com/konveyor/crane/internal/apply — 29.5%
  • github.com/konveyor/crane/internal/buildinfo — 100.0%
  • github.com/konveyor/crane/internal/cli — 100.0%
  • github.com/konveyor/crane/internal/file — 85.0%
  • github.com/konveyor/crane/internal/flags — 0.0%
  • github.com/konveyor/crane/internal/kustomize — 83.2%
  • github.com/konveyor/crane/internal/plugin — 32.9%
  • github.com/konveyor/crane/internal/transform — 82.0%
  • github.com/konveyor/crane/internal/validate — 57.7%
Full function-level details
github.com/konveyor/crane/cmd/apply/apply.go:45:			Complete								100.0%
github.com/konveyor/crane/cmd/apply/apply.go:52:			Validate								83.3%
github.com/konveyor/crane/cmd/apply/apply.go:70:			Run									0.0%
github.com/konveyor/crane/cmd/apply/apply.go:74:			NewApplyCommand								0.0%
github.com/konveyor/crane/cmd/apply/apply.go:116:			getStageNames								100.0%
github.com/konveyor/crane/cmd/apply/apply.go:124:			addFlagsForOptions							0.0%
github.com/konveyor/crane/cmd/apply/apply.go:137:			run									71.2%
github.com/konveyor/crane/cmd/convert/convert.go:30:			NewConvertOptions							0.0%
github.com/konveyor/crane/cmd/convert/convert.go:63:			addFlagsForConvertOptions						0.0%
github.com/konveyor/crane/cmd/convert/convert.go:74:			Complete								0.0%
github.com/konveyor/crane/cmd/convert/convert.go:83:			Run									0.0%
github.com/konveyor/crane/cmd/convert/convert.go:87:			run									0.0%
github.com/konveyor/crane/cmd/convert/convert.go:112:			getClientFromContext							0.0%
github.com/konveyor/crane/cmd/convert/convert.go:134:			getRestConfigFromContext						0.0%
github.com/konveyor/crane/cmd/export/cluster.go:29:			NewClusterScopeHandler							100.0%
github.com/konveyor/crane/cmd/export/cluster.go:35:			isClusterScopedResource							100.0%
github.com/konveyor/crane/cmd/export/cluster.go:44:			filterRbacResources							100.0%
github.com/konveyor/crane/cmd/export/cluster.go:102:			NewClusterScopedRbacHandler						100.0%
github.com/konveyor/crane/cmd/export/cluster.go:113:			exportedSANamespaces							100.0%
github.com/konveyor/crane/cmd/export/cluster.go:127:			groupMatchesExportedSANamespaces					100.0%
github.com/konveyor/crane/cmd/export/cluster.go:144:			parseServiceAccountUserSubject						100.0%
github.com/konveyor/crane/cmd/export/cluster.go:155:			prepareForFiltering							100.0%
github.com/konveyor/crane/cmd/export/cluster.go:188:			filteredResourcesOfKind							100.0%
github.com/konveyor/crane/cmd/export/cluster.go:214:			accept									100.0%
github.com/konveyor/crane/cmd/export/cluster.go:224:			acceptClusterRoleBinding						100.0%
github.com/konveyor/crane/cmd/export/cluster.go:261:			acceptClusterRole							100.0%
github.com/konveyor/crane/cmd/export/cluster.go:285:			acceptSecurityContextConstraints					100.0%
github.com/konveyor/crane/cmd/export/cluster.go:337:			anyServiceAccountInNamespace						100.0%
github.com/konveyor/crane/cmd/export/crd.go:18:				normalizeGroupSet							85.7%
github.com/konveyor/crane/cmd/export/crd.go:30:				shouldSkipCRDGroup							100.0%
github.com/konveyor/crane/cmd/export/crd.go:51:				crdFailureAPIResourceName						100.0%
github.com/konveyor/crane/cmd/export/crd.go:57:				getOperatorManager							92.9%
github.com/konveyor/crane/cmd/export/crd.go:89:				collectRelatedCRDs							95.0%
github.com/konveyor/crane/cmd/export/discover.go:41:			hasClusterScopedManifests						100.0%
github.com/konveyor/crane/cmd/export/discover.go:59:			prepareClusterResourceDir						100.0%
github.com/konveyor/crane/cmd/export/discover.go:75:			prepareFailuresDir							100.0%
github.com/konveyor/crane/cmd/export/discover.go:87:			writeResources								85.7%
github.com/konveyor/crane/cmd/export/discover.go:135:			writeErrors								83.3%
github.com/konveyor/crane/cmd/export/discover.go:178:			discoverPreferredResources						100.0%
github.com/konveyor/crane/cmd/export/discover.go:209:			resourceToExtract							100.0%
github.com/konveyor/crane/cmd/export/discover.go:286:			isAdmittedResource							100.0%
github.com/konveyor/crane/cmd/export/discover.go:295:			getObjects								96.3%
github.com/konveyor/crane/cmd/export/discover.go:346:			iterateItemsByGet							90.9%
github.com/konveyor/crane/cmd/export/discover.go:382:			iterateItemsInList							92.3%
github.com/konveyor/crane/cmd/export/export.go:57:			Complete								87.9%
github.com/konveyor/crane/cmd/export/export.go:117:			Validate								100.0%
github.com/konveyor/crane/cmd/export/export.go:168:			validateExportNamespace							87.5%
github.com/konveyor/crane/cmd/export/export.go:185:			allResourceListsForbidden						87.5%
github.com/konveyor/crane/cmd/export/export.go:203:			mergeImpersonationExtras						100.0%
github.com/konveyor/crane/cmd/export/export.go:218:			Run									0.0%
github.com/konveyor/crane/cmd/export/export.go:359:			NewExportCommand							51.7%
github.com/konveyor/crane/cmd/export/gk_filter.go:23:			ParseGroupKind								100.0%
github.com/konveyor/crane/cmd/export/gk_filter.go:50:			Matches									100.0%
github.com/konveyor/crane/cmd/export/gk_filter.go:62:			String									100.0%
github.com/konveyor/crane/cmd/export/gk_filter.go:76:			NewGKFilter								100.0%
github.com/konveyor/crane/cmd/export/gk_filter.go:105:			ShouldInclude								100.0%
github.com/konveyor/crane/cmd/export/gk_filter.go:145:			IsEmpty									100.0%
github.com/konveyor/crane/cmd/plugin-manager/add/add.go:43:		Complete								0.0%
github.com/konveyor/crane/cmd/plugin-manager/add/add.go:48:		Validate								0.0%
github.com/konveyor/crane/cmd/plugin-manager/add/add.go:91:		Run									0.0%
github.com/konveyor/crane/cmd/plugin-manager/add/add.go:95:		NewAddCommand								0.0%
github.com/konveyor/crane/cmd/plugin-manager/add/add.go:127:		addFlagsForOptions							0.0%
github.com/konveyor/crane/cmd/plugin-manager/add/add.go:132:		run									0.0%
github.com/konveyor/crane/cmd/plugin-manager/add/add.go:204:		downloadBinary								0.0%
github.com/konveyor/crane/cmd/plugin-manager/add/add.go:253:		binaryURIForPlatform							0.0%
github.com/konveyor/crane/cmd/plugin-manager/list/list.go:46:		Complete								0.0%
github.com/konveyor/crane/cmd/plugin-manager/list/list.go:51:		Validate								0.0%
github.com/konveyor/crane/cmd/plugin-manager/list/list.go:56:		Run									0.0%
github.com/konveyor/crane/cmd/plugin-manager/list/list.go:60:		NewListCommand								0.0%
github.com/konveyor/crane/cmd/plugin-manager/list/list.go:90:		addFlagsForOptions							0.0%
github.com/konveyor/crane/cmd/plugin-manager/list/list.go:98:		run									0.0%
github.com/konveyor/crane/cmd/plugin-manager/list/list.go:167:		printInstalledInformation						0.0%
github.com/konveyor/crane/cmd/plugin-manager/list/list.go:177:		groupInformationForPlugins						0.0%
github.com/konveyor/crane/cmd/plugin-manager/list/list.go:196:		printInformation							0.0%
github.com/konveyor/crane/cmd/plugin-manager/list/list.go:208:		printParamsInformation							0.0%
github.com/konveyor/crane/cmd/plugin-manager/list/list.go:222:		getOptionalFields							0.0%
github.com/konveyor/crane/cmd/plugin-manager/list/list.go:247:		printTable								0.0%
github.com/konveyor/crane/cmd/plugin-manager/plugin-manager.go:33:	Complete								0.0%
github.com/konveyor/crane/cmd/plugin-manager/plugin-manager.go:38:	Validate								0.0%
github.com/konveyor/crane/cmd/plugin-manager/plugin-manager.go:43:	Run									0.0%
github.com/konveyor/crane/cmd/plugin-manager/plugin-manager.go:47:	NewPluginManagerCommand							0.0%
github.com/konveyor/crane/cmd/plugin-manager/plugin-manager.go:78:	addFlagsForOptions							0.0%
github.com/konveyor/crane/cmd/plugin-manager/plugin-manager.go:86:	run									0.0%
github.com/konveyor/crane/cmd/plugin-manager/remove/remove.go:33:	Complete								0.0%
github.com/konveyor/crane/cmd/plugin-manager/remove/remove.go:38:	Validate								0.0%
github.com/konveyor/crane/cmd/plugin-manager/remove/remove.go:43:	Run									0.0%
github.com/konveyor/crane/cmd/plugin-manager/remove/remove.go:47:	NewRemoveCommand							0.0%
github.com/konveyor/crane/cmd/plugin-manager/remove/remove.go:77:	run									0.0%
github.com/konveyor/crane/cmd/skopeo-sync-gen/skopeo-sync-gen.go:61:	Complete								0.0%
github.com/konveyor/crane/cmd/skopeo-sync-gen/skopeo-sync-gen.go:65:	Validate								0.0%
github.com/konveyor/crane/cmd/skopeo-sync-gen/skopeo-sync-gen.go:69:	NewSkopeoSyncGenCommand							0.0%
github.com/konveyor/crane/cmd/skopeo-sync-gen/skopeo-sync-gen.go:103:	shouldAddImageStream							0.0%
github.com/konveyor/crane/cmd/skopeo-sync-gen/skopeo-sync-gen.go:114:	Run									0.0%
github.com/konveyor/crane/cmd/transfer-pvc/indirect.go:28:		runIndirect								0.0%
github.com/konveyor/crane/cmd/transfer-pvc/indirect.go:209:		followPodLogsUntilComplete						0.0%
github.com/konveyor/crane/cmd/transfer-pvc/indirect.go:304:		checkRclonePartialSuccess						87.5%
github.com/konveyor/crane/cmd/transfer-pvc/indirect.go:357:		createTempRcloneSecretFromData						0.0%
github.com/konveyor/crane/cmd/transfer-pvc/indirect.go:400:		generateCryptSection							62.5%
github.com/konveyor/crane/cmd/transfer-pvc/indirect.go:417:		rcloneObscure								69.2%
github.com/konveyor/crane/cmd/transfer-pvc/progress.go:39:		NewRsyncLogStream							0.0%
github.com/konveyor/crane/cmd/transfer-pvc/progress.go:53:		Init									0.0%
github.com/konveyor/crane/cmd/transfer-pvc/progress.go:146:		writeProgressToFile							0.0%
github.com/konveyor/crane/cmd/transfer-pvc/progress.go:156:		Close									0.0%
github.com/konveyor/crane/cmd/transfer-pvc/progress.go:162:		Streams									0.0%
github.com/konveyor/crane/cmd/transfer-pvc/progress.go:166:		ExitCode								0.0%
github.com/konveyor/crane/cmd/transfer-pvc/progress.go:205:		addDataSize								0.0%
github.com/konveyor/crane/cmd/transfer-pvc/progress.go:230:		String									100.0%
github.com/konveyor/crane/cmd/transfer-pvc/progress.go:234:		MarshalJSON								0.0%
github.com/konveyor/crane/cmd/transfer-pvc/progress.go:238:		AsString								97.0%
github.com/konveyor/crane/cmd/transfer-pvc/progress.go:286:		NewProgress								100.0%
github.com/konveyor/crane/cmd/transfer-pvc/progress.go:306:		Completed								100.0%
github.com/konveyor/crane/cmd/transfer-pvc/progress.go:311:		Status									100.0%
github.com/konveyor/crane/cmd/transfer-pvc/progress.go:336:		Merge									0.0%
github.com/konveyor/crane/cmd/transfer-pvc/progress.go:391:		newDataSize								72.7%
github.com/konveyor/crane/cmd/transfer-pvc/progress.go:414:		parseRsyncLogs								76.1%
github.com/konveyor/crane/cmd/transfer-pvc/progress.go:494:		waitForPodRunning							0.0%
github.com/konveyor/crane/cmd/transfer-pvc/progress.go:528:		getFinalPodStatus							0.0%
github.com/konveyor/crane/cmd/transfer-pvc/transfer-pvc.go:103:		Validate								83.3%
github.com/konveyor/crane/cmd/transfer-pvc/transfer-pvc.go:131:		Validate								55.6%
github.com/konveyor/crane/cmd/transfer-pvc/transfer-pvc.go:147:		NewTransferPVCCommand							0.0%
github.com/konveyor/crane/cmd/transfer-pvc/transfer-pvc.go:184:		addFlagsToTransferPVCCommand						0.0%
github.com/konveyor/crane/cmd/transfer-pvc/transfer-pvc.go:209:		Complete								0.0%
github.com/konveyor/crane/cmd/transfer-pvc/transfer-pvc.go:247:		Validate								60.0%
github.com/konveyor/crane/cmd/transfer-pvc/transfer-pvc.go:311:		Run									0.0%
github.com/konveyor/crane/cmd/transfer-pvc/transfer-pvc.go:321:		isIntraClusterSameNamespace						100.0%
github.com/konveyor/crane/cmd/transfer-pvc/transfer-pvc.go:327:		getClientFromContext							0.0%
github.com/konveyor/crane/cmd/transfer-pvc/transfer-pvc.go:348:		getRestConfigFromContext						0.0%
github.com/konveyor/crane/cmd/transfer-pvc/transfer-pvc.go:355:		run									0.0%
github.com/konveyor/crane/cmd/transfer-pvc/transfer-pvc.go:696:		certificateSecretName							100.0%
github.com/konveyor/crane/cmd/transfer-pvc/transfer-pvc.go:705:		getValidatedResourceName						66.7%
github.com/konveyor/crane/cmd/transfer-pvc/transfer-pvc.go:715:		getNodeNameForPVC							0.0%
github.com/konveyor/crane/cmd/transfer-pvc/transfer-pvc.go:735:		getIDsForNamespace							77.8%
github.com/konveyor/crane/cmd/transfer-pvc/transfer-pvc.go:798:		getSecurityContextFromWorkload						74.5%
github.com/konveyor/crane/cmd/transfer-pvc/transfer-pvc.go:898:		podSpecReferencesPVC							100.0%
github.com/konveyor/crane/cmd/transfer-pvc/transfer-pvc.go:907:		extractPodSecurityContext						90.0%
github.com/konveyor/crane/cmd/transfer-pvc/transfer-pvc.go:957:		inspectPVCFileOwnership							75.0%
github.com/konveyor/crane/cmd/transfer-pvc/transfer-pvc.go:1061:	getSourcePodSecurityContext						0.0%
github.com/konveyor/crane/cmd/transfer-pvc/transfer-pvc.go:1065:	getTargetPodSecurityContext						0.0%
github.com/konveyor/crane/cmd/transfer-pvc/transfer-pvc.go:1071:	rsyncTransferImage							100.0%
github.com/konveyor/crane/cmd/transfer-pvc/transfer-pvc.go:1078:	garbageCollect								0.0%
github.com/konveyor/crane/cmd/transfer-pvc/transfer-pvc.go:1115:	deleteResourcesIteratively						0.0%
github.com/konveyor/crane/cmd/transfer-pvc/transfer-pvc.go:1141:	deleteResourcesForGVK							0.0%
github.com/konveyor/crane/cmd/transfer-pvc/transfer-pvc.go:1164:	followClientLogs							0.0%
github.com/konveyor/crane/cmd/transfer-pvc/transfer-pvc.go:1193:	waitForEndpoint								0.0%
github.com/konveyor/crane/cmd/transfer-pvc/transfer-pvc.go:1205:	createEndpoint								0.0%
github.com/konveyor/crane/cmd/transfer-pvc/transfer-pvc.go:1250:	getRouteHostName							0.0%
github.com/konveyor/crane/cmd/transfer-pvc/transfer-pvc.go:1267:	truncateWithHash							100.0%
github.com/konveyor/crane/cmd/transfer-pvc/transfer-pvc.go:1273:	buildDestinationPVC							0.0%
github.com/konveyor/crane/cmd/transfer-pvc/transfer-pvc.go:1292:	stripServerManagedPVCAnnotations					100.0%
github.com/konveyor/crane/cmd/transfer-pvc/transfer-pvc.go:1309:	isServerManagedPVCAnnotation						100.0%
github.com/konveyor/crane/cmd/transfer-pvc/transfer-pvc.go:1326:	ApplyTo									0.0%
github.com/konveyor/crane/cmd/transfer-pvc/transfer-pvc.go:1346:	ApplyTo									100.0%
github.com/konveyor/crane/cmd/transfer-pvc/transfer-pvc.go:1359:	ApplyTo									0.0%
github.com/konveyor/crane/cmd/transfer-pvc/transfer-pvc.go:1375:	String									0.0%
github.com/konveyor/crane/cmd/transfer-pvc/transfer-pvc.go:1379:	Set									0.0%
github.com/konveyor/crane/cmd/transfer-pvc/transfer-pvc.go:1389:	Type									0.0%
github.com/konveyor/crane/cmd/transfer-pvc/transfer-pvc.go:1395:	parseSourceDestinationMapping						100.0%
github.com/konveyor/crane/cmd/transfer-pvc/transfer-pvc.go:1417:	String									0.0%
github.com/konveyor/crane/cmd/transfer-pvc/transfer-pvc.go:1421:	Set									0.0%
github.com/konveyor/crane/cmd/transfer-pvc/transfer-pvc.go:1430:	Type									0.0%
github.com/konveyor/crane/cmd/transfer-pvc/transfer-pvc.go:1434:	String									0.0%
github.com/konveyor/crane/cmd/transfer-pvc/transfer-pvc.go:1438:	Set									0.0%
github.com/konveyor/crane/cmd/transfer-pvc/transfer-pvc.go:1448:	Type									0.0%
github.com/konveyor/crane/cmd/transform/listplugins/listplugins.go:34:	Complete								0.0%
github.com/konveyor/crane/cmd/transform/listplugins/listplugins.go:40:	Validate								0.0%
github.com/konveyor/crane/cmd/transform/listplugins/listplugins.go:45:	Run									0.0%
github.com/konveyor/crane/cmd/transform/listplugins/listplugins.go:49:	NewListPluginsCommand							0.0%
github.com/konveyor/crane/cmd/transform/listplugins/listplugins.go:82:	GetPluginNames								87.5%
github.com/konveyor/crane/cmd/transform/listplugins/listplugins.go:98:	getFilteredPlugins							60.0%
github.com/konveyor/crane/cmd/transform/listplugins/listplugins.go:108:	run									0.0%
github.com/konveyor/crane/cmd/transform/optionals/optionals.go:33:	Complete								0.0%
github.com/konveyor/crane/cmd/transform/optionals/optionals.go:39:	Validate								0.0%
github.com/konveyor/crane/cmd/transform/optionals/optionals.go:44:	Run									0.0%
github.com/konveyor/crane/cmd/transform/optionals/optionals.go:48:	NewOptionalsCommand							0.0%
github.com/konveyor/crane/cmd/transform/optionals/optionals.go:80:	run									0.0%
github.com/konveyor/crane/cmd/transform/transform.go:57:		Complete								0.0%
github.com/konveyor/crane/cmd/transform/transform.go:64:		Validate								76.5%
github.com/konveyor/crane/cmd/transform/transform.go:89:		Run									0.0%
github.com/konveyor/crane/cmd/transform/transform.go:94:		getPluginCompletions							100.0%
github.com/konveyor/crane/cmd/transform/transform.go:119:		NewTransformCommand							0.0%
github.com/konveyor/crane/cmd/transform/transform.go:163:		addFlagsForOptions							0.0%
github.com/konveyor/crane/cmd/transform/transform.go:183:		run									11.0%
github.com/konveyor/crane/cmd/transform/transform.go:390:		parseStageOptionals							100.0%
github.com/konveyor/crane/cmd/transform/transform.go:423:		optionalFlagsToLowerChecked						100.0%
github.com/konveyor/crane/cmd/transform/transform.go:437:		runStageWithCleanup							0.0%
github.com/konveyor/crane/cmd/transform/transform.go:453:		reconcileInstructionStages						70.8%
github.com/konveyor/crane/cmd/transform/transform.go:499:		ensurePreviousStagesRun							71.4%
github.com/konveyor/crane/cmd/transform/transform.go:517:		ensureStagesHaveOutput							93.3%
github.com/konveyor/crane/cmd/transform/transform.go:556:		createDefaultStagesForAllPlugins					90.0%
github.com/konveyor/crane/cmd/transform/transform.go:609:		validateStageNameToken							100.0%
github.com/konveyor/crane/cmd/transform/transform.go:624:		findStageByDirName							100.0%
github.com/konveyor/crane/cmd/transform/transform.go:636:		findStagesByName							100.0%
github.com/konveyor/crane/cmd/transform/transform.go:648:		createStageDirectory							77.8%
github.com/konveyor/crane/cmd/transform/transform.go:669:		createCustomStageWithExplicitName					100.0%
github.com/konveyor/crane/cmd/transform/transform.go:685:		createCustomStageWithAutoPriority					66.7%
github.com/konveyor/crane/cmd/transform/transform.go:709:		createPluginStage							0.0%
github.com/konveyor/crane/cmd/transform/transform.go:745:		resolveAndValidateStages						57.0%
github.com/konveyor/crane/cmd/tunnel-api/tunnel-api.go:35:		NewTunnelAPIOptions							0.0%
github.com/konveyor/crane/cmd/tunnel-api/tunnel-api.go:65:		addFlagsForTunnelAPIOptions						0.0%
github.com/konveyor/crane/cmd/tunnel-api/tunnel-api.go:77:		Complete								0.0%
github.com/konveyor/crane/cmd/tunnel-api/tunnel-api.go:100:		Validate								0.0%
github.com/konveyor/crane/cmd/tunnel-api/tunnel-api.go:116:		Run									0.0%
github.com/konveyor/crane/cmd/tunnel-api/tunnel-api.go:120:		getClientFromContext							0.0%
github.com/konveyor/crane/cmd/tunnel-api/tunnel-api.go:129:		getRestConfigFromContext						0.0%
github.com/konveyor/crane/cmd/tunnel-api/tunnel-api.go:136:		run									0.0%
github.com/konveyor/crane/cmd/validate/validate.go:39:			Complete								91.7%
github.com/konveyor/crane/cmd/validate/validate.go:61:			determineClusterContext							91.7%
github.com/konveyor/crane/cmd/validate/validate.go:89:			Validate								100.0%
github.com/konveyor/crane/cmd/validate/validate.go:146:			Run									16.9%
github.com/konveyor/crane/cmd/validate/validate.go:263:			NewValidateCommand							47.6%
github.com/konveyor/crane/cmd/version/version.go:20:			Complete								0.0%
github.com/konveyor/crane/cmd/version/version.go:25:			Validate								0.0%
github.com/konveyor/crane/cmd/version/version.go:30:			Run									0.0%
github.com/konveyor/crane/cmd/version/version.go:34:			NewVersionCommand							0.0%
github.com/konveyor/crane/cmd/version/version.go:60:			run									100.0%
github.com/konveyor/crane/e2e-tests/utils/utils.go:21:			CreateTempDir								100.0%
github.com/konveyor/crane/e2e-tests/utils/utils.go:28:			ListFilesRecursively							91.7%
github.com/konveyor/crane/e2e-tests/utils/utils.go:51:			ListFilesRecursivelyAsList						80.0%
github.com/konveyor/crane/e2e-tests/utils/utils.go:75:			HasFilesRecursively							80.0%
github.com/konveyor/crane/e2e-tests/utils/utils.go:86:			ReadTestdataFile							88.9%
github.com/konveyor/crane/e2e-tests/utils/utils.go:105:			TestdataFilePath							0.0%
github.com/konveyor/crane/e2e-tests/utils/utils.go:125:			GoldenManifestsDir							90.0%
github.com/konveyor/crane/e2e-tests/utils/utils.go:147:			GoldenManifestsDirForPlatform						0.0%
github.com/konveyor/crane/e2e-tests/utils/utils.go:170:			CompareDirectoryFileSets						78.9%
github.com/konveyor/crane/e2e-tests/utils/utils.go:204:			compareDirectoryYAMLSemanticsWithFunc					82.4%
github.com/konveyor/crane/e2e-tests/utils/utils.go:233:			CompareDirectoryYAMLSemantics						100.0%
github.com/konveyor/crane/e2e-tests/utils/utils.go:239:			sortTopLevelArray							88.9%
github.com/konveyor/crane/e2e-tests/utils/utils.go:255:			compareYAMLFileBytesUnordered						88.2%
github.com/konveyor/crane/e2e-tests/utils/utils.go:289:			CompareDirectoryYAMLSemanticsUnordered					100.0%
github.com/konveyor/crane/e2e-tests/utils/utils.go:299:			CompareDirectoryYAMLSemanticsExport					100.0%
github.com/konveyor/crane/e2e-tests/utils/utils.go:307:			CompareDirectoryYAMLSemanticsExportAllowOptionalOCPOutputDefaults	100.0%
github.com/konveyor/crane/e2e-tests/utils/utils.go:311:			compareDirectoryYAMLSemanticsExport					92.0%
github.com/konveyor/crane/e2e-tests/utils/utils.go:390:			isOptionalOCPOutputIdentity						100.0%
github.com/konveyor/crane/e2e-tests/utils/utils.go:417:			buildNormalizedExportIndex						73.9%
github.com/konveyor/crane/e2e-tests/utils/utils.go:460:			canonicalizeDocs							87.5%
github.com/konveyor/crane/e2e-tests/utils/utils.go:474:			extractResourceIdentity							79.5%
github.com/konveyor/crane/e2e-tests/utils/utils.go:545:			parseYAMLDocuments							100.0%
github.com/konveyor/crane/e2e-tests/utils/utils.go:561:			canonicalOpenShiftDockercfgSecretName					80.0%
github.com/konveyor/crane/e2e-tests/utils/utils.go:577:			compareYAMLFileBytes							100.0%
github.com/konveyor/crane/e2e-tests/utils/utils.go:604:			AssertNoKindsInOutput							0.0%
github.com/konveyor/crane/e2e-tests/utils/utils.go:660:			AssertKindsInOutput							0.0%
github.com/konveyor/crane/e2e-tests/utils/utils.go:712:			LooksLikeYAMLFile							100.0%
github.com/konveyor/crane/e2e-tests/utils/utils.go:726:			normalizeUnstableFields							73.1%
github.com/konveyor/crane/e2e-tests/utils/utils.go:842:			stripPodTemplateHash							0.0%
github.com/konveyor/crane/e2e-tests/utils/utils.go:850:			normalizePodServiceAccountVolumeNames					90.9%
github.com/konveyor/crane/e2e-tests/utils/utils.go:907:			normalizeServiceAccountDockercfgReferences				94.1%
github.com/konveyor/crane/e2e-tests/utils/utils.go:941:			normalizeWithPath							81.0%
github.com/konveyor/crane/e2e-tests/utils/utils.go:984:			shouldDropField								100.0%
github.com/konveyor/crane/e2e-tests/utils/utils.go:1040:		AssertWhiteoutResourceFilesExist					0.0%
github.com/konveyor/crane/e2e-tests/utils/utils.go:1080:		AssertWhiteoutResourceFileCount						0.0%
github.com/konveyor/crane/e2e-tests/utils/utils.go:1112:		AssertWhiteoutCommentsInKustomization					0.0%
github.com/konveyor/crane/e2e-tests/utils/utils.go:1167:		AssertKindsNotInActiveKustomizeResources				0.0%
github.com/konveyor/crane/e2e-tests/utils/utils.go:1209:		CaptureAPISurfaceScriptPath						75.0%
github.com/konveyor/crane/e2e-tests/utils/utils.go:1228:		ToInt64									0.0%
github.com/konveyor/crane/e2e-tests/utils/utils.go:1245:		ExtractCPUAverageUtilization						0.0%
github.com/konveyor/crane/e2e-tests/utils/utils.go:1278:		AssertFilesExist							0.0%
github.com/konveyor/crane/e2e-tests/utils/utils.go:1304:		RemapNamespaceInYAML							0.0%
github.com/konveyor/crane/e2e-tests/utils/utils.go:1332:		ParseValidationReport							0.0%
github.com/konveyor/crane/e2e-tests/utils/utils_validate.go:34:		VerifyValidateResults							0.0%
github.com/konveyor/crane/internal/apply/kustomize.go:31:		ApplySingleStage							0.0%
github.com/konveyor/crane/internal/apply/kustomize.go:89:		ApplyMultiStage								0.0%
github.com/konveyor/crane/internal/apply/kustomize.go:153:		runKustomizeBuild							0.0%
github.com/konveyor/crane/internal/apply/kustomize.go:162:		filterClusterScopedResources						70.0%
github.com/konveyor/crane/internal/apply/kustomize.go:224:		splitMultiDocYAMLToFiles						77.4%
github.com/konveyor/crane/internal/buildinfo/buildinfo.go:25:		readKustomizeVersion							100.0%
github.com/konveyor/crane/internal/cli/banner.go:8:			PrintTransferBanner							100.0%
github.com/konveyor/crane/internal/cli/phase.go:17:			NewPhaseTracker								100.0%
github.com/konveyor/crane/internal/cli/phase.go:25:			Start									100.0%
github.com/konveyor/crane/internal/cli/phase.go:31:			End									100.0%
github.com/konveyor/crane/internal/cli/phase.go:39:			Fail									100.0%
github.com/konveyor/crane/internal/cli/phase.go:45:			Elapsed									100.0%
github.com/konveyor/crane/internal/cli/summary.go:14:			PrintTransferSummary							100.0%
github.com/konveyor/crane/internal/file/file_helper.go:23:		ReadFiles								100.0%
github.com/konveyor/crane/internal/file/file_helper.go:33:		readFiles								84.6%
github.com/konveyor/crane/internal/file/file_helper.go:93:		GetWhiteOutFilePath							100.0%
github.com/konveyor/crane/internal/file/file_helper.go:97:		GetTransformPath							100.0%
github.com/konveyor/crane/internal/file/file_helper.go:101:		updateTransformDirPath							100.0%
github.com/konveyor/crane/internal/file/file_helper.go:105:		updatePath								100.0%
github.com/konveyor/crane/internal/file/file_helper.go:112:		GetOutputFilePath							100.0%
github.com/konveyor/crane/internal/file/file_helper.go:122:		GetStageDir								100.0%
github.com/konveyor/crane/internal/file/file_helper.go:128:		GetInputDir								100.0%
github.com/konveyor/crane/internal/file/file_helper.go:134:		GetNewResourcesDir							0.0%
github.com/konveyor/crane/internal/file/file_helper.go:140:		GetPatchesDir								100.0%
github.com/konveyor/crane/internal/file/file_helper.go:146:		GetKustomizationPath							100.0%
github.com/konveyor/crane/internal/file/file_helper.go:152:		GetMetadataPath								100.0%
github.com/konveyor/crane/internal/file/file_helper.go:158:		GetResourceTypeFilePath							100.0%
github.com/konveyor/crane/internal/file/file_helper.go:164:		GetPatchFilePath							100.0%
github.com/konveyor/crane/internal/file/file_helper.go:171:		GetStageTransformDir							0.0%
github.com/konveyor/crane/internal/file/file_helper.go:177:		GetStageOutputDir							0.0%
github.com/konveyor/crane/internal/file/file_helper.go:184:		sanitizeFilename							100.0%
github.com/konveyor/crane/internal/file/file_helper.go:202:		GetResourceFilename							100.0%
github.com/konveyor/crane/internal/file/ordering.go:82:			GetResourceOrder							100.0%
github.com/konveyor/crane/internal/file/ordering.go:92:			GetOrderedResourceFilename						100.0%
github.com/konveyor/crane/internal/flags/global_flags.go:15:		ApplyFlags								0.0%
github.com/konveyor/crane/internal/flags/global_flags.go:23:		GetLoggerOrDefault							0.0%
github.com/konveyor/crane/internal/flags/global_flags.go:30:		GetLogger								0.0%
github.com/konveyor/crane/internal/flags/global_flags.go:40:		initConfig								0.0%
github.com/konveyor/crane/internal/flags/help_groups.go:12:		KubernetesClientInheritedFlagNames					0.0%
github.com/konveyor/crane/internal/flags/help_groups.go:40:		SetGroupedHelp								0.0%
github.com/konveyor/crane/internal/kustomize/args.go:20:		ParseAndValidateArgs							100.0%
github.com/konveyor/crane/internal/kustomize/args.go:92:		splitArgs								100.0%
github.com/konveyor/crane/internal/kustomize/runner.go:21:		Build									69.6%
github.com/konveyor/crane/internal/kustomize/runner.go:61:		buildOptions								100.0%
github.com/konveyor/crane/internal/kustomize/runner.go:115:		setEnvVars								46.2%
github.com/konveyor/crane/internal/plugin/plugin_helper.go:21:		GetPlugins								0.0%
github.com/konveyor/crane/internal/plugin/plugin_helper.go:38:		getBinaryPlugins							0.0%
github.com/konveyor/crane/internal/plugin/plugin_helper.go:63:		IsExecAny								0.0%
github.com/konveyor/crane/internal/plugin/plugin_helper.go:67:		GetFilteredPlugins							0.0%
github.com/konveyor/crane/internal/plugin/plugin_helper.go:109:		isPluginInList								0.0%
github.com/konveyor/crane/internal/plugin/plugin_manager_helper.go:24:	BuildManifestMap							0.0%
github.com/konveyor/crane/internal/plugin/plugin_manager_helper.go:69:	GetYamlFromUrl								75.0%
github.com/konveyor/crane/internal/plugin/plugin_manager_helper.go:83:	YamlToManifest								72.7%
github.com/konveyor/crane/internal/plugin/plugin_manager_helper.go:105:	FilterPluginForOsArch							100.0%
github.com/konveyor/crane/internal/plugin/plugin_manager_helper.go:120:	GetDefaultSource							0.0%
github.com/konveyor/crane/internal/plugin/plugin_manager_helper.go:129:	LocateBinaryInPluginDir							0.0%
github.com/konveyor/crane/internal/plugin/plugin_manager_helper.go:141:	IsUrl									100.0%
github.com/konveyor/crane/internal/plugin/plugin_manager_helper.go:147:	getData									80.0%
github.com/konveyor/crane/internal/transform/instructions.go:43:	UnmarshalYAML								90.5%
github.com/konveyor/crane/internal/transform/instructions.go:88:	LoadInstructions							76.5%
github.com/konveyor/crane/internal/transform/instructions.go:119:	friendlyInstructionsDecodeError						100.0%
github.com/konveyor/crane/internal/transform/instructions.go:134:	ValidateInstructions							100.0%
github.com/konveyor/crane/internal/transform/instructions.go:167:	StageNames								100.0%
github.com/konveyor/crane/internal/transform/instructions.go:177:	StageOptionals								100.0%
github.com/konveyor/crane/internal/transform/instructions.go:197:	GenerateStageDirNames							100.0%
github.com/konveyor/crane/internal/transform/orchestrator.go:48:	validateStageOptionalFlags						100.0%
github.com/konveyor/crane/internal/transform/orchestrator.go:69:	resolveOptionalFlags							100.0%
github.com/konveyor/crane/internal/transform/orchestrator.go:92:	RunMultiStage								63.2%
github.com/konveyor/crane/internal/transform/orchestrator.go:207:	executeStage								59.1%
github.com/konveyor/crane/internal/transform/orchestrator.go:257:	transformResources							73.7%
github.com/konveyor/crane/internal/transform/orchestrator.go:351:	formatResourceID							0.0%
github.com/konveyor/crane/internal/transform/orchestrator.go:358:	getPluginForStage							83.3%
github.com/konveyor/crane/internal/transform/orchestrator.go:386:	getAvailablePluginNames							0.0%
github.com/konveyor/crane/internal/transform/orchestrator.go:399:	applyStageTransforms							71.4%
github.com/konveyor/crane/internal/transform/orchestrator.go:473:	loadResourcesFromDirectory						75.0%
github.com/konveyor/crane/internal/transform/orchestrator.go:489:	writeResourcesToDirectory						61.3%
github.com/konveyor/crane/internal/transform/stages.go:22:		DiscoverStages								90.5%
github.com/konveyor/crane/internal/transform/stages.go:83:		FilterStages								100.0%
github.com/konveyor/crane/internal/transform/stages.go:112:		GetFirstStage								100.0%
github.com/konveyor/crane/internal/transform/stages.go:122:		GetLastStage								66.7%
github.com/konveyor/crane/internal/transform/stages.go:132:		GetPreviousStage							100.0%
github.com/konveyor/crane/internal/transform/stages.go:142:		GetNextStage								100.0%
github.com/konveyor/crane/internal/transform/stages.go:152:		ValidateStageName							100.0%
github.com/konveyor/crane/internal/transform/stages.go:161:		GenerateStageName							100.0%
github.com/konveyor/crane/internal/transform/test_helpers.go:8:		hasKustomizeCommand							100.0%
github.com/konveyor/crane/internal/transform/test_helpers.go:14:	contains								100.0%
github.com/konveyor/crane/internal/transform/test_helpers.go:23:	findInString								100.0%
github.com/konveyor/crane/internal/transform/writer.go:27:		NewKustomizeWriter							100.0%
github.com/konveyor/crane/internal/transform/writer.go:36:		WriteStage								67.0%
github.com/konveyor/crane/internal/transform/writer.go:254:		getResourceID								100.0%
github.com/konveyor/crane/internal/transform/writer.go:267:		filterValidRemoveOps							76.2%
github.com/konveyor/crane/internal/transform/writer.go:311:		pathExists								93.5%
github.com/konveyor/crane/internal/transform/writer.go:388:		generateKustomizationWithComments					88.2%
github.com/konveyor/crane/internal/transform/writer.go:420:		checkStageDirectory							17.6%
github.com/konveyor/crane/internal/validate/api_resources.go:24:	ParseAPIResourcesJSON							88.2%
github.com/konveyor/crane/internal/validate/matcher.go:25:		MatchResults								75.0%
github.com/konveyor/crane/internal/validate/matcher.go:36:		MatchResultsFromIndex							100.0%
github.com/konveyor/crane/internal/validate/matcher.go:76:		buildDiscoveryIndex							62.5%
github.com/konveyor/crane/internal/validate/matcher.go:113:		matchEntry								100.0%
github.com/konveyor/crane/internal/validate/matcher.go:142:		buildKindIndex								100.0%
github.com/konveyor/crane/internal/validate/matcher.go:154:		addSuggestion								91.7%
github.com/konveyor/crane/internal/validate/report.go:17:		FormatTable								91.3%
github.com/konveyor/crane/internal/validate/report.go:60:		FormatJSON								100.0%
github.com/konveyor/crane/internal/validate/report.go:67:		FormatYAML								0.0%
github.com/konveyor/crane/internal/validate/report.go:79:		WriteFailures								0.0%
github.com/konveyor/crane/internal/validate/report.go:118:		failureFileName								0.0%
github.com/konveyor/crane/internal/validate/report.go:132:		safeFilePart								0.0%
github.com/konveyor/crane/internal/validate/report.go:148:		parseAPIVersion								0.0%
github.com/konveyor/crane/internal/validate/scanner.go:34:		ScanManifests								72.2%
github.com/konveyor/crane/internal/validate/types.go:46:		HasIncompatible								100.0%
github.com/konveyor/crane/internal/validate/types.go:49:		IncompatibleResults							0.0%
github.com/konveyor/crane/main.go:22:					main									0.0%
total:									(statements)								48.9%

Posted by CI

@msajidmansoori12

Copy link
Copy Markdown
Contributor Author

/rfr

@msajidmansoori12

Copy link
Copy Markdown
Contributor Author
Screenshot 2026-09-02 at 2 49 05 PM Sample digest output

@Tamar-Dinavetsky Tamar-Dinavetsky left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm

@msajidmansoori12
msajidmansoori12 merged commit d8a2f2d into migtools:main Sep 3, 2026
16 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Update PR digest to show PR age and filter stale PRs

2 participants