Skip to content

Optimiere Workflow zum Kopieren von Labels, um verknüpfte Issues über… #2

Optimiere Workflow zum Kopieren von Labels, um verknüpfte Issues über…

Optimiere Workflow zum Kopieren von Labels, um verknüpfte Issues über… #2

name: Copy issue labels to PR
on:
pull_request:
types: [opened, reopened, synchronize]
permissions:
contents: read
issues: read
pull-requests: write
jobs:
copy-issue-labels:
runs-on: ubuntu-latest
steps:
- name: Copy labels from linked issue
uses: actions/github-script@v7
with:
script: |
const prNumber = context.payload.pull_request.number;
const timeline = await github.paginate(
github.rest.issues.listEventsForTimeline,
{
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: prNumber,
per_page: 100
}
);
const linkedIssue = timeline.find(e =>
e.event === 'connected' &&
e.source?.type === 'issue' &&
e.source?.issue?.number
);
if (!linkedIssue) {
core.info('No linked issue found via timeline.');
return;
}
const issueNumber = linkedIssue.source.issue.number;
core.info(`Found linked issue #${issueNumber}`);
const issue = await github.rest.issues.get({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: issueNumber
});
const labels = issue.data.labels.map(label => label.name);
if (labels.length === 0) {
core.info('Linked issue has no labels.');
return;
}
await github.rest.issues.addLabels({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: prNumber,
labels
});
core.info(`Copied labels to PR: ${labels.join(', ')}`);