This is an automated email from the ASF dual-hosted git repository.

github-merge-queue[bot] pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/texera.git


The following commit(s) were added to refs/heads/main by this push:
     new c82d4d1c64 ci: Compact first-time contributor welcome and stop 
issue-link pollution (#5317)
c82d4d1c64 is described below

commit c82d4d1c644b8c6dd822d3d7e4ef39d653f61a81
Author: Matthew B. <[email protected]>
AuthorDate: Wed Jun 10 11:14:55 2026 -0700

    ci: Compact first-time contributor welcome and stop issue-link pollution 
(#5317)
    
    ### What changes were proposed in this PR?
    Reworks the first-time-contributor welcome comment posted by
    `welcome-first-time-contributor.yml`.
    
    - Rewrote the welcome message: an opening pointer to `starter-task`
    issues for newcomers, plus clearer full-sentence guidance for the three
    comment-command groups (issues, sub-issues, pull requests).
    - Wrapped every issue reference in inline code so GitHub no longer
    autolinks the examples (these previously created cross-reference
    backlinks into real issues each time the welcome fired) and switched the
    examples to the self-referential `#5166` and `#5222`.
    - Moved the message body out of the workflow `.yml` and into
    `.github/welcome-first-time-contributor.txt`, read at runtime via a
    sparse checkout and rendered by substituting `{{author}}`, `{{owner}}`,
    and `{{repo}}`.
    
    The rendered message a first-time contributor now sees:
    
    > 👋 Thanks for your first contribution to Texera, @&lt;author&gt;!
    >
    > If you're looking for a good place to start, browse issues labeled
    
[`starter-task`](https://github.com/apache/texera/issues?q=is%3Aissue+is%3Aopen+label%3Astarter-task);
    they're scoped to be approachable for newcomers.
    >
    > You can drive common housekeeping yourself by commenting one of these
    commands on its own line:
    >
    > - **Issues.** Comment `/take` to assign an open issue to yourself, or
    `/untake` to release it. You can find unclaimed work with the search
    filter `is:issue is:open no:assignee`.
    > - **Sub-issues.** To link issues into a parent/child hierarchy,
    comment `/sub-issue #5166 #5222` on the parent to attach those children
    (or `/unsub-issue #5166 #5222` to detach them). From a child issue,
    comment `/parent-issue #5166` to set its parent, or `/unparent-issue` to
    clear it (the current parent is detected automatically). References may
    be written as `#5166` or as a bare `5166`; cross-repository references
    are not supported.
    > - **Pull requests (author only).** Comment `/request-review @user` to
    request a review from someone, or `/unrequest-review @user` to withdraw
    that request.
    >
    > Each command must match exactly: `/take this` will not work, only
    `/take` does. For the full contribution flow, see
    
[CONTRIBUTING.md](https://github.com/apache/texera/blob/main/CONTRIBUTING.md).
    
    ### Any related issues, documentation, or discussions?
    Closes: #5315
    
    ### How was this PR tested?
    - Cross-referenced every command claim against `comment-commands.yml`
    for accuracy.
    - Simulated the runtime substitution locally (read the `.txt`, replaced
    the placeholders, prepended the idempotency marker) and confirmed the
    output matches the message above with no leftover placeholders.
    - Confirmed via GitHub docs that `#N` inside inline code is not
    autolinked, and verified zero bare `#N` remain in the message body.
    
    ### Was this PR authored or co-authored using generative AI tooling?
    Co-authored with Claude Opus 4.8 in compliance with ASF
---
 .github/welcome-first-time-contributor.txt         | 11 ++++
 .../workflows/welcome-first-time-contributor.yml   | 61 ++++++++--------------
 2 files changed, 32 insertions(+), 40 deletions(-)

diff --git a/.github/welcome-first-time-contributor.txt 
b/.github/welcome-first-time-contributor.txt
new file mode 100644
index 0000000000..e7e01d6462
--- /dev/null
+++ b/.github/welcome-first-time-contributor.txt
@@ -0,0 +1,11 @@
+👋 Thanks for your first contribution to Texera, @{{author}}!
+
+If you're looking for a good place to start, browse issues labeled 
[`starter-task`](https://github.com/{{owner}}/{{repo}}/issues?q=is%3Aissue+is%3Aopen+label%3Astarter-task);
 they're scoped to be approachable for newcomers.
+
+You can drive common housekeeping yourself by commenting one of these commands 
on its own line:
+
+- **Issues.** Comment `/take` to assign an open issue to yourself, or 
`/untake` to release it. You can find unclaimed work with the search filter 
`is:issue is:open no:assignee`.
+- **Sub-issues.** To link issues into a parent/child hierarchy, comment 
`/sub-issue #5166 #5222` on the parent to attach those children (or 
`/unsub-issue #5166 #5222` to detach them). From a child issue, comment 
`/parent-issue #5166` to set its parent, or `/unparent-issue` to clear it (the 
current parent is detected automatically). References may be written as `#5166` 
or as a bare `5166`; cross-repository references are not supported.
+- **Pull requests (author only).** Comment `/request-review @user` to request 
a review from someone, or `/unrequest-review @user` to withdraw that request.
+
+Each command must match exactly: `/take this` will not work, only `/take` 
does. For the full contribution flow, see 
[CONTRIBUTING.md](https://github.com/{{owner}}/{{repo}}/blob/main/CONTRIBUTING.md).
diff --git a/.github/workflows/welcome-first-time-contributor.yml 
b/.github/workflows/welcome-first-time-contributor.yml
index df67bebce0..5e85ff30b3 100644
--- a/.github/workflows/welcome-first-time-contributor.yml
+++ b/.github/workflows/welcome-first-time-contributor.yml
@@ -44,6 +44,16 @@ jobs:
     if: github.event.sender.type != 'Bot'
     runs-on: ubuntu-latest
     steps:
+      # Check out the base ref (pull_request_target / issues both resolve to
+      # the trusted base branch, never the fork head) so we can read the
+      # welcome message template below. The template lives in its own .txt
+      # file so editing the wording does not trigger a full CI run; see the
+      # `ci` label exclusion in .github/labeler.yml.
+      - uses: actions/checkout@v5
+        with:
+          persist-credentials: false
+          sparse-checkout: .github/welcome-first-time-contributor.txt
+          sparse-checkout-cone-mode: false
       - uses: actions/github-script@v8
         with:
           github-token: ${{ secrets.GITHUB_TOKEN }}
@@ -104,46 +114,17 @@ jobs:
               return;
             }
 
-            const body = [
-              MARKER,
-              `👋 Thanks for your first contribution to Texera, @${author}!`,
-              ``,
-              `You can drive common housekeeping tasks just by leaving a 
comment. Type the command on its own line.`,
-              ``,
-              `### On issues`,
-              ``,
-              `| Command | What it does |`,
-              `|---|---|`,
-              `| \`/take\` | Assign the issue to yourself (self-claim it) |`,
-              `| \`/untake\` | Remove yourself as assignee |`,
-              ``,
-              `To find unclaimed work, search \`is:issue is:open no:assignee\` 
— there's no "triage" label; the search filter *is* the triage state.`,
-              ``,
-              `### Linking sub-issues`,
-              ``,
-              `| Command | Where to run it | What it does |`,
-              `|---|---|---|`,
-              `| \`/sub-issue #12 #13\` | On the **parent** | Links #12 and 
#13 as children of this issue |`,
-              `| \`/unsub-issue #12 #13\` | On the **parent** | Unlinks those 
children |`,
-              `| \`/parent-issue #5\` | On the **child** | Sets #5 as this 
issue's parent |`,
-              `| \`/unparent-issue\` | On the **child** | Removes this issue's 
parent (auto-detected) |`,
-              `| \`/unparent-issue #5\` | On the **child** | Removes parent #5 
explicitly |`,
-              ``,
-              `You can write references as \`#12\` or bare \`12\`. Cross-repo 
references like \`owner/repo#12\` aren't supported and are ignored.`,
-              ``,
-              `### On pull requests (author only)`,
-              ``,
-              `| Command | What it does |`,
-              `|---|---|`,
-              `| \`/request-review @user [@user ...]\` | Request reviews from 
those users |`,
-              `| \`/unrequest-review @user [@user ...]\` | Cancel those review 
requests |`,
-              ``,
-              `You can mention teams as \`@org/team\`, and \`@copilot\` works 
too. Only the PR **author** can use these commands.`,
-              ``,
-              `> **Note:** Commands must match exactly — \`/take this\` won't 
work, only \`/take\`. Bots are ignored, and you can't self-link an issue or set 
an issue as its own parent.`,
-              ``,
-              `For the full contribution flow, see 
[CONTRIBUTING.md](https://github.com/${owner}/${repo}/blob/main/CONTRIBUTING.md).`,
-            ].join('\n');
+            // Message body lives in .github/welcome-first-time-contributor.txt
+            // so wording edits skip CI. Substitute the runtime placeholders
+            // and prepend the idempotency marker.
+            const fs = require('fs');
+            const template = fs.readFileSync(
+              '.github/welcome-first-time-contributor.txt', 'utf8',
+            );
+            const body = MARKER + '\n' + template
+              .replaceAll('{{author}}', author)
+              .replaceAll('{{owner}}', owner)
+              .replaceAll('{{repo}}', repo);
 
             try {
               await github.rest.issues.createComment({

Reply via email to