Pull Request에 숨어있는 타이포를 자동으로 검출해, 수정을 대행하는Bot

2896 단어 파이썬GitHubbot
막상 Pull Request 리뷰! 라고 도전한 순간, 「여기 타이포인」이라고 하는 선제 펀치를 먹는 것은 매우 유감스러운 일입니다.
또, 이것은 지적하고 있는 쪽에 있어서도 체크가 부담으로, 마음이 무거운 것입니다.

인간은 인간에게만 할 수 있는 체크에 집중해야 하며 귀중한 리뷰 시간을 오자 탈자 수정에 사용하는 것은 아깝다. 거기서 개발한 것이, 타이포의 자동 검지와 수정을 대행하는 Bot. 그 이름도 typot입니다.

chakki-works/typot


이곳은 최근 공개가 발표된 GitHub Marketplace 과 함께 공개된 새로운 GitHub 앱의 형태인 GitHub Apps에서 작성하고 있습니다 (그때까지는 Webhook 또는 OAuth였다).
GitHub Apps는 OAuth처럼 사용자가 아니라 리포지토리에 연결되는 형태입니다. 따라서 관리자 사용자가 사라진 (또는 권한을 잃은) 앱을 사용할 수 없게되는 상황을 방지 할 수 있습니다. 이 근처+개발의 방법에 대해서는 여러가지 지견이 쌓였으므로, 별도 기사에서 공개하고 있습니다.
무엇이든, 단적으로는 사용해 보려고 하면 대상 리포지토리에만 설치가 가능하다는 것입니다.

Feature



백문은 언뜻 보지 않고 실제로 타이포트가 어떤 움직임을 하는지 보십시오.


  • 타이포가 있으면 리뷰 코멘트에서 지적이 이루어진다
  • 지적과 함께 제시된 수정 후보를 선택하기 만하면 수정이 자동으로 수행됩니다

  • 이 점이 동작 데모에서 확인할 수 있다고 생각합니다.

    How it works



    typot는 설치된 리포지토리에서 Pull Request가 열리면 거기에 대해 타이포 체크를 실행합니다. ). 타이포가 발견되면 수정 후보와 함께 리뷰 코멘트로 지적합니다.

    PyEnchant

    그리고, 수정 후보 중에 적절한 것이 있으면, 그것을 선택하는 것만으로 자동적으로 파일의 수정이 실행됩니다.




    이렇게 하면 타이포 검사가 자동화되고 더 이상 수정되지 않습니다.
    이러한 모든 작업은 GitHub API에서 구현됩니다. 그런 의미에서는 GitHub의 API의 충실함을 알고 싶은 것입니다.

    현재는 타이포의 체크만입니다만, 제 팀은 자연언어 처리/기계 학습을 생업으로 하고 있으므로, 좀 더 고도의, 사람의 리뷰 부하를 가볍게 하는 체크를 할 수 있으면 좋다고 생각하고 있습니다(팀의 활동에 대해서는 (을)를 꼭 읽어 주셨으면 합니다).

    여러분의 리뷰의 도움이 되었으면 좋겠습니다! (Star를 받으면 만든 보람이 있습니다 m(_ _)m)

    팀 블로그

    좋은 웹페이지 즐겨찾기