# 서로 다른 Discourse 사이트 간 주제 동기화/크로스포스팅

**URL:** <https://meta.discourse.org/t/synchronising-crossposting-topics-across-different-discourse-sites/263269>\
**Category:** Feature\
**Created:** [4월 29, 2023, 6:21오후 UTC](https://meta.discourse.org/t/synchronising-crossposting-topics-across-different-discourse-sites/263269 "2023-04-29T18:21:38Z")\
**Posts on this page:** 1\
**Showing post:** 7

<div class="post-metadata">

**Author:** ![Tris20](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/tris20/32/264639_2.png) [@Tris20](https://meta.discourse.org/u/Tris20)\
**Post date:** [7월 21, 2023, 10:00오후 UTC](https://meta.discourse.org/t/synchronising-crossposting-topics-across-different-discourse-sites/263269/7 "2023-07-21T22:00:21Z")

</div>

제이, 안녕하세요.

이 문제에 대해 꽤 오래 전부터 고민해 왔습니다. 다만 최근까지는 별다른 진전이 없었죠. 안타깝게도 Discourse에서 Discourse로의 동기화 기능은 제게 그 가치가 크게 떨어졌습니다(동기화 대상이 몇 개의 주제에 불과했기 때문이죠). 대신, 다른 플랫폼의 마크다운 파일을 일반적으로 동기화하고 싶은 욕구가 커졌습니다.

저희 회사에서 주된 사용 사례는 GitLab 프로젝트의 README와 위키를 Discourse에 가져와 피드백과 검색 용도로 활용하되, GitLab의 파일을 여전히 단일 진실 공급원(Single Source of Truth)으로 유지하는 것이었습니다. Ruby에 대한 지식이 부족했던 탓에 Python 스크립트를 작성하게 되었는데, 구현 방식은 확실히 과할 수 있지만 기능적으로는 만족스러운 수준입니다. 첫 번째 정식 버전은 제이님이 언급하신 내용 중 일부도 수행합니다. 주요 기능은 다음과 같습니다:

- 원본 소스(GitLab 파일)에 대한 링크 포함
- 특정 리비전(GitLab 커밋 번호)에 대한 링크 포함
- 이미지 및 이미지 URL 처리
  - GitLab 저장소에서 이미지 다운로드
  - Discourse에 업로드
  - 업로드된 이미지의 Short URL로 원래 이미지 URL 대체

- “synced\_with\_gitlab” 태그를 추가하여 관련 항목을 쉽게 찾을 수 있도록 함

GitHub에서도 거의 동일한 방식으로 작동했습니다. 두 플랫폼 모두 마크다운 문법이 거의 비슷해서 꽤 매끄럽게 동작했습니다.

이 프로젝트를 오픈소스로 공개하고 싶지만, 법무팀의 의견을 들어봐야 할 것 같습니다. 또한 아직은 다소 엉성한 Python 코드 덩어리 상태입니다. 언젠가 Ruby 플러그인으로 전환할 계획이지만, 필요한 시간을 확보할 수 있을지는 더 지켜봐야 할 것 같습니다.

---

_[View the full topic](https://meta.discourse.org/t/synchronising-crossposting-topics-across-different-discourse-sites/263269)._
