Skip to content

sl ghstack action command crashes with RuntimeError: unexpected param #1147

@shikanime

Description

@shikanime

Description

The sl ghstack action command crashes with a RuntimeError when attempting to execute the action. The traceback suggests an issue with parameter formatting or handling within the ghstack extension, specifically when dealing with the input parameter in a GitHub API call.

Steps to Reproduce

Sapling SCM crashes and prints a full Python traceback:

$ sl ghstack action https://github.com/shikanime/shikanime/pull/483 --close
** Sapling SCM (version 0.2.20240718) has crashed:
Traceback (most recent call last):
  File "static:sapling", line 86, in run
    dispatch.run(args, fin, fout, ferr, ctx, skipprehooks)
  File "static:sapling.dispatch", line 163, in run
    status = (dispatch(req) or 0) & 255
              ^^^^^^^^^^^^^
  File "static:sapling.dispatch", line 382, in dispatch
    ret = _runcatch(req)
          ^^^^^^^^^^^^^^
  File "static:sapling.dispatch", line 566, in _runcatch
    return _callcatch(ui, req, _runcatchfunc)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "static:sapling.dispatch", line 575, in _callcatch
    return scmutil.callcatch(ui, req, func)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "static:sapling.scmutil", line 153, in callcatch
    return func()
           ^^^^^^
  File "static:sapling.dispatch", line 553, in _runcatchfunc
    return _dispatch(req)
           ^^^^^^^^^^^^^^
  File "static:sapling.dispatch", line 1106, in _dispatch
    ret = runcommand(
          ^^^^^^^^^^^
  File "static:sapling.ext.undo", line 176, in _runcommandwrapper
    result = orig(lui, repo, cmd, fullargs, *args)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "static:sapling.ext.undo", line 120, in origunsetpid
    return _orig(*args, **opts)
           ^^^^^^^^^^^^^^^^^^^^
  File "static:sapling.ext.journal", line 83, in runcommand
    return orig(lui, repo, cmd, fullargs, *args)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "static:sapling.dispatch", line 789, in runcommand
    ret = _runcommand(ui, options, cmd, d)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "static:sapling.dispatch", line 1157, in _runcommand
    return cmdfunc()
           ^^^^^^^^^
  File "static:sapling.dispatch", line 1105, in <lambda>
    d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "static:sapling.util", line 1376, in check
    return func(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^
  File "static:sapling.ext.ghstack", line 195, in action_cmd
    ghstack.action.main(
  File "static:ghstack.action", line 30, in main
    github.graphql_sync(
  File "static:ghstack.github_cli_endpoint", line 47, in graphql_sync
    result = loop.run_until_complete(make_request(params, hostname=self.hostname))
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "static:asyncio.base_events", line 654, in run_until_complete
    return future.result()
           ^^^^^^^^^^^^^^^
  File "static:ghstack.github_gh_cli", line 29, in make_request
    return await _make_request(params, hostname, endpoint, method)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "static:ghstack.github_gh_cli", line 46, in _make_request
    + list(itertools.chain(*[_format_param(k, v) for (k, v) in params.items()]))
                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "static:ghstack.github_gh_cli", line 46, in <listcomp>
    + list(itertools.chain(*[_format_param(k, v) for (k, v) in params.items()]))
                             ^^^^^^^^^^^^^^^^^^^
  File "static:ghstack.github_gh_cli", line 96, in _format_param
    raise RuntimeError(f"unexpected param: {key}={value}")
RuntimeError: unexpected param: input={'pullRequestId': 'PR_kwDOEy2jiM6yMeW9', 'clientMutationId': 'A'}

Context

  • Sapling SCM Version: 0.2.20240718
  • Source: The crash occurs inside ghstack.github_gh_cli._format_param, suggesting a compatibility or formatting issue with the parameter being passed to the GitHub CLI/API call.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions