Skip to content

Conversation

@eric-jy-park
Copy link
Member

๐Ÿ“Œ PR ์ œ๋ชฉ

  • dev -> prod

๐Ÿ“‹ ์ž‘์—… ๋‚ด์šฉ

  • ๋ฌด์—‡์„ ํ–ˆ๋Š”์ง€ ์ ์–ด์ฃผ์„ธ์š”.

โœ… ์ฒดํฌ๋ฆฌ์ŠคํŠธ

  • ํ…Œ์ŠคํŠธ๋ฅผ ์™„๋ฃŒํ–ˆ๋‚˜์š”?
  • ์ฝ”๋“œ ์ปจ๋ฒค์…˜์„ ์ง€์ผฐ๋‚˜์š”?
  • ๊ด€๋ จ ๋ฌธ์„œ๋ฅผ ์—…๋ฐ์ดํŠธ ํ–ˆ๋‚˜์š”?

๐Ÿšจ ์ฃผ์˜์‚ฌํ•ญ

  • ๋ฆฌ๋ทฐ์–ด๊ฐ€ ์ฃผ์˜๊นŠ๊ฒŒ ๋ด์•ผํ•  ๋ถ€๋ถ„์ด ์žˆ๋‹ค๋ฉด ์ ์–ด์ฃผ์„ธ์š”.

eric-jy-park and others added 30 commits July 22, 2025 16:27
feat: ๊ฐœ๋ฐœ ํ™˜๊ฒฝ ์„œ๋ฒ„ CICD ์„ค์ • ์ถ”๊ฐ€
docs: ์ด์Šˆ ํ…œํ”Œ๋ฆฟ ์ถ”๊ฐ€
fix: ํ•„์š”ํ•œ ํ•„๋“œ ์ถ”๊ฐ€
fix: sr before๋ฅผ not nullable๋กœ ๋ณ€๊ฒฝ
feat: ์˜จ๋ณด๋”ฉ ์‹œ ์œ ์ €์˜ ์˜ˆ์ƒ ํ‹ฐ์–ด๋ฅผ ์„ ํƒํ•˜๋Š” API ๊ตฌํ˜„
โ€ฆ-api

feat: ์นด์นด์˜ค ์†Œ์…œ ๋กœ๊ทธ์ธ ๋ฐ ์‚ฌ์šฉ์ž ์˜จ๋ณด๋”ฉ ์‹œ์Šคํ…œ ๊ตฌํ˜„
feat: ์ „์—ญ ์˜ˆ์™ธ์ฒ˜๋ฆฌ ๋ฐ ๊ณตํ†ต ApiResult ๊ตฌํ˜„
eric-jy-park and others added 25 commits August 16, 2025 22:44
feat: add new api with additional field for response
feat: ๋„์ „๊ธฐ๋ก ์กฐํšŒ API
feat: add gym level field to route mission
fix: ์ธ์ฆ ์˜ˆ์™ธ์ฒ˜๋ฆฌ ๋ฐฉ์‹ ๋ณ€๊ฒฝ
โ€ฆ-for-user

feat: ์œ ์ € ๊ธฐ๋ณธ ํ”„๋กœํ•„์ด๋ฏธ์ง€ ๋žœ๋ค ์ƒ์„ฑ
@eric-jy-park eric-jy-park requested review from 1117mg and Copilot August 20, 2025 05:12
@eric-jy-park eric-jy-park self-assigned this Aug 20, 2025
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull Request Overview

This appears to be a significant development-to-production deployment that introduces a comprehensive climbing gym platform application. The PR involves the creation of an entirely new Spring Boot application with OAuth2 authentication, climbing gym management, user sessions, route missions, and recommendation systems.

  • Complete application infrastructure with authentication, Discord notifications, and file upload capabilities
  • Core business entities including users, gyms, levels, route missions, and user sessions
  • RESTful API endpoints for gym management, user onboarding, and mission recommendations

Reviewed Changes

Copilot reviewed 167 out of 170 changed files in this pull request and generated 6 comments.

Show a summary per file
File Description
src/main/resources/logback.xml Configures logging for different environments with Discord webhook integration
src/main/resources/application.yaml Application configuration including database, OAuth2, JWT, and external service settings
src/main/java/com/climbup/climbup/user/entity/User.java User entity with gym and level selection functionality
src/main/java/com/climbup/climbup/gym/entity/ClimbingGym.java Climbing gym entity with brand association
src/main/java/com/climbup/climbup/route/entity/RouteMission.java Route mission entity for climbing challenges
Multiple service/controller files Business logic and API endpoints for user management, gym operations, and recommendations

Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.

<layout class="ch.qos.logback.classic.PatternLayout">
<pattern>%d{HH:mm:ss} [%thread] [%-5level] %logger{36} - %msg%n```%ex{full}```</pattern>
</layout>
<username>์šด์˜ํ™˜๊ฒฝ ๋กœ๊ทธ ์•Œ๋ด‡</username>
Copy link

Copilot AI Aug 20, 2025

Choose a reason for hiding this comment

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

Username has a typo - missing '๋ฆผ' character. Should be '์šด์˜ํ™˜๊ฒฝ ๋กœ๊ทธ ์•Œ๋ฆผ๋ด‡' instead of '์šด์˜ํ™˜๊ฒฝ ๋กœ๊ทธ ์•Œ๋ด‡'.

Suggested change
<username>์šด์˜ํ™˜๊ฒฝ ๋กœ๊ทธ ์•Œ๋ด‡</username>
<username>์šด์˜ํ™˜๊ฒฝ ๋กœ๊ทธ ์•Œ๋ฆผ๋ด‡</username>

Copilot uses AI. Check for mistakes.
public void selectGymLevel(GymLevel gymLevel) {
if (gymLevel == null) {
throw new GymLevelNotFoundException();
}
Copy link

Copilot AI Aug 20, 2025

Choose a reason for hiding this comment

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

The selectGymLevel method throws GymLevelNotFoundException when gymLevel is null, but line 73 in OnboardingServiceImpl passes null to this method intentionally to reset the level. This will cause an exception.

Suggested change
}
// Allow null to reset the gym level

Copilot uses AI. Check for mistakes.
public void selectGym(ClimbingGym gym) {
if (gym == null) {
throw new GymNotFoundException();
}
Copy link

Copilot AI Aug 20, 2025

Choose a reason for hiding this comment

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

The selectGym method throws GymNotFoundException when gym is null, but this method is called from selectGym which should allow setting gym to a valid value. The null check seems incorrect here.

Suggested change
}

Copilot uses AI. Check for mistakes.
private Integer score;

@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "gym_level_id", nullable = false)
Copy link

Copilot AI Aug 20, 2025

Choose a reason for hiding this comment

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

The gymLevel field is marked as nullable = false, but it's not being set in the RouteMissionServiceImpl.createRouteMission method, which will cause database constraint violations.

Suggested change
@JoinColumn(name = "gym_level_id", nullable = false)
@JoinColumn(name = "gym_level_id", nullable = false)
@NonNull

Copilot uses AI. Check for mistakes.
}

@GetMapping("/error")
public String testError() {
Copy link

Copilot AI Aug 20, 2025

Choose a reason for hiding this comment

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

The testError method returns a String instead of ResponseEntity<ApiResult> which is inconsistent with the other endpoints in this controller.

Suggested change
public String testError() {
public ResponseEntity<ApiResult<String>> testError() {

Copilot uses AI. Check for mistakes.
level:
root: INFO
com.climbup.climbup: DEBUG
org.springframework.security: DEBUG
Copy link

Copilot AI Aug 20, 2025

Choose a reason for hiding this comment

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

Debug logging is enabled for security components (org.springframework.security: DEBUG) which could expose sensitive authentication information in production logs.

Suggested change
org.springframework.security: DEBUG
org.springframework.security: WARN

Copilot uses AI. Check for mistakes.
@eric-jy-park eric-jy-park merged commit 6041156 into prod Aug 20, 2025
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants