name: Add changelog for Maestro bump on: pull_request jobs: add-changelog: name: Add changelog runs-on: ubuntu-latest if: github.actor == 'dotnet-maestro[bot]' steps: - name: 'Compute changelog' run: | set -exo pipefail git clone https://github.com/spouliot/dotnet-tools cd dotnet-tools/changelog dotnet run https://github.com/$GITHUB_REPOSITORY/pull/${GITHUB_REF_NAME/\/*/} > /tmp/changelog.txt 2>&1 - name: 'Add changelog' uses: actions/github-script@v6.4.1 with: github-token: ${{secrets.GITHUB_TOKEN}} script: | const fs = require('fs'); const changelog_message = fs.readFileSync('/tmp/changelog.txt', 'utf8'); // check if we've already added a changelog to this PR, and if so, update that comment, otherwise add a new comment var commentId = "" await github.paginate (github.rest.issues.listComments, { owner: context.repo.owner, repo: context.repo.repo, issue_number: context.issue.number }).then ((comments) => { const changelogComment = comments.find(comment => comment.body.includes (".net ChangeLog for") && comment.user.login == 'github-actions[bot]') if (changelogComment) commentId = changelogComment.id }) if (commentId == "") { github.rest.issues.createComment({ owner: context.repo.owner, repo: context.repo.repo, issue_number: context.issue.number, body: changelog_message }) } else { github.rest.issues.updateComment({ owner: context.repo.owner, repo: context.repo.repo, comment_id: commentId, body: changelog_message }) }