name: UncivBot on: [issue_comment] jobs: comment: if: github.event.comment.body == 'summary' runs-on: ubuntu-latest steps: - uses: actions/github-script@v3 with: github-token: ${{secrets.GITHUB_TOKEN}} script: | var result = await context.github.repos.listCommits(context.repo({ per_page: 50 })); var commitSummary = ""; var ownerToCommits = {} var reachedPreviousVersion = false result.data.forEach(commit => { if(reachedPreviousVersion) return var author = commit.author.login if(author=="uncivbot[bot]") return var commitMessage = commit.commit.message.split("\n")[0]; if(commitMessage.match(/^\d+\.\d+\.\d+$/)){ // match EXACT version, like 3.4.55 ^ is for start-of-line, $ for end-of-line reachedPreviousVersion=true console.log(commitMessage) return } if(commitMessage.startsWith("Merge ")) return commitMessage = commitMessage.replace(/\(\#\d+\)/,"") // match PR auto-text, like (#2345) if (author != owner){ if (ownerToCommits.get(author)==undefined) ownerToCommits.set(author,[]) ownerToCommits.get(author)?.push(commitMessage) } else commitSummary += "\n\n" + commitMessage }); ownerToCommits.forEach((commits,author)=>{ commitSummary += "\n\nBy "+author+":" commits.forEach(commitMessage => {commitSummary+="\n- "+commitMessage}) }) context.github.issues.createComment(context.issue({ body: commitSummary })); //github.issues.createComment({ // issue_number: context.issue.number, // owner: context.repo.owner, // repo: context.repo.repo, // body: "${{ github.event.comment.body }}" //})