Is your feature request related to a problem? Please describe.
passing JS as a multiline string parameter makes the script inaccessible to lint tools.
Describe the solution you'd like
It would be nice if I could write the action in a JS file, enjoying linters and any in-IDE help I can get, while still coding for github-script.
Describe alternatives you've considered
my work around is, for example, in a step that is a part of another compound action:
- uses: actions/github-script@v7
with:
script: |
const action = require('${{ github.action_path }}/action.js');
await action({ core, context /* ... and more by need... */ });
and in action.js as sibling file to my action.yml
module.exports = async ({ core, context, /* ... and more by need... */ }) => {
//...
}
Additional context
which is a work around, and assumes a paths structure.
The action could support it just as easy :)
Generalizing from that - I believe we can support expecting just an absolute path, or a path relative to repo root (with the Distinction is if it starts with / - its absolute, input check should deny file:// protocol.
Is your feature request related to a problem? Please describe.
passing JS as a multiline string parameter makes the script inaccessible to lint tools.
Describe the solution you'd like
It would be nice if I could write the action in a JS file, enjoying linters and any in-IDE help I can get, while still coding for
github-script.Describe alternatives you've considered
my work around is, for example, in a step that is a part of another compound action:
and in
action.jsas sibling file to myaction.ymlAdditional context
which is a work around, and assumes a paths structure.
The action could support it just as easy :)
Generalizing from that - I believe we can support expecting just an absolute path, or a path relative to repo root (with the Distinction is if it starts with
/- its absolute, input check should denyfile://protocol.