WebHookEventType와 solved, assign 플러그인

이 변경 사항에서 solved 플러그인에 웹훅을 추가하면서, 웹훅 이벤트 유형과 관련된 일부 기능이 코어로 이동되었습니다.

그러나 이로 인해 몇 가지 원치 않는 부작용이 발생했습니다.

  1. solved 또는 assign 플러그인이 설치되지 않은 인스턴스에서는 이벤트 유형은 표시되지만 번역이 누락되어 있으며, (물론) 이벤트는 사용 가능하지 않은 상태로 표시됩니다.

  1. solved와 assign 플러그인은 시드(seeds)가 누락되어 있어 현재 새 stable 및 beta 설치 환경에서 오작동하고 있습니다.

처음에는 #2 문제를 해결하기 위해 stable 버전으로 시드를 백포트(backport)하도록 요청하는 것이 좋겠다고 생각했습니다. 하지만 추가적인 버그(#1)가 존재하므로, 시딩 코드를 실제 플러그인에 두는 것이 더 나은 방법일 수 있으며, 코어 코드에서는 단순히 ID를 예약하는 방식으로 처리하는 것이 더 적합할 것 같습니다.

요약하자면, 다음 코드를 solved와 assign 플러그인으로 다시 이동하는 것이 더 좋다고 생각합니다.

WebHookEventType.seed do |b|
  b.id = WebHookEventType::SOLVED
  b.name = "solved"
end
8개의 좋아요

이 문제를 지적해 주셔서 감사합니다. 플러그인이 설치되지 않은 경우 코어에 표시되지 않도록 어떤 조치를 취할 수 있는지 확인해 보겠습니다.

7개의 좋아요

좋아요, 감사합니다!
stable 버전에서도 문제가 있다는 점을 함께 다뤄 주시겠어요?

5개의 좋아요

이 문제에 대한 수정이 적용되었습니다:

다만 #2에 관해서는:

저는 최신 버전의 discourse-assign 및 discourse-solved 플러그인을 사용하여 로컬에서 stable(2.4.1)을 실행할 때 어떤 문제도 발견하지 못했습니다.

당신이 겪고 있는 문제를 재현할 수 있도록 관련 정보를 제공해 주실 수 있을까요?

4개의 좋아요

최신 버전의 solved 플러그인이 설치된 stable 환경에서 새로 설치하면 web_hook_event_type 테이블에 ID가 없어 웹훅 유형이 표시되지 않습니다.

이 문제는 solved 플러그인에서 ID를 시드(seed)하는 코드가 제거되었지만, 아직 stable / beta 릴리스에는 해당 코드가 포함되지 않아서 발생합니다.

이전에 solved 플러그인의 이전 버전을 설치했던 사이트들은 이미 시드 데이터가 있으므로 이 문제를 겪지 않습니다.

따라서 재현 방법은 간단합니다: stable 환경에서 완전히 새로운 설치를 수행하면 됩니다.

solved 플러그인이 설치된 2.4.1의 깨끗한 새 설치 환경: 사용 가능한 웹훅 없음.

수동으로 시딩을 수행한 후 웹훅 화면을 다시 확인하면 웹훅이 나타납니다:

아, 그래요. 그래서 "broken"이라는 건 그냥 안 나타나는 걸 의미하나요.

이것은 의도된 동작입니다. 2.5 이상에서 지원하는 기능입니다.

4개의 좋아요

네, 말씀이 맞습니다. 명확하지 않게 말씀드려서 죄송합니다. 'broken’과 'not available’을 혼동하고 있었네요. 이건 새로운 기능이므로 실제로 깨진 것은 없습니다.

다만, 플러그인의 시딩 코어가 코어로 이동된 부분은 좀 이상하게 느껴집니다. ID를 예약하고 싶으신 건 이해하지만, 시딩은 플러그인에 두는 것이 더 깔끔할 것 같습니다. 하지만 이건 제 개인적인 의견일 뿐입니다 :wink:

3개의 좋아요