Danger와 GitHub suggested changes를 사용하여 리뷰 비용 절감

5553 단어 GitHubDanger

Suggested changes란?



GitHub에는 Suggested changes라는 기능이 있습니다.
이것은 Pull Request의 코멘트의 형태로 변경을 제안해, PR상에서 그 변경을 간단하게 반영할 수 있는 것입니다.


  • suggestion 의 마크다운을 기술하는 것으로, 대상의 행에 대한 변경의 제안을 할 수 있습니다.
  • 복수행에 대해서는 현재 할 수 없는 것 같습니다.
  • 반대로 제안은 여러 줄이 될 수 있습니다.

  • Danger와 결합



    No newline at end of file


    No newline at end of file 라는 메시지를 한 번은 본 적이 있을까 생각합니다만, 이것을 suggested changes 를 사용해 간단하게 수정할 수 있도록(듯이) 합니다.



    Dangerfile



    구현한 Dangerfile 의 예입니다.
    git의 diff에서 텍스트 파일을 추출하고 마지막 줄이 줄 바꿈으로 끝나지 않으면 suggest합니다.

    Dangerfile
    require "open3"
    def text_file?(filename)
      file_type, status = Open3.capture2e("file", filename)
      status.success? && file_type.include?("text")
    end
    
    files = (git.added_files + git.modified_files)
      .select { |file| !file.include?(".idea") && text_file?(file) }
    targets = []
    files.each do |file|
      lines = File.readlines(file)
      last_line = lines.last
      next if !last_line
      targets.push({ file: file, line: last_line, line_num: lines.size }) if !last_line.end_with?("\n")
    end
    
    targets.each do |target|
      markdown("```suggestion\n#{target[:line]}\n\n```", file: target[:file], line: target[:line_num])
    end
    

    결과



    이러한 느낌으로 EOF에 개행이 없는 경우, Danger가 서제스트해 줍니다.



    덧붙여서 Commit suggestion은 PR 작성자밖에 누를 수 없으므로 주의해 주세요.

    요약



    리뷰 비용 절감 Danger와 수정 비용 절감 Suggested changes를 결합하면 전체 리뷰 비용을 줄일 수 있을까요?
    이번에 소개한 방법 이외에도, 각종 Lint 툴에 의한 자동 수정 등, 몇가지 활용 방법이 있을 것 같은 생각이 있으므로, 꼭 응용해 보세요.

    좋은 웹페이지 즐겨찾기