Dependabot 및 Semantic Release 이메일 자동 보관

오픈 소스 관리자로서 저는 Dependabot 및 Semantic Release에서 하루에 수백 통의 이메일을 받습니다. 얼마 전에 다음 작업을 수행하기 위해 몇 가지 간단한 정규식 패턴을 기반으로 이메일을 자동으로 보관하기 위해 아래Google Apps Script 스니펫을 작성했습니다.
  • 병합되거나 닫힌 Dependabot 이메일 보관
  • Archive Semantic Release는 끌어오기 요청 및 문제에 대한 알림을 게시합니다.

  • 현재 이것은 5분마다 cron에서 실행되고 있습니다.

    function main() {
      // archive dependabot notifications
      GmailApp.moveThreadsToArchive(
        GmailApp.search('label:"inbox" from:dependabot[bot]').filter((thread) =>
          threadMatches(thread, [/Merged .* into .*/, /Closed /])
        )
      );
    
      // archive semantic release publish notifications
      GmailApp.moveThreadsToArchive(
        GmailApp.search('label:"inbox" from:github-actions[bot]').filter((thread) =>
          threadMatches(thread, [
            /This PR is included in version/,
            /This issue has been resolved in version/,
          ])
        )
      );
    }
    
    function threadMatches(thread, patterns) {
      const messages = thread.getMessages();
    
      if (messages.length > 1) {
        for (let message of messages) {
          for (let pattern of patterns) {
            const match = message.getBody().match(pattern);
    
            if (match) {
              return true;
            }
          }
        }
      }
    
      return false;
    }
    


    이것은 모두 매우 기본적이지만 작동합니다. 향후 작업은 스레드 날짜와 풀 요청의 현재 상태에 따라 작업이 필요한 경우 스레드가 받은 편지함으로 이동되도록 dependsabot 기능을 반전하는 데 초점을 맞출 수 있습니다.

    저는 아직 다양한 저장소, 조직 등에 걸친 저의 오픈 소스 작업을 위한 완벽한 워크플로를 찾지 못했습니다. 이메일은 전체 범위를 위한 좋은 백스톱이며 위의 스크립트는 저에게 궁극적인 일관성을 제공합니다.

    좋은 웹페이지 즐겨찾기