Bump peter-evans/find-comment from 0da1f4fc1f20cd898368bd56089d391df418f52f to 6e047262ad20bc24e1ed54be53fc9e1c23315c5e #11372
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Content Changes Table Comment | |
# **What it does**: When a PR is opened in docs-internal or docs, it adds the staging preview and live article links in a Content Directory Changes table in a comment | |
# **Why we have it**: To help Docs Content team members and contributors automatically have their staging/live article links added to the table | |
# **Who does it impact**: docs-internal/docs maintainers and contributors | |
on: | |
workflow_dispatch: | |
pull_request_target: | |
types: [opened, synchronize, reopened] | |
jobs: | |
PR-Preview-Links: | |
name: Add staging/live links to PR | |
runs-on: ubuntu-latest | |
outputs: | |
filterContentDir: ${{ steps.filter.outputs.filterContentDir }} | |
steps: | |
- name: Get files changed | |
uses: dorny/paths-filter@eb75a1edc117d3756a18ef89958ee59f9500ba58 | |
id: filter | |
with: | |
# Base branch used to get changed files | |
base: ${{ github.event.pull_request.base.ref }} | |
# Enables setting an output in the format in `${FILTER_NAME}_files | |
# with the names of the matching files formatted as JSON array | |
list-files: json | |
# Returns list of changed files matching each filter | |
filters: | | |
filterContentDir: | |
- 'content/**/*' | |
filterContentDir: | |
needs: PR-Preview-Links | |
if: ${{ needs.PR-Preview-Links.outputs.filterContentDir == 'true' }} | |
runs-on: ubuntu-latest | |
steps: | |
- name: check out repo content | |
uses: actions/checkout@5a4ac9002d0be2fb38bd78e4b4dbde5606d7042f | |
- name: Setup Node | |
uses: actions/setup-node@38d90ce44d5275ad62cc48384b3d8a58c500bb5f | |
with: | |
node-version: 16.8.x | |
cache: npm | |
- name: Install temporary dependencies | |
run: | | |
npm install --no-save github-slugger | |
npm install --no-save --include=optional esm | |
- name: Get changes table | |
uses: actions/github-script@2b34a689ec86a68d8ab9478298f91d5401337b7d | |
id: changes | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
script: | | |
// Workaround to allow us to load ESM files with `require(...)` | |
const esm = require('esm') | |
require = esm({}) | |
const { default: createStagingAppName } = require('./script/deployment/create-staging-app-name') | |
const stagingPrefix = createStagingAppName({ | |
repo: context.payload.repository.name, | |
pullNumber: context.payload.number, | |
branch: context.payload.pull_request.head.ref, | |
}) | |
const response = await github.repos.compareCommits({ | |
owner: context.repo.owner, | |
repo: context.repo.repo, | |
base: context.payload.pull_request.base.sha, | |
head: context.payload.pull_request.head.sha | |
}) | |
const files = response.data.files | |
let markdownTable = '| **Source** | **Staging** | **Production** | **What Changed** |\n|:----------- |:----------- |:----------- |:----------- |\n' | |
const pathPrefix = 'content/' | |
const articleFiles = files.filter(({ filename }) => filename.startsWith(pathPrefix) && !filename.endsWith('/index.md')) | |
for (const file of articleFiles) { | |
const sourceUrl = file.blob_url | |
const fileName = file.filename.slice(pathPrefix.length) | |
const fileUrl = fileName.slice(0, fileName.lastIndexOf('.')) | |
const stagingLink = `https://${stagingPrefix}.herokuapp.com/${fileUrl}` | |
const productionLink = `https://docs.github.com/${fileUrl}` | |
let markdownLine = '' | |
if (file.status === 'modified') { | |
markdownLine = `| [content/${fileName}](${sourceUrl}) | [Modified](${stagingLink}) | [Original](${productionLink}) | |\n` | |
} else if (file.status === 'added') { | |
markdownLine = `| New file: [content/${fileName}](${sourceUrl}) | [Modified](${stagingLink}) | | |\n` | |
} | |
markdownTable += markdownLine | |
} | |
core.setOutput('changesTable', markdownTable) | |
- name: Find content directory changes comment | |
uses: peter-evans/find-comment@6e047262ad20bc24e1ed54be53fc9e1c23315c5e | |
id: findComment | |
with: | |
issue-number: ${{ github.event.pull_request.number }} | |
comment-author: 'github-actions[bot]' | |
body-includes: '<!-- MODIFIED_CONTENT_LINKING_COMMENT -->' | |
- name: Update comment | |
uses: peter-evans/create-or-update-comment@5221bf4aa615e5c6e95bb142f9673a9c791be2cd | |
with: | |
comment-id: ${{ steps.findComment.outputs.comment-id }} | |
issue-number: ${{ github.event.pull_request.number }} | |
body: | | |
<!-- MODIFIED_CONTENT_LINKING_COMMENT --> | |
## Automatically generated comment ℹ️ | |
**This comment is automatically generated and will be overwritten every time changes are committed to this branch.** | |
The table contains an overview of files in the `content` directory that have been changed in this pull request. It's provided to make it easy to review your changes on the staging site. Please note that changes to the `data` directory will not show up in this table. | |
--- | |
### Content directory changes | |
_You may find it useful to copy this table into the pull request summary. There you can edit it to share links to important articles or changes and to give a high-level overview of how the changes in your pull request support the overall goals of the pull request._ | |
${{ steps.changes.outputs.changesTable }} | |
edit-mode: replace |