Skip to content

Start a port when a porting issue is created - #393

Open
ddaspit wants to merge 4 commits into
mainfrom
ddaspit/claude-port-on-issue
Open

ddaspit wants to merge 4 commits into
mainfrom
ddaspit/claude-port-on-issue

Conversation

@ddaspit

@ddaspit ddaspit commented Oct 1, 2026 •

Copy link
Copy Markdown
Contributor

Quick summary

A new porting issue in this repo now starts Claude, which ports the change and opens a PR. A merged PR no longer gets a porting issue when it has the no porting label. No library code changes.

Where to look

  • claude.yml: the porting label starts the workflow through the action's label_trigger. An issue created with a label fires a labeled event, so every new porting issue starts a port. The appended prompt tells Claude to use the port-pr skill. The author checks still apply. Porting issues are created with a member's token, so they pass them.
  • claude.yml: the @claude mention clause skips labeled events and issues with the porting label. Otherwise any label on an issue that mentions @claude would run the full job for nothing, and a porting issue that mentions @claude would start two ports.
  • create-porting-issue.yml: skips a merged PR with the no porting label. The existing check that skips a PR closing an auto-generated issue is still there, so a port does not create an issue to port it back.

Porting stays the default, so nothing needs to add a label to new PRs. I renamed the needs porting label I created earlier to no porting. No PR had it.

Deliberately not included

The porting issues in this repo are created by sillsdev/machine's copy of create-porting-issue.yml. The opt-out there needs the same change.

Validation

  • Parsed claude.yml and create-porting-issue.yml with PyYAML. Both parsed.
  • git diff --check -- clean.
  • I did not run ./local_check.sh. This PR only changes workflow files.
  • None of this can be verified until the workflows run after merge.

🤖 Generated with Claude Code

@codecov-commenter

codecov-commenter commented Oct 1, 2026 •

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 92.07%. Comparing base (8d3767c) to head (f3df62a).

Additional details and impacted files
@@           Coverage Diff           @@
##             main     #393   +/-   ##
=======================================
  Coverage   92.07%   92.07%           
=======================================
  Files         394      394           
  Lines       24896    24896           
=======================================
  Hits        22922    22922           
  Misses       1974     1974           

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

A porting issue is created with the porting label, and that label now starts
the @claude workflow, which ports the change with the port-pr skill and opens a
pull request.

A merged PR now gets a porting issue only when it has the needs porting label.
Every new PR gets the label, so porting stays the default, and the author
removes it to opt out.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@ddaspit
ddaspit force-pushed the ddaspit/claude-port-on-issue branch from b2bee4d to 9b85d3d Compare October 1, 2026 18:22
Comment thread .github/workflows/claude.yml
@claude

This comment has been minimized.

The mention clause did not check the event action, so adding any label to an
issue that mentions @claude ran the full job before the action exited. It now
skips labeled events. It also skips porting issues, which the label clause
already starts, so one issue cannot start two ports.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@claude

This comment has been minimized.

…n-issue

# Conflicts:
#	.github/workflows/claude.yml
@claude

This comment has been minimized.

Adding a needs porting label to every PR took its own pull_request_target
workflow, and PRs opened before it, or ports themselves, had the wrong label.
Porting is the default, so a merged PR now gets a porting issue unless it has
the no porting label. The labeling workflow is removed.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@claude

claude Bot commented Oct 2, 2026

Copy link
Copy Markdown
  1. Verdict: approve.
  2. Nothing blocks. Since 5aae6d5, f3df62a turns porting into an opt-out. It deletes label-needs-porting.yml and flips the gate at .github/workflows/create-porting-issue.yml:14-16 to !contains(..., 'no porting'). Against main, the only change to that file is the opt-out clause. Every merged PR without the label still gets an issue, as it did on main.
  3. Critical 0, Important 0, Low 0 new. F1 (Low) was already addressed.
  4. What I ran:
    • compare 5aae6d5...f3df62a returned ahead.
    • git diff 5aae6d5 f3df62a: the gate flip plus the deleted labeling workflow. pull_request_target is gone from the PR, so that earlier untestable path no longer exists.
    • git diff 8d3767c f3df62a --stat: only claude.yml and create-porting-issue.yml change.
    • git grep -i "needs porting\|no porting" f3df62a: the only hits are the gate and its comment at create-porting-issue.yml:13,16. Nothing still names needs porting.
    • gh api repos/sillsdev/machine.py/labels/no%20porting: the label exists. needs porting returns 404, which matches the rename in the PR body.
    • gh pr view 393 --json labels: no labels. So merging this PR will file a porting issue in sillsdev/machine, which is where the PR body says the same opt-out is still needed.
  5. Not verified: no YAML parse or actionlint this round. The Python parse needed an approval I did not have, and actionlint is not installed. The label trigger and the label-gated issue creation cannot be tested before merge.

Public API, optional dependency, published-wheel surface, sillsdev/machine parity: None verified. Only workflows changed. sillsdev/machine's copy of the porting gate still needs the opt-out, as the PR body says.

Findings: F1 addressed.

Reviewed at f3df62a

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants