-
Notifications
You must be signed in to change notification settings - Fork 3
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. Weβll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Release: v2.0.0 #516
Merged
Merged
Release: v2.0.0 #516
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
* feat: μν νν°λ§ κ²°κ³Ό μμ λ ν μ€νΈ μΆκ° * refactor: νν°λ§ κ²°κ³Ό μμ λ ν μ€νΈ 문ꡬ μμ
* refactor: Toast λ‘μ§ Context with Providerλ‘ λ³κ²½ * refactor: κ°μμ§ μ΄μ€ν°μκ·Έ μμ * refactor: ToastContext νμ λΆλ¦¬ λ° λ¦¬ν©ν°λ§ * refactor: Landing Toast μ¬μ© λ°©λ² λ³κ²½
* fix: json νλ‘νΌν°λͺ μμ * fix: 리뷰 μμ½ μ‘°ν API λ¬Έμ μμ * chore: μ¬μ©νμ§ μλ μμ‘΄μ± μ κ±° * chore: μ¬μ©νμ§ μλ DTO μ κ±°
* feat: 쿼리 μΉ΄μ΄ν° κ°μ²΄ μμ± * feat: 컀λ₯μ λ€μ΄λλ―Ή νλ‘μ ꡬνμ μν handler μΆκ° * feat: 쿼리카μ΄ν° AOP μ μ© * feat: 쿼리카μ΄ν° λ‘κΉ μΈν°μ ν° μΆκ° * test: κ³΅ν΅ MockMvcTest μΆκ°
* feat: refresh token μ€μ κ° μΆκ° * feat: refresh token μμ± κΈ°λ₯ μΆκ° * feat: refresh tokenμ μΏ ν€μ λ΄μ λ΄λ κΈ°λ₯ * refactor: String.valueOf() λμ .toString()μ μ¬μ©νλλ‘ λ³κ²½ * refactor: refreshTokenCookieProvider κ°μ²΄ λμΆ * refactor: tokenRefresh κΈ°λ₯ ꡬν * refactor: ResponseCookie μ μ© * test: authServiceTest μμ± * test: jwtProviderTest μμ± * test: refreshTokenRepositoryTest μμ± * chore: application-local1.yml μμ * feat: λ‘κ·Έμμ κΈ°λ₯ ꡬν * test: ν ν° μΈμ¦ μ€ν¨μ 401 μμΈ μΆκ° * refactor: DTO λ€μ΄λ° ν·κ°λ¦¬μ§ μλλ‘ μμ * test: λ‘κ·Έμμ μΏ ν€ ν μ€νΈ μΆκ° * test: λ‘κ·Έμμ μΏ ν€ ν μ€νΈ μμ * feat: API λͺ μΈ λ³κ²½ `/logout` -> `/log-out` * refactor: Tokens -> TokenDto λ€μ΄λ° λ³κ²½ * feat: token rotation μ κ±° * refactor: AuthServiceTest λ΄ λͺ¨νΉν μ€νΈ λΆλ¦¬ * refactor: Controller ν μ€νΈ λΆλ¦¬ * feat: refreshToken BaseTimeEntity μ μ© * refactor: renewAccessToken -> renewAccessTokenBy λ©μλλͺ λ³κ²½ λ° νλΌλ―Έν° μ΄λ¦ token -> refreshToken λ³κ²½ * refactor: ν μ€νΈμ© μν¬λ¦Ώ ν€ μμ λΆλ¦¬ * refactor: κ°ν λ³κ²½ * refactor: logout ν΅μΌ * refactor: ν ν° λ§λ£κΈ°ν λ³μλͺ μμ * test: λΆνμν @SpringBootTest μ κ±° * refactor: ν ν° μμ±μ λ°λ νλΌλ―Έν° νμ λ³κ²½
* feat: webpack config μλ μμ± annotation μΆκ° * feat: ErrorBoundary onError μ΅μ μΆκ° * feat: RenderProps νμ μΆκ° * feat: ErrorBoundary ignore option μΆκ° * feat: APIBoundary μΆκ° * feat: componseFunctions util ν¨μ μΆκ° * feat: useErrorBoundary μΆκ° * feat: PrefetchImg μΆκ° * refactor: Global Providerλ€μ μ¬μ© μμΉλ₯Ό index > AppμΌλ‘ λ³κ²½ * feat: Global eventHandler μΆκ° - online - offline - unhandledrejection * feat: QueryBoundary μΆκ° λ° λλ ν 리 μμΉ λ³κ²½ * refactor: QueryBoundary λΆνμν μμ‘΄μ± μ κ±° * refactor: μ μ Providerλ€μ κ²½κ³ μ¬μ‘°μ * fix: QueryBoundary μν¬νΈ κ²½λ‘ μμ * feat: msw λͺ¨λ κ²½λ‘ μμ * refactor: FoodList λ°μ΄ν° μμ² μμΉ λ³κ²½ * feat: exception routes μΆκ° * feat: exception routerμ ErrorPage μ μ© * refactor: ErrorBoundaryState νμ μ λͺ μμ μΌλ‘ μμ * feat: ErrorBoundaryValue νμ μ error νμ μΆκ° * feat: ErrorBoundary fallbackμ error μ 보λ ν¨κ» μ 곡 * feat: CustomError μΆκ° - RuntimeError - UnexpectedError * feat: APIBoundary UnexpectedError μ μ© * refactor: error message μμ * feat: EndOfErrorBoundary μΆκ° * refactor: UnexpectedErrorμ λ©μΈμ§ μ€λ²λΌμ΄λ© μ κ±° * feat: APIErrorCode μΆκ° * refactor: ManageableAxiosError νμ λΆλ¦¬ * feat: APIError μΆκ° * feat: APIBoundary ν΅μ μ±κ³΅μ APIError throw * chore: refresh icon μΆκ° * chore: home icon height, viewbox μμ * feat: NOT_FOUND error message μΆκ° * refactor: UnexpectedErrorκ° λͺ¨λ valueλ₯Ό λ°μ μ μλλ‘ μμ * refactor: ErrorPageλ₯Ό λμ μΌλ‘ μμ - errorμ μ’ λ₯μ λ°λΌ statusμ message νμ - NotFound page μΆκ° * refactor: exception routesμ NotFound νμ΄μ§ μ μ© * refactor: UnexpectedError message λ³κ²½ * refactor: canManage 쑰건 μμ * refactor: Error static method μΆκ° - convertToError μΆκ° - canManageλ₯Ό APIErrorμ static methodλ‘ λ³κ²½ * refactor: CustomError > ZipgoError λ€μ΄λ° λ³κ²½ * feat: useMutationWithToast μΆκ° * feat: EndOfErrorBoundary μ μ© * feat: μ μ staleTime, cacheTime μ€μ * feat: reviewList query staleTime 1λΆμΌλ‘ μ€μ * feat: useMutationWithToast critical option μΆκ° * refactor: APIBoundaryκ° APIErrorμΈ κ²½μ° throwνμ§ μλλ‘ μμ * refactor: ignore key μμλ‘ λΆλ¦¬ * refactor: type only exportλ‘ λ³κ²½ λ° named export κ·Έλ£Ήν * refactor: μ¬μ©νμ§ μλ type export μ κ±° * refactor: λ€νΈμν¬ μλ¬ λ©μΈμ§λ₯Ό μμλ‘ λΆλ¦¬ * refactor: Unhandled rejectionμ μλ¬λ°μ΄λ리μμ μ²λ¦¬ * refactor: axios interceptorκ° μ΅μ΄ λ λλ§μμ λ±λ‘λλλ‘ μμ * refactor: μ£Όμ μ κ±° * refactor: convertToError λ‘μ§μμ ZipgoErrorλ μ¬λ³ν νμ§ μλλ‘ λ³κ²½ * feat: warning icon prefetch * feat: ErrorCode νμ κΈ°λ³Έκ° μ μ© * refactor: AxiosInterceptors μ κ±° - request interceptorμμ Promiseλ₯Ό 리ν΄νμ§ μλ λ¬Έμ μμ - ν ν° λ§λ£μ λ‘κ·ΈμΈ νμ΄μ§ 리λ€μ΄λ νΈ λ‘μ§μ APIBoundaryλ‘ λΆλ¦¬ * refactor: RenderProps return type λ³κ²½ * feat: resolveRenderProps ν¨μ μΆκ° * refactor: ErrorBoundaryκ° λ¬΄μ‘°κ±΄ μλ¬λ₯Ό λ³ννλλ‘ λ³κ²½ * feat: isDifferentArray μ νΈ ν¨μ μΆκ° * feat: ErrorBoundary κΈ°λ₯ μΆκ° - location μ λ³΄κ° λ³κ²½λλ©΄ μλ¬κ° μ΄κΈ°ν λλλ‘ λ³κ²½ - resetKeys prop μΆκ° * refactor: APIBoundaryμμ 401 νΈλ€λ§μ νλλ‘ λ³κ²½ * refactor: ν¨μ μ μΈμμ νμ΄ν ν¨μλ‘ λ³κ²½ * refactor: APIBoundary λΆνμν μλ¬ μ¬λ³ν μ κ±° * refactor: composeFunctionsμ composeEventHandlers ν¨μλ₯Ό ν΅ν© * refactor: APIBoundaryκ° onErrorPropsλ μ€ννλλ‘ λ³κ²½ * refactor: κΈ°μ‘΄μ composeEventHandlersλ₯Ό composeFunctionsλ‘ λ³κ²½
* feat/#457: μ¬λ£ μ ν λμλ§ λ°°λ μ»΄ν¬λνΈ μΆκ° * test/#457: μ€ν 리 μΆκ° * feat/#457: λλ©νμ΄μ§μ λμλ§ λ°°λ μΆκ° * refactor/#457: μ λλ©μ΄μ ν λ§λ‘ λΆλ¦¬ * Merge branch 'develop' of https://github.com/woowacourse-teams/2023-zipgo into feature/#457 * fix/#457: μ¬ν리μμ svg μ΄λ―Έμ§ κΉ¨μ§λ λ¬Έμ webp μ΄λ―Έμ§ μ¬μ©μΌλ‘ ν΄κ²°
* feat/#460: λ°λ €κ²¬ λ±λ‘ νμ΄ν μμ * feat/#460: μ νν νν° λ³΄μ¬μ€ λ λλ νλΌμ λμ€μ§ μλλ‘ url볡νΈν * refactor/#460: νμΌ μ΄λ * feat/#460: μ νν νν° λͺ©λ‘ 보μ¬μ£Όλ κΈ°λ₯ μΆκ° * refactor/#460: μ»΄ν¬λνΈλͺ μμ * refactor/#460: μ»΄ν¬λνΈλͺ μμ * fix/#460: μλͺ»λ μ§ν μ€λͺ μμ * refactor/#460: iPhone13 miniμμ λμλ§ μ€λ°κΏ μμ΄ λ³΄μ΄λλ‘ μμ * refactor: else if λ¬Έ κ°μ * refactor: ν΄λ¦μ΄λ²€νΈνΈλ€λ¬ SelectedFilterItemμΌλ‘ μ΄λ * refactor: stringλ°°μ΄ KEYWORD_ENμΌλ‘ λ체 * refactor: νμ λͺ κ³Ό μΌμΉνλλ‘ category > keywordλ‘ λ³μλͺ μμ * feat: Object.entries νμ μΆλ‘ μ μν μ€λ²λ‘λ© νμ μΆκ° * refactor: 쿼리μ€νΈλ§μ λ°λΌ νν° μν μ λ°μ΄νΈ νλλ‘ μμ
* refactor: PetFoodQueryRepository ν μ€νΈκ° λ λ¦½μ± λ³΄μ₯ * refactor: PetFoodQueryService ν μ€νΈκ° λ λ¦½μ± λ³΄μ₯ * refactor: PetFoodController ν μ€νΈκ° λ λ¦½μ± λ³΄μ₯ * refactor: PetFoodQueryRepository ν μ€νΈ μμ * refactor: fixture μμ * refactor: PetFoodQueryService ν μ€νΈ μμ * refactor: PetFoodController ν μ€νΈ μμ * refactor: QueryServiceTest μμ * refactor: ν μ€νΈ νκ²½ ν΅ν© λ° λΆνμν 컨ν μ΄λ μ κ±° * refactor: abstract μΆκ°
* feat: datadog μμ‘΄μ± μΆκ° * feat: Trace μ΄λ Έν μ΄μ μΆκ°
* refactor: λΆνμν stringify μ κ±° * refactor: APIError status νμ μ§μ * refactor: shouldIgnore νλΌλ―Έν° νμ μ μ λ€λ¦μΌλ‘ λ³κ²½ * feat: BaseFunction type μΆκ° * feat: resolveFunctionOrPrimitive μ νΈ ν¨μ μΆκ° * refactor: APIBoundary onError > ignoreλ‘ λ³κ²½ * refactor: APIErrorμ methodκ° getμ΄ μλλΌλ©΄ ignore trueλ‘ μ€μ * refactor: Error field μμ - ignore > IGNORE_KEY * refactor: ignore μΈν°νμ΄μ€ μμ - booleanλ μ¬μ©ν μ μλλ‘ λ³κ²½ * refactor: ErrorBoundary μΈν°νμ΄μ€ μμ - mustCatch μΆκ° - ignore > shouldIgnoreλ‘ λ³κ²½ - EndOfBoundary > CriticalBoundaryλ‘ λ³κ²½ - κΈ°μ‘΄ shouldIgnore μ νΈ ν¨μ > isIgnoredλ‘ λ³κ²½ * chore: nvmrc μΆκ° v18.16.1 * feat: Loading μ»΄ν¬λνΈ μΆκ° * refactor: κΈ°μ‘΄ QueryBoundary μ¬μ©μ Loading, Suspenseλ‘ λ³κ²½
* refactor/#473: navigate κ΄λ ¨ μ½λ ν λΆλ¦¬ * feat/#473: Funnel, useFunnel ꡬν * feat/#473: NonEmptyArray νμ μΆκ° * feat/#473: ReviewFormFunnel μ μ© * refactor/#473: Reviewνμ΄μ§ κ²½λ‘ μμ * feat/#473: ν νλ¦Ώ overflow-y autoλ‘ λ³κ²½ * feat/#473: μ€ν¬λ‘€ λμμΈ μ보μ΄λλ‘ μμ * feat/#473: useFunnel λ°νκ° κ°μ²΄λ‘ μμ * feat/#473: PetProfile λ±λ‘ νΌ Funnel μ μ© * fix/#473: λ―Ήμ€κ²¬μΈ κ²½μ°μλ§ petSize κΈ°λ³Έκ° λ£μ΄μ£Όλλ‘ μμ * feat/#473: ν« λ±λ‘ νΌ μμ± μ νμ΄μ§ μ΄λν΄λ μνκ° μ μ§λλλ‘ μ€μ * feat/#473: νΌ μμ± μ€ μ¬μ©μμ μ€μλ₯Ό μλ°©νκΈ° μν goBackSafely μ μ© * feat/#473: 리뷰 μ€ν μμν * fix/#473: 0μ΄(1μ΄λ―Έλ§)μΌ λ λ€μ λ²νΌ νμ±νλλλ‘ μμ * fix/#473: ReviewForm ν μ€νΈ κΉ¨μ§λ λ¬Έμ ν΄κ²° * refactor/#473: μ½λ 컨벀μ λ§μΆκΈ° λ° λΆνμν μ½λ μμ * refactor/#473: μΈλΌμΈ λΆκΈ°λ¬Έ λ³μλ‘ μΆμΆ
* fix: μμΈ λ³κ²½ * test: ν μ€νΈ μμ
* refactor: AlignSelectλ₯Ό native selectλ‘ λ³κ²½ - μ€μ 쿼리μ€νΈλ§κ³Ό select optionμ λκΈ°ν - μμ΄μ½ μ κ±° * refactor: ALIGN_QUERY < REVIEW_ALIGN_QUERY λ€μ΄λ° λ³κ²½ * feat: REVIEW_FILTER_QUERY_STRINGS μμ μΆκ° * refactor: λΆνμν μ½λ°± μ κ±° * refactor: 리뷰 λ©νλ°μ΄ν° νμ μ μμλ₯Ό νμ©νλλ‘ λ³κ²½ * feat: 리뷰 νν° μνμ 쿼리μ€νΈλ§ λκΈ°ν * feat: νν° μμ΄μ½ μμΉ μ°μΈ‘μΌλ‘ λ³κ²½ * feat: μμ μ μ© λ° λΆνμν useEffect μ κ±° * refactor: κ²¬μ’ select κΈ°λ³Έ νμ΄ν μ κ±° * feat: ReactQueryDevtools μΆκ° * refactor: StyledProps $props νμμ μΉ΄λ© μΌμ΄μ€ λ€μ΄λ°μλ§ μ μ© * refactor: theme animation > keyframesλ‘ λ³κ²½ λ° λ³λμ animation μμ± μΆκ° * refactor: COMMENT_VISIBLE_LINE_LIMIT μ€ν μμ * feat: ReviewItem Skeleton μΆκ° * refactor: κΈ°μ‘΄ ReviewList > ReviewListAndChartλ‘ λ³κ²½ λ° ReviewList μ»΄ν¬λνΈ λΆλ¦¬ * refactor: query key ν νλ¦Ώ 리ν°λ΄ μ κ±° * refactor: λ³κ²½λ ReviewListAndChart λ€μ΄λ° μ μ© * refactor: query keyμ queryString μΆκ° * refactor: refetch > query keyμ queryStringμ μΆκ°νλ λ°©μμΌλ‘ λ³κ²½ * feat: SuspendedImg μΆκ° * refactor: StarRatingDisplay λ³μ μ΄λ―Έμ§ SuspenedImgλ‘ λ³κ²½ * feat: ReviewControls Skeleton μΆκ° * refactor: SuspensedImg srcλ₯Ό μ΅μ λλ‘ λ³κ²½ * refactor: ReviewItem img > SuspendedImgλ‘ λ³κ²½ * refactor: λλ½λλ FilterSelectionDisplay μ¬μ μ© * feat: SuspenedImg lazy loading κΈ°λ₯ μΆκ° * feat: FoodList Skeleton μΆκ° * feat: foodList fixture imageUrl μΆκ° * feat: FoodItem Skeleton μΆκ° λ° LazyImg > SuspendedImgλ‘ λ³κ²½ * feat: FoodList Skeleton μ μ© * feat: FilterBottomSheet μ΅λ λμ΄ μ§μ * feat: iPhone8 μ΄ν μ¬μ΄μ¦ λμ * refactor: ReviewControls λ μ΄μμ μμ * chore: stylelint rule μΆκ° * refactor: μ¬λ£ νν° λͺ©λ‘ λ μ΄μμ μ΅μ λμ΄ μ€μ * refactor: GuideBanner μμ λλ°μ΄μ€μμ ν°νΈ μ¬μ΄μ¦ μκ² λ³κ²½ * refactor: μμκΈ°μ€ κ΅κΈ° μ΄λͺ¨μ§ > svgλ‘ λ³κ²½ * refactor: ReviewList 리뷰 κ²°κ³Ό μμ μ»΄ν¬λνΈ λμμΈμ μν κ²°κ³Ό μμκ³Ό ν΅μΌ * fix: NutritionStandardBlock story Stateλ₯Ό μ§μ λͺ λͺ * refactor: NonEmptyArray type exportλ‘ λ³κ²½ * refactor: styledprops $μ¬μ μ©
* refactor: AuthServiceFacade μ μ© * test: AuthServiceFacadeλ₯Ό λͺ¨νΉμΌλ‘ λΆλ¦¬ * test: OAuth API μμ± λ©μλλͺ ν΅μΌ * refactor: μλνν° μ±κ³΅ μλ΅ fixture μμ± * refactor: AuthControllerTestλ‘ λ€μ΄λ° λ³κ²½
) * refactor/#491: λΆνμν μ½λ μμ * feat/#491: κΈλ‘λ²μ€νμΌ μμ * fix/#491: λ°μ€ν¬ν± μ¬ν리μμ λ€λͺ¨λ‘ λμ€λ λΌλ²¨ λμμΈ μμ * feat/#491: λͺ¨λ°μΌ νλ©΄μμ zoom-inλμ§ μλλ‘ ν°νΈ μ¬μ΄μ¦ μ€μ * feat/#491: select border-radius κΈ°λ³Έ μ€νμΌ μ κ±° * refactor/#491: μ€λ³΅ css μ½λ μμ
* feat: DesktopView ꡬν * fix: storybook ci μ€λ₯ ν΄κ²°
* fix: allowCredentials μ΅μ λ° set-Cookie ν€λ μΆκ° * fix: sameSite none μ΅μ μΆκ° * fix: sameSite none μ΅μ μΆκ°
* feat: refreshZipgoAuth api μΆκ° * feat: response interceptor refresh λ‘μ§ μΆκ° * refactor: useNavigate > useEasyNavigateλ‘ μμ * chore: .gitignore *.pem μΆκ° * feat: https cert key paths μΆκ° * feat: localhost https μ μ© * feat: νκ²½ λ³μ μΆκ° - isLocal μΆκ° - HOMEPAGE μΆκ° - isDevelop, isProduction, HTTPS λΆλ¦¬ - KAKAO_REDIRECT_URI μμ λ° webpackμμ λμ μΌλ‘ μ€μ νλλ‘ λ³κ²½ * feat: λ‘κ·ΈμΈ api μμ - loginZipgoAuth redirect-uri 쿼리 μ€νΈλ§ μΆκ° - refreshZipgoAuth withCredentials μ΅μ μΆκ° * feat: isAuthError static method μΆκ° * refactor: λΆνμν axios instance μ€μ μ κ±° * refactor: μ μ κΆν μΈμ¦ λ‘μ§ λΆλ¦¬ > useCheckAuth * feat: Priavte route μ»΄ν¬λνΈ μΆκ° * feat: Private route μ μ© * refactor: test μ½λ μ κ±° * refactor: μΉ΄μΉ΄μ€ λ‘κ·ΈμΈ μλ¬λ₯Ό Runtime 컀μ€ν μλ¬λ‘ λ³κ²½ * refactor: error textκ° κ°νμ΄ κ°λ₯νλλ‘ λ³κ²½ * fix: storybook process is not defined μ€λ₯ μμ
* feat: RefreshToken μ μ© * chore: EOF μΆκ°
* docs: README μ λ°μ΄νΈ * docs: README μ λ°μ΄νΈ
* feat: LoginZipgoaAuth refresh token μΆκ° * refactor: κΈ°μ‘΄ refresh token λ‘μ§μ μΏ ν€ > JWTλ‘ λ³κ²½ * fix: FilterDialog Desktopμμ positionμ΄ μλ§λ νμ μμ * refactor: Template min-height μμ * refactor: FoodDetailWrapper padding bottom μ‘°μ * refactor: Toast λμ΄ μμ * refactor: petFoodId type μμ * refactor: 리뷰 CRUDμ λ°λΌ SummaryChart λ³μ μ΄ λκΈ°ν λλλ‘ μμ
* refactor: λΆνμν μ»΄ν¬λνΈ λΆλ¦¬ λ³ν© * fix: 1λΆ μλͺ»λ μκ° μμ * fix: 리뷰 μ λ°μ΄νΈμ λ°λΌ μν λ³μ λκΈ°ν * fix: ν« νλ‘ν μ λ°μ΄νΈμ λ°λΌ ν« νλ‘ν μ 보 λκΈ°ν
HyeryongChoi
requested review from
n0eyes,
ksone02,
iamjooon2,
parkmuhyeun,
wonyongChoi05 and
kyY00n
as code owners
October 19, 2023 13:57
iamjooon2
approved these changes
Oct 19, 2023
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
κ°μ
parkmuhyeun
approved these changes
Oct 19, 2023
n0eyes
approved these changes
Oct 19, 2023
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
μ λ°..!
iamjooon2
assigned iamjooon2, HyeryongChoi, kyY00n, ksone02, parkmuhyeun, n0eyes and wonyongChoi05
Oct 19, 2023
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
π Summary
2.0.0λ²μ μ λ°°ν¬ν©λλ€.
ππ» More