这样我们获取 inputs 里的参数就可以这么写:
import core from '@actions/core'import type { UserDefinedOptions from './type'export function getActionOptions (): UserDefinedOptions { const token = core.getInput('token') const username = core.getInput('username') // getBooleanInput 其实本质上就是一种 parseBoolean(core.getInput('key')) const motto = core.getBooleanInput('motto') const filepath = core.getInput('filepath') const title = core.getInput('title') const includeFork = core.getBooleanInput('includeFork') const includeArchived = core.getBooleanInput('includeArchived') const onlyPrivate = core.getBooleanInput('onlyPrivate') return { token username motto filepath title includeFork includeArchived onlyPrivate
当然我们也可以轻而易举的获取到上下文里的信息和 octokit 实例:
import github from '@actions/github'// 使用action的仓库名github.context.repo.repo// token 为 the repo PAT or GITHUB_TOKENoctokit = github.getOctokit(token)// 获取一个人的仓库const res = await octokit.rest.repos.listForUser({ username: 'sonofmagic' per_page: 20 page: 1 sort: 'updated')
4. 在你的 main 函数填入逻辑
我们回到入口点 , 在代码中填充逻辑
async function main(){ const options = getActionOptions() // do somethingmain()
5. 把结果打包输出到指定目录
这里我把打包结果输出到了 lib 文件中 , 值得注意的是 , 官方文档中是使用 @vercel/ncc(webpack) , 同时还把 node_modules/* 也提交到 Github 上 。 这里我们优化一下 , 采用了 rollup 打包 , 直接把依赖项打入构建产物中 。
import typescript from '@rollup/plugin-typescript'import { nodeResolve from '@rollup/plugin-node-resolve'import commonjs from '@rollup/plugin-commonjs'import json from '@rollup/plugin-json'import pkg from './package.json'import { terser from 'rollup-plugin-terser'const isDev = process.env.NODE_ENV === 'development'/** @type {import('rollup').RollupOptions */const config = { input: 'src/index.ts' output: { dir: 'lib' format: 'cjs' exports: 'auto' plugins: [ // 嫌弃 lib 太大可以压缩一下 terser() json() nodeResolve({ preferBuiltins: true ) commonjs() typescript({ tsconfig: './tsconfig.build.json' sourceMap: isDev )
external: [ ...(pkg.dependencies ? Object.keys(pkg.dependencies) : [
) 'fs/promises'
export default config
然后再 git add lib/* 添加构建产物 , 提交 。 这样 , lib 中大量的 \"无用\" 代码也被提交到了 Github 。
- QQ音乐11.5.5全新升级,一起看见音乐之美
- 小米|12年前和雷军一起喝小米粥的员工再聚首 雷军:谢谢大家
- 雷军:在一起就有动人故事,小米12周年致米粉的信
- 我国原来还有这么多领域被卡脖子,你还知道哪些?一起盘点一下
- 一起守沪上海加油——友谊路街道综合行政执法队抗疫日记
- 华为荣耀|如果当时余承东跟着荣耀一起离开了华为,离开后会产生什么后果
- “回宿舍吗?”“一起走吧!”
- 电子商务|让我们一起去T I K tok淘金吧
- GitHub|重磅升级!iPhone16系列引入屏下Face ID,安全又美观?
- 网友热议|袁隆平夫人口罩上的话让人泪目:一起回顾袁爷爷说过的那些话