playwright/.github/workflows/pr_check_client_side_changes.yml

56 lines
2.1 KiB
YAML
Raw Normal View History

name: "Check client side changes"
on:
push:
branches:
- main
paths:
- 'packages/playwright-core/src/client/**/*'
- 'packages/playwright-test/src/matchers/matchers.ts'
jobs:
check:
name: Check
runs-on: ubuntu-20.04
if: github.repository == 'microsoft/playwright'
steps:
- name: Create GitHub issue
uses: actions/github-script@v4
with:
github-token: ${{ secrets.GH_SERVICE_ACCOUNT_TOKEN }}
script: |
2021-09-01 11:40:36 +03:00
const { data } = await github.git.getCommit({
owner: context.repo.owner,
repo: context.repo.repo,
commit_sha: context.sha,
});
2021-09-01 11:40:36 +03:00
const commitHeader = data.message.split('\n')[0];
const title = '[Ports]: Backport client side changes';
for (const repo of ['playwright-python', 'playwright-java', 'playwright-dotnet']) {
const { data: issuesData } = await github.search.issuesAndPullRequests({
q: `is:issue is:open repo:microsoft/${repo} in:title "${title}"`
})
let issueNumber = null;
let issueBody = '';
if (issuesData.total_count > 0) {
issueNumber = issuesData.items[0].number
issueBody = issuesData.items[0].body
} else {
const { data: issueCreateData } = await github.issues.create({
owner: context.repo.owner,
repo: repo,
title,
body: 'Please backport client side changes: \n',
});
issueNumber = issueCreateData.number;
issueBody = issueCreateData.body;
}
const newBody = issueBody.trimEnd() + `
- [ ] https://github.com/${context.repo.owner}/${context.repo.repo}/commit/${context.sha} (${commitHeader})`;
const data = await github.issues.update({
owner: context.repo.owner,
repo: repo,
issue_number: issueNumber,
body: newBody
})
}