56 строки
2.1 KiB
YAML
56 строки
2.1 KiB
YAML
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@v6
|
||
with:
|
||
github-token: ${{ secrets.REPOSITORY_DISPATCH_PERSONAL_ACCESS_TOKEN }}
|
||
script: |
|
||
const { data } = await github.rest.git.getCommit({
|
||
owner: context.repo.owner,
|
||
repo: context.repo.repo,
|
||
commit_sha: context.sha,
|
||
});
|
||
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.rest.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.rest.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.rest.issues.update({
|
||
owner: context.repo.owner,
|
||
repo: repo,
|
||
issue_number: issueNumber,
|
||
body: newBody
|
||
})
|
||
}
|