helloadhavan/github_issues huggingface dataset:
Repository: nodejs/node
Pull request: util: inspect: do not crash on Symbol function names

See #56570 - this avoids a crash when a Function name is a Symbol.

Changed files:
filename: lib/internal/util/inspect.js
patch: @@ -989,7 +989,7 @@ function formatRaw(ctx, value, recurseTimes, typedArray) {
     keys = getKeys(value, ctx.showHidden);
     braces = ['{', '}'];
     if (typeof value === 'function') {
-      base = getFunctionBase(value, constructor, tag);
+      base = getFunctionBase(ctx, value, constructor, tag);
       if (keys.length === 0 && protoProps === undefined)
         return ctx.stylize(base, 'special');
     } else if (constructor === 'Object') {
@@ -1223,7 +1223,7 @@ function getClassBase(value, constructor, tag) {
   return `[${base}]`;
 }
 
-function getFunctionBase(value, constructor, tag) {
+function getFunctionBase(ctx, value, constructor, tag) {
   const stringified = FunctionPrototypeToString(value);
   if (StringPrototypeStartsWith(stringified, 'class') && stringified[stringified.length - 1] === '}') {
     const slice = StringPrototypeSlice(stringified, 5, -1);
@@ -1250,7 +1250,7 @@ function getFunctionBase(value, constructor, tag) {
   if (value.name === '') {
     base += ' (anonymous)';
   } else {
-    base += `: ${value.name}`;
+    base += `: ${typeof value.name === 'string' ? value.name : formatValue(ctx, value.name)}`;
   }
   base += ']';
   if (constructor !== type && constructor !== null) {

filename: test/parallel/test-util-inspect.js
patch: @@ -3426,3 +3426,13 @@ assert.strictEqual(
     Object.defineProperty(BuiltinPrototype, 'constructor', desc);
   }
 }
+
+{
+  function f() {}
+  Object.defineProperty(f, 'name', { value: Symbol('f') });
+
+  assert.strictEqual(
+    util.inspect(f),
+    '[Function: Symbol(f)]',
+  );
+}
Repository: denoland/deno
Pull request: feat(ext/node): export missing constants from 'zlib' module

That puts us at 99.5% compatibility for this module.

Changed files:
filename: ext/node/polyfills/zlib.ts
patch: @@ -78,20 +78,15 @@ export class ZlibBase {
 export { constants };
 
 export default {
-  Options,
-  BrotliOptions,
+  brotliCompress,
   BrotliCompress,
+  brotliCompressSync,
+  brotliDecompress,
   BrotliDecompress,
-  Deflate,
-  DeflateRaw,
-  Gunzip,
-  Gzip,
-  Inflate,
-  InflateRaw,
-  Unzip,
-  ZlibBase,
-  constants,
+  brotliDecompressSync,
+  BrotliOptions,
   codes,
+  constants,
   createBrotliCompress,
   createBrotliDecompress,
   createDeflate,
@@ -101,24 +96,73 @@ export default {
   createInflate,
   createInflateRaw,
   createUnzip,
-  brotliCompress,
-  brotliCompressSync,
-  brotliDecompress,
-  brotliDecompressSync,
   deflate,
-  deflateSync,
+  Deflate,
+  DEFLATE: constants.DEFLATE,
   deflateRaw,
+  DeflateRaw,
+  DEFLATERAW: constants.DEFLATERAW,
   deflateRawSync,
+  deflateSync,
   gunzip,
+  Gunzip,
+  GUNZIP: constants.GUNZIP,
   gunzipSync,
   gzip,
+  Gzip,
+  GZIP: constants.GZIP,
   gzipSync,
   inflate,
-  inflateSync,
+  Inflate,
+  INFLATE: constants.INFLATE,
   inflateRaw,
+  InflateRaw,
+  INFLATERAW: constants.INFLATERAW,
   inflateRawSync,
+  inflateSync,
+  Options,
   unzip,
+  Unzip,
+  UNZIP: constants.UNZIP,
   unzipSync,
+  Z_BEST_COMPRESSION: constants.Z_BEST_COMPRESSION,
+  Z_BEST_SPEED: constants.Z_BEST_SPEED,
+  Z_BLOCK: constants.Z_BLOCK,
+  Z_BUF_ERROR: constants.Z_BUF_ERROR,
+  Z_DATA_ERROR: constants.Z_DATA_ERROR,
+  Z_DEFAULT_CHUNK: constants.Z_DEFAULT_CHUNK,
+  Z_DEFAULT_COMPRESSION: constants.Z_DEFAULT_COMPRESSION,
+  Z_DEFAULT_LEVEL: constants.Z_DEFAULT_LEVEL,
+  Z_DEFAULT_MEMLEVEL: constants.Z_DEFAULT_MEMLEVEL,
+  Z_DEFAULT_STRATEGY: constants.Z_DEFAULT_STRATEGY,
+  Z_DEFAULT_WINDOWBITS: constants.Z_DEFAULT_WINDOWBITS,
+  Z_ERRNO: constants.Z_ERRNO,
+  Z_FILTERED: constants.Z_FILTERED,
+  Z_FINISH: constants.Z_FINISH,
+  Z_FIXED: constants.Z_FIXED,
+  Z_FULL_FLUSH: constants.Z_FULL_FLUSH,
+  Z_HUFFMAN_ONLY: constants.Z_HUFFMAN_ONLY,
+  Z_MAX_CHUNK: constants.Z_MAX_CHUNK,
+  Z_MAX_LEVEL: constants.Z_MAX_LEVEL,
+  Z_MAX_MEMLEVEL: constants.Z_MAX_MEMLEVEL,
+  Z_MAX_WINDOWBITS: constants.Z_MAX_WINDOWBITS,
+  Z_MEM_ERROR: constants.Z_MEM_ERROR,
+  Z_MIN_CHUNK: constants.Z_MIN_CHUNK,
+  Z_MIN_LEVEL: constants.Z_MIN_LEVEL,
+  Z_MIN_MEMLEVEL: constants.Z_MIN_MEMLEVEL,
+  Z_MIN_WINDOWBITS: constants.Z_MIN_WINDOWBITS,
+  Z_NEED_DICT: constants.Z_NEED_DICT,
+  Z_NO_COMPRESSION: constants.Z_NO_COMPRESSION,
+  Z_NO_FLUSH: constants.Z_NO_FLUSH,
+  Z_OK: constants.Z_OK,
+  Z_PARTIAL_FLUSH: constants.Z_PARTIAL_FLUSH,
+  Z_RLE: constants.Z_RLE,
+  Z_STREAM_END: constants.Z_STREAM_END,
+  Z_STREAM_ERROR: constants.Z_STREAM_ERROR,
+  Z_SYNC_FLUSH: constants.Z_SYNC_FLUSH,
+  Z_VERSION_ERROR: constants.Z_VERSION_ERROR,
+  ZLIB_VERNUM: constants.ZLIB_VERNUM,
+  ZlibBase,
 };
 
 export {
Repository: electron/electron
Pull request: fix: -Wunsafe-buffer-usage warning in asar_util's ReadFileToString()

#### Description of Change

Part 7 in a [series](https://github.com/electron/electron/pull/43477) to fix `-Wunsafe-buffer-usage` warnings in electron `shell/`. This fixes an asar `base::File` API call, similar to [an earlier](https://github.com/electron/electron/pull/43624) asar fix in the series.

The warning fixed by this PR:

```
../../electron/shell/common/asar/asar_util.cc:130:7: error: function introduces unsafe buffer manipulation [-Werror,-Wunsafe-buffer-usage]
  130 |       src.Read(info.offset, const_cast<char*>(contents->data()),
      |       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  131 |                contents->size())) {
      |                ~~~~~~~~~~~~~~~~~
../../electron/shell/common/asar/asar_util.cc:130:7: note: pass -fsafe-buffer-usage-suggestions to receive code hardening suggestions
```

#### Checklist

- [x] PR description included and stakeholders cc'd
- [x] `npm test` passes
- [x] [PR release notes](https://github.com/electron/clerk/blob/main/README.md) describe the change in a way relevant to app developers, and are [capitalized, punctuated, and past tense](https://github.com/electron/clerk/blob/main/README.md#examples).

#### Release Notes

Notes: none.

Changed files:
filename: shell/common/asar/asar_util.cc
patch: @@ -126,11 +126,8 @@ bool ReadFileToString(const base::FilePath& path, std::string* contents) {
     return false;
 
   contents->resize(info.size);
-  if (static_cast<int>(info.size) !=
-      src.Read(info.offset, const_cast<char*>(contents->data()),
-               contents->size())) {
+  if (!src.ReadAndCheck(info.offset, base::as_writable_byte_span(*contents)))
     return false;
-  }
 
   if (info.integrity)
     ValidateIntegrityOrDie(base::as_byte_span(*contents), *info.integrity);
Repository: ggml-org/llama.cpp
Pull request: ggml : add ggml_repeat_4d

Add a variant of `ggml_repeat` which allow arbitrary target shape

Changed files:
filename: ggml/include/ggml.h
patch: @@ -935,6 +935,15 @@ extern "C" {
             struct ggml_tensor  * a,
             struct ggml_tensor  * b);
 
+    // repeat a to the specified shape
+    GGML_API struct ggml_tensor * ggml_repeat_4d(
+            struct ggml_context * ctx,
+            struct ggml_tensor  * a,
+                       int64_t    ne0,
+                       int64_t    ne1,
+                       int64_t    ne2,
+                       int64_t    ne3);
+
     // sums repetitions in a into shape of b
     GGML_API struct ggml_tensor * ggml_repeat_back(
             struct ggml_context * ctx,

filename: ggml/src/ggml.c
patch: @@ -2312,6 +2312,26 @@ struct ggml_tensor * ggml_repeat(
     return result;
 }
 
+struct ggml_tensor * ggml_repeat_4d(
+        struct ggml_context * ctx,
+        struct ggml_tensor * a,
+        int64_t ne0, int64_t ne1, int64_t ne2, int64_t ne3) {
+    const bool can_repeat = ggml_is_empty(a) || (
+        (ne0 % a->ne[0] == 0) &&
+        (ne1 % a->ne[1] == 0) &&
+        (ne2 % a->ne[2] == 0) &&
+        (ne3 % a->ne[3] == 0)
+    );
+    GGML_ASSERT(can_repeat);
+
+    struct ggml_tensor * result = ggml_new_tensor_4d(ctx, a->type, ne0, ne1, ne2, ne3);
+
+    result->op     = GGML_OP_REPEAT;
+    result->src[0] = a;
+
+    return result;
+}
+
 // ggml_repeat_back
 
 struct ggml_tensor * ggml_repeat_back(
Repository: huggingface/transformers
Pull request: [Ready to Merge][HFQuantizer] Squelch pydantic warnings

## Purpose ##
* Reduce pydantic warnings

```
  ...lib/python3.12/site-packages/transformers/utils/quantization_config.py:1336: PydanticDeprecatedSince20: The `dict` method is deprecated; use `model_dump` instead. Deprecated in Pydantic V2.0 to be removed in V3.0. See Pydantic V2 Migration Guide at https://errors.pydantic.dev/2.11/migration/
    quantization_config = self.quantization_config.dict()
```

## Changes ##
* Replace `.dict()` with `.model_dump()`

## Reviewers ##
* @SunMarc, @ArthurZucker, @Rocketknight1 

Changed files:
filename: src/transformers/utils/quantization_config.py
patch: @@ -1403,12 +1403,12 @@ def to_dict(self) -> Dict[str, Any]:
         """
         quantization_config = {}
         if self.quantization_config is not None:
-            quantization_config = self.quantization_config.dict()
+            quantization_config = self.quantization_config.model_dump()
         else:
             quantization_config["quant_method"] = QuantizationMethod.COMPRESSED_TENSORS
 
         if self.sparsity_config is not None:
-            quantization_config["sparsity_config"] = self.sparsity_config.dict()
+            quantization_config["sparsity_config"] = self.sparsity_config.model_dump()
         else:
             quantization_config["sparsity_config"] = {}
Repository: facebook/react
Pull request: [DevTools] enable "reload & profile" button for timeline view

## Summary

resolves #24603


<!--
 Explain the **motivation** for making this change. What existing problem does the pull request solve?
-->

## How did you test this change?

On a local extension build and reactjs.org beta version 
<img width="871" alt="image" src="https://user-images.githubusercontent.com/1001890/173070466-12f74d33-fd74-492d-b60b-279bb2d0a633.png">


<!--
  Demonstrate the code is solid. Example: The exact commands you ran and their output, screenshots / videos if the pull request changes the user interface.
  How exactly did you verify that your PR solves the issue you wanted to solve?
  If you leave this empty, your PR will very likely be closed.
-->


Changed files:
filename: packages/react-devtools-shared/src/devtools/views/Profiler/Profiler.js
patch: @@ -113,9 +113,7 @@ function Profiler(_: {||}) {
         <div className={styles.LeftColumn}>
           <div className={styles.Toolbar}>
             <RecordToggle disabled={!supportsProfiling} />
-            <ReloadAndProfileButton
-              disabled={selectedTabID === 'timeline' || !supportsProfiling}
-            />
+            <ReloadAndProfileButton disabled={!supportsProfiling} />
             <ClearProfilingDataButton />
             <ProfilingImportExportButtons />
             <div className={styles.VRule} />
Repository: denoland/deno
Pull request: fix(ext/node): fix `Cipheriv#update(string, undefined)`

This PR fixes the case when the `Cipheriv#update()` method is called with string without `inputEncoding` specified.

When the input is string and `inputEncoding` is not specified, the given string is directly passed to `op_node_cipheriv_encrypt`, and the encoding result becomes a wrong value.

This PR fixes it by always converting the input string with `Buffer.from` when the input is string. (ref: Node.js does the same https://github.com/nodejs/node/blob/123bb4cb22e739a039392d83d512601982f40fc0/lib/internal/crypto/cipher.js#L165-L166 )

closes #25279 

Changed files:
filename: ext/node/polyfills/internal/crypto/cipher.ts
patch: @@ -242,7 +242,7 @@ export class Cipheriv extends Transform implements Cipher {
   ): Buffer | string {
     // TODO(kt3k): throw ERR_INVALID_ARG_TYPE if data is not string, Buffer, or ArrayBufferView
     let buf = data;
-    if (typeof data === "string" && typeof inputEncoding === "string") {
+    if (typeof data === "string") {
       buf = Buffer.from(data, inputEncoding);
     }
 
@@ -396,7 +396,7 @@ export class Decipheriv extends Transform implements Cipher {
   ): Buffer | string {
     // TODO(kt3k): throw ERR_INVALID_ARG_TYPE if data is not string, Buffer, or ArrayBufferView
     let buf = data;
-    if (typeof data === "string" && typeof inputEncoding === "string") {
+    if (typeof data === "string") {
       buf = Buffer.from(data, inputEncoding);
     }
 

filename: tests/unit_node/crypto/crypto_cipher_test.ts
patch: @@ -139,16 +139,32 @@ Deno.test({
 Deno.test({
   name: "createCipheriv - input encoding",
   fn() {
-    const cipher = crypto.createCipheriv(
-      "aes-128-cbc",
-      new Uint8Array(16),
-      new Uint8Array(16),
-    );
-    assertEquals(
-      cipher.update("hello, world! hello, world!", "utf-8", "hex"),
-      "ca7df4d74f51b77a7440ead38343ab0f",
-    );
-    assertEquals(cipher.final("hex"), "d0da733dec1fa61125c80a6f97e6166e");
+    {
+      const cipher = crypto.createCipheriv(
+        "aes-128-cbc",
+        new Uint8Array(16),
+        new Uint8Array(16),
+      );
+      assertEquals(
+        cipher.update("hello, world! hello, world!", "utf-8", "hex"),
+        "ca7df4d74f51b77a7440ead38343ab0f",
+      );
+      assertEquals(cipher.final("hex"), "d0da733dec1fa61125c80a6f97e6166e");
+    }
+
+    {
+      const cipher = crypto.createCipheriv(
+        "aes-128-cbc",
+        new Uint8Array(16),
+        new Uint8Array(16),
+      );
+      // update with string without input encoding
+      assertEquals(
+        cipher.update("hello, world! hello, world!").toString("hex"),
+        "ca7df4d74f51b77a7440ead38343ab0f",
+      );
+      assertEquals(cipher.final("hex"), "d0da733dec1fa61125c80a6f97e6166e");
+    }
   },
 });
Repository: denoland/deno
Pull request: fix(ext/node): avoid showing `UNKNOWN` error from TCP handle

This PR destroys Node.js stream with Deno's original error instead of `UNKNOWN` error from handle object.

In `ext/node/polyfills/internal_binding/stream_wrap.ts`, we try to simulate the system call error when reading from the internal `Deno.Conn`, however when it's used with `tls.connect` and the thrown error is a cert error (like `InvalidData: invalid peer certificate: UnknownIssuer`), then that error can't be mapped using [this list of errors](https://github.com/denoland/deno/blob/c4d088863e93b70fa0729f326ad14376ca90b0a6/ext/node/polyfills/internal_binding/uv.ts) and it becomes `UNKNOWN` error.

This PR stops that mapping to UNKNOWN error (because it just obscures the actual reason and leads to the confusion like #20293), and instead destroys the stream with the Deno's original error (This is not ideal for the compatibility, but at least it's better than obscuring the error reason with 'UNKNOWN' error in my view).

related #20293

Changed files:
filename: ext/node/polyfills/internal_binding/stream_wrap.ts
patch: @@ -38,6 +38,7 @@ import { TextEncoder } from "ext:deno_web/08_text_encoding.js";
 import { Buffer } from "node:buffer";
 import { notImplemented } from "ext:deno_node/_utils.ts";
 import { HandleWrap } from "ext:deno_node/internal_binding/handle_wrap.ts";
+import { ownerSymbol } from "ext:deno_node/internal/async_hooks.ts";
 import {
   AsyncWrap,
   providerType,
@@ -343,7 +344,8 @@ export class LibuvStreamWrap extends HandleWrap {
       ) {
         nread = codeMap.get("ECONNRESET")!;
       } else {
-        nread = codeMap.get("UNKNOWN")!;
+        this[ownerSymbol].destroy(e);
+        return;
       }
     }
 

filename: tests/unit_node/tls_test.ts
patch: @@ -1,11 +1,16 @@
 // Copyright 2018-2024 the Deno authors. All rights reserved. MIT license.
 
-import { assertEquals, assertInstanceOf } from "@std/assert";
+import {
+  assertEquals,
+  assertInstanceOf,
+  assertStringIncludes,
+} from "@std/assert";
 import { delay } from "@std/async/delay";
 import { fromFileUrl, join } from "@std/path";
 import * as tls from "node:tls";
 import * as net from "node:net";
 import * as stream from "node:stream";
+import { execCode } from "../unit/test_util.ts";
 
 const tlsTestdataDir = fromFileUrl(
   new URL("../testdata/tls", import.meta.url),
@@ -189,3 +194,24 @@ Deno.test("tlssocket._handle._parentWrap is set", () => {
       ._parentWrap;
   assertInstanceOf(parentWrap, stream.PassThrough);
 });
+
+Deno.test("tls.connect() throws InvalidData when there's error in certificate", async () => {
+  // Uses execCode to avoid `--unsafely-ignore-certificate-errors` option applied
+  const [status, output] = await execCode(`
+    import tls from "node:tls";
+    const conn = tls.connect({
+      host: "localhost",
+      port: 4557,
+    });
+
+    conn.on("error", (err) => {
+      console.log(err);
+    });
+  `);
+
+  assertEquals(status, 0);
+  assertStringIncludes(
+    output,
+    "InvalidData: invalid peer certificate: UnknownIssuer",
+  );
+});
Repository: electron/electron
Pull request: fix: -Wunsafe-buffer-usage warning in asar_util's ReadFileToString()

Backport of #43896

See that PR for details.


Notes: none.

Changed files:
filename: shell/common/asar/asar_util.cc
patch: @@ -126,11 +126,8 @@ bool ReadFileToString(const base::FilePath& path, std::string* contents) {
     return false;
 
   contents->resize(info.size);
-  if (static_cast<int>(info.size) !=
-      src.Read(info.offset, const_cast<char*>(contents->data()),
-               contents->size())) {
+  if (!src.ReadAndCheck(info.offset, base::as_writable_byte_span(*contents)))
     return false;
-  }
 
   if (info.integrity)
     ValidateIntegrityOrDie(base::as_byte_span(*contents), *info.integrity);
Repository: facebook/react
Pull request: `now` isn't part of the react-reconciler config anymore

<!--
  Thanks for submitting a pull request!
  We appreciate you spending the time to work on these changes. Please provide enough information so that others can review your pull request. The three fields below are mandatory.

  Before submitting a pull request, please make sure the following is done:

  1. Fork [the repository](https://github.com/facebook/react) and create your branch from `main`.
  2. Run `yarn` in the repository root.
  3. If you've fixed a bug or added code that should be tested, add tests!
  4. Ensure the test suite passes (`yarn test`). Tip: `yarn test --watch TestName` is helpful in development.
  5. Run `yarn test --prod` to test in the production environment. It supports the same options as `yarn test`.
  6. If you need a debugger, run `yarn debug-test --watch TestName`, open `chrome://inspect`, and press "Inspect".
  7. Format your code with [prettier](https://github.com/prettier/prettier) (`yarn prettier`).
  8. Make sure your code lints (`yarn lint`). Tip: `yarn linc` to only check changed files.
  9. Run the [Flow](https://flowtype.org/) type checks (`yarn flow`).
  10. If you haven't already, complete the CLA.

  Learn more about contributing: https://reactjs.org/docs/how-to-contribute.html
-->

## Summary

The react-reconciler README states that we should pass a `now` function, but it's not imported from anywhere. I'm guessing it's a leftover.

## How did you test this change?

Gone through all the imports of "ReactFiberHostConfig" and didn't find any reference to `now`


Changed files:
filename: packages/react-reconciler/README.md
patch: @@ -187,10 +187,6 @@ You can leave it empty.
 
 This method is called for a container that's used as a portal target. Usually you can leave it empty.
 
-#### `now()`
-
-You can proxy this to `performance.now()` or its equivalent in your environment.
-
 #### `scheduleTimeout(fn, delay)`
 
 You can proxy this to `setTimeout` or its equivalent in your environment.

filename: packages/react-reconciler/src/forks/ReactFiberHostConfig.custom.js
patch: @@ -54,7 +54,6 @@ export const createTextInstance = $$$hostConfig.createTextInstance;
 export const scheduleTimeout = $$$hostConfig.scheduleTimeout;
 export const cancelTimeout = $$$hostConfig.cancelTimeout;
 export const noTimeout = $$$hostConfig.noTimeout;
-export const now = $$$hostConfig.now;
 export const isPrimaryRenderer = $$$hostConfig.isPrimaryRenderer;
 export const warnsIfNotActing = $$$hostConfig.warnsIfNotActing;
 export const supportsMutation = $$$hostConfig.supportsMutation;
Repository: nodejs/node
Pull request: doc: document CLI way to open the nodejs/bluesky PR

With https://github.com/nodejs/bluesky/pull/32, we now have a way to have GHA open the PR for us, as I find the manual workflow to be quite a slowdown when working on post-release stuff.

@nodejs/releasers wdyt?
<!--
Before submitting a pull request, please read:

- the CONTRIBUTING guide at https://github.com/nodejs/node/blob/HEAD/CONTRIBUTING.md
- the commit message formatting guidelines at
  https://github.com/nodejs/node/blob/HEAD/doc/contributing/pull-requests.md#commit-message-guidelines

For code changes:
1. Include tests for any bug fixes or new features.
2. Update documentation if relevant.
3. Ensure that `make -j4 test` (UNIX), or `vcbuild test` (Windows) passes.

If you believe this PR should be highlighted in the Node.js CHANGELOG
please add the `notable-change` label.

Developer's Certificate of Origin 1.1

By making a contribution to this project, I certify that:

(a) The contribution was created in whole or in part by me and I
    have the right to submit it under the open source license
    indicated in the file; or

(b) The contribution is based upon previous work that, to the best
    of my knowledge, is covered under an appropriate open source
    license and I have the right under that license to submit that
    work with modifications, whether created in whole or in part
    by me, under the same open source license (unless I am
    permitted to submit under a different license), as indicated
    in the file; or

(c) The contribution was provided directly to me by some other
    person who certified (a), (b) or (c) and I have not modified
    it.

(d) I understand and agree that this project and the contribution
    are public and that a record of the contribution (including all
    personal information I submit with it, including my sign-off) is
    maintained indefinitely and may be redistributed consistent with
    this project or the open source license(s) involved.
-->


Changed files:
filename: doc/contributing/releases.md
patch: @@ -1102,6 +1102,22 @@ The post content can be as simple as:
 > …
 > something here about notable changes
 
+You can create the PR for the release post on nodejs/bluesky with the following:
+
+```bash
+# Create a PR for a post:
+gh workflow run create-pr.yml --repo "https://github.com/nodejs/bluesky" \
+  -F prTitle='vx.x.x release announcement' \
+  -F richText='Node.js vx.x.x is out. Check the blog post at https://nodejs.org/…. TL;DR is
+
+- New feature
+- …'
+
+# Create a PR for a retweet:
+gh workflow run create-pr.yml --repo "https://github.com/nodejs/bluesky" \
+  -F prTitle='Retweet vx.x.x release announcement' -F postURL=…
+```
+
 <details>
 <summary>Security release</summary>