feat: add business partner link to case studies - #226
Conversation
- Add business-partner module with logo and website fields - Add partner relationship field to case studies - Display partnership section on case study detail pages - Style partnership box with responsive layout - Add partner logo and link functionality
WalkthroughAdds a new Possibly related PRs
Pre-merge checks❌ Failed checks (1 warning)
✅ Passed checks (2 passed)
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. Comment |
🔍 Vulnerabilities of
|
| digest | sha256:e67ea4289ee48ff7fcd5b383c33886a17a6aef3be258714bdf9560c94a9a6a36 |
| vulnerabilities | |
| platform | linux/amd64 |
| size | 291 MB |
| packages | 985 |
📦 Base Image node:23-alpine
| also known as |
|
| digest | sha256:b9d38d589853406ff0d4364f21969840c3e0397087643aef8eede40edbb6c7cd |
| vulnerabilities |
Description
| ||||||||||||||||||||||||
Description
Description
| ||||||||||||||||||||||||
Description
| ||||||||||||||||||||||||
Description
| ||||||||||||||||||||||||
Description
| ||||||||||||||||||||||||
Description
| ||||||||||||||||||||||||
Description
| ||||||||||||||||||||||||
Description
| ||||||||||||||||||||||||
Description
| ||||||||||||||||||||||||
Description
| ||||||||||||||||||||||||
Description
|
There was a problem hiding this comment.
Actionable comments posted: 2
📜 Review details
Configuration used: CodeRabbit UI
Review profile: ASSERTIVE
Plan: Pro
📒 Files selected for processing (5)
website/app.js(1 hunks)website/modules/@apostrophecms/admin-bar/index.js(1 hunks)website/modules/asset/ui/src/scss/_cases.scss(1 hunks)website/modules/business-partner/index.js(1 hunks)website/modules/case-studies/index.js(2 hunks)
🧰 Additional context used
🧠 Learnings (4)
📚 Learning: 2025-05-14T09:44:56.398Z
Learnt from: yuramax
Repo: speedandfunction/website PR: 84
File: website/modules/case-studies-page/views/index.html:87-90
Timestamp: 2025-05-14T09:44:56.398Z
Learning: For the Case Study cards in website/modules/case-studies-page/views/index.html, the "type" and "industry" fields are temporarily hard-coded with values "Mobile Development" and "Manufacturing" as placeholders. These will be replaced with dynamic data ({{ article.type }} and {{ article.industry }}) in a future task.
Applied to files:
website/modules/case-studies/index.js
📚 Learning: 2025-08-29T09:36:15.180Z
Learnt from: Anton-88
Repo: speedandfunction/website PR: 223
File: website/modules/asset/ui/src/scss/_cases.scss:1289-1296
Timestamp: 2025-08-29T09:36:15.180Z
Learning: In website/modules/asset/ui/src/scss/_cases.scss, the user Anton-88 prefers to keep position: sticky for the .filter-modal__content despite potential technical concerns, citing the complicated modal structure as the reason.
Applied to files:
website/modules/asset/ui/src/scss/_cases.scss
📚 Learning: 2025-05-29T07:16:52.843Z
Learnt from: IhorMasechko
Repo: speedandfunction/website PR: 132
File: website/modules/asset/ui/src/scss/_not-found.scss:52-64
Timestamp: 2025-05-29T07:16:52.843Z
Learning: In website/modules/asset/ui/src/scss/_not-found.scss, the .two-buttons container with flex-direction: row and child .sf-button elements having width: 100% does not cause overflow issues and renders correctly, despite theoretical expectations.
Applied to files:
website/modules/asset/ui/src/scss/_cases.scss
📚 Learning: 2025-05-26T15:57:01.766Z
Learnt from: yuramax
Repo: speedandfunction/website PR: 121
File: website/modules/asset/ui/src/scss/_vacancies.scss:99-102
Timestamp: 2025-05-26T15:57:01.766Z
Learning: In website/modules/asset/ui/src/scss/_vacancies.scss, the margin shorthand (e.g., `margin: 0 0 8px`) in `.sf-vacancies_footer h2` is intentionally used to reset all margins and set specific bottom margins, rather than using `margin-bottom` alone. This approach ensures clean baseline styling that doesn't inherit unwanted margins, while still allowing the sibling selector `.vacancy-card + .sf-vacancies_footer h2` to add top margins when a vacancy card precedes the footer.
Applied to files:
website/modules/asset/ui/src/scss/_cases.scss
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (4)
- GitHub Check: e2e-tests
- GitHub Check: lint
- GitHub Check: unit-tests
- GitHub Check: security-scan
🔇 Additional comments (1)
website/modules/case-studies/index.js (1)
53-67: No issues found with the_partnerrelationship field configuration. ApostropheCMS relationship builders'projectoption correctly supports area field projections. The codebase already demonstrates this pattern working successfully elsewhere—the testimonials module projects thepicturearea field using the same syntax (picture: 1). ThepartnerLogoarea field will be fetched correctly with the current projection.Likely an incorrect or invalid review comment.
There was a problem hiding this comment.
Actionable comments posted: 2
📜 Review details
Configuration used: CodeRabbit UI
Review profile: ASSERTIVE
Plan: Pro
📒 Files selected for processing (1)
website/modules/case-studies-page/views/show.html(1 hunks)
🧰 Additional context used
🧠 Learnings (2)
📓 Common learnings
Learnt from: yuramax
Repo: speedandfunction/website PR: 84
File: website/modules/case-studies-page/views/index.html:87-90
Timestamp: 2025-05-14T09:44:56.398Z
Learning: For the Case Study cards in website/modules/case-studies-page/views/index.html, the "type" and "industry" fields are temporarily hard-coded with values "Mobile Development" and "Manufacturing" as placeholders. These will be replaced with dynamic data ({{ article.type }} and {{ article.industry }}) in a future task.
📚 Learning: 2025-05-14T09:44:56.398Z
Learnt from: yuramax
Repo: speedandfunction/website PR: 84
File: website/modules/case-studies-page/views/index.html:87-90
Timestamp: 2025-05-14T09:44:56.398Z
Learning: For the Case Study cards in website/modules/case-studies-page/views/index.html, the "type" and "industry" fields are temporarily hard-coded with values "Mobile Development" and "Manufacturing" as placeholders. These will be replaced with dynamic data ({{ article.type }} and {{ article.industry }}) in a future task.
Applied to files:
website/modules/case-studies-page/views/show.html
There was a problem hiding this comment.
Actionable comments posted: 1
📜 Review details
Configuration used: CodeRabbit UI
Review profile: ASSERTIVE
Plan: Pro
📒 Files selected for processing (3)
website/modules/asset/ui/src/scss/_cases.scss(1 hunks)website/modules/business-partner/index.js(1 hunks)website/modules/case-studies-page/views/show.html(1 hunks)
🧰 Additional context used
🧠 Learnings (6)
📓 Common learnings
Learnt from: IhorMasechko
Repo: speedandfunction/website PR: 226
File: website/modules/asset/ui/src/scss/_cases.scss:1399-1414
Timestamp: 2025-12-05T10:45:00.474Z
Learning: In website/modules/asset/ui/src/scss/_cases.scss, the .cs_partnership element intentionally uses min-width: 430px as per specific task requirements, even though this may cause horizontal overflow on small mobile devices (320px-375px viewports). This is an intentional design decision.
Learnt from: yuramax
Repo: speedandfunction/website PR: 84
File: website/modules/case-studies-page/views/index.html:87-90
Timestamp: 2025-05-14T09:44:56.398Z
Learning: For the Case Study cards in website/modules/case-studies-page/views/index.html, the "type" and "industry" fields are temporarily hard-coded with values "Mobile Development" and "Manufacturing" as placeholders. These will be replaced with dynamic data ({{ article.type }} and {{ article.industry }}) in a future task.
📚 Learning: 2025-12-05T10:45:00.474Z
Learnt from: IhorMasechko
Repo: speedandfunction/website PR: 226
File: website/modules/asset/ui/src/scss/_cases.scss:1399-1414
Timestamp: 2025-12-05T10:45:00.474Z
Learning: In website/modules/asset/ui/src/scss/_cases.scss, the .cs_partnership element intentionally uses min-width: 430px as per specific task requirements, even though this may cause horizontal overflow on small mobile devices (320px-375px viewports). This is an intentional design decision.
Applied to files:
website/modules/case-studies-page/views/show.htmlwebsite/modules/asset/ui/src/scss/_cases.scss
📚 Learning: 2025-08-29T09:36:15.180Z
Learnt from: Anton-88
Repo: speedandfunction/website PR: 223
File: website/modules/asset/ui/src/scss/_cases.scss:1289-1296
Timestamp: 2025-08-29T09:36:15.180Z
Learning: In website/modules/asset/ui/src/scss/_cases.scss, the user Anton-88 prefers to keep position: sticky for the .filter-modal__content despite potential technical concerns, citing the complicated modal structure as the reason.
Applied to files:
website/modules/asset/ui/src/scss/_cases.scss
📚 Learning: 2025-05-29T07:16:52.843Z
Learnt from: IhorMasechko
Repo: speedandfunction/website PR: 132
File: website/modules/asset/ui/src/scss/_not-found.scss:52-64
Timestamp: 2025-05-29T07:16:52.843Z
Learning: In website/modules/asset/ui/src/scss/_not-found.scss, the .two-buttons container with flex-direction: row and child .sf-button elements having width: 100% does not cause overflow issues and renders correctly, despite theoretical expectations.
Applied to files:
website/modules/asset/ui/src/scss/_cases.scss
📚 Learning: 2025-07-02T08:15:36.173Z
Learnt from: yuramax
Repo: speedandfunction/website PR: 191
File: website/modules/asset/ui/src/scss/_leadership-team.scss:213-216
Timestamp: 2025-07-02T08:15:36.173Z
Learning: In website/modules/asset/ui/src/scss/_leadership-team.scss, the `.leader-bio` element intentionally uses `overflow-y: hidden` at the `breakpoint-extra-large` level to completely remove scrollbars on desktop devices, while maintaining `overflow-y: auto` at the `breakpoint-large` level for tablets. This design decision relies on content managers controlling bio text length to prevent overflow on desktop, ensuring a clean scrollbar-free experience on larger screens.
Applied to files:
website/modules/asset/ui/src/scss/_cases.scss
📚 Learning: 2025-05-26T15:57:01.766Z
Learnt from: yuramax
Repo: speedandfunction/website PR: 121
File: website/modules/asset/ui/src/scss/_vacancies.scss:99-102
Timestamp: 2025-05-26T15:57:01.766Z
Learning: In website/modules/asset/ui/src/scss/_vacancies.scss, the margin shorthand (e.g., `margin: 0 0 8px`) in `.sf-vacancies_footer h2` is intentionally used to reset all margins and set specific bottom margins, rather than using `margin-bottom` alone. This approach ensures clean baseline styling that doesn't inherit unwanted margins, while still allowing the sibling selector `.vacancy-card + .sf-vacancies_footer h2` to add top margins when a vacancy card precedes the footer.
Applied to files:
website/modules/asset/ui/src/scss/_cases.scss
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (2)
- GitHub Check: security-scan
- GitHub Check: e2e-tests
There was a problem hiding this comment.
Actionable comments posted: 3
♻️ Duplicate comments (3)
export/aposNotifications.json (1)
1-5: Same file structure issue as export/sessions.json.This file has identical NDJSON format parsing errors. See review comment for
export/sessions.jsonfor resolution options.export/aposAttachments.json (1)
1-118: Same file structure issue as export/sessions.json.This NDJSON file has the same parsing conflict with Biome. Resolve the linting configuration as described in the
export/sessions.jsonreview comment.export/aposJobs.json (1)
1-145: Same file structure issue as export/sessions.json.This NDJSON file has the same parsing conflict with Biome (145 reported errors). Resolve the linting configuration as described in the
export/sessions.jsonreview comment.
📜 Review details
Configuration used: CodeRabbit UI
Review profile: ASSERTIVE
Plan: Pro
📒 Files selected for processing (7)
.github/workflows/code-quality.yml(1 hunks)export/aposAttachments.json(1 hunks)export/aposFormSubmissions.json(1 hunks)export/aposJobs.json(1 hunks)export/aposMigrations.json(1 hunks)export/aposNotifications.json(1 hunks)export/sessions.json(1 hunks)
🧰 Additional context used
🧠 Learnings (2)
📓 Common learnings
Learnt from: yuramax
Repo: speedandfunction/website PR: 84
File: website/modules/case-studies-page/views/index.html:87-90
Timestamp: 2025-05-14T09:44:56.398Z
Learning: For the Case Study cards in website/modules/case-studies-page/views/index.html, the "type" and "industry" fields are temporarily hard-coded with values "Mobile Development" and "Manufacturing" as placeholders. These will be replaced with dynamic data ({{ article.type }} and {{ article.industry }}) in a future task.
Learnt from: IhorMasechko
Repo: speedandfunction/website PR: 226
File: website/modules/asset/ui/src/scss/_cases.scss:1399-1414
Timestamp: 2025-12-05T10:45:00.494Z
Learning: In website/modules/asset/ui/src/scss/_cases.scss, the .cs_partnership element intentionally uses min-width: 430px as per specific task requirements, even though this may cause horizontal overflow on small mobile devices (320px-375px viewports). This is an intentional design decision.
📚 Learning: 2025-06-09T16:52:54.510Z
Learnt from: IhorMasechko
Repo: speedandfunction/website PR: 154
File: website/modules/case-studies-page/services/UrlService.js:102-116
Timestamp: 2025-06-09T16:52:54.510Z
Learning: When reviewing ApostropheCMS code, eslint-disable comments for `no-underscore-dangle` are often necessary and appropriate when accessing framework-provided properties like `_url`, as they conflict with general JavaScript linting rules but follow ApostropheCMS conventions.
Applied to files:
export/aposMigrations.json
🪛 Biome (2.1.2)
export/aposAttachments.json
[error] 1-2: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 2-3: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 3-4: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 4-5: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 5-6: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 6-7: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 7-8: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 8-9: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 9-10: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 10-11: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 11-12: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 12-13: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 13-14: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 14-15: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 15-16: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 16-17: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 17-18: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 18-19: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 19-20: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 20-21: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 21-22: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 22-23: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 23-24: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 24-25: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 25-26: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 26-27: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 27-28: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 28-29: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 29-30: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 30-31: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 31-32: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 32-33: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 33-34: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 34-35: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 35-36: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 36-37: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 37-38: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 38-40: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 40-41: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 41-42: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 42-43: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 43-44: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 44-45: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 45-46: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 46-47: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 47-48: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 48-49: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 49-50: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 50-51: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 51-52: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 52-53: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 53-54: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 54-55: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 55-56: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 56-57: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 57-58: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 58-59: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 59-60: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 60-61: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 61-62: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 62-63: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 63-64: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 64-65: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 65-66: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 66-67: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 67-68: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 68-69: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 69-70: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 70-71: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 71-72: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 72-73: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 73-74: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 74-75: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 75-76: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 76-77: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 77-78: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 78-79: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 79-80: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 80-81: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 81-82: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 82-83: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 83-84: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 84-85: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 85-86: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 86-87: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 87-88: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 88-89: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 89-90: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 90-91: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 91-92: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 92-93: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 93-94: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 94-95: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 95-96: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 96-97: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 97-98: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 98-99: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 99-100: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 100-101: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 101-102: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 102-103: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 103-104: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 104-105: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 105-106: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 106-107: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 107-108: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 108-109: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 109-110: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 110-111: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 111-112: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 112-113: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 113-114: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 114-115: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 115-116: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 116-117: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 117-118: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
export/aposNotifications.json
[error] 1-2: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 2-3: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 3-4: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 4-5: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
export/sessions.json
[error] 1-2: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 2-3: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 3-4: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 4-5: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
export/aposJobs.json
[error] 1-2: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 2-3: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 3-4: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 4-5: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 5-6: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 6-7: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 7-8: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 8-9: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 9-10: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 10-11: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 11-12: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 12-13: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 13-14: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 14-15: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 15-16: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 16-17: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 17-18: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 18-19: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 19-20: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 20-21: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 21-22: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 22-23: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 23-24: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 24-25: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 25-26: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 26-27: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 27-28: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 28-29: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 29-30: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 30-31: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 31-32: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 32-33: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 33-34: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 34-35: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 35-36: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 36-37: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 37-38: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 38-39: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 39-40: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 40-41: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 41-42: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 42-43: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 43-44: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 44-45: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 45-46: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 46-47: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 47-48: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 48-49: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 49-50: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 50-51: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 51-52: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 52-53: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 53-54: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 54-55: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 55-56: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 56-57: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 57-58: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 58-59: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 59-60: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 60-61: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 61-62: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 62-63: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 63-64: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 64-65: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 65-66: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 66-67: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 67-68: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 68-69: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 69-70: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 70-71: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 71-72: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 72-73: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 73-74: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 74-75: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 75-76: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 76-77: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 77-78: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 78-79: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 79-80: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 80-81: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 81-82: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 82-83: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 83-84: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 84-85: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 85-86: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 86-87: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 87-88: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 88-89: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 89-90: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 90-91: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 91-92: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 92-93: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 93-94: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 94-95: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 95-96: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 96-97: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 97-98: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 98-99: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 99-100: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 100-101: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 101-102: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 102-103: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 103-104: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 104-105: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 105-106: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 106-107: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 107-108: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 108-109: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 109-110: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 110-111: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 111-112: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 112-113: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 113-114: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 114-115: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 115-116: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 116-117: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 117-118: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 118-119: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 119-120: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 120-121: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 121-122: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 122-123: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 123-124: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 124-125: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 125-126: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 126-127: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 127-128: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 128-129: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 129-130: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 130-131: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 131-132: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 132-133: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 133-134: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 134-135: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 135-136: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 136-137: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 137-138: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 138-139: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 139-140: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 140-141: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 141-142: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 142-143: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 143-144: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 144-145: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
export/aposFormSubmissions.json
[error] 1-2: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 2-3: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 3-4: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 4-5: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 5-6: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 6-7: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 7-8: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 8-9: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 9-10: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 10-11: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 11-12: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
export/aposMigrations.json
[error] 1-2: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 2-3: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 3-4: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 4-5: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 5-6: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 6-7: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 7-8: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 8-9: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 9-10: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 10-11: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 11-12: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 12-13: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 13-14: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 14-15: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 15-16: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 16-17: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 17-18: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 18-19: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 19-20: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 20-21: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 21-22: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 22-23: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 23-24: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 24-25: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (4)
- GitHub Check: e2e-tests
- GitHub Check: unit-tests
- GitHub Check: security-scan
- GitHub Check: lint
🔇 Additional comments (1)
export/aposMigrations.json (1)
1-25: The file format is correct and intentional. Theexport_mongodb.shscript uses MongoDB's nativemongoexporttool, which exports collections in NDJSON (newline-delimited JSON) format. This is the standard output format ofmongoexportregardless of the.jsonextension. The same format is consistently used across the project (e.g.,aposDocs.jsonfollows the same pattern). No changes are required.Likely an incorrect or invalid review comment.
3ccfe74 to
3f48f58
Compare
There was a problem hiding this comment.
Actionable comments posted: 1
📜 Review details
Configuration used: CodeRabbit UI
Review profile: ASSERTIVE
Plan: Pro
📒 Files selected for processing (1)
.github/workflows/code-quality.yml(2 hunks)
🧰 Additional context used
🧠 Learnings (2)
📚 Learning: 2025-06-03T16:27:46.172Z
Learnt from: yuramax
Repo: speedandfunction/website PR: 139
File: website/jest.config.cjs:4-4
Timestamp: 2025-06-03T16:27:46.172Z
Learning: When reviewing PRs, focus suggestions on the main objectives stated in the PR description. Skip suggestions for incidental changes that are unrelated to the PR's primary purpose, especially when the user explicitly requests to stay focused on the main feature/improvement.
Applied to files:
.github/workflows/code-quality.yml
📚 Learning: 2025-05-26T06:19:32.209Z
Learnt from: yuramax
Repo: speedandfunction/website PR: 120
File: website/modules/asset/ui/src/index.js:43-67
Timestamp: 2025-05-26T06:19:32.209Z
Learning: When reviewing PRs focused on styling, defer functional JavaScript improvements to separate tasks to maintain clear scope separation.
Applied to files:
.github/workflows/code-quality.yml
🪛 actionlint (1.7.9)
.github/workflows/code-quality.yml
13-13: could not parse as YAML: mapping values are not allowed in this context
(syntax-check)
🪛 YAMLlint (1.37.1)
.github/workflows/code-quality.yml
[error] 13-13: syntax error: mapping values are not allowed here
(syntax)
🔇 Additional comments (1)
.github/workflows/code-quality.yml (1)
11-13: Reconsider top-levelpull-requests: readscope.A previous review flagged that the top-level
pull-requests: readpermission is overly broad and violates the principle of least privilege. Most jobs (docker-lint,unit-tests,lint,security-scan) do not require PR-level access. Consider removing it from the top level and adding it only to jobs that genuinely need it (likelysonarqubeande2e-tests).If
pull-requests: readis essential for the business-partner feature addition (per PR objectives), please clarify which jobs actually require it so permissions can be properly scoped.
add vars.SONAR_DISABLE_CI
Add verbose logging
Add pull request parameters to SonarQube scan
Configure SonarCloud settings in code-quality.yml
There was a problem hiding this comment.
Actionable comments posted: 1
📜 Review details
Configuration used: CodeRabbit UI
Review profile: ASSERTIVE
Plan: Pro
📒 Files selected for processing (1)
.github/workflows/code-quality.yml(2 hunks)
🧰 Additional context used
🧠 Learnings (2)
📚 Learning: 2025-06-03T16:27:46.172Z
Learnt from: yuramax
Repo: speedandfunction/website PR: 139
File: website/jest.config.cjs:4-4
Timestamp: 2025-06-03T16:27:46.172Z
Learning: When reviewing PRs, focus suggestions on the main objectives stated in the PR description. Skip suggestions for incidental changes that are unrelated to the PR's primary purpose, especially when the user explicitly requests to stay focused on the main feature/improvement.
Applied to files:
.github/workflows/code-quality.yml
📚 Learning: 2025-05-26T06:19:32.209Z
Learnt from: yuramax
Repo: speedandfunction/website PR: 120
File: website/modules/asset/ui/src/index.js:43-67
Timestamp: 2025-05-26T06:19:32.209Z
Learning: When reviewing PRs focused on styling, defer functional JavaScript improvements to separate tasks to maintain clear scope separation.
Applied to files:
.github/workflows/code-quality.yml
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (4)
- GitHub Check: security-scan
- GitHub Check: lint
- GitHub Check: e2e-tests
- GitHub Check: unit-tests
Introduces a business-partner module enabling case studies to link partners. Adds business-partner piece-type with logo and website fields, integrates partner relationship field into case studies, displays partnership section on case study detail pages with logo and external link, and implements responsive styling with hover effects.