GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — GitHub - urcomputeringpal/github-script-ts: actions/github-script with Typescript

Use this GitHub action with your project
Add this Action to an existing workflow or create a new one
View on Marketplace
BranchesTags
Open more actions menu

Latest commit

 

History

106 Commits
106 Commits

Folders and files

NameName
Last commit message
Last commit date
.github
.github
 
 
src
src
 
 
.gitignore
.gitignore
 
 
.prettierrc
.prettierrc
 
 
LICENSE
LICENSE
 
 
README.md
README.md
 
 
action.yml
action.yml
 
 
package-lock.json
package-lock.json
 
 
package.json
package.json
 
 
renovate.json
renovate.json
 
 
test.sh
test.sh
 
 
tsconfig.json
tsconfig.json
 
 

Repository files navigation

github-script-ts

A workflow wrapping https://github.com/actions/github-script with Typescript functionality.

Features

  • Enables easily running Typescript functions exported from a tiny private module like the one in .github/ in Actions workflows. Caches build results automatically.
  • Enables a local testing workflow for advanced Actions logic.
  • Provides a superior experience to editing Javascript embedded in YAML.

Usage

Writing scripts

The @urcomputeringpal/github-script-ts package contains a type definition for the arguments passed to your script. Put all of these files in .github to create scripts of your own:

src/function1.ts

import { GitHubScriptArguments } from "@urcomputeringpal/github-script-ts";

export async function function1(args: GitHubScriptArguments): Promise<String> {
    // const { github, context, core } = args;
    // const { glob, io, exec, fetch } = args;
    // ...
    return "string";
}

src/index.ts

export { function1 } from "./function1";

tsconfig.json

{
    "compilerOptions": {
        "module": "commonjs",
        "declaration": true,
        "target": "es5",
        "strict": true,
        "outDir": "dist",
        "esModuleInterop": true
    },
    "include": ["src/*.ts"],
    "exclude": ["node_modules", "**/*.test.ts"]
}

package.json

{
    "name": "ts-scripts",
    "version": "0.0.1",
    "private": true,
    "scripts": {
        "build": "tsc"
        // Build will be run as needed by this Action, don't specify it here
        // prepare: ""
    },
    "files": ["dist/**/*.d.ts", "dist/**/*.js"],
    "main": "dist/index.js",
    "dependencies": {
        "@urcomputeringpal/github-script-ts": "0.0.7"
    },
    "devDependencies": {
        "@types/node": "16.18.30",
        "ts-loader": "9.4.2",
        "typescript": "4.9.5"
    }
}

Running your script in a workflow

See action.yml for all accepted inputs.

- name: Checkout repository
  uses: actions/checkout@v3

  # Perform setup if called without a 'function'. Compiles your Typescript
  # module and caches build results with actions/cache.
- name: Setup TypeScript scripts
  id: github-script-ts
  uses: urcomputeringpal/github-script-ts@v0
  # with:
  #     path: ./.github
  #     build: npm run build
  #     dist: dist

  # Run function1. If it returns a value it can be used in subsequent steps
  # by accessing the `result` output of the step like so
  # ${{ steps.function1.outputs.result }}
- name: Run function1
  id: function1
  uses: urcomputeringpal/github-script-ts@v0
  # You can pass environment variables to your script and then
  # read them from process.env.
  # https://github.com/actions/github-script/#use-env-as-input
  env:
      FOO: bar
  with:
      github-token: ${{ secrets.GITHUB_TOKEN }}
      function: function1
      # args: >
      #   {github, context, core, exec, io, fetch}
      # path: ./.github
      # dist: dist
      # result-encoding: string

- name: Use function1 result
  run: |
      echo "function1 result: ${{ steps.function1.outputs.result }}"

  # You can also use actions/github-script and import your module
  # from the path specified in the `github-script-ts` step. This allows
  # setting multiple outputs values using core.setOutput.
- name: Run custom function using actions/github-script
  id: custom
  uses: actions/github-script@v6
  # You can pass environment variables to your script and then
  # read them from process.env.
  # https://github.com/actions/github-script/#use-env-as-input
  env:
      FOO: bar
  with:
      github-token: ${{ secrets.GITHUB_TOKEN }}
      result-encoding: string
      script: |
          const { custom } = await import("${{ steps.github-script-ts.outputs.module }}");
          return await custom({core,context});

About

actions/github-script with Typescript

Topics

actionstypescript

Resources

Readme
Apache-2.0 license

Code of conduct

Code of conduct
Activity
Custom properties

Stars

3 stars

Watchers

1 watching

Forks

0 forks
Report repository

Releases

Used by

Contributors

Languages

You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.