Markdown 캐시
GitLab v19.5Offering: GitLab Self-Managed
요약
GitLab은 성능을 위해 다음과 같은 필드에서 마크다운 텍스트의 HTML 버전을 캐시합니다. 캐시된 이 버전은 external_url 구성 옵션이 변경되는 경우처럼 오래된 상태가 될 수 있습니다. API 또는 Rails 콘솔을 사용해 마크다운 캐시를 무효화할 수 있습니다.
GitLab은 성능을 위해 다음과 같은 필드에서 마크다운 텍스트의 HTML 버전을 캐시합니다.
- 댓글.
- 이슈 설명.
- 머지 리퀘스트 설명.
캐시된 이 버전은 external_url 구성 옵션이 변경되는 경우처럼 오래된 상태가 될 수 있습니다. 캐시된 텍스트의
링크가 계속 이전 URL을 가리키게 됩니다.
캐시 무효화#
API 또는 Rails 콘솔을 사용해 마크다운 캐시를 무효화할 수 있습니다.
API 사용#
사전 요구 사항:
- 관리자 액세스 권한이 있어야 합니다.
API로 기존 캐시를 무효화하려면 다음을 수행합니다.
-
PUT 요청을 보내 애플리케이션 설정의
local_markdown_version값을 높입니다.curl --request PUT --header "PRIVATE-TOKEN: <your_access_token>" \ --url "https://gitlab.example.com/api/v4/application/settings?local_markdown_version=<increased_number>"
이 API 엔드포인트에 대한 자세한 내용은 애플리케이션 설정 업데이트를 참고합니다.
Rails 콘솔 사용#
사전 요구 사항:
- Rails 콘솔 액세스 권한이 있어야 합니다.
그룹 단위#
그룹의 캐시를 무효화하려면 다음을 수행합니다.
-
Rails 콘솔을 시작합니다.
sudo gitlab-rails console -
업데이트할 그룹을 찾습니다.
group = Group.find(<group_id>) -
그룹의 모든 프로젝트에 대해 캐시를 무효화합니다.
group.all_projects.each_slice(10) do |projects| projects.each do |project| # Invalidate issues project.issues.update_all( description_html: nil, title_html: nil ) # Invalidate merge requests project.merge_requests.update_all( description_html: nil, title_html: nil ) # Invalidate notes/comments project.notes.update_all(note_html: nil) end # Pause for one second after updating 10 projects sleep 1 end
프로젝트 단위#
단일 프로젝트의 캐시를 무효화하려면 다음을 수행합니다.
-
Rails 콘솔을 시작합니다.
sudo gitlab-rails console -
업데이트할 프로젝트를 찾습니다.
project = Project.find(<project_id>) -
이슈 캐시를 무효화합니다.
project.issues.update_all( description_html: nil, title_html: nil ) -
머지 리퀘스트 캐시를 무효화합니다.
project.merge_requests.update_all( description_html: nil, title_html: nil ) -
노트와 댓글 캐시를 무효화합니다.
project.notes.update_all(note_html: nil)