InfoGrab DocsInfoGrab Docs

Markdown 캐시

요약

GitLab은 성능을 위해 다음과 같은 필드에서 마크다운 텍스트의 HTML 버전을 캐시합니다. 캐시된 이 버전은 external_url 구성 옵션이 변경되는 경우처럼 오래된 상태가 될 수 있습니다. API 또는 Rails 콘솔을 사용해 마크다운 캐시를 무효화할 수 있습니다.

GitLab은 성능을 위해 다음과 같은 필드에서 마크다운 텍스트의 HTML 버전을 캐시합니다.

  • 댓글.
  • 이슈 설명.
  • 머지 리퀘스트 설명.

캐시된 이 버전은 external_url 구성 옵션이 변경되는 경우처럼 오래된 상태가 될 수 있습니다. 캐시된 텍스트의 링크가 계속 이전 URL을 가리키게 됩니다.

캐시 무효화#

API 또는 Rails 콘솔을 사용해 마크다운 캐시를 무효화할 수 있습니다.

API 사용#

사전 요구 사항:

  • 관리자 액세스 권한이 있어야 합니다.

API로 기존 캐시를 무효화하려면 다음을 수행합니다.

  1. 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 콘솔 사용#

사전 요구 사항:

그룹 단위#

그룹의 캐시를 무효화하려면 다음을 수행합니다.

  1. Rails 콘솔을 시작합니다.

    sudo gitlab-rails console
    
  2. 업데이트할 그룹을 찾습니다.

    group = Group.find(<group_id>)
    
  3. 그룹의 모든 프로젝트에 대해 캐시를 무효화합니다.

    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
    

프로젝트 단위#

단일 프로젝트의 캐시를 무효화하려면 다음을 수행합니다.

  1. Rails 콘솔을 시작합니다.

    sudo gitlab-rails console
    
  2. 업데이트할 프로젝트를 찾습니다.

    project = Project.find(<project_id>)
    
  3. 이슈 캐시를 무효화합니다.

    project.issues.update_all(
      description_html: nil,
      title_html: nil
    )
    
  4. 머지 리퀘스트 캐시를 무효화합니다.

    project.merge_requests.update_all(
      description_html: nil,
      title_html: nil
    )
    
  5. 노트와 댓글 캐시를 무효화합니다.

    project.notes.update_all(note_html: nil)
    

Markdown 캐시

GitLab v19.5
Tier: Free, Premium, Ultimate
Offering: GitLab Self-Managed
원문 보기

요약

GitLab은 성능을 위해 다음과 같은 필드에서 마크다운 텍스트의 HTML 버전을 캐시합니다. 캐시된 이 버전은 external_url 구성 옵션이 변경되는 경우처럼 오래된 상태가 될 수 있습니다. API 또는 Rails 콘솔을 사용해 마크다운 캐시를 무효화할 수 있습니다.

GitLab은 성능을 위해 다음과 같은 필드에서 마크다운 텍스트의 HTML 버전을 캐시합니다.

  • 댓글.
  • 이슈 설명.
  • 머지 리퀘스트 설명.

캐시된 이 버전은 external_url 구성 옵션이 변경되는 경우처럼 오래된 상태가 될 수 있습니다. 캐시된 텍스트의 링크가 계속 이전 URL을 가리키게 됩니다.

캐시 무효화#

API 또는 Rails 콘솔을 사용해 마크다운 캐시를 무효화할 수 있습니다.

API 사용#

사전 요구 사항:

  • 관리자 액세스 권한이 있어야 합니다.

API로 기존 캐시를 무효화하려면 다음을 수행합니다.

  1. 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 콘솔 사용#

사전 요구 사항:

그룹 단위#

그룹의 캐시를 무효화하려면 다음을 수행합니다.

  1. Rails 콘솔을 시작합니다.

    sudo gitlab-rails console
    
  2. 업데이트할 그룹을 찾습니다.

    group = Group.find(<group_id>)
    
  3. 그룹의 모든 프로젝트에 대해 캐시를 무효화합니다.

    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
    

프로젝트 단위#

단일 프로젝트의 캐시를 무효화하려면 다음을 수행합니다.

  1. Rails 콘솔을 시작합니다.

    sudo gitlab-rails console
    
  2. 업데이트할 프로젝트를 찾습니다.

    project = Project.find(<project_id>)
    
  3. 이슈 캐시를 무효화합니다.

    project.issues.update_all(
      description_html: nil,
      title_html: nil
    )
    
  4. 머지 리퀘스트 캐시를 무효화합니다.

    project.merge_requests.update_all(
      description_html: nil,
      title_html: nil
    )
    
  5. 노트와 댓글 캐시를 무효화합니다.

    project.notes.update_all(note_html: nil)