Skip to content

enhancement(dev): add skill for triggering CI on external contributions#1723

Merged
gh-worker-dd-mergequeue-cf854d[bot] merged 3 commits into
mainfrom
tobz/external-pr-ci-trigger-skill
May 22, 2026
Merged

enhancement(dev): add skill for triggering CI on external contributions#1723
gh-worker-dd-mergequeue-cf854d[bot] merged 3 commits into
mainfrom
tobz/external-pr-ci-trigger-skill

Conversation

@tobz
Copy link
Copy Markdown
Member

@tobz tobz commented May 22, 2026

Summary

As stated in the PR title.

PRs from external contributors (as in forks) do not trigger CI: only branches pushed directly to the repository (and thus, implied by that, authorized contributors) can trigger CI.

In order to make it possible to accept external contributions and, in doing so, verify that they pass CI, we need a way to repeatably trigger CI. This PR adds a new Claude skill that automates the manual steps of doing so with a command invocation that's as simple as:

/external-pr-ci-trigger <PR number>

This skill uses the gh CLI, and normal Git commands, to pull down the remote fork/branch and repush them to the main repository with a specific branch naming scheme. The push alone triggers CI, but the branch name matching a specific format will allow the CI pipeline to be automatically associated with the external contributor's PR, so that all check status is propagated just as if it was triggered directly.

Change Type

  • Bug fix
  • New feature
  • Non-functional (chore, refactoring, docs)
  • Performance

How did you test this PR?

Ran the skill locally on #1671 and observed that it created the branch and triggered CI properly, with the PR showing the checks running.

References

DADP-2

@tobz tobz requested a review from a team as a code owner May 22, 2026 14:50
@tobz tobz added the type/enhancement An enhancement in functionality or support. label May 22, 2026
Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 25d9e70e2e

ℹ️ About Codex in GitHub

Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

Comment thread .claude/skills/external-pr-ci-trigger/SKILL.md
Comment thread .claude/skills/external-pr-ci-trigger/SKILL.md Outdated
@pr-commenter
Copy link
Copy Markdown

pr-commenter Bot commented May 22, 2026

Binary Size Analysis (Agent Data Plane)

Baseline: f907c91 · Comparison: 1efca47 · diff
Analysis Configuration: stripped binaries · Pass/Fail Threshold: +5%
Sizes: 37.68 MiB (baseline) vs 37.68 MiB (comparison)
Size Change: +8 B (+0.00%)

✅ Binary size difference within threshold

Changes by Module
Module File Size Symbols
anon.e23c78aa09c99bb915937a91f6b5f237.1.llvm.18299013375486547891 +130 B 1
anon.e23c78aa09c99bb915937a91f6b5f237.1.llvm.6491998991054823396 -129 B 1
anon.e23c78aa09c99bb915937a91f6b5f237.4.llvm.18299013375486547891 +115 B 1
anon.e23c78aa09c99bb915937a91f6b5f237.4.llvm.6491998991054823396 -114 B 1
anon.e23c78aa09c99bb915937a91f6b5f237.3.llvm.18299013375486547891 +109 B 1
anon.e23c78aa09c99bb915937a91f6b5f237.3.llvm.6491998991054823396 -108 B 1
anon.e23c78aa09c99bb915937a91f6b5f237.0.llvm.18299013375486547891 +97 B 1
anon.e23c78aa09c99bb915937a91f6b5f237.0.llvm.6491998991054823396 -96 B 1
anon.e23c78aa09c99bb915937a91f6b5f237.2.llvm.18299013375486547891 +95 B 1
anon.e23c78aa09c99bb915937a91f6b5f237.2.llvm.6491998991054823396 -94 B 1
[Unmapped] +3 B 1
Detailed Symbol Changes
    FILE SIZE        VM SIZE    
 --------------  -------------- 
  [NEW]    +130  [NEW]     +40    anon.e23c78aa09c99bb915937a91f6b5f237.1.llvm.18299013375486547891
  [NEW]    +115  [NEW]     +25    anon.e23c78aa09c99bb915937a91f6b5f237.4.llvm.18299013375486547891
  [NEW]    +109  [NEW]     +19    anon.e23c78aa09c99bb915937a91f6b5f237.3.llvm.18299013375486547891
  [NEW]     +97  [NEW]      +7    anon.e23c78aa09c99bb915937a91f6b5f237.0.llvm.18299013375486547891
  [NEW]     +95  [NEW]      +5    anon.e23c78aa09c99bb915937a91f6b5f237.2.llvm.18299013375486547891
  +0.1%      +3  [ = ]       0    [Unmapped]
  [DEL]     -94  [DEL]      -5    anon.e23c78aa09c99bb915937a91f6b5f237.2.llvm.6491998991054823396
  [DEL]     -96  [DEL]      -7    anon.e23c78aa09c99bb915937a91f6b5f237.0.llvm.6491998991054823396
  [DEL]    -108  [DEL]     -19    anon.e23c78aa09c99bb915937a91f6b5f237.3.llvm.6491998991054823396
  [DEL]    -114  [DEL]     -25    anon.e23c78aa09c99bb915937a91f6b5f237.4.llvm.6491998991054823396
  [DEL]    -129  [DEL]     -40    anon.e23c78aa09c99bb915937a91f6b5f237.1.llvm.6491998991054823396
  +0.0%      +8  [ = ]       0    TOTAL

@pr-commenter
Copy link
Copy Markdown

pr-commenter Bot commented May 22, 2026

Regression Detector (Agent Data Plane)

Run ID: a74c8ffb-6f03-461d-a706-6f806f170f87
Baseline: f907c912 · Comparison: 1efca47d · diff

Optimization Goals: ✅ No significant changes detected

Fine details of change detection per experiment (35)

Experiments configured erratic: true are tagged (ignored) and skipped when determining which experiments regressed or improved. Experiments which are detected as erratic at runtime are tagged (erratic) to flag that the run's sample dispersion was high, but their regression / improvement signal still counts.

experiment goal Δ mean % links
otlp_ingest_logs_5mb_cpu (ignored) cpu ⚪ +3.87 metrics profiles logs
dsd_uds_1mb_3k_contexts_cpu (erratic) cpu ⚪ +2.32 metrics profiles logs
otlp_ingest_metrics_5mb_memory memory ⚪ +2.19 metrics profiles logs
dsd_uds_512kb_3k_contexts_cpu (erratic) cpu ⚪ +0.76 metrics profiles logs
dsd_uds_100mb_3k_contexts_cpu (erratic) cpu ⚪ +0.61 metrics profiles logs
dsd_uds_10mb_3k_contexts_cpu (erratic) cpu ⚪ +0.37 metrics profiles logs
otlp_ingest_traces_5mb_cpu (erratic) cpu ⚪ +0.29 metrics profiles logs
dsd_uds_500mb_3k_contexts_cpu (erratic) cpu ⚪ +0.28 metrics profiles logs
otlp_ingest_metrics_5mb_cpu (erratic) cpu ⚪ +0.17 metrics profiles logs
quality_gates_rss_dsd_heavy memory ⚪ +0.15 metrics profiles logs
quality_gates_rss_dsd_medium memory ⚪ +0.13 metrics profiles logs
quality_gates_rss_dsd_ultraheavy memory ⚪ +0.10 metrics profiles logs
dsd_uds_10mb_3k_contexts_memory memory ⚪ +0.06 metrics profiles logs
dsd_uds_512kb_3k_contexts_memory memory ⚪ +0.05 metrics profiles logs
otlp_ingest_logs_5mb_memory (ignored) memory ⚪ +0.04 metrics profiles logs
otlp_ingest_traces_5mb_throughput throughput ⚪ -0.01 metrics profiles logs
dsd_uds_10mb_3k_contexts_throughput throughput ⚪ -0.01 metrics profiles logs
otlp_ingest_traces_ottl_transform_5mb_throughput throughput ⚪ -0.00 metrics profiles logs
dsd_uds_1mb_3k_contexts_throughput throughput ⚪ +0.00 metrics profiles logs
dsd_uds_100mb_3k_contexts_throughput throughput ⚪ +0.00 metrics profiles logs
dsd_uds_512kb_3k_contexts_throughput throughput ⚪ +0.00 metrics profiles logs
quality_gates_rss_idle memory ⚪ -0.01 metrics profiles logs
otlp_ingest_logs_5mb_throughput (ignored) throughput ⚪ +0.01 metrics profiles logs
otlp_ingest_metrics_5mb_throughput throughput ⚪ +0.02 metrics profiles logs
otlp_ingest_traces_5mb_memory memory ⚪ -0.03 metrics profiles logs
quality_gates_rss_dsd_low memory ⚪ -0.05 metrics profiles logs
dsd_uds_1mb_3k_contexts_memory memory ⚪ -0.06 metrics profiles logs
otlp_ingest_traces_ottl_transform_5mb_cpu (erratic) cpu ⚪ -0.06 metrics profiles logs
otlp_ingest_traces_ottl_transform_5mb_memory memory ⚪ -0.07 metrics profiles logs
otlp_ingest_traces_ottl_filtering_5mb_memory memory ⚪ -0.08 metrics profiles logs
dsd_uds_500mb_3k_contexts_memory memory ⚪ -0.13 metrics profiles logs
dsd_uds_100mb_3k_contexts_memory memory ⚪ -0.27 metrics profiles logs
dsd_uds_500mb_3k_contexts_throughput throughput ⚪ +0.43 metrics profiles logs
otlp_ingest_traces_ottl_filtering_5mb_throughput throughput ⚪ +0.49 metrics profiles logs
otlp_ingest_traces_ottl_filtering_5mb_cpu (erratic) cpu ⚪ -0.52 metrics profiles logs
Bounds Checks: ✅ Passed (5)
experiment check replicates observed links
quality_gates_rss_dsd_heavy memory_usage 10/10 ✅ 124 MiB ≤ 140 MiB metrics profiles logs
quality_gates_rss_dsd_low memory_usage 10/10 ✅ 39.7 MiB ≤ 50 MiB metrics profiles logs
quality_gates_rss_dsd_medium memory_usage 10/10 ✅ 60.3 MiB ≤ 75 MiB metrics profiles logs
quality_gates_rss_dsd_ultraheavy memory_usage 10/10 ✅ 179 MiB ≤ 200 MiB metrics profiles logs
quality_gates_rss_idle memory_usage 10/10 ✅ 26.8 MiB ≤ 40 MiB metrics profiles logs
Explanation

A change is flagged as a regression when |Δ mean %| > 5.00% in the regressing direction for its optimization goal AND SMP marks the experiment as a regression (is_regression: true). Improvements use the matching criteria for the improving direction. Experiments configured erratic: true (tagged (ignored)) are skipped outright; experiments detected as erratic at runtime (tagged (erratic)) still count, since that flag describes sample dispersion rather than directional certainty. The Δ mean % cell is colored accordingly: 🟢 = improvement, 🔴 = regression, ⚪ = neutral. Reduction in CPU or memory is an improvement; reduction in ingress throughput is a regression.

@datadog-prod-us1-5

This comment has been minimized.

@gh-worker-dd-mergequeue-cf854d gh-worker-dd-mergequeue-cf854d Bot merged commit 09880b1 into main May 22, 2026
80 checks passed
dd-octo-sts Bot pushed a commit that referenced this pull request May 22, 2026
…ns (#1723)

## Summary

As stated in the PR title.

PRs from external contributors (as in forks) do not trigger CI: only branches pushed directly to the repository (and thus, implied by that, authorized contributors) can trigger CI.

In order to make it possible to accept external contributions and, in doing so, verify that they pass CI, we need a way to repeatably trigger CI. This PR adds a new Claude skill that automates the manual steps of doing so with a command invocation that's as simple as:

`/external-pr-ci-trigger <PR number>`

This skill uses the `gh` CLI, and normal Git commands, to pull down the remote fork/branch and repush them to the main repository with a specific branch naming scheme. The push alone triggers CI, but the branch name matching a specific format will allow the CI pipeline to be automatically associated with the external contributor's PR, so that all check status is propagated just as if it was triggered directly.

## Change Type

- [ ] Bug fix
- [x] New feature
- [ ] Non-functional (chore, refactoring, docs)
- [ ] Performance

## How did you test this PR?

Ran the skill locally on #1671 and observed that it created the branch _and_ triggered CI properly, with the PR showing the checks running.

## References

DADP-2

Co-authored-by: toby.lawrence <toby.lawrence@datadoghq.com> 09880b1
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

mergequeue-status: done type/enhancement An enhancement in functionality or support.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants