mirror of
https://github.com/garronej/ts-ci.git
synced 2025-11-30 21:43:05 +00:00
Compare commits
No commits in common. "v2.0.0" and "main" have entirely different histories.
76 changed files with 3166 additions and 22021 deletions
5
.eslintignore
Normal file
5
.eslintignore
Normal file
|
|
@ -0,0 +1,5 @@
|
||||||
|
/node_modules/
|
||||||
|
/dist/
|
||||||
|
/.eslintrc.js
|
||||||
|
/CHANGELOG.md
|
||||||
|
/.yarn_home
|
||||||
16
.eslintrc.js
Normal file
16
.eslintrc.js
Normal file
|
|
@ -0,0 +1,16 @@
|
||||||
|
module.exports = {
|
||||||
|
"root": true,
|
||||||
|
"parser": "@typescript-eslint/parser",
|
||||||
|
"plugins": [
|
||||||
|
"@typescript-eslint",
|
||||||
|
],
|
||||||
|
"extends": [
|
||||||
|
"eslint:recommended",
|
||||||
|
"plugin:@typescript-eslint/recommended",
|
||||||
|
"prettier",
|
||||||
|
],
|
||||||
|
"rules": {
|
||||||
|
"no-extra-boolean-cast": "off",
|
||||||
|
"@typescript-eslint/explicit-module-boundary-types": "off",
|
||||||
|
},
|
||||||
|
};
|
||||||
2
.gitattributes
vendored
Normal file
2
.gitattributes
vendored
Normal file
|
|
@ -0,0 +1,2 @@
|
||||||
|
# For GitHub language statistics: https://user-images.githubusercontent.com/6702424/127756647-5ebe6dde-0903-4a02-b1e8-529046dd06f2.png
|
||||||
|
.eslintrc.js -linguist-detectable
|
||||||
119
.github/workflows/ci.yaml
vendored
Normal file
119
.github/workflows/ci.yaml
vendored
Normal file
|
|
@ -0,0 +1,119 @@
|
||||||
|
name: ci
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- main
|
||||||
|
pull_request:
|
||||||
|
branches:
|
||||||
|
- main
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
|
||||||
|
test_lint:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
if: ${{ !github.event.created && github.repository != 'garronej/ts-ci' }}
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
- uses: actions/setup-node@v4
|
||||||
|
- uses: bahmutov/npm-install@v1
|
||||||
|
- name: If this step fails run 'npm run lint' and 'npm run format' then commit again.
|
||||||
|
run: |
|
||||||
|
npm run lint:check
|
||||||
|
npm run format:check
|
||||||
|
test:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
needs: test_lint
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
- uses: actions/setup-node@v4
|
||||||
|
- uses: bahmutov/npm-install@v1
|
||||||
|
- run: npm run build
|
||||||
|
- run: npm run test
|
||||||
|
|
||||||
|
check_if_version_upgraded:
|
||||||
|
name: Check if version upgrade
|
||||||
|
# When someone forks the repo and opens a PR we want to enables the tests to be run (the previous jobs)
|
||||||
|
# but obviously only us should be allowed to release.
|
||||||
|
# In the following check we make sure that we own the branch this CI workflow is running on before continuing.
|
||||||
|
# Without this check, trying to release would fail anyway because only us have the correct secret.NPM_TOKEN but
|
||||||
|
# it's cleaner to stop the execution instead of letting the CI crash.
|
||||||
|
if: |
|
||||||
|
github.event_name == 'push' ||
|
||||||
|
github.event.pull_request.head.repo.owner.login == github.event.pull_request.base.repo.owner.login
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
needs: test
|
||||||
|
outputs:
|
||||||
|
from_version: ${{ steps.step1.outputs.from_version }}
|
||||||
|
to_version: ${{ steps.step1.outputs.to_version }}
|
||||||
|
is_upgraded_version: ${{ steps.step1.outputs.is_upgraded_version }}
|
||||||
|
is_pre_release: ${{steps.step1.outputs.is_pre_release }}
|
||||||
|
steps:
|
||||||
|
- uses: garronej/ts-ci@v2.1.5
|
||||||
|
id: step1
|
||||||
|
with:
|
||||||
|
action_name: is_package_json_version_upgraded
|
||||||
|
branch: ${{ github.head_ref || github.ref }}
|
||||||
|
|
||||||
|
create_github_release:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
# We create release only if the version in the package.json have been upgraded and this CI is running against the main branch.
|
||||||
|
# We allow branches with a PR open on main to publish pre-release (x.y.z-rc.u) but not actual releases.
|
||||||
|
if: |
|
||||||
|
needs.check_if_version_upgraded.outputs.is_upgraded_version == 'true' &&
|
||||||
|
(
|
||||||
|
github.event_name == 'push' ||
|
||||||
|
needs.check_if_version_upgraded.outputs.is_pre_release == 'true'
|
||||||
|
)
|
||||||
|
needs:
|
||||||
|
- check_if_version_upgraded
|
||||||
|
steps:
|
||||||
|
- uses: softprops/action-gh-release@v2
|
||||||
|
with:
|
||||||
|
name: Release v${{ needs.check_if_version_upgraded.outputs.to_version }}
|
||||||
|
tag_name: v${{ needs.check_if_version_upgraded.outputs.to_version }}
|
||||||
|
target_commitish: ${{ github.head_ref || github.ref }}
|
||||||
|
generate_release_notes: true
|
||||||
|
draft: false
|
||||||
|
prerelease: ${{ needs.check_if_version_upgraded.outputs.is_pre_release == 'true' }}
|
||||||
|
env:
|
||||||
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
|
||||||
|
publish_on_npm:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
needs:
|
||||||
|
- create_github_release
|
||||||
|
- check_if_version_upgraded
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
ref: ${{ github.ref }}
|
||||||
|
- uses: actions/setup-node@v4
|
||||||
|
with:
|
||||||
|
registry-url: https://registry.npmjs.org/
|
||||||
|
- uses: bahmutov/npm-install@v1
|
||||||
|
- run: npm run build
|
||||||
|
- run: npx -y -p denoify@1.6.13 enable_short_npm_import_path
|
||||||
|
env:
|
||||||
|
DRY_RUN: "0"
|
||||||
|
- uses: garronej/ts-ci@v2.1.5
|
||||||
|
with:
|
||||||
|
action_name: remove_dark_mode_specific_images_from_readme
|
||||||
|
- name: Publishing on NPM
|
||||||
|
run: |
|
||||||
|
if [ "$(npm show . version)" = "$VERSION" ]; then
|
||||||
|
echo "This version is already published"
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
if [ "$NODE_AUTH_TOKEN" = "" ]; then
|
||||||
|
echo "Can't publish on NPM, You must first create a secret called NPM_TOKEN that contains your NPM auth token. https://help.github.com/en/actions/automating-your-workflow-with-github-actions/creating-and-using-encrypted-secrets"
|
||||||
|
false
|
||||||
|
fi
|
||||||
|
EXTRA_ARGS=""
|
||||||
|
if [ "$IS_PRE_RELEASE" = "true" ]; then
|
||||||
|
EXTRA_ARGS="--tag next"
|
||||||
|
fi
|
||||||
|
npm publish $EXTRA_ARGS
|
||||||
|
env:
|
||||||
|
NODE_AUTH_TOKEN: ${{secrets.NPM_TOKEN}}
|
||||||
|
VERSION: ${{ needs.check_if_version_upgraded.outputs.to_version }}
|
||||||
|
IS_PRE_RELEASE: ${{ needs.check_if_version_upgraded.outputs.is_pre_release }}
|
||||||
98
.github/workflows/template_initialization.yaml
vendored
Normal file
98
.github/workflows/template_initialization.yaml
vendored
Normal file
|
|
@ -0,0 +1,98 @@
|
||||||
|
name: template_initialization
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- main
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
template_initialization:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
if: ${{ github.event.created && github.repository != 'garronej/ts_ci' }}
|
||||||
|
steps:
|
||||||
|
|
||||||
|
- name: Checking availability for module name ${{github.event.repository.name}} on NPM.
|
||||||
|
id: id1
|
||||||
|
uses: garronej/ts-ci@v2.1.5
|
||||||
|
with:
|
||||||
|
action_name: is_well_formed_and_available_module_name
|
||||||
|
module_name: ${{github.event.repository.name}}
|
||||||
|
|
||||||
|
- name: Checks results
|
||||||
|
run: |
|
||||||
|
if [ "$IS_VALID_NODE_MODULE_NAME" = "false" ]; then
|
||||||
|
echo $MODULE_NAME" is not a valid node module name"
|
||||||
|
false
|
||||||
|
fi
|
||||||
|
if [ "$IS_AVAILABLE_ON_NPM" = "false" ]; then
|
||||||
|
echo "WARNING: There is already a NPM module named "$MODULE_NAME", if you are not the owner consider picking another name"
|
||||||
|
fi
|
||||||
|
true
|
||||||
|
env:
|
||||||
|
MODULE_NAME: ${{github.event.repository.name}}
|
||||||
|
IS_VALID_NODE_MODULE_NAME: ${{steps.id1.outputs.is_valid_node_module_name}}
|
||||||
|
IS_AVAILABLE_ON_NPM: ${{steps.id1.outputs.is_available_on_npm}}
|
||||||
|
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
- run: |
|
||||||
|
mv README.template.md README.md
|
||||||
|
mv LICENSE.template LICENSE
|
||||||
|
- name : String replace
|
||||||
|
id: id2
|
||||||
|
uses: garronej/ts-ci@v2.1.5
|
||||||
|
with:
|
||||||
|
action_name: string_replace
|
||||||
|
input_string: ${{github.event.repository.name}}
|
||||||
|
search_value: '-'
|
||||||
|
replace_value: '_'
|
||||||
|
- name: Replace tokens in README.MD and package.json
|
||||||
|
uses: cschleiden/replace-tokens@v1
|
||||||
|
with:
|
||||||
|
files: '["README.md","package.json","LICENSE","package-lock.json"]'
|
||||||
|
env:
|
||||||
|
REPO_NAME: ${{ github.event.repository.name }}
|
||||||
|
USER_OR_ORG: ${{ github.repository_owner }}
|
||||||
|
DESC: ${{ github.event.repository.description }}
|
||||||
|
REPO_NAME_NO_DASHES: ${{ steps.id2.outputs.replace_result }}
|
||||||
|
- name: Remove this workflow, it only needs to be run once.
|
||||||
|
run: rm .github/workflows/template_initialization.yaml
|
||||||
|
- name: Commit files
|
||||||
|
run: |
|
||||||
|
git config --local user.email "ts_ci@github.com"
|
||||||
|
git config --local user.name "ts_ci"
|
||||||
|
git commit -am "Replacing the template's placeholders"
|
||||||
|
- name: Push changes
|
||||||
|
uses: ad-m/github-push-action@v0.6.0
|
||||||
|
with:
|
||||||
|
github_token: ${{ secrets.PAT || secrets.GITHUB_TOKEN }}
|
||||||
|
branch: main
|
||||||
|
|
||||||
|
debug:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
if: ${{ github.repository == 'garronej/ts_ci' }}
|
||||||
|
steps:
|
||||||
|
- name: Show envs
|
||||||
|
run: env
|
||||||
|
- name: Dump GitHub context
|
||||||
|
env:
|
||||||
|
GITHUB_CONTEXT: ${{ toJSON(github) }}
|
||||||
|
run: echo "$GITHUB_CONTEXT"
|
||||||
|
- name: Dump job context
|
||||||
|
env:
|
||||||
|
JOB_CONTEXT: ${{ toJSON(job) }}
|
||||||
|
run: echo "$JOB_CONTEXT"
|
||||||
|
- name: Dump steps context
|
||||||
|
env:
|
||||||
|
STEPS_CONTEXT: ${{ toJSON(steps) }}
|
||||||
|
run: echo "$STEPS_CONTEXT"
|
||||||
|
- name: Dump runner context
|
||||||
|
env:
|
||||||
|
RUNNER_CONTEXT: ${{ toJSON(runner) }}
|
||||||
|
run: echo "$RUNNER_CONTEXT"
|
||||||
|
- name: Dump strategy context
|
||||||
|
env:
|
||||||
|
STRATEGY_CONTEXT: ${{ toJSON(strategy) }}
|
||||||
|
run: echo "$STRATEGY_CONTEXT"
|
||||||
|
- name: Dump matrix context
|
||||||
|
env:
|
||||||
|
MATRIX_CONTEXT: ${{ toJSON(matrix) }}
|
||||||
|
run: echo "$MATRIX_CONTEXT"
|
||||||
72
.gitignore
vendored
72
.gitignore
vendored
|
|
@ -1,102 +1,44 @@
|
||||||
# Dependency directory
|
|
||||||
node_modules
|
|
||||||
|
|
||||||
# Rest pulled from https://github.com/github/gitignore/blob/master/Node.gitignore
|
|
||||||
# Logs
|
# Logs
|
||||||
logs
|
logs
|
||||||
*.log
|
*.log
|
||||||
npm-debug.log*
|
npm-debug.log*
|
||||||
yarn-debug.log*
|
|
||||||
yarn-error.log*
|
|
||||||
lerna-debug.log*
|
|
||||||
|
|
||||||
# Diagnostic reports (https://nodejs.org/api/report.html)
|
|
||||||
report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json
|
|
||||||
|
|
||||||
# Runtime data
|
# Runtime data
|
||||||
pids
|
pids
|
||||||
*.pid
|
*.pid
|
||||||
*.seed
|
*.seed
|
||||||
*.pid.lock
|
|
||||||
|
|
||||||
# Directory for instrumented libs generated by jscoverage/JSCover
|
# Directory for instrumented libs generated by jscoverage/JSCover
|
||||||
lib-cov
|
lib-cov
|
||||||
|
|
||||||
# Coverage directory used by tools like istanbul
|
# Coverage directory used by tools like istanbul
|
||||||
coverage
|
coverage
|
||||||
*.lcov
|
|
||||||
|
|
||||||
# nyc test coverage
|
# nyc test coverage
|
||||||
.nyc_output
|
.nyc_output
|
||||||
|
|
||||||
# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files)
|
# Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files)
|
||||||
.grunt
|
.grunt
|
||||||
|
|
||||||
# Bower dependency directory (https://bower.io/)
|
|
||||||
bower_components
|
|
||||||
|
|
||||||
# node-waf configuration
|
# node-waf configuration
|
||||||
.lock-wscript
|
.lock-wscript
|
||||||
|
|
||||||
# Compiled binary addons (https://nodejs.org/api/addons.html)
|
# Compiled binary addons (http://nodejs.org/api/addons.html)
|
||||||
build/Release
|
build/Release
|
||||||
|
|
||||||
# Dependency directories
|
# Dependency directories
|
||||||
jspm_packages/
|
node_modules
|
||||||
|
jspm_packages
|
||||||
# TypeScript v1 declaration files
|
|
||||||
typings/
|
|
||||||
|
|
||||||
# TypeScript cache
|
|
||||||
*.tsbuildinfo
|
|
||||||
|
|
||||||
# Optional npm cache directory
|
# Optional npm cache directory
|
||||||
.npm
|
.npm
|
||||||
|
|
||||||
# Optional eslint cache
|
|
||||||
.eslintcache
|
|
||||||
|
|
||||||
# Optional REPL history
|
# Optional REPL history
|
||||||
.node_repl_history
|
.node_repl_history
|
||||||
|
|
||||||
# Output of 'npm pack'
|
.vscode
|
||||||
*.tgz
|
|
||||||
|
|
||||||
# Yarn Integrity file
|
|
||||||
.yarn-integrity
|
|
||||||
|
|
||||||
# dotenv environment variables file
|
|
||||||
.env
|
|
||||||
.env.test
|
|
||||||
|
|
||||||
# parcel-bundler cache (https://parceljs.org/)
|
|
||||||
.cache
|
|
||||||
|
|
||||||
# next.js build output
|
|
||||||
.next
|
|
||||||
|
|
||||||
# nuxt.js build output
|
|
||||||
.nuxt
|
|
||||||
|
|
||||||
# vuepress build output
|
|
||||||
.vuepress/dist
|
|
||||||
|
|
||||||
# Serverless directories
|
|
||||||
.serverless/
|
|
||||||
|
|
||||||
# FuseBox cache
|
|
||||||
.fusebox/
|
|
||||||
|
|
||||||
# DynamoDB Local files
|
|
||||||
.dynamodb/
|
|
||||||
|
|
||||||
# OS metadata
|
|
||||||
.DS_Store
|
.DS_Store
|
||||||
Thumbs.db
|
|
||||||
|
|
||||||
# Ignore built ts files
|
/.yarn_home
|
||||||
__tests__/runner/*
|
/dist
|
||||||
lib/**/*
|
|
||||||
/bin
|
|
||||||
|
|
||||||
/.vscode
|
|
||||||
|
|
|
||||||
6
.prettierignore
Normal file
6
.prettierignore
Normal file
|
|
@ -0,0 +1,6 @@
|
||||||
|
/node_modules/
|
||||||
|
/dist/
|
||||||
|
/.eslintrc.js
|
||||||
|
/docs/
|
||||||
|
/CHANGELOG.md
|
||||||
|
/.yarn_home
|
||||||
11
.prettierrc.json
Normal file
11
.prettierrc.json
Normal file
|
|
@ -0,0 +1,11 @@
|
||||||
|
{
|
||||||
|
"printWidth": 105,
|
||||||
|
"tabWidth": 4,
|
||||||
|
"useTabs": false,
|
||||||
|
"semi": true,
|
||||||
|
"singleQuote": false,
|
||||||
|
"quoteProps": "preserve",
|
||||||
|
"trailingComma": "none",
|
||||||
|
"bracketSpacing": true,
|
||||||
|
"arrowParens": "avoid"
|
||||||
|
}
|
||||||
21
LICENSE
Normal file
21
LICENSE
Normal file
|
|
@ -0,0 +1,21 @@
|
||||||
|
MIT License
|
||||||
|
|
||||||
|
Copyright (c) 2020 Joseph Garrone
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
in the Software without restriction, including without limitation the rights
|
||||||
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
copies of the Software, and to permit persons to whom the Software is
|
||||||
|
furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all
|
||||||
|
copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
SOFTWARE.
|
||||||
21
LICENSE.template
Normal file
21
LICENSE.template
Normal file
|
|
@ -0,0 +1,21 @@
|
||||||
|
MIT License
|
||||||
|
|
||||||
|
Copyright (c) 2020 GitHub user u/#{USER_OR_ORG}#
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
in the Software without restriction, including without limitation the rights
|
||||||
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
copies of the Software, and to permit persons to whom the Software is
|
||||||
|
furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all
|
||||||
|
copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
SOFTWARE.
|
||||||
257
README.md
257
README.md
|
|
@ -1,35 +1,234 @@
|
||||||
|
<p align="center">
|
||||||
|
<img width="350" src="https://user-images.githubusercontent.com/6702424/109354825-ab4b8e00-787e-11eb-8336-6009415ecaf6.png">
|
||||||
|
</p>
|
||||||
|
<p align="center">
|
||||||
|
<i> 🚀 A starter project for module publisher! 🚀</i>
|
||||||
|
<br>
|
||||||
|
<br>
|
||||||
|
</p>
|
||||||
|
|
||||||
# github_actions_toolkit
|
Have you written some functions or React component that you're proud of? Do you want to share it as a standalone module on NPM,
|
||||||
|
but find yourself unsure about the publishing process or how to manage the lifecycle of an open-source library?
|
||||||
|
|
||||||
```bash
|
Look no further - ts-ci is here to jumpstart your journey towards becoming a proficient NPM module author.
|
||||||
npm install
|
|
||||||
npm run build
|
Main selling points:
|
||||||
|
|
||||||
|
- Unlike traditional CLI tools, `ts-ci` utilizes automation within Github Actions. Simply update your `package.json` version number and push. Your new version is automatically published on NPM.
|
||||||
|
- It doesn't bundle your library into a single file. Instead, users can cherry-pick imports from your library, enabling tree shaking. For instance: `import { aSpecificFunction } from "your-module/aSpecificFile"`.
|
||||||
|
- It's just a starting point. It provides a good default CI workflow that you can adapt to your needs.
|
||||||
|
|
||||||
|
https://user-images.githubusercontent.com/6702424/197344513-065246b9-8823-4894-a9a7-6c539da10655.mp4
|
||||||
|
|
||||||
|
# Examples of project using this template
|
||||||
|
|
||||||
|
- [Keycloakify](https://github.com/garronej/keycloakify)
|
||||||
|
- [Denoify](https://github.com/garronej/denoify)
|
||||||
|
- [tss-react](https://github.com/garronej/tss-react)
|
||||||
|
- [EVT](https://github.com/garronej/evt)
|
||||||
|
- [i18nifty](https://github.com/etalab/i18nifty)
|
||||||
|
- [oidc-spa](https://github.com/keycloakify/oidc-spa)
|
||||||
|
- [vite-envs](https://github.com/garronej/vite-envs)
|
||||||
|
|
||||||
|
# How to use
|
||||||
|
|
||||||
|
> 🗣️ Since a recent GitHub update you need to manually allow GitHub Action to push on your repo.
|
||||||
|
> Fo this reason the initial setup will fail.
|
||||||
|
> You need to enabled permission and re-run failed job: [see video](https://user-images.githubusercontent.com/6702424/213480604-0aac0ea7-487f-491d-94ae-df245b2c7ee8.mov)
|
||||||
|
|
||||||
|
- Click on 
|
||||||
|
- The repo name you will choose will be used as a module name for NPM.
|
||||||
|
- Go to the repository ``Settings`` tab, then ``Secrets`` you will need to add a new secret:
|
||||||
|
``NPM_TOKEN``, you NPM authorization token.
|
||||||
|
- To trigger publishing edit the ``package.json`` ``version`` field ( ``0.0.0``-> ``0.0.1`` for example) then push changes... that's all !
|
||||||
|
- Publish pre-release by setting your version number to `X.Y.Z-rc.U` (example: `1.0.0-rc.32`). On NPM the version will be tagged `next`.
|
||||||
|
- The CI runs on `main` and on the branches that have a PR open on `main` (You can publish pre-release from branches this way).
|
||||||
|
|
||||||
|
# Features
|
||||||
|
|
||||||
|
- ✍️ Assists in completing the `package.json` details.
|
||||||
|
- ✅ Runs your test across various OSes and Node version combinations. [Reference](https://github.com/garronej/ts-ci/blob/4e0b7980315a5156de33c1a4f44907f382bbc862/.github/workflows/ci.yaml#L26-L29). Note: This might be overkill for most use-cases. Feel free to modify the matrix as per your needs.
|
||||||
|
- 📦 Supports publishing on NPM along with creating corresponding GitHub releases.
|
||||||
|
- 🧪 Enables testing of your local module copy in your application before publishing it on NPM.
|
||||||
|
- 🌗 Offers flexibility to use different repository images for dark and light modes. For instance, check out [i18nifty](https://github.com/etalab/i18nifty): [Light](https://user-images.githubusercontent.com/6702424/200299948-94bacf9d-381e-40f8-b9a3-8e726bcd37c5.png) and [Dark](https://user-images.githubusercontent.com/6702424/200299807-42388349-a5ae-44b2-abd1-0aa538b58da2.png). For implementation details, see [here](https://github.com/etalab/i18nifty/blob/f6ad7bb11514224a416158af7af8e4073c7932c1/README.md?plain=1#L1-L11). TS-CI also provides [an additional action](https://github.com/garronej/ts-ci/blob/09916b317c55a04dbf2fc036d7343cd6c6756cc6/.github/workflows/ci.yaml#L105-L107) that removes the dark mode specific image from your README.md before [publishing on NPM](https://www.npmjs.com/package/i18nifty), as NPM does not yet support the `#gh-dark-mode-only` syntax.
|
||||||
|
- 🩳 By default, TS-CI incorporates [a step in the workflow](https://github.com/garronej/ts-ci/blob/09916b317c55a04dbf2fc036d7343cd6c6756cc6/.github/workflows/ci.yaml#L102) that relocates your distribution files to the root directory before releasing, allowing your users to import specific files from your module as `import {...} from "my_module/theFile"` rather than "my_module/**dist**/theFile". If you dislike this behavior or if you only have an index.ts file and do not intend for users to selectively import from your module, you may remove [this action](https://github.com/garronej/ts-ci/blob/09916b317c55a04dbf2fc036d7343cd6c6756cc6/.github/workflows/ci.yaml#L102).
|
||||||
|
- ⚙️ ESlint and Prettier are automatically triggered against files staged for commit. Despite what [t3dotgg](https://github.com/t3dotgg) says, it's the correct way of doing it,
|
||||||
|
that being said, this feature is optional and can be [disabled](https://github.com/garronej/ts-ci/blob/8da207622e51a248542cf013707198cd7cad1d09/README.md?plain=1#L87-L91) if desired.
|
||||||
|
|
||||||
|
# Release in CJS, ESM or both (but don't bundle!)
|
||||||
|
|
||||||
|
Contrary to what other guides or project starters may suggest, you don't need to bundle your library (or in other words you don't need to use Vite/Rollup),
|
||||||
|
nor do you need to fragment your modules into smaller, independently published units on NPM under the `packages/` directory for your module
|
||||||
|
to be tree-shakable (e.g., `@your-module/submodule1`, `@your-module/submodule2`).
|
||||||
|
|
||||||
|
When you bundle your library, you incorporate __all your dependencies__ into the `.js` code you distribute. This could potentially lead to duplication of dependencies.
|
||||||
|
|
||||||
|
For instance, if your library depends on the [classnames](https://www.npmjs.com/package/classnames) package, the entirety of `classnames` source code will be included in your bundle. Subsequently, if a user of your library is also directly using `classnames`, there will be two copies of `classnames` in their final application bundle.
|
||||||
|
|
||||||
|
Another disadvantage of bundling is the lack of selective importing. For example, if a user wishes to import only a specific component or functionality from your module, they would be unable to do so. Instead, they are required to import the entire library.
|
||||||
|
|
||||||
|
Publishing independent units on NPM under the `packages/` directory (e.g., `@your-module/submodule1`, `@your-module/submodule2`) is a common practice, but it's not necessarily a beneficial one. The first reason against this approach is that once you comprehend the fact that bundling isn't necessary, persisting with this process becomes somewhat pointless. The second reason concerns your users, who are then burdened with the responsibility of individually installing and synchronizing the various components' versions. This could cause potential inconsistencies and compatibility issues, making the user experience less efficient and potentially more troublesome.
|
||||||
|
|
||||||
|
The reality is much simpler. The responsibility of bundling lies with the final application; your role involves merely
|
||||||
|
publishing types declaration (`.d.ts`) and the correct flavor of JavaScript files, which are the output of `tsc`.
|
||||||
|
|
||||||
|
That's all there is to it!
|
||||||
|
|
||||||
|
## CJS only (default)
|
||||||
|
|
||||||
|
By default your module release [in CommonJS (CJS)](https://github.com/garronej/ts-ci/blob/8390339b52c98cdbd458d4b945286f999358a1ff/tsconfig.json#L3).
|
||||||
|
|
||||||
|
You want to avoid this strategy if:
|
||||||
|
- You make use of async imports (`import(...).then(...))`).
|
||||||
|
- You want your module to be usable in node `type: module` mode *AND* you have some `export default` (if you don't have export default it will work just fine).
|
||||||
|
- Your lib will be use by Angular, if you only provide CJS you'll get warnings like
|
||||||
|
"CommonJS or AMD dependencies can cause optimization bailouts."
|
||||||
|
- Your lib is a libraries of utilities (like [tsafe](https://github.com/garronej/tsafe)) and you would
|
||||||
|
like to prevent your user from having to cherry pick what they import like: `import { assert } from "tsafe/assert"; import { is } from "tsafe/is";...` and instead enable automatic three shaking when they import
|
||||||
|
`import { assert, is } from "tsafe";`.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## ESM only
|
||||||
|
|
||||||
|
If you want to **only** release as ESM just set `"module": "ES2020"` in your `tsconfig.json`, you also probably want to set `"target": "ES2017"`.
|
||||||
|
You can remove [the listing of your export](https://github.com/garronej/ts-ci/blob/16dbde73a52ea7750a39f0179f121dd8927c1ee5/package.json#L21-L25) in the package.json it's not of any use.
|
||||||
|
This option has the advantage, if you are publishing a React library, to enable you to import assets file (`.svg`, `.css`) like for example [here](https://github.com/codegouvfr/react-dsfr/blob/459f2a8f8c4de054217628e281c97520ac9889de/src/AgentConnectButton.tsx#L7-L10) (Don't forget to copy your the assets from your `src/` to your `dist/` though, TypeScript don't do it for you).
|
||||||
|
|
||||||
|
You want to avoid this strategy if:
|
||||||
|
- You want your module to be usable with node. The ESM distribution produced by TypeScript is an ESM distribution
|
||||||
|
that node in `type: module` can't process (files need to have `.mjs` extension, exports need to be listed).
|
||||||
|
As a result your module won't be usable at all on node except through Next.js that will be able to make it work.
|
||||||
|
Note that it will work out of the box in Next.js setup using [the AppDir router](https://nextjs.org/docs/app/building-your-application/routing)
|
||||||
|
but for project using the legacy [pagesRouter](https://nextjs.org/docs/pages/building-your-application/routing) your user will have to add
|
||||||
|
`transpilePackages: ["<your-module>"]` in their `next.config.js` file. [Example](https://github.com/garronej/react-dsfr-next-demo/blob/70ca68eebe326fab73f8cbd41a9f0c0bb2f15e8a/next.config.js#L14).
|
||||||
|
This means also that you'd have to tell your users to configure their JEST so that it transpiles your module
|
||||||
|
using `"transformIgnorePatterns": [ "node_modules/(?!@codegouvfr/react-dsfr)" ]`.
|
||||||
|
If you publish scripts (your `package.json` has a `bin` property) you'll need to [transpile your script separately in CJS](https://github.com/garronej/ts-ci/issues/1#issuecomment-1556046899).
|
||||||
|
|
||||||
|
## ESM for bundlers (browser) + CJS for node.
|
||||||
|
|
||||||
|
- Have a `tsconfig.json` that targets CSM (as by default): [example](https://github.com/garronej/tss-react/blob/main/tsconfig.json)
|
||||||
|
- Perform two build, one for CJS, one for ESM. [example](https://github.com/garronej/tss-react/blob/3cab4732edaff7ba41e3f01b7524b8db47cf7f25/package.json#L43)
|
||||||
|
- Explicitly list your exports in your `package.json`, use `"module"`, the condition for bundlers like Vite or Next.js,
|
||||||
|
`"default"` is what will be picked up by node. [example](https://github.com/garronej/tss-react/blob/52ee92df56ef9fc82c0608deb4c35944b82b7b74/package.json#L11-L52).
|
||||||
|
|
||||||
|
You want to avoid this strategy if:
|
||||||
|
- You use `export default` and you want to support node in `type: module` mode.
|
||||||
|
- You have lazy import (`import(...).then(...)`) and you want them to be lazy not only on the browser but on node too.
|
||||||
|
- You want automatic tree shaking when importing from index (see explanation above)
|
||||||
|
- Your package is susceptible to be a peer dependency, you can end up with duplication.
|
||||||
|
|
||||||
|
## Deno
|
||||||
|
|
||||||
|
Regardless of the scenario you opt for you can always release for Deno using [Denoify](https://denoify.dev).
|
||||||
|
|
||||||
|
## CJS + A real ESM distribution, fully compliant with the standard
|
||||||
|
|
||||||
|
Pursuing a fully compliant CJS + ESM distribution comes with caveats. It only works well if all your dependencies are adherent to the standard, a condition that [most modules fail to meet](https://github.com/mui/material-ui/issues/37335).
|
||||||
|
|
||||||
|
This method introduces the risk of your package being simultaneously loaded in both CJS and ESM in a single node application. It also poses a similar risk to your dependencies.
|
||||||
|
|
||||||
|
Thus, proceed with this option only if it's necessary for your lazy imports to actually be lazy when your code runs on Node and you want to be able to have tree shaking.
|
||||||
|
This approach is only risk free if you are not susceptible to be a peer dependency and you have no dependency.
|
||||||
|
|
||||||
|
- To transpile in ESM using `tsc`, use [`js2mjs`](https://github.com/garronej/js2mjs) and [`ts-add-js-extension`](https://www.npmjs.com/package/ts-add-js-extension) to create a fully compliant ESM distribution. See example [here with tsafe](https://github.com/garronej/tsafe/blob/f97578296b996c7244866087e19877f6cc5cdea5/package.json#L10-L12). (Side note: [An external script should not be required for this!](https://github.com/microsoft/TypeScript/issues/18442)).
|
||||||
|
- Declare your exports using both `require` and `import`. See example with [the package.js of tsafe](https://www.npmjs.com/package/tsafe?activeTab=code).
|
||||||
|
|
||||||
|
## I have questions
|
||||||
|
|
||||||
|
If you find your self thinking:
|
||||||
|
|
||||||
|
"I don't know man, ESM, CJS, I have no idea, I just want my stuff to work!"
|
||||||
|
"None of the option above covers all my requirement?"
|
||||||
|
"Why can't I have a solution that work in every case?"
|
||||||
|
"Why can't I publish an actual standard compliant ESM distribution?"
|
||||||
|
|
||||||
|
Just [start a discussion](https://github.com/garronej/ts-ci/discussions) or hit [my Twitter DM](https://twitter.com/GarroneJoseph) I'll be happy to provide further guidance.
|
||||||
|
|
||||||
|
# FAQ
|
||||||
|
|
||||||
|
<details>
|
||||||
|
<summary>Click to expand</summary>
|
||||||
|
|
||||||
|
## Can I use `npm` (or something else) instead of `yarn`
|
||||||
|
|
||||||
|
Yes, just remove the `yarn.lock` file and edit `.github/workflows/ci.yaml`, replace all `yarn ***` by `npm run ****`.
|
||||||
|
Note however that the the script (`scripts/link-in-app.ts`) that enable you to test in an external app will no longer work.
|
||||||
|
|
||||||
|
## What will be included in the npm bundle?
|
||||||
|
|
||||||
|
All filles listed in [the files property of your package JSON](https://github.com/garronej/ts_ci/blob/974054f2b83f8170317f2b2fa60b5f78e9336c0b/package.json#L35-L41).
|
||||||
|
|
||||||
|
|
||||||
|
## How to debug the action
|
||||||
|
|
||||||
|
You can increase the verbosity by creating a new secret `ACTIONS_STEP_DEBUG` and setting it to true.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
## Disable linting and formatting
|
||||||
|
|
||||||
|
Remove [this](https://github.com/garronej/ts_ci/blob/974054f2b83f8170317f2b2fa60b5f78e9336c0b/package.json#L15-L18), [this](https://github.com/garronej/ts_ci/blob/974054f2b83f8170317f2b2fa60b5f78e9336c0b/package.json#L20-L32) and [this](https://github.com/garronej/ts_ci/blob/974054f2b83f8170317f2b2fa60b5f78e9336c0b/package.json#L47-L53) from your `package.json`
|
||||||
|
Remove [this](https://github.com/garronej/ts_ci/blob/974054f2b83f8170317f2b2fa60b5f78e9336c0b/.github/workflows/ci.yaml#L12-L26) and [this](https://github.com/garronej/ts_ci/blob/974054f2b83f8170317f2b2fa60b5f78e9336c0b/.github/workflows/ci.yaml#L29) from `github/workflows/ci.yaml`
|
||||||
|
Remove `.eslintignore`, `.eslintrc.js`, `.prettierignore` and `.prettierrc.json`.
|
||||||
|
|
||||||
|
## Accessing files outside the ``dist/`` directory (when [this line is present in your repo](https://github.com/garronej/ts-ci/blob/eabbcfa5b22777c6b051206d8f4e2c8a8624c853/.github/workflows/ci.yaml#L100))
|
||||||
|
|
||||||
|
The drawback of having short import path is that the dir structure
|
||||||
|
is not exactly the same in production ( in the npm bundle ) and in development.
|
||||||
|
|
||||||
|
The files and directories in ``dist/`` will be moved to the root of the project.
|
||||||
|
|
||||||
|
As a result this won't work in production:
|
||||||
|
|
||||||
|
``src/index.ts``
|
||||||
|
```typescript
|
||||||
|
import * as fs from "fs";
|
||||||
|
import * as path from "path";
|
||||||
|
|
||||||
|
const str = fs.readFileSync(
|
||||||
|
path.join(__dirname,"..", "package.json")
|
||||||
|
).toString("utf8");
|
||||||
```
|
```
|
||||||
|
|
||||||
Example use:
|
Because ``/dist/index.js`` will be moved to ``/index.js``
|
||||||
```yaml
|
|
||||||
trigger-deploy:
|
You'll have to do:
|
||||||
runs-on: ubuntu-latest
|
|
||||||
if: steps.id1.outputs.is_version_changed && github.event_name == 'push'
|
``src/index.ts``
|
||||||
needs:
|
```typescript
|
||||||
- test-node
|
import * as fs from "fs";
|
||||||
- test-deno
|
import * as path from "path";
|
||||||
steps:
|
import { getProjectRoot } from "./tools/getProjectRoot";
|
||||||
- name: Check if package.json version have changed
|
|
||||||
id: id1
|
const str = fs.readFileSync(
|
||||||
uses: garronej/github_actions_toolkit@master
|
path.join(getProjectRoot(),"package.json")
|
||||||
with:
|
).toString("utf8");
|
||||||
action_name: is_version_changed
|
|
||||||
owner: ${{github.repository_owner}}
|
|
||||||
repo: ${{github.repository.name}}
|
|
||||||
branch_current: ${{master}}
|
|
||||||
branch_new: ${{dev}}
|
|
||||||
- name: Trigger publish if version changed
|
|
||||||
uses: garronej/github_actions_toolkit@master
|
|
||||||
with:
|
|
||||||
action_name: dispatch_event
|
|
||||||
owner: ${{github.repository_owner}}
|
|
||||||
repo: ${{github.repository.name}}
|
|
||||||
event_type: publish
|
|
||||||
```
|
```
|
||||||
|
|
||||||
|
With `getProjectRoot.ts` being:
|
||||||
|
|
||||||
|
```typescript
|
||||||
|
import * as fs from "fs";
|
||||||
|
import * as path from "path";
|
||||||
|
|
||||||
|
function getProjectRootRec(dirPath: string): string {
|
||||||
|
if (fs.existsSync(path.join(dirPath, "package.json"))) {
|
||||||
|
return dirPath;
|
||||||
|
}
|
||||||
|
return getProjectRootRec(path.join(dirPath, ".."));
|
||||||
|
}
|
||||||
|
|
||||||
|
let result: string | undefined = undefined;
|
||||||
|
|
||||||
|
export function getProjectRoot(): string {
|
||||||
|
if (result !== undefined) {
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
return (result = getProjectRootRec(__dirname));
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
</details>
|
||||||
|
|
|
||||||
90
README.template.md
Normal file
90
README.template.md
Normal file
|
|
@ -0,0 +1,90 @@
|
||||||
|
<p align="center">
|
||||||
|
<img src="https://user-images.githubusercontent.com/6702424/80216211-00ef5280-863e-11ea-81de-59f3a3d4b8e4.png">
|
||||||
|
</p>
|
||||||
|
<p align="center">
|
||||||
|
<i>#{DESC}#</i>
|
||||||
|
<br>
|
||||||
|
<br>
|
||||||
|
<a href="https://github.com/#{USER_OR_ORG}#/#{REPO_NAME}#/actions">
|
||||||
|
<img src="https://github.com/#{USER_OR_ORG}#/#{REPO_NAME}#/actions/workflows/ci.yaml/badge.svg?branch=main">
|
||||||
|
</a>
|
||||||
|
<a href="https://bundlephobia.com/package/#{REPO_NAME}#">
|
||||||
|
<img src="https://img.shields.io/bundlephobia/minzip/#{REPO_NAME}#">
|
||||||
|
</a>
|
||||||
|
<a href="https://www.npmjs.com/package/#{REPO_NAME}#">
|
||||||
|
<img src="https://img.shields.io/npm/dw/#{REPO_NAME}#">
|
||||||
|
</a>
|
||||||
|
<a href="https://github.com/#{USER_OR_ORG}#/#{REPO_NAME}#/blob/main/LICENSE">
|
||||||
|
<img src="https://img.shields.io/npm/l/#{REPO_NAME}#">
|
||||||
|
</a>
|
||||||
|
</p>
|
||||||
|
<p align="center">
|
||||||
|
<a href="https://github.com/#{USER_OR_ORG}#/#{REPO_NAME}#">Home</a>
|
||||||
|
-
|
||||||
|
<a href="https://github.com/#{USER_OR_ORG}#/#{REPO_NAME}#">Documentation</a>
|
||||||
|
</p>
|
||||||
|
|
||||||
|
# Install / Import
|
||||||
|
|
||||||
|
```bash
|
||||||
|
$ npm install --save #{REPO_NAME}#
|
||||||
|
```
|
||||||
|
|
||||||
|
```typescript
|
||||||
|
import { myFunction, myObject, MyReactComponent } from "#{REPO_NAME}#";
|
||||||
|
```
|
||||||
|
|
||||||
|
Specific imports, only import what you need:
|
||||||
|
|
||||||
|
```typescript
|
||||||
|
import { myFunction } from "#{REPO_NAME}#/myFunction";
|
||||||
|
import { myObject } from "#{REPO_NAME}#/myObject";
|
||||||
|
import MyReactComponent from "#{REPO_NAME}#/MyReactComponent";
|
||||||
|
```
|
||||||
|
|
||||||
|
# Contributing
|
||||||
|
|
||||||
|
## Testing your changes in an external app
|
||||||
|
|
||||||
|
You have made some changes to the code and you want to test them
|
||||||
|
in your app before submitting a pull request?
|
||||||
|
|
||||||
|
Assuming `you/my-app` have `#{REPO_NAME}#` as a dependency.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
cd ~/github
|
||||||
|
git clone https://github.com/you/my-app
|
||||||
|
cd my-app
|
||||||
|
yarn
|
||||||
|
|
||||||
|
cd ~/github
|
||||||
|
git clone https://github.com/garronej/#{REPO_NAME}#
|
||||||
|
cd #{REPO_NAME}#
|
||||||
|
yarn
|
||||||
|
yarn build
|
||||||
|
yarn link-in-app my-app
|
||||||
|
npx tsc -w
|
||||||
|
|
||||||
|
# Open another terminal
|
||||||
|
|
||||||
|
cd ~/github/my-app
|
||||||
|
rm -rf node_modules/.cache
|
||||||
|
yarn start # Or whatever my-app is using for starting the project
|
||||||
|
```
|
||||||
|
|
||||||
|
You don't have to use `~/github` as reference path. Just make sure `my-app` and `#{REPO_NAME}#`
|
||||||
|
are in the same directory.
|
||||||
|
|
||||||
|
> Note for the maintainer: You might run into issues if you do not list all your singleton dependencies in
|
||||||
|
> `src/link-in-app.js -> singletonDependencies`. A singleton dependency is a dependency that can
|
||||||
|
> only be present once in an App. Singleton dependencies are usually listed as peerDependencies example `react`, `@emotion/*`.
|
||||||
|
|
||||||
|
## Releasing
|
||||||
|
|
||||||
|
For releasing a new version on GitHub and NPM you don't need to create a tag.
|
||||||
|
Just update the `package.json` version number and push.
|
||||||
|
|
||||||
|
For publishing a release candidate update your `package.json` with `1.3.4-rc.0` (`.1`, `.2`, ...).
|
||||||
|
It also work if you do it from a branch that have an open PR on main.
|
||||||
|
|
||||||
|
> Make sure your have defined the `NPM_TOKEN` repository secret or NPM publishing will fail.
|
||||||
84
action.yml
84
action.yml
|
|
@ -1,84 +0,0 @@
|
||||||
name: 'github_actions_toolkit'
|
|
||||||
description: 'A collection of github actions'
|
|
||||||
author: 'u/garronej'
|
|
||||||
inputs:
|
|
||||||
action_name:
|
|
||||||
required: true
|
|
||||||
description: 'Action to run, one of: "get_package_json_version", "dispatch_event", "update_changelog", "sync_package_and_package_lock_version", "setup_repo_webhook_for_deno_land_publishing", "is_well_formed_and_available_module_name", "string_replace", "tell_if_project_uses_npm_or_yarn", "is_package_json_version_upgraded"'
|
|
||||||
owner:
|
|
||||||
required: false
|
|
||||||
description: 'Repository owner, example: ''garronej'',github.repository_owner'
|
|
||||||
default: '${{github.repository_owner}}'
|
|
||||||
repo:
|
|
||||||
required: false
|
|
||||||
description: 'Repository name, example: ''evt'', github.event.repository.name'
|
|
||||||
default: '${{github.event.repository.name}}'
|
|
||||||
event_type:
|
|
||||||
required: false
|
|
||||||
description: 'see: https://developer.github.com/v3/repos/#create-a-repository-dispatch-event'
|
|
||||||
client_payload_json:
|
|
||||||
required: false
|
|
||||||
description: 'Example ''{"p":"foo"}'' see: https://developer.github.com/v3/repos/#create-a-repository-dispatch-event'
|
|
||||||
branch:
|
|
||||||
required: false
|
|
||||||
description: 'Example: default ( can also be a sha )'
|
|
||||||
default: '${{ github.sha }}'
|
|
||||||
exclude_commit_from_author_names_json:
|
|
||||||
required: false
|
|
||||||
description: 'For update_changelog, do not includes commit from user certain committer in the CHANGELOG.md, ex: ''["denoify_ci"]'''
|
|
||||||
default: '["actions"]'
|
|
||||||
module_name:
|
|
||||||
required: false
|
|
||||||
description: 'A candidate module name, Example: lodash'
|
|
||||||
compare_to_version:
|
|
||||||
required: false
|
|
||||||
description: 'For get_package_json_version, a version against which comparing the result if found version more recent than compare_to_version compare_result is 1 if found version is equal to compare_to_version compare_result is 0 if found version is older to compare_to_version compare_result -1 Example: 0.1.3'
|
|
||||||
input_string:
|
|
||||||
required: false
|
|
||||||
description: 'For string_replace, the string to replace'
|
|
||||||
search_value:
|
|
||||||
required: false
|
|
||||||
description: 'For string_replace, Example ''-'' ( Will be used as arg for RegExp constructor )'
|
|
||||||
replace_value:
|
|
||||||
required: false
|
|
||||||
description: 'For string_replace, Example ''_'''
|
|
||||||
should_webhook_be_enabled:
|
|
||||||
required: false
|
|
||||||
description: 'true|false, Should the create webhook be enabled, with setup_repo_webhook_for_deno_land_publishing'
|
|
||||||
default: 'true'
|
|
||||||
github_token:
|
|
||||||
required: false
|
|
||||||
description: 'GitHub Personal access token'
|
|
||||||
default: '${{ github.token }}'
|
|
||||||
outputs:
|
|
||||||
version:
|
|
||||||
description: 'Output of get_package_json_version'
|
|
||||||
is_valid_node_module_name:
|
|
||||||
description: 'true|false'
|
|
||||||
is_valid_deno_module_name:
|
|
||||||
description: 'true|false'
|
|
||||||
is_available_on_npm:
|
|
||||||
description: 'true|false'
|
|
||||||
is_available_on_deno_land:
|
|
||||||
description: 'true|false'
|
|
||||||
was_already_published:
|
|
||||||
description: 'true|false'
|
|
||||||
compare_result:
|
|
||||||
description: '1|0|-1'
|
|
||||||
replace_result:
|
|
||||||
description: 'Output of string_replace'
|
|
||||||
was_hook_created:
|
|
||||||
description: 'true|false'
|
|
||||||
npm_or_yarn:
|
|
||||||
description: 'npm|yarn'
|
|
||||||
from_version:
|
|
||||||
description: 'Output of is_package_json_version_upgraded, string'
|
|
||||||
to_version:
|
|
||||||
description: 'Output of is_package_json_version_upgraded, string'
|
|
||||||
is_upgraded_version:
|
|
||||||
description: 'Output of is_package_json_version_upgraded, true|false'
|
|
||||||
is_pre_release:
|
|
||||||
description: 'Output of is_package_json_version_upgraded, true|false'
|
|
||||||
runs:
|
|
||||||
using: 'node16'
|
|
||||||
main: 'dist/index.js'
|
|
||||||
15274
dist/index.js
vendored
15274
dist/index.js
vendored
File diff suppressed because one or more lines are too long
2072
package-lock.json
generated
2072
package-lock.json
generated
File diff suppressed because it is too large
Load diff
104
package.json
Normal file → Executable file
104
package.json
Normal file → Executable file
|
|
@ -1,42 +1,66 @@
|
||||||
{
|
{
|
||||||
"name": "github_actions_toolkit",
|
"name": "#{REPO_NAME}#",
|
||||||
"version": "0.0.0",
|
"version": "0.0.0",
|
||||||
"private": true,
|
"description": "#{DESC}#",
|
||||||
"description": "A collection of github actions",
|
"repository": {
|
||||||
"main": "lib/main.js",
|
"type": "git",
|
||||||
"scripts": {
|
"url": "git://github.com/#{USER_OR_ORG}#/#{REPO_NAME}#.git"
|
||||||
"generate-action-yml": "node lib/bin/generateActionYml.js",
|
},
|
||||||
"pack": "ncc build",
|
"scripts": {
|
||||||
"build": "tsc && npm run generate-action-yml && npm run pack",
|
"build": "tsc",
|
||||||
"clean": "rm -rf dist lib node_modules package-lock.json"
|
"test": "vitest",
|
||||||
},
|
"lint:check": "eslint . --ext .ts,.tsx",
|
||||||
"repository": {
|
"lint": "npm run lint:check -- --fix",
|
||||||
"type": "git",
|
"_format": "prettier '**/*.{ts,tsx,json,md}'",
|
||||||
"url": "git+https://github.com/garronej/github-actions-toolkit.git"
|
"format": "npm run _format -- --write",
|
||||||
},
|
"format:check": "npm run _format -- --list-different",
|
||||||
"author": "u/garronej",
|
"link-in-app": "tsx scripts/link-in-app.ts"
|
||||||
"license": "MIT",
|
},
|
||||||
"dependencies": {
|
"main": "dist/index.js",
|
||||||
"@actions/core": "^1.2.0",
|
"types": "dist/index.d.ts",
|
||||||
"@octokit/rest": "^17.6.0",
|
"exports": {
|
||||||
"comment-json": "^3.0.2",
|
".": "./dist/index.js",
|
||||||
"evt": "1.6.8",
|
"./*": "./dist/*.js",
|
||||||
"glob": "^7.1.6",
|
"./tools": "./dist/tools/index.js"
|
||||||
"node-fetch": "^2.6.1",
|
},
|
||||||
"scripting-tools": "^0.19.12",
|
"lint-staged": {
|
||||||
"tsafe": "^0.8.1",
|
"*.{ts,tsx}": [
|
||||||
"url-join": "^4.0.1",
|
"eslint --fix"
|
||||||
"validate-npm-package-name": "^3.0.0"
|
],
|
||||||
},
|
"*.{ts,tsx,json,md}": [
|
||||||
"devDependencies": {
|
"prettier --write"
|
||||||
"@types/glob": "^7.1.1",
|
]
|
||||||
"@types/jest": "^24.0.23",
|
},
|
||||||
"@types/node": "^12.7.12",
|
"husky": {
|
||||||
"@types/node-fetch": "^2.5.7",
|
"hooks": {
|
||||||
"@types/validate-npm-package-name": "^3.0.0",
|
"pre-commit": "lint-staged -v"
|
||||||
"@zeit/ncc": "^0.20.5",
|
}
|
||||||
"js-yaml": "^3.13.1",
|
},
|
||||||
"prettier": "^1.19.1",
|
"author": "u/#{USER_OR_ORG}#",
|
||||||
"typescript": "^3.6.4"
|
"license": "MIT",
|
||||||
}
|
"files": [
|
||||||
|
"src/",
|
||||||
|
"dist/",
|
||||||
|
"!dist/tsconfig.tsbuildinfo"
|
||||||
|
],
|
||||||
|
"keywords": [],
|
||||||
|
"homepage": "https://github.com/#{USER_OR_ORG}#/#{REPO_NAME}#",
|
||||||
|
"devDependencies": {
|
||||||
|
"@types/node": "^20.2.1",
|
||||||
|
"typescript": "^5.4.5",
|
||||||
|
"@typescript-eslint/eslint-plugin": "^5.59.6",
|
||||||
|
"@typescript-eslint/parser": "^5.59.6",
|
||||||
|
"eslint": "^8.41.0",
|
||||||
|
"eslint-config-prettier": "^8.8.0",
|
||||||
|
"husky": "^4.3.8",
|
||||||
|
"lint-staged": "^11.1.1",
|
||||||
|
"prettier": "^3.3.2",
|
||||||
|
"vitest": "^1.6.0",
|
||||||
|
"tsx": "^4.15.5",
|
||||||
|
"react": "^18.3.1",
|
||||||
|
"@types/react": "^18.3.3"
|
||||||
|
},
|
||||||
|
"publishConfig": {
|
||||||
|
"access": "public"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,317 +0,0 @@
|
||||||
{
|
|
||||||
"url": "https://api.github.com/repos/denoland/deno_website2/pulls/393",
|
|
||||||
"id": 416660425,
|
|
||||||
"node_id": "MDExOlB1bGxSZXF1ZXN0NDE2NjYwNDI1",
|
|
||||||
"html_url": "https://github.com/denoland/deno_website2/pull/393",
|
|
||||||
"diff_url": "https://github.com/denoland/deno_website2/pull/393.diff",
|
|
||||||
"patch_url": "https://github.com/denoland/deno_website2/pull/393.patch",
|
|
||||||
"issue_url": "https://api.github.com/repos/denoland/deno_website2/issues/393",
|
|
||||||
"number": 393,
|
|
||||||
"state": "closed",
|
|
||||||
"locked": false,
|
|
||||||
"title": "fix cf worker deploy",
|
|
||||||
"user": {
|
|
||||||
"login": "ry",
|
|
||||||
"id": 80,
|
|
||||||
"node_id": "MDQ6VXNlcjgw",
|
|
||||||
"avatar_url": "https://avatars1.githubusercontent.com/u/80?v=4",
|
|
||||||
"gravatar_id": "",
|
|
||||||
"url": "https://api.github.com/users/ry",
|
|
||||||
"html_url": "https://github.com/ry",
|
|
||||||
"followers_url": "https://api.github.com/users/ry/followers",
|
|
||||||
"following_url": "https://api.github.com/users/ry/following{/other_user}",
|
|
||||||
"gists_url": "https://api.github.com/users/ry/gists{/gist_id}",
|
|
||||||
"starred_url": "https://api.github.com/users/ry/starred{/owner}{/repo}",
|
|
||||||
"subscriptions_url": "https://api.github.com/users/ry/subscriptions",
|
|
||||||
"organizations_url": "https://api.github.com/users/ry/orgs",
|
|
||||||
"repos_url": "https://api.github.com/users/ry/repos",
|
|
||||||
"events_url": "https://api.github.com/users/ry/events{/privacy}",
|
|
||||||
"received_events_url": "https://api.github.com/users/ry/received_events",
|
|
||||||
"type": "User",
|
|
||||||
"site_admin": false
|
|
||||||
},
|
|
||||||
"body": "",
|
|
||||||
"created_at": "2020-05-12T11:22:08Z",
|
|
||||||
"updated_at": "2020-05-12T11:25:32Z",
|
|
||||||
"closed_at": "2020-05-12T11:25:28Z",
|
|
||||||
"merged_at": "2020-05-12T11:25:28Z",
|
|
||||||
"merge_commit_sha": "111d5300a10fb43e33be0ab9afa9e7762b32c268",
|
|
||||||
"assignee": null,
|
|
||||||
"assignees": [],
|
|
||||||
"requested_reviewers": [],
|
|
||||||
"requested_teams": [],
|
|
||||||
"labels": [],
|
|
||||||
"milestone": null,
|
|
||||||
"draft": false,
|
|
||||||
"commits_url": "https://api.github.com/repos/denoland/deno_website2/pulls/393/commits",
|
|
||||||
"review_comments_url": "https://api.github.com/repos/denoland/deno_website2/pulls/393/comments",
|
|
||||||
"review_comment_url": "https://api.github.com/repos/denoland/deno_website2/pulls/comments{/number}",
|
|
||||||
"comments_url": "https://api.github.com/repos/denoland/deno_website2/issues/393/comments",
|
|
||||||
"statuses_url": "https://api.github.com/repos/denoland/deno_website2/statuses/70de9ffc401467de5014f11b9d6c45817f98a7e5",
|
|
||||||
"head": {
|
|
||||||
"label": "ry:fix_worker",
|
|
||||||
"ref": "fix_worker",
|
|
||||||
"sha": "70de9ffc401467de5014f11b9d6c45817f98a7e5",
|
|
||||||
"user": {
|
|
||||||
"login": "ry",
|
|
||||||
"id": 80,
|
|
||||||
"node_id": "MDQ6VXNlcjgw",
|
|
||||||
"avatar_url": "https://avatars1.githubusercontent.com/u/80?v=4",
|
|
||||||
"gravatar_id": "",
|
|
||||||
"url": "https://api.github.com/users/ry",
|
|
||||||
"html_url": "https://github.com/ry",
|
|
||||||
"followers_url": "https://api.github.com/users/ry/followers",
|
|
||||||
"following_url": "https://api.github.com/users/ry/following{/other_user}",
|
|
||||||
"gists_url": "https://api.github.com/users/ry/gists{/gist_id}",
|
|
||||||
"starred_url": "https://api.github.com/users/ry/starred{/owner}{/repo}",
|
|
||||||
"subscriptions_url": "https://api.github.com/users/ry/subscriptions",
|
|
||||||
"organizations_url": "https://api.github.com/users/ry/orgs",
|
|
||||||
"repos_url": "https://api.github.com/users/ry/repos",
|
|
||||||
"events_url": "https://api.github.com/users/ry/events{/privacy}",
|
|
||||||
"received_events_url": "https://api.github.com/users/ry/received_events",
|
|
||||||
"type": "User",
|
|
||||||
"site_admin": false
|
|
||||||
},
|
|
||||||
"repo": {
|
|
||||||
"id": 217404450,
|
|
||||||
"node_id": "MDEwOlJlcG9zaXRvcnkyMTc0MDQ0NTA=",
|
|
||||||
"name": "deno_website2",
|
|
||||||
"full_name": "ry/deno_website2",
|
|
||||||
"private": false,
|
|
||||||
"owner": {
|
|
||||||
"login": "ry",
|
|
||||||
"id": 80,
|
|
||||||
"node_id": "MDQ6VXNlcjgw",
|
|
||||||
"avatar_url": "https://avatars1.githubusercontent.com/u/80?v=4",
|
|
||||||
"gravatar_id": "",
|
|
||||||
"url": "https://api.github.com/users/ry",
|
|
||||||
"html_url": "https://github.com/ry",
|
|
||||||
"followers_url": "https://api.github.com/users/ry/followers",
|
|
||||||
"following_url": "https://api.github.com/users/ry/following{/other_user}",
|
|
||||||
"gists_url": "https://api.github.com/users/ry/gists{/gist_id}",
|
|
||||||
"starred_url": "https://api.github.com/users/ry/starred{/owner}{/repo}",
|
|
||||||
"subscriptions_url": "https://api.github.com/users/ry/subscriptions",
|
|
||||||
"organizations_url": "https://api.github.com/users/ry/orgs",
|
|
||||||
"repos_url": "https://api.github.com/users/ry/repos",
|
|
||||||
"events_url": "https://api.github.com/users/ry/events{/privacy}",
|
|
||||||
"received_events_url": "https://api.github.com/users/ry/received_events",
|
|
||||||
"type": "User",
|
|
||||||
"site_admin": false
|
|
||||||
},
|
|
||||||
"html_url": "https://github.com/ry/deno_website2",
|
|
||||||
"description": "prototype of new deno.land website ",
|
|
||||||
"fork": true,
|
|
||||||
"url": "https://api.github.com/repos/ry/deno_website2",
|
|
||||||
"forks_url": "https://api.github.com/repos/ry/deno_website2/forks",
|
|
||||||
"keys_url": "https://api.github.com/repos/ry/deno_website2/keys{/key_id}",
|
|
||||||
"collaborators_url": "https://api.github.com/repos/ry/deno_website2/collaborators{/collaborator}",
|
|
||||||
"teams_url": "https://api.github.com/repos/ry/deno_website2/teams",
|
|
||||||
"hooks_url": "https://api.github.com/repos/ry/deno_website2/hooks",
|
|
||||||
"issue_events_url": "https://api.github.com/repos/ry/deno_website2/issues/events{/number}",
|
|
||||||
"events_url": "https://api.github.com/repos/ry/deno_website2/events",
|
|
||||||
"assignees_url": "https://api.github.com/repos/ry/deno_website2/assignees{/user}",
|
|
||||||
"branches_url": "https://api.github.com/repos/ry/deno_website2/branches{/branch}",
|
|
||||||
"tags_url": "https://api.github.com/repos/ry/deno_website2/tags",
|
|
||||||
"blobs_url": "https://api.github.com/repos/ry/deno_website2/git/blobs{/sha}",
|
|
||||||
"git_tags_url": "https://api.github.com/repos/ry/deno_website2/git/tags{/sha}",
|
|
||||||
"git_refs_url": "https://api.github.com/repos/ry/deno_website2/git/refs{/sha}",
|
|
||||||
"trees_url": "https://api.github.com/repos/ry/deno_website2/git/trees{/sha}",
|
|
||||||
"statuses_url": "https://api.github.com/repos/ry/deno_website2/statuses/{sha}",
|
|
||||||
"languages_url": "https://api.github.com/repos/ry/deno_website2/languages",
|
|
||||||
"stargazers_url": "https://api.github.com/repos/ry/deno_website2/stargazers",
|
|
||||||
"contributors_url": "https://api.github.com/repos/ry/deno_website2/contributors",
|
|
||||||
"subscribers_url": "https://api.github.com/repos/ry/deno_website2/subscribers",
|
|
||||||
"subscription_url": "https://api.github.com/repos/ry/deno_website2/subscription",
|
|
||||||
"commits_url": "https://api.github.com/repos/ry/deno_website2/commits{/sha}",
|
|
||||||
"git_commits_url": "https://api.github.com/repos/ry/deno_website2/git/commits{/sha}",
|
|
||||||
"comments_url": "https://api.github.com/repos/ry/deno_website2/comments{/number}",
|
|
||||||
"issue_comment_url": "https://api.github.com/repos/ry/deno_website2/issues/comments{/number}",
|
|
||||||
"contents_url": "https://api.github.com/repos/ry/deno_website2/contents/{+path}",
|
|
||||||
"compare_url": "https://api.github.com/repos/ry/deno_website2/compare/{base}...{head}",
|
|
||||||
"merges_url": "https://api.github.com/repos/ry/deno_website2/merges",
|
|
||||||
"archive_url": "https://api.github.com/repos/ry/deno_website2/{archive_format}{/ref}",
|
|
||||||
"downloads_url": "https://api.github.com/repos/ry/deno_website2/downloads",
|
|
||||||
"issues_url": "https://api.github.com/repos/ry/deno_website2/issues{/number}",
|
|
||||||
"pulls_url": "https://api.github.com/repos/ry/deno_website2/pulls{/number}",
|
|
||||||
"milestones_url": "https://api.github.com/repos/ry/deno_website2/milestones{/number}",
|
|
||||||
"notifications_url": "https://api.github.com/repos/ry/deno_website2/notifications{?since,all,participating}",
|
|
||||||
"labels_url": "https://api.github.com/repos/ry/deno_website2/labels{/name}",
|
|
||||||
"releases_url": "https://api.github.com/repos/ry/deno_website2/releases{/id}",
|
|
||||||
"deployments_url": "https://api.github.com/repos/ry/deno_website2/deployments",
|
|
||||||
"created_at": "2019-10-24T22:14:58Z",
|
|
||||||
"updated_at": "2020-05-12T16:20:05Z",
|
|
||||||
"pushed_at": "2020-05-12T11:25:32Z",
|
|
||||||
"git_url": "git://github.com/ry/deno_website2.git",
|
|
||||||
"ssh_url": "git@github.com:ry/deno_website2.git",
|
|
||||||
"clone_url": "https://github.com/ry/deno_website2.git",
|
|
||||||
"svn_url": "https://github.com/ry/deno_website2",
|
|
||||||
"homepage": "https://denoland.netlify.com",
|
|
||||||
"size": 1381,
|
|
||||||
"stargazers_count": 5,
|
|
||||||
"watchers_count": 5,
|
|
||||||
"language": null,
|
|
||||||
"has_issues": false,
|
|
||||||
"has_projects": true,
|
|
||||||
"has_downloads": true,
|
|
||||||
"has_wiki": true,
|
|
||||||
"has_pages": false,
|
|
||||||
"forks_count": 0,
|
|
||||||
"mirror_url": null,
|
|
||||||
"archived": false,
|
|
||||||
"disabled": false,
|
|
||||||
"open_issues_count": 0,
|
|
||||||
"license": null,
|
|
||||||
"forks": 0,
|
|
||||||
"open_issues": 0,
|
|
||||||
"watchers": 5,
|
|
||||||
"default_branch": "master"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"base": {
|
|
||||||
"label": "denoland:master",
|
|
||||||
"ref": "master",
|
|
||||||
"sha": "6147b893faf9ee61c28c5f6854d82098a749c8ee",
|
|
||||||
"user": {
|
|
||||||
"login": "denoland",
|
|
||||||
"id": 42048915,
|
|
||||||
"node_id": "MDEyOk9yZ2FuaXphdGlvbjQyMDQ4OTE1",
|
|
||||||
"avatar_url": "https://avatars1.githubusercontent.com/u/42048915?v=4",
|
|
||||||
"gravatar_id": "",
|
|
||||||
"url": "https://api.github.com/users/denoland",
|
|
||||||
"html_url": "https://github.com/denoland",
|
|
||||||
"followers_url": "https://api.github.com/users/denoland/followers",
|
|
||||||
"following_url": "https://api.github.com/users/denoland/following{/other_user}",
|
|
||||||
"gists_url": "https://api.github.com/users/denoland/gists{/gist_id}",
|
|
||||||
"starred_url": "https://api.github.com/users/denoland/starred{/owner}{/repo}",
|
|
||||||
"subscriptions_url": "https://api.github.com/users/denoland/subscriptions",
|
|
||||||
"organizations_url": "https://api.github.com/users/denoland/orgs",
|
|
||||||
"repos_url": "https://api.github.com/users/denoland/repos",
|
|
||||||
"events_url": "https://api.github.com/users/denoland/events{/privacy}",
|
|
||||||
"received_events_url": "https://api.github.com/users/denoland/received_events",
|
|
||||||
"type": "Organization",
|
|
||||||
"site_admin": false
|
|
||||||
},
|
|
||||||
"repo": {
|
|
||||||
"id": 216156518,
|
|
||||||
"node_id": "MDEwOlJlcG9zaXRvcnkyMTYxNTY1MTg=",
|
|
||||||
"name": "deno_website2",
|
|
||||||
"full_name": "denoland/deno_website2",
|
|
||||||
"private": false,
|
|
||||||
"owner": {
|
|
||||||
"login": "denoland",
|
|
||||||
"id": 42048915,
|
|
||||||
"node_id": "MDEyOk9yZ2FuaXphdGlvbjQyMDQ4OTE1",
|
|
||||||
"avatar_url": "https://avatars1.githubusercontent.com/u/42048915?v=4",
|
|
||||||
"gravatar_id": "",
|
|
||||||
"url": "https://api.github.com/users/denoland",
|
|
||||||
"html_url": "https://github.com/denoland",
|
|
||||||
"followers_url": "https://api.github.com/users/denoland/followers",
|
|
||||||
"following_url": "https://api.github.com/users/denoland/following{/other_user}",
|
|
||||||
"gists_url": "https://api.github.com/users/denoland/gists{/gist_id}",
|
|
||||||
"starred_url": "https://api.github.com/users/denoland/starred{/owner}{/repo}",
|
|
||||||
"subscriptions_url": "https://api.github.com/users/denoland/subscriptions",
|
|
||||||
"organizations_url": "https://api.github.com/users/denoland/orgs",
|
|
||||||
"repos_url": "https://api.github.com/users/denoland/repos",
|
|
||||||
"events_url": "https://api.github.com/users/denoland/events{/privacy}",
|
|
||||||
"received_events_url": "https://api.github.com/users/denoland/received_events",
|
|
||||||
"type": "Organization",
|
|
||||||
"site_admin": false
|
|
||||||
},
|
|
||||||
"html_url": "https://github.com/denoland/deno_website2",
|
|
||||||
"description": "deno.land website ",
|
|
||||||
"fork": false,
|
|
||||||
"url": "https://api.github.com/repos/denoland/deno_website2",
|
|
||||||
"forks_url": "https://api.github.com/repos/denoland/deno_website2/forks",
|
|
||||||
"keys_url": "https://api.github.com/repos/denoland/deno_website2/keys{/key_id}",
|
|
||||||
"collaborators_url": "https://api.github.com/repos/denoland/deno_website2/collaborators{/collaborator}",
|
|
||||||
"teams_url": "https://api.github.com/repos/denoland/deno_website2/teams",
|
|
||||||
"hooks_url": "https://api.github.com/repos/denoland/deno_website2/hooks",
|
|
||||||
"issue_events_url": "https://api.github.com/repos/denoland/deno_website2/issues/events{/number}",
|
|
||||||
"events_url": "https://api.github.com/repos/denoland/deno_website2/events",
|
|
||||||
"assignees_url": "https://api.github.com/repos/denoland/deno_website2/assignees{/user}",
|
|
||||||
"branches_url": "https://api.github.com/repos/denoland/deno_website2/branches{/branch}",
|
|
||||||
"tags_url": "https://api.github.com/repos/denoland/deno_website2/tags",
|
|
||||||
"blobs_url": "https://api.github.com/repos/denoland/deno_website2/git/blobs{/sha}",
|
|
||||||
"git_tags_url": "https://api.github.com/repos/denoland/deno_website2/git/tags{/sha}",
|
|
||||||
"git_refs_url": "https://api.github.com/repos/denoland/deno_website2/git/refs{/sha}",
|
|
||||||
"trees_url": "https://api.github.com/repos/denoland/deno_website2/git/trees{/sha}",
|
|
||||||
"statuses_url": "https://api.github.com/repos/denoland/deno_website2/statuses/{sha}",
|
|
||||||
"languages_url": "https://api.github.com/repos/denoland/deno_website2/languages",
|
|
||||||
"stargazers_url": "https://api.github.com/repos/denoland/deno_website2/stargazers",
|
|
||||||
"contributors_url": "https://api.github.com/repos/denoland/deno_website2/contributors",
|
|
||||||
"subscribers_url": "https://api.github.com/repos/denoland/deno_website2/subscribers",
|
|
||||||
"subscription_url": "https://api.github.com/repos/denoland/deno_website2/subscription",
|
|
||||||
"commits_url": "https://api.github.com/repos/denoland/deno_website2/commits{/sha}",
|
|
||||||
"git_commits_url": "https://api.github.com/repos/denoland/deno_website2/git/commits{/sha}",
|
|
||||||
"comments_url": "https://api.github.com/repos/denoland/deno_website2/comments{/number}",
|
|
||||||
"issue_comment_url": "https://api.github.com/repos/denoland/deno_website2/issues/comments{/number}",
|
|
||||||
"contents_url": "https://api.github.com/repos/denoland/deno_website2/contents/{+path}",
|
|
||||||
"compare_url": "https://api.github.com/repos/denoland/deno_website2/compare/{base}...{head}",
|
|
||||||
"merges_url": "https://api.github.com/repos/denoland/deno_website2/merges",
|
|
||||||
"archive_url": "https://api.github.com/repos/denoland/deno_website2/{archive_format}{/ref}",
|
|
||||||
"downloads_url": "https://api.github.com/repos/denoland/deno_website2/downloads",
|
|
||||||
"issues_url": "https://api.github.com/repos/denoland/deno_website2/issues{/number}",
|
|
||||||
"pulls_url": "https://api.github.com/repos/denoland/deno_website2/pulls{/number}",
|
|
||||||
"milestones_url": "https://api.github.com/repos/denoland/deno_website2/milestones{/number}",
|
|
||||||
"notifications_url": "https://api.github.com/repos/denoland/deno_website2/notifications{?since,all,participating}",
|
|
||||||
"labels_url": "https://api.github.com/repos/denoland/deno_website2/labels{/name}",
|
|
||||||
"releases_url": "https://api.github.com/repos/denoland/deno_website2/releases{/id}",
|
|
||||||
"deployments_url": "https://api.github.com/repos/denoland/deno_website2/deployments",
|
|
||||||
"created_at": "2019-10-19T05:53:43Z",
|
|
||||||
"updated_at": "2020-05-12T22:28:15Z",
|
|
||||||
"pushed_at": "2020-05-12T22:35:23Z",
|
|
||||||
"git_url": "git://github.com/denoland/deno_website2.git",
|
|
||||||
"ssh_url": "git@github.com:denoland/deno_website2.git",
|
|
||||||
"clone_url": "https://github.com/denoland/deno_website2.git",
|
|
||||||
"svn_url": "https://github.com/denoland/deno_website2",
|
|
||||||
"homepage": "https://deno.land/",
|
|
||||||
"size": 1517,
|
|
||||||
"stargazers_count": 187,
|
|
||||||
"watchers_count": 187,
|
|
||||||
"language": "TypeScript",
|
|
||||||
"has_issues": true,
|
|
||||||
"has_projects": false,
|
|
||||||
"has_downloads": true,
|
|
||||||
"has_wiki": false,
|
|
||||||
"has_pages": false,
|
|
||||||
"forks_count": 131,
|
|
||||||
"mirror_url": null,
|
|
||||||
"archived": false,
|
|
||||||
"disabled": false,
|
|
||||||
"open_issues_count": 33,
|
|
||||||
"license": null,
|
|
||||||
"forks": 131,
|
|
||||||
"open_issues": 33,
|
|
||||||
"watchers": 187,
|
|
||||||
"default_branch": "master"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"_links": {
|
|
||||||
"self": {
|
|
||||||
"href": "https://api.github.com/repos/denoland/deno_website2/pulls/393"
|
|
||||||
},
|
|
||||||
"html": {
|
|
||||||
"href": "https://github.com/denoland/deno_website2/pull/393"
|
|
||||||
},
|
|
||||||
"issue": {
|
|
||||||
"href": "https://api.github.com/repos/denoland/deno_website2/issues/393"
|
|
||||||
},
|
|
||||||
"comments": {
|
|
||||||
"href": "https://api.github.com/repos/denoland/deno_website2/issues/393/comments"
|
|
||||||
},
|
|
||||||
"review_comments": {
|
|
||||||
"href": "https://api.github.com/repos/denoland/deno_website2/pulls/393/comments"
|
|
||||||
},
|
|
||||||
"review_comment": {
|
|
||||||
"href": "https://api.github.com/repos/denoland/deno_website2/pulls/comments{/number}"
|
|
||||||
},
|
|
||||||
"commits": {
|
|
||||||
"href": "https://api.github.com/repos/denoland/deno_website2/pulls/393/commits"
|
|
||||||
},
|
|
||||||
"statuses": {
|
|
||||||
"href": "https://api.github.com/repos/denoland/deno_website2/statuses/70de9ffc401467de5014f11b9d6c45817f98a7e5"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"author_association": "CONTRIBUTOR"
|
|
||||||
}
|
|
||||||
|
|
||||||
114
res/commit.json
114
res/commit.json
|
|
@ -1,114 +0,0 @@
|
||||||
{
|
|
||||||
"status": 200,
|
|
||||||
"url": "https://api.github.com/repos/garronej/test-repo/commits?per_page=1&sha=master",
|
|
||||||
"headers": {
|
|
||||||
"access-control-allow-origin": "*",
|
|
||||||
"access-control-expose-headers": "ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type, Deprecation, Sunset",
|
|
||||||
"cache-control": "private, max-age=60, s-maxage=60",
|
|
||||||
"connection": "close",
|
|
||||||
"content-encoding": "gzip",
|
|
||||||
"content-security-policy": "default-src 'none'",
|
|
||||||
"content-type": "application/json; charset=utf-8",
|
|
||||||
"date": "Thu, 30 Apr 2020 14:36:23 GMT",
|
|
||||||
"etag": "W/\"1b6b2c80a330e5d466b85298480afbf0\"",
|
|
||||||
"last-modified": "Thu, 30 Apr 2020 10:00:41 GMT",
|
|
||||||
"link": "<https://api.github.com/repositories/258429883/commits?per_page=1&sha=master&page=2>; rel=\"next\", <https://api.github.com/repositories/258429883/commits?per_page=1&sha=master&page=44>; rel=\"last\"",
|
|
||||||
"referrer-policy": "origin-when-cross-origin, strict-origin-when-cross-origin",
|
|
||||||
"server": "GitHub.com",
|
|
||||||
"status": "200 OK",
|
|
||||||
"strict-transport-security": "max-age=31536000; includeSubdomains; preload",
|
|
||||||
"transfer-encoding": "chunked",
|
|
||||||
"vary": "Accept, Authorization, Cookie, X-GitHub-OTP, Accept-Encoding, Accept, X-Requested-With",
|
|
||||||
"x-accepted-oauth-scopes": "",
|
|
||||||
"x-content-type-options": "nosniff",
|
|
||||||
"x-frame-options": "deny",
|
|
||||||
"x-github-media-type": "github.v3; format=json",
|
|
||||||
"x-github-request-id": "C905:52E0:621381:7626A6:5EAAE267",
|
|
||||||
"x-oauth-scopes": "admin:enterprise, admin:gpg_key, admin:org, admin:org_hook, admin:public_key, admin:repo_hook, delete:packages, delete_repo, gist, notifications, read:packages, repo, user, workflow, write:discussion, write:packages",
|
|
||||||
"x-ratelimit-limit": "5000",
|
|
||||||
"x-ratelimit-remaining": "4984",
|
|
||||||
"x-ratelimit-reset": "1588260675",
|
|
||||||
"x-xss-protection": "1; mode=block"
|
|
||||||
},
|
|
||||||
"data": [
|
|
||||||
{
|
|
||||||
"sha": "166b4806520ea6e52a1b86c9e698b1ba3e082a29",
|
|
||||||
"node_id": "MDY6Q29tbWl0MjU4NDI5ODgzOjE2NmI0ODA2NTIwZWE2ZTUyYTFiODZjOWU2OThiMWJhM2UwODJhMjk=",
|
|
||||||
"commit": {
|
|
||||||
"author": {
|
|
||||||
"name": "Garrone Joseph",
|
|
||||||
"email": "joseph@semasim.com",
|
|
||||||
"date": "2020-04-30T10:00:41Z"
|
|
||||||
},
|
|
||||||
"committer": {
|
|
||||||
"name": "GitHub",
|
|
||||||
"email": "noreply@github.com",
|
|
||||||
"date": "2020-04-30T10:00:41Z"
|
|
||||||
},
|
|
||||||
"message": "deuxième commit sur master after branch related",
|
|
||||||
"tree": {
|
|
||||||
"sha": "8adc7382661b7a37233304b05b103d2e78b60194",
|
|
||||||
"url": "https://api.github.com/repos/garronej/test-repo/git/trees/8adc7382661b7a37233304b05b103d2e78b60194"
|
|
||||||
},
|
|
||||||
"url": "https://api.github.com/repos/garronej/test-repo/git/commits/166b4806520ea6e52a1b86c9e698b1ba3e082a29",
|
|
||||||
"comment_count": 0,
|
|
||||||
"verification": {
|
|
||||||
"verified": true,
|
|
||||||
"reason": "valid",
|
|
||||||
"signature": "-----BEGIN PGP SIGNATURE-----\n\nwsBcBAABCAAQBQJeqqHJCRBK7hj4Ov3rIwAAdHIIAKob66RvqPKgRq2nY8ALUYEh\nJDdkV8+pMcXJ/zCWNvO0VDdMyk74JUUO1m5h0VgJiW1x1qKRgT/PfjYJrKkREexK\nu4sM2BVhkln/R12BDxeZhV7RX5F+CMIIEZHPZ/YYjeQjm/XbHYhnGssUkn8xzMY1\noaUQvt7f3+SbufHiBeXCX9y4+tQ8F6/wd6mMPSChs01ZbNiJ1qf52btvl682gi5V\nulNTeWM7XKeIjk/KKItYH/TiURS6bND0FZrooeEcpzSnuTidfBsWnQnmgDXW6tDC\ndWjFWLIhQ/EbT8bzpWboQh44WdbyuYl0ah9O996EMy/o4XPvZzk6RaYs+Wowdjc=\n=Oh/F\n-----END PGP SIGNATURE-----\n",
|
|
||||||
"payload": "tree 8adc7382661b7a37233304b05b103d2e78b60194\nparent 400346201ebb6e124b1598a898aac67b7d993837\nauthor Garrone Joseph <joseph@semasim.com> 1588240841 +0200\ncommitter GitHub <noreply@github.com> 1588240841 +0200\n\ndeuxième commit sur master after branch related"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"url": "https://api.github.com/repos/garronej/test-repo/commits/166b4806520ea6e52a1b86c9e698b1ba3e082a29",
|
|
||||||
"html_url": "https://github.com/garronej/test-repo/commit/166b4806520ea6e52a1b86c9e698b1ba3e082a29",
|
|
||||||
"comments_url": "https://api.github.com/repos/garronej/test-repo/commits/166b4806520ea6e52a1b86c9e698b1ba3e082a29/comments",
|
|
||||||
"author": {
|
|
||||||
"login": "garronej",
|
|
||||||
"id": 6702424,
|
|
||||||
"node_id": "MDQ6VXNlcjY3MDI0MjQ=",
|
|
||||||
"avatar_url": "https://avatars0.githubusercontent.com/u/6702424?v=4",
|
|
||||||
"gravatar_id": "",
|
|
||||||
"url": "https://api.github.com/users/garronej",
|
|
||||||
"html_url": "https://github.com/garronej",
|
|
||||||
"followers_url": "https://api.github.com/users/garronej/followers",
|
|
||||||
"following_url": "https://api.github.com/users/garronej/following{/other_user}",
|
|
||||||
"gists_url": "https://api.github.com/users/garronej/gists{/gist_id}",
|
|
||||||
"starred_url": "https://api.github.com/users/garronej/starred{/owner}{/repo}",
|
|
||||||
"subscriptions_url": "https://api.github.com/users/garronej/subscriptions",
|
|
||||||
"organizations_url": "https://api.github.com/users/garronej/orgs",
|
|
||||||
"repos_url": "https://api.github.com/users/garronej/repos",
|
|
||||||
"events_url": "https://api.github.com/users/garronej/events{/privacy}",
|
|
||||||
"received_events_url": "https://api.github.com/users/garronej/received_events",
|
|
||||||
"type": "User",
|
|
||||||
"site_admin": false
|
|
||||||
},
|
|
||||||
"committer": {
|
|
||||||
"login": "web-flow",
|
|
||||||
"id": 19864447,
|
|
||||||
"node_id": "MDQ6VXNlcjE5ODY0NDQ3",
|
|
||||||
"avatar_url": "https://avatars3.githubusercontent.com/u/19864447?v=4",
|
|
||||||
"gravatar_id": "",
|
|
||||||
"url": "https://api.github.com/users/web-flow",
|
|
||||||
"html_url": "https://github.com/web-flow",
|
|
||||||
"followers_url": "https://api.github.com/users/web-flow/followers",
|
|
||||||
"following_url": "https://api.github.com/users/web-flow/following{/other_user}",
|
|
||||||
"gists_url": "https://api.github.com/users/web-flow/gists{/gist_id}",
|
|
||||||
"starred_url": "https://api.github.com/users/web-flow/starred{/owner}{/repo}",
|
|
||||||
"subscriptions_url": "https://api.github.com/users/web-flow/subscriptions",
|
|
||||||
"organizations_url": "https://api.github.com/users/web-flow/orgs",
|
|
||||||
"repos_url": "https://api.github.com/users/web-flow/repos",
|
|
||||||
"events_url": "https://api.github.com/users/web-flow/events{/privacy}",
|
|
||||||
"received_events_url": "https://api.github.com/users/web-flow/received_events",
|
|
||||||
"type": "User",
|
|
||||||
"site_admin": false
|
|
||||||
},
|
|
||||||
"parents": [
|
|
||||||
{
|
|
||||||
"sha": "400346201ebb6e124b1598a898aac67b7d993837",
|
|
||||||
"url": "https://api.github.com/repos/garronej/test-repo/commits/400346201ebb6e124b1598a898aac67b7d993837",
|
|
||||||
"html_url": "https://github.com/garronej/test-repo/commit/400346201ebb6e124b1598a898aac67b7d993837"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
272
res/commits.json
272
res/commits.json
|
|
@ -1,272 +0,0 @@
|
||||||
{
|
|
||||||
"status": 200,
|
|
||||||
"url": "https://api.github.com/repos/garronej/test-repo/commits?per_page=3&sha=master",
|
|
||||||
"headers": {
|
|
||||||
"access-control-allow-origin": "*",
|
|
||||||
"access-control-expose-headers": "ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type, Deprecation, Sunset",
|
|
||||||
"cache-control": "private, max-age=60, s-maxage=60",
|
|
||||||
"connection": "close",
|
|
||||||
"content-encoding": "gzip",
|
|
||||||
"content-security-policy": "default-src 'none'",
|
|
||||||
"content-type": "application/json; charset=utf-8",
|
|
||||||
"date": "Thu, 30 Apr 2020 15:16:28 GMT",
|
|
||||||
"etag": "W/\"41be386c101f0d960ea4e915f075cc88\"",
|
|
||||||
"last-modified": "Thu, 30 Apr 2020 10:00:41 GMT",
|
|
||||||
"link": "<https://api.github.com/repositories/258429883/commits?per_page=3&sha=master&page=2>; rel=\"next\", <https://api.github.com/repositories/258429883/commits?per_page=3&sha=master&page=15>; rel=\"last\"",
|
|
||||||
"referrer-policy": "origin-when-cross-origin, strict-origin-when-cross-origin",
|
|
||||||
"server": "GitHub.com",
|
|
||||||
"status": "200 OK",
|
|
||||||
"strict-transport-security": "max-age=31536000; includeSubdomains; preload",
|
|
||||||
"transfer-encoding": "chunked",
|
|
||||||
"vary": "Accept, Authorization, Cookie, X-GitHub-OTP, Accept-Encoding, Accept, X-Requested-With",
|
|
||||||
"x-accepted-oauth-scopes": "",
|
|
||||||
"x-content-type-options": "nosniff",
|
|
||||||
"x-frame-options": "deny",
|
|
||||||
"x-github-media-type": "github.v3; format=json",
|
|
||||||
"x-github-request-id": "C9E8:27E36:727543:89BEDE:5EAAEBCC",
|
|
||||||
"x-oauth-scopes": "admin:enterprise, admin:gpg_key, admin:org, admin:org_hook, admin:public_key, admin:repo_hook, delete:packages, delete_repo, gist, notifications, read:packages, repo, user, workflow, write:discussion, write:packages",
|
|
||||||
"x-ratelimit-limit": "5000",
|
|
||||||
"x-ratelimit-remaining": "4983",
|
|
||||||
"x-ratelimit-reset": "1588260675",
|
|
||||||
"x-xss-protection": "1; mode=block"
|
|
||||||
},
|
|
||||||
"data": [
|
|
||||||
{
|
|
||||||
"sha": "166b4806520ea6e52a1b86c9e698b1ba3e082a29",
|
|
||||||
"node_id": "MDY6Q29tbWl0MjU4NDI5ODgzOjE2NmI0ODA2NTIwZWE2ZTUyYTFiODZjOWU2OThiMWJhM2UwODJhMjk=",
|
|
||||||
"commit": {
|
|
||||||
"author": {
|
|
||||||
"name": "Garrone Joseph",
|
|
||||||
"email": "joseph@semasim.com",
|
|
||||||
"date": "2020-04-30T10:00:41Z"
|
|
||||||
},
|
|
||||||
"committer": {
|
|
||||||
"name": "GitHub",
|
|
||||||
"email": "noreply@github.com",
|
|
||||||
"date": "2020-04-30T10:00:41Z"
|
|
||||||
},
|
|
||||||
"message": "deuxième commit sur master after branch related",
|
|
||||||
"tree": {
|
|
||||||
"sha": "8adc7382661b7a37233304b05b103d2e78b60194",
|
|
||||||
"url": "https://api.github.com/repos/garronej/test-repo/git/trees/8adc7382661b7a37233304b05b103d2e78b60194"
|
|
||||||
},
|
|
||||||
"url": "https://api.github.com/repos/garronej/test-repo/git/commits/166b4806520ea6e52a1b86c9e698b1ba3e082a29",
|
|
||||||
"comment_count": 0,
|
|
||||||
"verification": {
|
|
||||||
"verified": true,
|
|
||||||
"reason": "valid",
|
|
||||||
"signature": "-----BEGIN PGP SIGNATURE-----\n\nwsBcBAABCAAQBQJeqqHJCRBK7hj4Ov3rIwAAdHIIAKob66RvqPKgRq2nY8ALUYEh\nJDdkV8+pMcXJ/zCWNvO0VDdMyk74JUUO1m5h0VgJiW1x1qKRgT/PfjYJrKkREexK\nu4sM2BVhkln/R12BDxeZhV7RX5F+CMIIEZHPZ/YYjeQjm/XbHYhnGssUkn8xzMY1\noaUQvt7f3+SbufHiBeXCX9y4+tQ8F6/wd6mMPSChs01ZbNiJ1qf52btvl682gi5V\nulNTeWM7XKeIjk/KKItYH/TiURS6bND0FZrooeEcpzSnuTidfBsWnQnmgDXW6tDC\ndWjFWLIhQ/EbT8bzpWboQh44WdbyuYl0ah9O996EMy/o4XPvZzk6RaYs+Wowdjc=\n=Oh/F\n-----END PGP SIGNATURE-----\n",
|
|
||||||
"payload": "tree 8adc7382661b7a37233304b05b103d2e78b60194\nparent 400346201ebb6e124b1598a898aac67b7d993837\nauthor Garrone Joseph <joseph@semasim.com> 1588240841 +0200\ncommitter GitHub <noreply@github.com> 1588240841 +0200\n\ndeuxième commit sur master after branch related"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"url": "https://api.github.com/repos/garronej/test-repo/commits/166b4806520ea6e52a1b86c9e698b1ba3e082a29",
|
|
||||||
"html_url": "https://github.com/garronej/test-repo/commit/166b4806520ea6e52a1b86c9e698b1ba3e082a29",
|
|
||||||
"comments_url": "https://api.github.com/repos/garronej/test-repo/commits/166b4806520ea6e52a1b86c9e698b1ba3e082a29/comments",
|
|
||||||
"author": {
|
|
||||||
"login": "garronej",
|
|
||||||
"id": 6702424,
|
|
||||||
"node_id": "MDQ6VXNlcjY3MDI0MjQ=",
|
|
||||||
"avatar_url": "https://avatars0.githubusercontent.com/u/6702424?v=4",
|
|
||||||
"gravatar_id": "",
|
|
||||||
"url": "https://api.github.com/users/garronej",
|
|
||||||
"html_url": "https://github.com/garronej",
|
|
||||||
"followers_url": "https://api.github.com/users/garronej/followers",
|
|
||||||
"following_url": "https://api.github.com/users/garronej/following{/other_user}",
|
|
||||||
"gists_url": "https://api.github.com/users/garronej/gists{/gist_id}",
|
|
||||||
"starred_url": "https://api.github.com/users/garronej/starred{/owner}{/repo}",
|
|
||||||
"subscriptions_url": "https://api.github.com/users/garronej/subscriptions",
|
|
||||||
"organizations_url": "https://api.github.com/users/garronej/orgs",
|
|
||||||
"repos_url": "https://api.github.com/users/garronej/repos",
|
|
||||||
"events_url": "https://api.github.com/users/garronej/events{/privacy}",
|
|
||||||
"received_events_url": "https://api.github.com/users/garronej/received_events",
|
|
||||||
"type": "User",
|
|
||||||
"site_admin": false
|
|
||||||
},
|
|
||||||
"committer": {
|
|
||||||
"login": "web-flow",
|
|
||||||
"id": 19864447,
|
|
||||||
"node_id": "MDQ6VXNlcjE5ODY0NDQ3",
|
|
||||||
"avatar_url": "https://avatars3.githubusercontent.com/u/19864447?v=4",
|
|
||||||
"gravatar_id": "",
|
|
||||||
"url": "https://api.github.com/users/web-flow",
|
|
||||||
"html_url": "https://github.com/web-flow",
|
|
||||||
"followers_url": "https://api.github.com/users/web-flow/followers",
|
|
||||||
"following_url": "https://api.github.com/users/web-flow/following{/other_user}",
|
|
||||||
"gists_url": "https://api.github.com/users/web-flow/gists{/gist_id}",
|
|
||||||
"starred_url": "https://api.github.com/users/web-flow/starred{/owner}{/repo}",
|
|
||||||
"subscriptions_url": "https://api.github.com/users/web-flow/subscriptions",
|
|
||||||
"organizations_url": "https://api.github.com/users/web-flow/orgs",
|
|
||||||
"repos_url": "https://api.github.com/users/web-flow/repos",
|
|
||||||
"events_url": "https://api.github.com/users/web-flow/events{/privacy}",
|
|
||||||
"received_events_url": "https://api.github.com/users/web-flow/received_events",
|
|
||||||
"type": "User",
|
|
||||||
"site_admin": false
|
|
||||||
},
|
|
||||||
"parents": [
|
|
||||||
{
|
|
||||||
"sha": "400346201ebb6e124b1598a898aac67b7d993837",
|
|
||||||
"url": "https://api.github.com/repos/garronej/test-repo/commits/400346201ebb6e124b1598a898aac67b7d993837",
|
|
||||||
"html_url": "https://github.com/garronej/test-repo/commit/400346201ebb6e124b1598a898aac67b7d993837"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"sha": "400346201ebb6e124b1598a898aac67b7d993837",
|
|
||||||
"node_id": "MDY6Q29tbWl0MjU4NDI5ODgzOjQwMDM0NjIwMWViYjZlMTI0YjE1OThhODk4YWFjNjdiN2Q5OTM4Mzc=",
|
|
||||||
"commit": {
|
|
||||||
"author": {
|
|
||||||
"name": "Garrone Joseph",
|
|
||||||
"email": "joseph@semasim.com",
|
|
||||||
"date": "2020-04-30T10:00:07Z"
|
|
||||||
},
|
|
||||||
"committer": {
|
|
||||||
"name": "GitHub",
|
|
||||||
"email": "noreply@github.com",
|
|
||||||
"date": "2020-04-30T10:00:07Z"
|
|
||||||
},
|
|
||||||
"message": "premier commit sur master after branch created",
|
|
||||||
"tree": {
|
|
||||||
"sha": "89168b8f7b6703c58ca113d94b7767a5c7de6774",
|
|
||||||
"url": "https://api.github.com/repos/garronej/test-repo/git/trees/89168b8f7b6703c58ca113d94b7767a5c7de6774"
|
|
||||||
},
|
|
||||||
"url": "https://api.github.com/repos/garronej/test-repo/git/commits/400346201ebb6e124b1598a898aac67b7d993837",
|
|
||||||
"comment_count": 0,
|
|
||||||
"verification": {
|
|
||||||
"verified": true,
|
|
||||||
"reason": "valid",
|
|
||||||
"signature": "-----BEGIN PGP SIGNATURE-----\n\nwsBcBAABCAAQBQJeqqGoCRBK7hj4Ov3rIwAAdHIIAHsfm2pXM13Ccp5qqaLslx3s\nB7vmWMpSZvkbHDrDAEO05j+XCM/lmmRBzfrn84LlpCGqCALj7KbjpYWg55P1OC4u\nxbvJV91e4/XM3GEX4+80XaOLi/6UR9yc8Tfa/t85HX1tZuxPW6ULS8pNcaXT4c0y\nRI+2C1bAhXOPrs2jdwdxBCLEhX7vpxUEptMBQ8y9rLpeLGgbB1oEHTusMu4wl1Gk\nSyyV35M1XrsMMg4nYEUuTv8RzOneiPiU80ZJC5+BBfF3aJsDpPKpR72+iUL83AGG\n4M78Lyls5oURHdy6DnYBDVUVcQvid2gYDd7/fc3lto4o5NGfW8vcF0ykMxXiiZY=\n=G/et\n-----END PGP SIGNATURE-----\n",
|
|
||||||
"payload": "tree 89168b8f7b6703c58ca113d94b7767a5c7de6774\nparent 2f7a55c9de78965b0918868deb35830ab0e68532\nauthor Garrone Joseph <joseph@semasim.com> 1588240807 +0200\ncommitter GitHub <noreply@github.com> 1588240807 +0200\n\npremier commit sur master after branch created"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"url": "https://api.github.com/repos/garronej/test-repo/commits/400346201ebb6e124b1598a898aac67b7d993837",
|
|
||||||
"html_url": "https://github.com/garronej/test-repo/commit/400346201ebb6e124b1598a898aac67b7d993837",
|
|
||||||
"comments_url": "https://api.github.com/repos/garronej/test-repo/commits/400346201ebb6e124b1598a898aac67b7d993837/comments",
|
|
||||||
"author": {
|
|
||||||
"login": "garronej",
|
|
||||||
"id": 6702424,
|
|
||||||
"node_id": "MDQ6VXNlcjY3MDI0MjQ=",
|
|
||||||
"avatar_url": "https://avatars0.githubusercontent.com/u/6702424?v=4",
|
|
||||||
"gravatar_id": "",
|
|
||||||
"url": "https://api.github.com/users/garronej",
|
|
||||||
"html_url": "https://github.com/garronej",
|
|
||||||
"followers_url": "https://api.github.com/users/garronej/followers",
|
|
||||||
"following_url": "https://api.github.com/users/garronej/following{/other_user}",
|
|
||||||
"gists_url": "https://api.github.com/users/garronej/gists{/gist_id}",
|
|
||||||
"starred_url": "https://api.github.com/users/garronej/starred{/owner}{/repo}",
|
|
||||||
"subscriptions_url": "https://api.github.com/users/garronej/subscriptions",
|
|
||||||
"organizations_url": "https://api.github.com/users/garronej/orgs",
|
|
||||||
"repos_url": "https://api.github.com/users/garronej/repos",
|
|
||||||
"events_url": "https://api.github.com/users/garronej/events{/privacy}",
|
|
||||||
"received_events_url": "https://api.github.com/users/garronej/received_events",
|
|
||||||
"type": "User",
|
|
||||||
"site_admin": false
|
|
||||||
},
|
|
||||||
"committer": {
|
|
||||||
"login": "web-flow",
|
|
||||||
"id": 19864447,
|
|
||||||
"node_id": "MDQ6VXNlcjE5ODY0NDQ3",
|
|
||||||
"avatar_url": "https://avatars3.githubusercontent.com/u/19864447?v=4",
|
|
||||||
"gravatar_id": "",
|
|
||||||
"url": "https://api.github.com/users/web-flow",
|
|
||||||
"html_url": "https://github.com/web-flow",
|
|
||||||
"followers_url": "https://api.github.com/users/web-flow/followers",
|
|
||||||
"following_url": "https://api.github.com/users/web-flow/following{/other_user}",
|
|
||||||
"gists_url": "https://api.github.com/users/web-flow/gists{/gist_id}",
|
|
||||||
"starred_url": "https://api.github.com/users/web-flow/starred{/owner}{/repo}",
|
|
||||||
"subscriptions_url": "https://api.github.com/users/web-flow/subscriptions",
|
|
||||||
"organizations_url": "https://api.github.com/users/web-flow/orgs",
|
|
||||||
"repos_url": "https://api.github.com/users/web-flow/repos",
|
|
||||||
"events_url": "https://api.github.com/users/web-flow/events{/privacy}",
|
|
||||||
"received_events_url": "https://api.github.com/users/web-flow/received_events",
|
|
||||||
"type": "User",
|
|
||||||
"site_admin": false
|
|
||||||
},
|
|
||||||
"parents": [
|
|
||||||
{
|
|
||||||
"sha": "2f7a55c9de78965b0918868deb35830ab0e68532",
|
|
||||||
"url": "https://api.github.com/repos/garronej/test-repo/commits/2f7a55c9de78965b0918868deb35830ab0e68532",
|
|
||||||
"html_url": "https://github.com/garronej/test-repo/commit/2f7a55c9de78965b0918868deb35830ab0e68532"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"sha": "2f7a55c9de78965b0918868deb35830ab0e68532",
|
|
||||||
"node_id": "MDY6Q29tbWl0MjU4NDI5ODgzOjJmN2E1NWM5ZGU3ODk2NWIwOTE4ODY4ZGViMzU4MzBhYjBlNjg1MzI=",
|
|
||||||
"commit": {
|
|
||||||
"author": {
|
|
||||||
"name": "Garrone Joseph",
|
|
||||||
"email": "joseph@semasim.com",
|
|
||||||
"date": "2020-04-30T09:56:57Z"
|
|
||||||
},
|
|
||||||
"committer": {
|
|
||||||
"name": "GitHub",
|
|
||||||
"email": "noreply@github.com",
|
|
||||||
"date": "2020-04-30T09:56:57Z"
|
|
||||||
},
|
|
||||||
"message": "Update README.md",
|
|
||||||
"tree": {
|
|
||||||
"sha": "0cf13ef05cdf393b11b338f743ca38441b5c7d37",
|
|
||||||
"url": "https://api.github.com/repos/garronej/test-repo/git/trees/0cf13ef05cdf393b11b338f743ca38441b5c7d37"
|
|
||||||
},
|
|
||||||
"url": "https://api.github.com/repos/garronej/test-repo/git/commits/2f7a55c9de78965b0918868deb35830ab0e68532",
|
|
||||||
"comment_count": 0,
|
|
||||||
"verification": {
|
|
||||||
"verified": true,
|
|
||||||
"reason": "valid",
|
|
||||||
"signature": "-----BEGIN PGP SIGNATURE-----\n\nwsBcBAABCAAQBQJeqqDpCRBK7hj4Ov3rIwAAdHIIAAFJdooGPFU9k1xypLb+DGs8\nsxIU0skR0ZoVVWvtDeWsSBbZXzGv4W5Fq65OmBJtpEuYhKe2PBd7+XWQ9vhocXZU\nLvUnAFNEupoTK7qpxHALC9aF7HhwoVA8ilSU/IaD9DUEh20Yy0HPV5rXPhie1Evp\n/+HG76ywzYSPl/V/uWwPNoQeN4bSjrE6HvWEH61Of8fKZ7NamrLYDr59Y65XalPy\nIPgJGdhvq/KOx9UaUqG8WfFaValFZN02Z2kJ1FgcZ7XLfjpsvzSxcC8m7rISb7JX\nqrZ2VweR2m7w6+YLD2cfAuEYYu5Nepec4MBQ0AxjO/CinMhz/joetRvxVJNzeho=\n=RMoe\n-----END PGP SIGNATURE-----\n",
|
|
||||||
"payload": "tree 0cf13ef05cdf393b11b338f743ca38441b5c7d37\nparent 0fa34b925c720d8909a8c368268245d10fea9be9\nauthor Garrone Joseph <joseph@semasim.com> 1588240617 +0200\ncommitter GitHub <noreply@github.com> 1588240617 +0200\n\nUpdate README.md"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"url": "https://api.github.com/repos/garronej/test-repo/commits/2f7a55c9de78965b0918868deb35830ab0e68532",
|
|
||||||
"html_url": "https://github.com/garronej/test-repo/commit/2f7a55c9de78965b0918868deb35830ab0e68532",
|
|
||||||
"comments_url": "https://api.github.com/repos/garronej/test-repo/commits/2f7a55c9de78965b0918868deb35830ab0e68532/comments",
|
|
||||||
"author": {
|
|
||||||
"login": "garronej",
|
|
||||||
"id": 6702424,
|
|
||||||
"node_id": "MDQ6VXNlcjY3MDI0MjQ=",
|
|
||||||
"avatar_url": "https://avatars0.githubusercontent.com/u/6702424?v=4",
|
|
||||||
"gravatar_id": "",
|
|
||||||
"url": "https://api.github.com/users/garronej",
|
|
||||||
"html_url": "https://github.com/garronej",
|
|
||||||
"followers_url": "https://api.github.com/users/garronej/followers",
|
|
||||||
"following_url": "https://api.github.com/users/garronej/following{/other_user}",
|
|
||||||
"gists_url": "https://api.github.com/users/garronej/gists{/gist_id}",
|
|
||||||
"starred_url": "https://api.github.com/users/garronej/starred{/owner}{/repo}",
|
|
||||||
"subscriptions_url": "https://api.github.com/users/garronej/subscriptions",
|
|
||||||
"organizations_url": "https://api.github.com/users/garronej/orgs",
|
|
||||||
"repos_url": "https://api.github.com/users/garronej/repos",
|
|
||||||
"events_url": "https://api.github.com/users/garronej/events{/privacy}",
|
|
||||||
"received_events_url": "https://api.github.com/users/garronej/received_events",
|
|
||||||
"type": "User",
|
|
||||||
"site_admin": false
|
|
||||||
},
|
|
||||||
"committer": {
|
|
||||||
"login": "web-flow",
|
|
||||||
"id": 19864447,
|
|
||||||
"node_id": "MDQ6VXNlcjE5ODY0NDQ3",
|
|
||||||
"avatar_url": "https://avatars3.githubusercontent.com/u/19864447?v=4",
|
|
||||||
"gravatar_id": "",
|
|
||||||
"url": "https://api.github.com/users/web-flow",
|
|
||||||
"html_url": "https://github.com/web-flow",
|
|
||||||
"followers_url": "https://api.github.com/users/web-flow/followers",
|
|
||||||
"following_url": "https://api.github.com/users/web-flow/following{/other_user}",
|
|
||||||
"gists_url": "https://api.github.com/users/web-flow/gists{/gist_id}",
|
|
||||||
"starred_url": "https://api.github.com/users/web-flow/starred{/owner}{/repo}",
|
|
||||||
"subscriptions_url": "https://api.github.com/users/web-flow/subscriptions",
|
|
||||||
"organizations_url": "https://api.github.com/users/web-flow/orgs",
|
|
||||||
"repos_url": "https://api.github.com/users/web-flow/repos",
|
|
||||||
"events_url": "https://api.github.com/users/web-flow/events{/privacy}",
|
|
||||||
"received_events_url": "https://api.github.com/users/web-flow/received_events",
|
|
||||||
"type": "User",
|
|
||||||
"site_admin": false
|
|
||||||
},
|
|
||||||
"parents": [
|
|
||||||
{
|
|
||||||
"sha": "0fa34b925c720d8909a8c368268245d10fea9be9",
|
|
||||||
"url": "https://api.github.com/repos/garronej/test-repo/commits/0fa34b925c720d8909a8c368268245d10fea9be9",
|
|
||||||
"html_url": "https://github.com/garronej/test-repo/commit/0fa34b925c720d8909a8c368268245d10fea9be9"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
|
|
@ -1,188 +0,0 @@
|
||||||
{
|
|
||||||
"token": "***",
|
|
||||||
"job": "build",
|
|
||||||
"ref": "refs/heads/master",
|
|
||||||
"sha": "166b4806520ea6e52a1b86c9e698b1ba3e082a29",
|
|
||||||
"repository": "garronej/test-repo",
|
|
||||||
"repository_owner": "garronej",
|
|
||||||
"repositoryUrl": "git://github.com/garronej/test-repo.git",
|
|
||||||
"run_id": "92024361",
|
|
||||||
"run_number": "41",
|
|
||||||
"actor": "garronej",
|
|
||||||
"workflow": "Initial setup",
|
|
||||||
"head_ref": "",
|
|
||||||
"base_ref": "",
|
|
||||||
"event_name": "push",
|
|
||||||
"event": {
|
|
||||||
"after": "166b4806520ea6e52a1b86c9e698b1ba3e082a29",
|
|
||||||
"base_ref": null,
|
|
||||||
"before": "400346201ebb6e124b1598a898aac67b7d993837",
|
|
||||||
"commits": [
|
|
||||||
{
|
|
||||||
"author": {
|
|
||||||
"email": "joseph@semasim.com",
|
|
||||||
"name": "Garrone Joseph",
|
|
||||||
"username": "garronej"
|
|
||||||
},
|
|
||||||
"committer": {
|
|
||||||
"email": "noreply@github.com",
|
|
||||||
"name": "GitHub",
|
|
||||||
"username": "web-flow"
|
|
||||||
},
|
|
||||||
"distinct": true,
|
|
||||||
"id": "166b4806520ea6e52a1b86c9e698b1ba3e082a29",
|
|
||||||
"message": "deuxième commit sur master after branch related",
|
|
||||||
"timestamp": "2020-04-30T12:00:41+02:00",
|
|
||||||
"tree_id": "8adc7382661b7a37233304b05b103d2e78b60194",
|
|
||||||
"url": "https://github.com/garronej/test-repo/commit/166b4806520ea6e52a1b86c9e698b1ba3e082a29"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"compare": "https://github.com/garronej/test-repo/compare/400346201ebb...166b4806520e",
|
|
||||||
"created": false,
|
|
||||||
"deleted": false,
|
|
||||||
"forced": false,
|
|
||||||
"head_commit": {
|
|
||||||
"author": {
|
|
||||||
"email": "joseph@semasim.com",
|
|
||||||
"name": "Garrone Joseph",
|
|
||||||
"username": "garronej"
|
|
||||||
},
|
|
||||||
"committer": {
|
|
||||||
"email": "noreply@github.com",
|
|
||||||
"name": "GitHub",
|
|
||||||
"username": "web-flow"
|
|
||||||
},
|
|
||||||
"distinct": true,
|
|
||||||
"id": "166b4806520ea6e52a1b86c9e698b1ba3e082a29",
|
|
||||||
"message": "deuxième commit sur master after branch related",
|
|
||||||
"timestamp": "2020-04-30T12:00:41+02:00",
|
|
||||||
"tree_id": "8adc7382661b7a37233304b05b103d2e78b60194",
|
|
||||||
"url": "https://github.com/garronej/test-repo/commit/166b4806520ea6e52a1b86c9e698b1ba3e082a29"
|
|
||||||
},
|
|
||||||
"pusher": {
|
|
||||||
"email": "joseph.garrone@ensimag.grenoble-inp.fr",
|
|
||||||
"name": "garronej"
|
|
||||||
},
|
|
||||||
"ref": "refs/heads/master",
|
|
||||||
"repository": {
|
|
||||||
"archive_url": "https://api.github.com/repos/garronej/test-repo/{archive_format}{/ref}",
|
|
||||||
"archived": false,
|
|
||||||
"assignees_url": "https://api.github.com/repos/garronej/test-repo/assignees{/user}",
|
|
||||||
"blobs_url": "https://api.github.com/repos/garronej/test-repo/git/blobs{/sha}",
|
|
||||||
"branches_url": "https://api.github.com/repos/garronej/test-repo/branches{/branch}",
|
|
||||||
"clone_url": "https://github.com/garronej/test-repo.git",
|
|
||||||
"collaborators_url": "https://api.github.com/repos/garronej/test-repo/collaborators{/collaborator}",
|
|
||||||
"comments_url": "https://api.github.com/repos/garronej/test-repo/comments{/number}",
|
|
||||||
"commits_url": "https://api.github.com/repos/garronej/test-repo/commits{/sha}",
|
|
||||||
"compare_url": "https://api.github.com/repos/garronej/test-repo/compare/{base}...{head}",
|
|
||||||
"contents_url": "https://api.github.com/repos/garronej/test-repo/contents/{+path}",
|
|
||||||
"contributors_url": "https://api.github.com/repos/garronej/test-repo/contributors",
|
|
||||||
"created_at": 1587710837,
|
|
||||||
"default_branch": "master",
|
|
||||||
"deployments_url": "https://api.github.com/repos/garronej/test-repo/deployments",
|
|
||||||
"description": "Alors ? ",
|
|
||||||
"disabled": false,
|
|
||||||
"downloads_url": "https://api.github.com/repos/garronej/test-repo/downloads",
|
|
||||||
"events_url": "https://api.github.com/repos/garronej/test-repo/events",
|
|
||||||
"fork": false,
|
|
||||||
"forks": 1,
|
|
||||||
"forks_count": 1,
|
|
||||||
"forks_url": "https://api.github.com/repos/garronej/test-repo/forks",
|
|
||||||
"full_name": "garronej/test-repo",
|
|
||||||
"git_commits_url": "https://api.github.com/repos/garronej/test-repo/git/commits{/sha}",
|
|
||||||
"git_refs_url": "https://api.github.com/repos/garronej/test-repo/git/refs{/sha}",
|
|
||||||
"git_tags_url": "https://api.github.com/repos/garronej/test-repo/git/tags{/sha}",
|
|
||||||
"git_url": "git://github.com/garronej/test-repo.git",
|
|
||||||
"has_downloads": true,
|
|
||||||
"has_issues": true,
|
|
||||||
"has_pages": false,
|
|
||||||
"has_projects": true,
|
|
||||||
"has_wiki": true,
|
|
||||||
"homepage": "",
|
|
||||||
"hooks_url": "https://api.github.com/repos/garronej/test-repo/hooks",
|
|
||||||
"html_url": "https://github.com/garronej/test-repo",
|
|
||||||
"id": 258429883,
|
|
||||||
"issue_comment_url": "https://api.github.com/repos/garronej/test-repo/issues/comments{/number}",
|
|
||||||
"issue_events_url": "https://api.github.com/repos/garronej/test-repo/issues/events{/number}",
|
|
||||||
"issues_url": "https://api.github.com/repos/garronej/test-repo/issues{/number}",
|
|
||||||
"keys_url": "https://api.github.com/repos/garronej/test-repo/keys{/key_id}",
|
|
||||||
"labels_url": "https://api.github.com/repos/garronej/test-repo/labels{/name}",
|
|
||||||
"language": null,
|
|
||||||
"languages_url": "https://api.github.com/repos/garronej/test-repo/languages",
|
|
||||||
"license": null,
|
|
||||||
"master_branch": "master",
|
|
||||||
"merges_url": "https://api.github.com/repos/garronej/test-repo/merges",
|
|
||||||
"milestones_url": "https://api.github.com/repos/garronej/test-repo/milestones{/number}",
|
|
||||||
"mirror_url": null,
|
|
||||||
"name": "test-repo",
|
|
||||||
"node_id": "MDEwOlJlcG9zaXRvcnkyNTg0Mjk4ODM=",
|
|
||||||
"notifications_url": "https://api.github.com/repos/garronej/test-repo/notifications{?since,all,participating}",
|
|
||||||
"open_issues": 0,
|
|
||||||
"open_issues_count": 0,
|
|
||||||
"owner": {
|
|
||||||
"avatar_url": "https://avatars0.githubusercontent.com/u/6702424?v=4",
|
|
||||||
"email": "joseph.garrone@ensimag.grenoble-inp.fr",
|
|
||||||
"events_url": "https://api.github.com/users/garronej/events{/privacy}",
|
|
||||||
"followers_url": "https://api.github.com/users/garronej/followers",
|
|
||||||
"following_url": "https://api.github.com/users/garronej/following{/other_user}",
|
|
||||||
"gists_url": "https://api.github.com/users/garronej/gists{/gist_id}",
|
|
||||||
"gravatar_id": "",
|
|
||||||
"html_url": "https://github.com/garronej",
|
|
||||||
"id": 6702424,
|
|
||||||
"login": "garronej",
|
|
||||||
"name": "garronej",
|
|
||||||
"node_id": "MDQ6VXNlcjY3MDI0MjQ=",
|
|
||||||
"organizations_url": "https://api.github.com/users/garronej/orgs",
|
|
||||||
"received_events_url": "https://api.github.com/users/garronej/received_events",
|
|
||||||
"repos_url": "https://api.github.com/users/garronej/repos",
|
|
||||||
"site_admin": false,
|
|
||||||
"starred_url": "https://api.github.com/users/garronej/starred{/owner}{/repo}",
|
|
||||||
"subscriptions_url": "https://api.github.com/users/garronej/subscriptions",
|
|
||||||
"type": "User",
|
|
||||||
"url": "https://api.github.com/users/garronej"
|
|
||||||
},
|
|
||||||
"private": false,
|
|
||||||
"pulls_url": "https://api.github.com/repos/garronej/test-repo/pulls{/number}",
|
|
||||||
"pushed_at": 1588240841,
|
|
||||||
"releases_url": "https://api.github.com/repos/garronej/test-repo/releases{/id}",
|
|
||||||
"size": 37,
|
|
||||||
"ssh_url": "git@github.com:garronej/test-repo.git",
|
|
||||||
"stargazers": 1,
|
|
||||||
"stargazers_count": 1,
|
|
||||||
"stargazers_url": "https://api.github.com/repos/garronej/test-repo/stargazers",
|
|
||||||
"statuses_url": "https://api.github.com/repos/garronej/test-repo/statuses/{sha}",
|
|
||||||
"subscribers_url": "https://api.github.com/repos/garronej/test-repo/subscribers",
|
|
||||||
"subscription_url": "https://api.github.com/repos/garronej/test-repo/subscription",
|
|
||||||
"svn_url": "https://github.com/garronej/test-repo",
|
|
||||||
"tags_url": "https://api.github.com/repos/garronej/test-repo/tags",
|
|
||||||
"teams_url": "https://api.github.com/repos/garronej/test-repo/teams",
|
|
||||||
"trees_url": "https://api.github.com/repos/garronej/test-repo/git/trees{/sha}",
|
|
||||||
"updated_at": "2020-04-30T10:00:11Z",
|
|
||||||
"url": "https://github.com/garronej/test-repo",
|
|
||||||
"watchers": 1,
|
|
||||||
"watchers_count": 1
|
|
||||||
},
|
|
||||||
"sender": {
|
|
||||||
"avatar_url": "https://avatars0.githubusercontent.com/u/6702424?v=4",
|
|
||||||
"events_url": "https://api.github.com/users/garronej/events{/privacy}",
|
|
||||||
"followers_url": "https://api.github.com/users/garronej/followers",
|
|
||||||
"following_url": "https://api.github.com/users/garronej/following{/other_user}",
|
|
||||||
"gists_url": "https://api.github.com/users/garronej/gists{/gist_id}",
|
|
||||||
"gravatar_id": "",
|
|
||||||
"html_url": "https://github.com/garronej",
|
|
||||||
"id": 6702424,
|
|
||||||
"login": "garronej",
|
|
||||||
"node_id": "MDQ6VXNlcjY3MDI0MjQ=",
|
|
||||||
"organizations_url": "https://api.github.com/users/garronej/orgs",
|
|
||||||
"received_events_url": "https://api.github.com/users/garronej/received_events",
|
|
||||||
"repos_url": "https://api.github.com/users/garronej/repos",
|
|
||||||
"site_admin": false,
|
|
||||||
"starred_url": "https://api.github.com/users/garronej/starred{/owner}{/repo}",
|
|
||||||
"subscriptions_url": "https://api.github.com/users/garronej/subscriptions",
|
|
||||||
"type": "User",
|
|
||||||
"url": "https://api.github.com/users/garronej"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"workspace": "/home/runner/work/test-repo/test-repo",
|
|
||||||
"action": "run1"
|
|
||||||
}
|
|
||||||
225
res/merged.json
225
res/merged.json
|
|
@ -1,225 +0,0 @@
|
||||||
{
|
|
||||||
"token": "***",
|
|
||||||
"job": "test",
|
|
||||||
"ref": "refs/heads/master",
|
|
||||||
"sha": "36deb3a7cc241cfba71daceaa6efa80cbdc5e93e",
|
|
||||||
"repository": "garronej/test-repo",
|
|
||||||
"repository_owner": "garronej",
|
|
||||||
"repositoryUrl": "git://github.com/garronej/test-repo.git",
|
|
||||||
"run_id": "91992361",
|
|
||||||
"run_number": "10",
|
|
||||||
"actor": "garronej",
|
|
||||||
"workflow": "the workflow name",
|
|
||||||
"head_ref": "",
|
|
||||||
"base_ref": "",
|
|
||||||
"event_name": "push",
|
|
||||||
"event": {
|
|
||||||
"after": "36deb3a7cc241cfba71daceaa6efa80cbdc5e93e",
|
|
||||||
"base_ref": null,
|
|
||||||
"before": "3cac089f0b03951b610a389564198f53fb485579",
|
|
||||||
"commits": [
|
|
||||||
{
|
|
||||||
"author": {
|
|
||||||
"email": "joseph@semasim.com",
|
|
||||||
"name": "Garrone Joseph",
|
|
||||||
"username": "garronej"
|
|
||||||
},
|
|
||||||
"committer": {
|
|
||||||
"email": "noreply@github.com",
|
|
||||||
"name": "GitHub",
|
|
||||||
"username": "web-flow"
|
|
||||||
},
|
|
||||||
"distinct": false,
|
|
||||||
"id": "dd23ceb8c0002b80ca146cc2993acfd1da3c147a",
|
|
||||||
"message": "commit for pull request 4",
|
|
||||||
"timestamp": "2020-04-30T11:00:25+02:00",
|
|
||||||
"tree_id": "983dfaf9f4306ed0ddcafdc19965573d9bfd84ce",
|
|
||||||
"url": "https://github.com/garronej/test-repo/commit/dd23ceb8c0002b80ca146cc2993acfd1da3c147a"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"author": {
|
|
||||||
"email": "joseph@semasim.com",
|
|
||||||
"name": "Garrone Joseph",
|
|
||||||
"username": "garronej"
|
|
||||||
},
|
|
||||||
"committer": {
|
|
||||||
"email": "noreply@github.com",
|
|
||||||
"name": "GitHub",
|
|
||||||
"username": "web-flow"
|
|
||||||
},
|
|
||||||
"distinct": false,
|
|
||||||
"id": "e3788c6b40c0d017f2422f64193753d47d240471",
|
|
||||||
"message": "Merge branch 'master' into garronej-patch-4",
|
|
||||||
"timestamp": "2020-04-30T11:02:24+02:00",
|
|
||||||
"tree_id": "a8188bb8b0af6309ae6936a4a7e5d0ffe44c0b3c",
|
|
||||||
"url": "https://github.com/garronej/test-repo/commit/e3788c6b40c0d017f2422f64193753d47d240471"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"author": {
|
|
||||||
"email": "joseph@semasim.com",
|
|
||||||
"name": "Garrone Joseph",
|
|
||||||
"username": "garronej"
|
|
||||||
},
|
|
||||||
"committer": {
|
|
||||||
"email": "noreply@github.com",
|
|
||||||
"name": "GitHub",
|
|
||||||
"username": "web-flow"
|
|
||||||
},
|
|
||||||
"distinct": true,
|
|
||||||
"id": "36deb3a7cc241cfba71daceaa6efa80cbdc5e93e",
|
|
||||||
"message": "Merge pull request #3 from garronej/garronej-patch-4\n\ncommit for pull request 4",
|
|
||||||
"timestamp": "2020-04-30T11:09:51+02:00",
|
|
||||||
"tree_id": "a8188bb8b0af6309ae6936a4a7e5d0ffe44c0b3c",
|
|
||||||
"url": "https://github.com/garronej/test-repo/commit/36deb3a7cc241cfba71daceaa6efa80cbdc5e93e"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"compare": "https://github.com/garronej/test-repo/compare/3cac089f0b03...36deb3a7cc24",
|
|
||||||
"created": false,
|
|
||||||
"deleted": false,
|
|
||||||
"forced": false,
|
|
||||||
"head_commit": {
|
|
||||||
"author": {
|
|
||||||
"email": "joseph@semasim.com",
|
|
||||||
"name": "Garrone Joseph",
|
|
||||||
"username": "garronej"
|
|
||||||
},
|
|
||||||
"committer": {
|
|
||||||
"email": "noreply@github.com",
|
|
||||||
"name": "GitHub",
|
|
||||||
"username": "web-flow"
|
|
||||||
},
|
|
||||||
"distinct": true,
|
|
||||||
"id": "36deb3a7cc241cfba71daceaa6efa80cbdc5e93e",
|
|
||||||
"message": "Merge pull request #3 from garronej/garronej-patch-4\n\ncommit for pull request 4",
|
|
||||||
"timestamp": "2020-04-30T11:09:51+02:00",
|
|
||||||
"tree_id": "a8188bb8b0af6309ae6936a4a7e5d0ffe44c0b3c",
|
|
||||||
"url": "https://github.com/garronej/test-repo/commit/36deb3a7cc241cfba71daceaa6efa80cbdc5e93e"
|
|
||||||
},
|
|
||||||
"pusher": {
|
|
||||||
"email": "joseph.garrone@ensimag.grenoble-inp.fr",
|
|
||||||
"name": "garronej"
|
|
||||||
},
|
|
||||||
"ref": "refs/heads/master",
|
|
||||||
"repository": {
|
|
||||||
"archive_url": "https://api.github.com/repos/garronej/test-repo/{archive_format}{/ref}",
|
|
||||||
"archived": false,
|
|
||||||
"assignees_url": "https://api.github.com/repos/garronej/test-repo/assignees{/user}",
|
|
||||||
"blobs_url": "https://api.github.com/repos/garronej/test-repo/git/blobs{/sha}",
|
|
||||||
"branches_url": "https://api.github.com/repos/garronej/test-repo/branches{/branch}",
|
|
||||||
"clone_url": "https://github.com/garronej/test-repo.git",
|
|
||||||
"collaborators_url": "https://api.github.com/repos/garronej/test-repo/collaborators{/collaborator}",
|
|
||||||
"comments_url": "https://api.github.com/repos/garronej/test-repo/comments{/number}",
|
|
||||||
"commits_url": "https://api.github.com/repos/garronej/test-repo/commits{/sha}",
|
|
||||||
"compare_url": "https://api.github.com/repos/garronej/test-repo/compare/{base}...{head}",
|
|
||||||
"contents_url": "https://api.github.com/repos/garronej/test-repo/contents/{+path}",
|
|
||||||
"contributors_url": "https://api.github.com/repos/garronej/test-repo/contributors",
|
|
||||||
"created_at": 1587710837,
|
|
||||||
"default_branch": "master",
|
|
||||||
"deployments_url": "https://api.github.com/repos/garronej/test-repo/deployments",
|
|
||||||
"description": "Alors ? ",
|
|
||||||
"disabled": false,
|
|
||||||
"downloads_url": "https://api.github.com/repos/garronej/test-repo/downloads",
|
|
||||||
"events_url": "https://api.github.com/repos/garronej/test-repo/events",
|
|
||||||
"fork": false,
|
|
||||||
"forks": 1,
|
|
||||||
"forks_count": 1,
|
|
||||||
"forks_url": "https://api.github.com/repos/garronej/test-repo/forks",
|
|
||||||
"full_name": "garronej/test-repo",
|
|
||||||
"git_commits_url": "https://api.github.com/repos/garronej/test-repo/git/commits{/sha}",
|
|
||||||
"git_refs_url": "https://api.github.com/repos/garronej/test-repo/git/refs{/sha}",
|
|
||||||
"git_tags_url": "https://api.github.com/repos/garronej/test-repo/git/tags{/sha}",
|
|
||||||
"git_url": "git://github.com/garronej/test-repo.git",
|
|
||||||
"has_downloads": true,
|
|
||||||
"has_issues": true,
|
|
||||||
"has_pages": false,
|
|
||||||
"has_projects": true,
|
|
||||||
"has_wiki": true,
|
|
||||||
"homepage": "",
|
|
||||||
"hooks_url": "https://api.github.com/repos/garronej/test-repo/hooks",
|
|
||||||
"html_url": "https://github.com/garronej/test-repo",
|
|
||||||
"id": 258429883,
|
|
||||||
"issue_comment_url": "https://api.github.com/repos/garronej/test-repo/issues/comments{/number}",
|
|
||||||
"issue_events_url": "https://api.github.com/repos/garronej/test-repo/issues/events{/number}",
|
|
||||||
"issues_url": "https://api.github.com/repos/garronej/test-repo/issues{/number}",
|
|
||||||
"keys_url": "https://api.github.com/repos/garronej/test-repo/keys{/key_id}",
|
|
||||||
"labels_url": "https://api.github.com/repos/garronej/test-repo/labels{/name}",
|
|
||||||
"language": null,
|
|
||||||
"languages_url": "https://api.github.com/repos/garronej/test-repo/languages",
|
|
||||||
"license": null,
|
|
||||||
"master_branch": "master",
|
|
||||||
"merges_url": "https://api.github.com/repos/garronej/test-repo/merges",
|
|
||||||
"milestones_url": "https://api.github.com/repos/garronej/test-repo/milestones{/number}",
|
|
||||||
"mirror_url": null,
|
|
||||||
"name": "test-repo",
|
|
||||||
"node_id": "MDEwOlJlcG9zaXRvcnkyNTg0Mjk4ODM=",
|
|
||||||
"notifications_url": "https://api.github.com/repos/garronej/test-repo/notifications{?since,all,participating}",
|
|
||||||
"open_issues": 0,
|
|
||||||
"open_issues_count": 0,
|
|
||||||
"owner": {
|
|
||||||
"avatar_url": "https://avatars0.githubusercontent.com/u/6702424?v=4",
|
|
||||||
"email": "joseph.garrone@ensimag.grenoble-inp.fr",
|
|
||||||
"events_url": "https://api.github.com/users/garronej/events{/privacy}",
|
|
||||||
"followers_url": "https://api.github.com/users/garronej/followers",
|
|
||||||
"following_url": "https://api.github.com/users/garronej/following{/other_user}",
|
|
||||||
"gists_url": "https://api.github.com/users/garronej/gists{/gist_id}",
|
|
||||||
"gravatar_id": "",
|
|
||||||
"html_url": "https://github.com/garronej",
|
|
||||||
"id": 6702424,
|
|
||||||
"login": "garronej",
|
|
||||||
"name": "garronej",
|
|
||||||
"node_id": "MDQ6VXNlcjY3MDI0MjQ=",
|
|
||||||
"organizations_url": "https://api.github.com/users/garronej/orgs",
|
|
||||||
"received_events_url": "https://api.github.com/users/garronej/received_events",
|
|
||||||
"repos_url": "https://api.github.com/users/garronej/repos",
|
|
||||||
"site_admin": false,
|
|
||||||
"starred_url": "https://api.github.com/users/garronej/starred{/owner}{/repo}",
|
|
||||||
"subscriptions_url": "https://api.github.com/users/garronej/subscriptions",
|
|
||||||
"type": "User",
|
|
||||||
"url": "https://api.github.com/users/garronej"
|
|
||||||
},
|
|
||||||
"private": false,
|
|
||||||
"pulls_url": "https://api.github.com/repos/garronej/test-repo/pulls{/number}",
|
|
||||||
"pushed_at": 1588237792,
|
|
||||||
"releases_url": "https://api.github.com/repos/garronej/test-repo/releases{/id}",
|
|
||||||
"size": 31,
|
|
||||||
"ssh_url": "git@github.com:garronej/test-repo.git",
|
|
||||||
"stargazers": 1,
|
|
||||||
"stargazers_count": 1,
|
|
||||||
"stargazers_url": "https://api.github.com/repos/garronej/test-repo/stargazers",
|
|
||||||
"statuses_url": "https://api.github.com/repos/garronej/test-repo/statuses/{sha}",
|
|
||||||
"subscribers_url": "https://api.github.com/repos/garronej/test-repo/subscribers",
|
|
||||||
"subscription_url": "https://api.github.com/repos/garronej/test-repo/subscription",
|
|
||||||
"svn_url": "https://github.com/garronej/test-repo",
|
|
||||||
"tags_url": "https://api.github.com/repos/garronej/test-repo/tags",
|
|
||||||
"teams_url": "https://api.github.com/repos/garronej/test-repo/teams",
|
|
||||||
"trees_url": "https://api.github.com/repos/garronej/test-repo/git/trees{/sha}",
|
|
||||||
"updated_at": "2020-04-30T09:00:23Z",
|
|
||||||
"url": "https://github.com/garronej/test-repo",
|
|
||||||
"watchers": 1,
|
|
||||||
"watchers_count": 1
|
|
||||||
},
|
|
||||||
"sender": {
|
|
||||||
"avatar_url": "https://avatars0.githubusercontent.com/u/6702424?v=4",
|
|
||||||
"events_url": "https://api.github.com/users/garronej/events{/privacy}",
|
|
||||||
"followers_url": "https://api.github.com/users/garronej/followers",
|
|
||||||
"following_url": "https://api.github.com/users/garronej/following{/other_user}",
|
|
||||||
"gists_url": "https://api.github.com/users/garronej/gists{/gist_id}",
|
|
||||||
"gravatar_id": "",
|
|
||||||
"html_url": "https://github.com/garronej",
|
|
||||||
"id": 6702424,
|
|
||||||
"login": "garronej",
|
|
||||||
"node_id": "MDQ6VXNlcjY3MDI0MjQ=",
|
|
||||||
"organizations_url": "https://api.github.com/users/garronej/orgs",
|
|
||||||
"received_events_url": "https://api.github.com/users/garronej/received_events",
|
|
||||||
"repos_url": "https://api.github.com/users/garronej/repos",
|
|
||||||
"site_admin": false,
|
|
||||||
"starred_url": "https://api.github.com/users/garronej/starred{/owner}{/repo}",
|
|
||||||
"subscriptions_url": "https://api.github.com/users/garronej/subscriptions",
|
|
||||||
"type": "User",
|
|
||||||
"url": "https://api.github.com/users/garronej"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"workspace": "/home/runner/work/test-repo/test-repo",
|
|
||||||
"action": "run2",
|
|
||||||
"event_path": "/home/runner/work/_temp/_github_workflow/event.json"
|
|
||||||
}
|
|
||||||
|
|
@ -1,223 +0,0 @@
|
||||||
{
|
|
||||||
"url": "https://api.github.com/repos/denoland/deno_website2/pulls/243",
|
|
||||||
"id": 376901639,
|
|
||||||
"node_id": "MDExOlB1bGxSZXF1ZXN0Mzc2OTAxNjM5",
|
|
||||||
"html_url": "https://github.com/denoland/deno_website2/pull/243",
|
|
||||||
"diff_url": "https://github.com/denoland/deno_website2/pull/243.diff",
|
|
||||||
"patch_url": "https://github.com/denoland/deno_website2/pull/243.patch",
|
|
||||||
"issue_url": "https://api.github.com/repos/denoland/deno_website2/issues/243",
|
|
||||||
"number": 243,
|
|
||||||
"state": "closed",
|
|
||||||
"locked": false,
|
|
||||||
"title": "Update database.json",
|
|
||||||
"user": {
|
|
||||||
"login": "ebebbington",
|
|
||||||
"id": 47337480,
|
|
||||||
"node_id": "MDQ6VXNlcjQ3MzM3NDgw",
|
|
||||||
"avatar_url": "https://avatars1.githubusercontent.com/u/47337480?v=4",
|
|
||||||
"gravatar_id": "",
|
|
||||||
"url": "https://api.github.com/users/ebebbington",
|
|
||||||
"html_url": "https://github.com/ebebbington",
|
|
||||||
"followers_url": "https://api.github.com/users/ebebbington/followers",
|
|
||||||
"following_url": "https://api.github.com/users/ebebbington/following{/other_user}",
|
|
||||||
"gists_url": "https://api.github.com/users/ebebbington/gists{/gist_id}",
|
|
||||||
"starred_url": "https://api.github.com/users/ebebbington/starred{/owner}{/repo}",
|
|
||||||
"subscriptions_url": "https://api.github.com/users/ebebbington/subscriptions",
|
|
||||||
"organizations_url": "https://api.github.com/users/ebebbington/orgs",
|
|
||||||
"repos_url": "https://api.github.com/users/ebebbington/repos",
|
|
||||||
"events_url": "https://api.github.com/users/ebebbington/events{/privacy}",
|
|
||||||
"received_events_url": "https://api.github.com/users/ebebbington/received_events",
|
|
||||||
"type": "User",
|
|
||||||
"site_admin": false
|
|
||||||
},
|
|
||||||
"body": "",
|
|
||||||
"created_at": "2020-02-19T00:19:16Z",
|
|
||||||
"updated_at": "2020-02-19T01:36:47Z",
|
|
||||||
"closed_at": "2020-02-19T01:36:47Z",
|
|
||||||
"merged_at": null,
|
|
||||||
"merge_commit_sha": "3c2466b5531ca936a4298e289e2fd0be21113243",
|
|
||||||
"assignee": null,
|
|
||||||
"assignees": [],
|
|
||||||
"requested_reviewers": [],
|
|
||||||
"requested_teams": [],
|
|
||||||
"labels": [],
|
|
||||||
"milestone": null,
|
|
||||||
"draft": false,
|
|
||||||
"commits_url": "https://api.github.com/repos/denoland/deno_website2/pulls/243/commits",
|
|
||||||
"review_comments_url": "https://api.github.com/repos/denoland/deno_website2/pulls/243/comments",
|
|
||||||
"review_comment_url": "https://api.github.com/repos/denoland/deno_website2/pulls/comments{/number}",
|
|
||||||
"comments_url": "https://api.github.com/repos/denoland/deno_website2/issues/243/comments",
|
|
||||||
"statuses_url": "https://api.github.com/repos/denoland/deno_website2/statuses/dd984adce147336ebe4e3f5c87f5bb256c710d2a",
|
|
||||||
"head": {
|
|
||||||
"label": "ebebbington:patch-1",
|
|
||||||
"ref": "patch-1",
|
|
||||||
"sha": "dd984adce147336ebe4e3f5c87f5bb256c710d2a",
|
|
||||||
"user": {
|
|
||||||
"login": "ebebbington",
|
|
||||||
"id": 47337480,
|
|
||||||
"node_id": "MDQ6VXNlcjQ3MzM3NDgw",
|
|
||||||
"avatar_url": "https://avatars1.githubusercontent.com/u/47337480?v=4",
|
|
||||||
"gravatar_id": "",
|
|
||||||
"url": "https://api.github.com/users/ebebbington",
|
|
||||||
"html_url": "https://github.com/ebebbington",
|
|
||||||
"followers_url": "https://api.github.com/users/ebebbington/followers",
|
|
||||||
"following_url": "https://api.github.com/users/ebebbington/following{/other_user}",
|
|
||||||
"gists_url": "https://api.github.com/users/ebebbington/gists{/gist_id}",
|
|
||||||
"starred_url": "https://api.github.com/users/ebebbington/starred{/owner}{/repo}",
|
|
||||||
"subscriptions_url": "https://api.github.com/users/ebebbington/subscriptions",
|
|
||||||
"organizations_url": "https://api.github.com/users/ebebbington/orgs",
|
|
||||||
"repos_url": "https://api.github.com/users/ebebbington/repos",
|
|
||||||
"events_url": "https://api.github.com/users/ebebbington/events{/privacy}",
|
|
||||||
"received_events_url": "https://api.github.com/users/ebebbington/received_events",
|
|
||||||
"type": "User",
|
|
||||||
"site_admin": false
|
|
||||||
},
|
|
||||||
"repo": null
|
|
||||||
},
|
|
||||||
"base": {
|
|
||||||
"label": "denoland:master",
|
|
||||||
"ref": "master",
|
|
||||||
"sha": "a1fd79e283995341830c0864e2282146fe604401",
|
|
||||||
"user": {
|
|
||||||
"login": "denoland",
|
|
||||||
"id": 42048915,
|
|
||||||
"node_id": "MDEyOk9yZ2FuaXphdGlvbjQyMDQ4OTE1",
|
|
||||||
"avatar_url": "https://avatars1.githubusercontent.com/u/42048915?v=4",
|
|
||||||
"gravatar_id": "",
|
|
||||||
"url": "https://api.github.com/users/denoland",
|
|
||||||
"html_url": "https://github.com/denoland",
|
|
||||||
"followers_url": "https://api.github.com/users/denoland/followers",
|
|
||||||
"following_url": "https://api.github.com/users/denoland/following{/other_user}",
|
|
||||||
"gists_url": "https://api.github.com/users/denoland/gists{/gist_id}",
|
|
||||||
"starred_url": "https://api.github.com/users/denoland/starred{/owner}{/repo}",
|
|
||||||
"subscriptions_url": "https://api.github.com/users/denoland/subscriptions",
|
|
||||||
"organizations_url": "https://api.github.com/users/denoland/orgs",
|
|
||||||
"repos_url": "https://api.github.com/users/denoland/repos",
|
|
||||||
"events_url": "https://api.github.com/users/denoland/events{/privacy}",
|
|
||||||
"received_events_url": "https://api.github.com/users/denoland/received_events",
|
|
||||||
"type": "Organization",
|
|
||||||
"site_admin": false
|
|
||||||
},
|
|
||||||
"repo": {
|
|
||||||
"id": 216156518,
|
|
||||||
"node_id": "MDEwOlJlcG9zaXRvcnkyMTYxNTY1MTg=",
|
|
||||||
"name": "deno_website2",
|
|
||||||
"full_name": "denoland/deno_website2",
|
|
||||||
"private": false,
|
|
||||||
"owner": {
|
|
||||||
"login": "denoland",
|
|
||||||
"id": 42048915,
|
|
||||||
"node_id": "MDEyOk9yZ2FuaXphdGlvbjQyMDQ4OTE1",
|
|
||||||
"avatar_url": "https://avatars1.githubusercontent.com/u/42048915?v=4",
|
|
||||||
"gravatar_id": "",
|
|
||||||
"url": "https://api.github.com/users/denoland",
|
|
||||||
"html_url": "https://github.com/denoland",
|
|
||||||
"followers_url": "https://api.github.com/users/denoland/followers",
|
|
||||||
"following_url": "https://api.github.com/users/denoland/following{/other_user}",
|
|
||||||
"gists_url": "https://api.github.com/users/denoland/gists{/gist_id}",
|
|
||||||
"starred_url": "https://api.github.com/users/denoland/starred{/owner}{/repo}",
|
|
||||||
"subscriptions_url": "https://api.github.com/users/denoland/subscriptions",
|
|
||||||
"organizations_url": "https://api.github.com/users/denoland/orgs",
|
|
||||||
"repos_url": "https://api.github.com/users/denoland/repos",
|
|
||||||
"events_url": "https://api.github.com/users/denoland/events{/privacy}",
|
|
||||||
"received_events_url": "https://api.github.com/users/denoland/received_events",
|
|
||||||
"type": "Organization",
|
|
||||||
"site_admin": false
|
|
||||||
},
|
|
||||||
"html_url": "https://github.com/denoland/deno_website2",
|
|
||||||
"description": "deno.land website ",
|
|
||||||
"fork": false,
|
|
||||||
"url": "https://api.github.com/repos/denoland/deno_website2",
|
|
||||||
"forks_url": "https://api.github.com/repos/denoland/deno_website2/forks",
|
|
||||||
"keys_url": "https://api.github.com/repos/denoland/deno_website2/keys{/key_id}",
|
|
||||||
"collaborators_url": "https://api.github.com/repos/denoland/deno_website2/collaborators{/collaborator}",
|
|
||||||
"teams_url": "https://api.github.com/repos/denoland/deno_website2/teams",
|
|
||||||
"hooks_url": "https://api.github.com/repos/denoland/deno_website2/hooks",
|
|
||||||
"issue_events_url": "https://api.github.com/repos/denoland/deno_website2/issues/events{/number}",
|
|
||||||
"events_url": "https://api.github.com/repos/denoland/deno_website2/events",
|
|
||||||
"assignees_url": "https://api.github.com/repos/denoland/deno_website2/assignees{/user}",
|
|
||||||
"branches_url": "https://api.github.com/repos/denoland/deno_website2/branches{/branch}",
|
|
||||||
"tags_url": "https://api.github.com/repos/denoland/deno_website2/tags",
|
|
||||||
"blobs_url": "https://api.github.com/repos/denoland/deno_website2/git/blobs{/sha}",
|
|
||||||
"git_tags_url": "https://api.github.com/repos/denoland/deno_website2/git/tags{/sha}",
|
|
||||||
"git_refs_url": "https://api.github.com/repos/denoland/deno_website2/git/refs{/sha}",
|
|
||||||
"trees_url": "https://api.github.com/repos/denoland/deno_website2/git/trees{/sha}",
|
|
||||||
"statuses_url": "https://api.github.com/repos/denoland/deno_website2/statuses/{sha}",
|
|
||||||
"languages_url": "https://api.github.com/repos/denoland/deno_website2/languages",
|
|
||||||
"stargazers_url": "https://api.github.com/repos/denoland/deno_website2/stargazers",
|
|
||||||
"contributors_url": "https://api.github.com/repos/denoland/deno_website2/contributors",
|
|
||||||
"subscribers_url": "https://api.github.com/repos/denoland/deno_website2/subscribers",
|
|
||||||
"subscription_url": "https://api.github.com/repos/denoland/deno_website2/subscription",
|
|
||||||
"commits_url": "https://api.github.com/repos/denoland/deno_website2/commits{/sha}",
|
|
||||||
"git_commits_url": "https://api.github.com/repos/denoland/deno_website2/git/commits{/sha}",
|
|
||||||
"comments_url": "https://api.github.com/repos/denoland/deno_website2/comments{/number}",
|
|
||||||
"issue_comment_url": "https://api.github.com/repos/denoland/deno_website2/issues/comments{/number}",
|
|
||||||
"contents_url": "https://api.github.com/repos/denoland/deno_website2/contents/{+path}",
|
|
||||||
"compare_url": "https://api.github.com/repos/denoland/deno_website2/compare/{base}...{head}",
|
|
||||||
"merges_url": "https://api.github.com/repos/denoland/deno_website2/merges",
|
|
||||||
"archive_url": "https://api.github.com/repos/denoland/deno_website2/{archive_format}{/ref}",
|
|
||||||
"downloads_url": "https://api.github.com/repos/denoland/deno_website2/downloads",
|
|
||||||
"issues_url": "https://api.github.com/repos/denoland/deno_website2/issues{/number}",
|
|
||||||
"pulls_url": "https://api.github.com/repos/denoland/deno_website2/pulls{/number}",
|
|
||||||
"milestones_url": "https://api.github.com/repos/denoland/deno_website2/milestones{/number}",
|
|
||||||
"notifications_url": "https://api.github.com/repos/denoland/deno_website2/notifications{?since,all,participating}",
|
|
||||||
"labels_url": "https://api.github.com/repos/denoland/deno_website2/labels{/name}",
|
|
||||||
"releases_url": "https://api.github.com/repos/denoland/deno_website2/releases{/id}",
|
|
||||||
"deployments_url": "https://api.github.com/repos/denoland/deno_website2/deployments",
|
|
||||||
"created_at": "2019-10-19T05:53:43Z",
|
|
||||||
"updated_at": "2020-05-12T22:28:15Z",
|
|
||||||
"pushed_at": "2020-05-12T22:35:23Z",
|
|
||||||
"git_url": "git://github.com/denoland/deno_website2.git",
|
|
||||||
"ssh_url": "git@github.com:denoland/deno_website2.git",
|
|
||||||
"clone_url": "https://github.com/denoland/deno_website2.git",
|
|
||||||
"svn_url": "https://github.com/denoland/deno_website2",
|
|
||||||
"homepage": "https://deno.land/",
|
|
||||||
"size": 1517,
|
|
||||||
"stargazers_count": 187,
|
|
||||||
"watchers_count": 187,
|
|
||||||
"language": "TypeScript",
|
|
||||||
"has_issues": true,
|
|
||||||
"has_projects": false,
|
|
||||||
"has_downloads": true,
|
|
||||||
"has_wiki": false,
|
|
||||||
"has_pages": false,
|
|
||||||
"forks_count": 131,
|
|
||||||
"mirror_url": null,
|
|
||||||
"archived": false,
|
|
||||||
"disabled": false,
|
|
||||||
"open_issues_count": 33,
|
|
||||||
"license": null,
|
|
||||||
"forks": 131,
|
|
||||||
"open_issues": 33,
|
|
||||||
"watchers": 187,
|
|
||||||
"default_branch": "master"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"_links": {
|
|
||||||
"self": {
|
|
||||||
"href": "https://api.github.com/repos/denoland/deno_website2/pulls/243"
|
|
||||||
},
|
|
||||||
"html": {
|
|
||||||
"href": "https://github.com/denoland/deno_website2/pull/243"
|
|
||||||
},
|
|
||||||
"issue": {
|
|
||||||
"href": "https://api.github.com/repos/denoland/deno_website2/issues/243"
|
|
||||||
},
|
|
||||||
"comments": {
|
|
||||||
"href": "https://api.github.com/repos/denoland/deno_website2/issues/243/comments"
|
|
||||||
},
|
|
||||||
"review_comments": {
|
|
||||||
"href": "https://api.github.com/repos/denoland/deno_website2/pulls/243/comments"
|
|
||||||
},
|
|
||||||
"review_comment": {
|
|
||||||
"href": "https://api.github.com/repos/denoland/deno_website2/pulls/comments{/number}"
|
|
||||||
},
|
|
||||||
"commits": {
|
|
||||||
"href": "https://api.github.com/repos/denoland/deno_website2/pulls/243/commits"
|
|
||||||
},
|
|
||||||
"statuses": {
|
|
||||||
"href": "https://api.github.com/repos/denoland/deno_website2/statuses/dd984adce147336ebe4e3f5c87f5bb256c710d2a"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"author_association": "CONTRIBUTOR"
|
|
||||||
}
|
|
||||||
|
|
@ -1,469 +0,0 @@
|
||||||
|
|
||||||
|
|
||||||
{
|
|
||||||
"token": "***",
|
|
||||||
"job": "test",
|
|
||||||
"ref": "refs/pull/3/merge",
|
|
||||||
"sha": "edd8d31fc8584fd040a33fa234a4e173cde5e988",
|
|
||||||
"repository": "garronej/test-repo",
|
|
||||||
"repository_owner": "garronej",
|
|
||||||
"repositoryUrl": "git://github.com/garronej/test-repo.git",
|
|
||||||
"run_id": "91983605",
|
|
||||||
"run_number": "9",
|
|
||||||
"actor": "garronej",
|
|
||||||
"workflow": "the workflow name",
|
|
||||||
"head_ref": "garronej-patch-4",
|
|
||||||
"base_ref": "master",
|
|
||||||
"event_name": "pull_request",
|
|
||||||
"event": {
|
|
||||||
"action": "synchronize",
|
|
||||||
"after": "e3788c6b40c0d017f2422f64193753d47d240471",
|
|
||||||
"before": "dd23ceb8c0002b80ca146cc2993acfd1da3c147a",
|
|
||||||
"number": 3,
|
|
||||||
"pull_request": {
|
|
||||||
"_links": {
|
|
||||||
"comments": {
|
|
||||||
"href": "https://api.github.com/repos/garronej/test-repo/issues/3/comments"
|
|
||||||
},
|
|
||||||
"commits": {
|
|
||||||
"href": "https://api.github.com/repos/garronej/test-repo/pulls/3/commits"
|
|
||||||
},
|
|
||||||
"html": {
|
|
||||||
"href": "https://github.com/garronej/test-repo/pull/3"
|
|
||||||
},
|
|
||||||
"issue": {
|
|
||||||
"href": "https://api.github.com/repos/garronej/test-repo/issues/3"
|
|
||||||
},
|
|
||||||
"review_comment": {
|
|
||||||
"href": "https://api.github.com/repos/garronej/test-repo/pulls/comments{/number}"
|
|
||||||
},
|
|
||||||
"review_comments": {
|
|
||||||
"href": "https://api.github.com/repos/garronej/test-repo/pulls/3/comments"
|
|
||||||
},
|
|
||||||
"self": {
|
|
||||||
"href": "https://api.github.com/repos/garronej/test-repo/pulls/3"
|
|
||||||
},
|
|
||||||
"statuses": {
|
|
||||||
"href": "https://api.github.com/repos/garronej/test-repo/statuses/e3788c6b40c0d017f2422f64193753d47d240471"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"additions": 4,
|
|
||||||
"assignee": null,
|
|
||||||
"assignees": [],
|
|
||||||
"author_association": "OWNER",
|
|
||||||
"base": {
|
|
||||||
"label": "garronej:master",
|
|
||||||
"ref": "master",
|
|
||||||
"repo": {
|
|
||||||
"archive_url": "https://api.github.com/repos/garronej/test-repo/{archive_format}{/ref}",
|
|
||||||
"archived": false,
|
|
||||||
"assignees_url": "https://api.github.com/repos/garronej/test-repo/assignees{/user}",
|
|
||||||
"blobs_url": "https://api.github.com/repos/garronej/test-repo/git/blobs{/sha}",
|
|
||||||
"branches_url": "https://api.github.com/repos/garronej/test-repo/branches{/branch}",
|
|
||||||
"clone_url": "https://github.com/garronej/test-repo.git",
|
|
||||||
"collaborators_url": "https://api.github.com/repos/garronej/test-repo/collaborators{/collaborator}",
|
|
||||||
"comments_url": "https://api.github.com/repos/garronej/test-repo/comments{/number}",
|
|
||||||
"commits_url": "https://api.github.com/repos/garronej/test-repo/commits{/sha}",
|
|
||||||
"compare_url": "https://api.github.com/repos/garronej/test-repo/compare/{base}...{head}",
|
|
||||||
"contents_url": "https://api.github.com/repos/garronej/test-repo/contents/{+path}",
|
|
||||||
"contributors_url": "https://api.github.com/repos/garronej/test-repo/contributors",
|
|
||||||
"created_at": "2020-04-24T06:47:17Z",
|
|
||||||
"default_branch": "master",
|
|
||||||
"deployments_url": "https://api.github.com/repos/garronej/test-repo/deployments",
|
|
||||||
"description": "Alors ? ",
|
|
||||||
"disabled": false,
|
|
||||||
"downloads_url": "https://api.github.com/repos/garronej/test-repo/downloads",
|
|
||||||
"events_url": "https://api.github.com/repos/garronej/test-repo/events",
|
|
||||||
"fork": false,
|
|
||||||
"forks": 1,
|
|
||||||
"forks_count": 1,
|
|
||||||
"forks_url": "https://api.github.com/repos/garronej/test-repo/forks",
|
|
||||||
"full_name": "garronej/test-repo",
|
|
||||||
"git_commits_url": "https://api.github.com/repos/garronej/test-repo/git/commits{/sha}",
|
|
||||||
"git_refs_url": "https://api.github.com/repos/garronej/test-repo/git/refs{/sha}",
|
|
||||||
"git_tags_url": "https://api.github.com/repos/garronej/test-repo/git/tags{/sha}",
|
|
||||||
"git_url": "git://github.com/garronej/test-repo.git",
|
|
||||||
"has_downloads": true,
|
|
||||||
"has_issues": true,
|
|
||||||
"has_pages": false,
|
|
||||||
"has_projects": true,
|
|
||||||
"has_wiki": true,
|
|
||||||
"homepage": "",
|
|
||||||
"hooks_url": "https://api.github.com/repos/garronej/test-repo/hooks",
|
|
||||||
"html_url": "https://github.com/garronej/test-repo",
|
|
||||||
"id": 258429883,
|
|
||||||
"issue_comment_url": "https://api.github.com/repos/garronej/test-repo/issues/comments{/number}",
|
|
||||||
"issue_events_url": "https://api.github.com/repos/garronej/test-repo/issues/events{/number}",
|
|
||||||
"issues_url": "https://api.github.com/repos/garronej/test-repo/issues{/number}",
|
|
||||||
"keys_url": "https://api.github.com/repos/garronej/test-repo/keys{/key_id}",
|
|
||||||
"labels_url": "https://api.github.com/repos/garronej/test-repo/labels{/name}",
|
|
||||||
"language": null,
|
|
||||||
"languages_url": "https://api.github.com/repos/garronej/test-repo/languages",
|
|
||||||
"license": null,
|
|
||||||
"merges_url": "https://api.github.com/repos/garronej/test-repo/merges",
|
|
||||||
"milestones_url": "https://api.github.com/repos/garronej/test-repo/milestones{/number}",
|
|
||||||
"mirror_url": null,
|
|
||||||
"name": "test-repo",
|
|
||||||
"node_id": "MDEwOlJlcG9zaXRvcnkyNTg0Mjk4ODM=",
|
|
||||||
"notifications_url": "https://api.github.com/repos/garronej/test-repo/notifications{?since,all,participating}",
|
|
||||||
"open_issues": 1,
|
|
||||||
"open_issues_count": 1,
|
|
||||||
"owner": {
|
|
||||||
"avatar_url": "https://avatars0.githubusercontent.com/u/6702424?v=4",
|
|
||||||
"events_url": "https://api.github.com/users/garronej/events{/privacy}",
|
|
||||||
"followers_url": "https://api.github.com/users/garronej/followers",
|
|
||||||
"following_url": "https://api.github.com/users/garronej/following{/other_user}",
|
|
||||||
"gists_url": "https://api.github.com/users/garronej/gists{/gist_id}",
|
|
||||||
"gravatar_id": "",
|
|
||||||
"html_url": "https://github.com/garronej",
|
|
||||||
"id": 6702424,
|
|
||||||
"login": "garronej",
|
|
||||||
"node_id": "MDQ6VXNlcjY3MDI0MjQ=",
|
|
||||||
"organizations_url": "https://api.github.com/users/garronej/orgs",
|
|
||||||
"received_events_url": "https://api.github.com/users/garronej/received_events",
|
|
||||||
"repos_url": "https://api.github.com/users/garronej/repos",
|
|
||||||
"site_admin": false,
|
|
||||||
"starred_url": "https://api.github.com/users/garronej/starred{/owner}{/repo}",
|
|
||||||
"subscriptions_url": "https://api.github.com/users/garronej/subscriptions",
|
|
||||||
"type": "User",
|
|
||||||
"url": "https://api.github.com/users/garronej"
|
|
||||||
},
|
|
||||||
"private": false,
|
|
||||||
"pulls_url": "https://api.github.com/repos/garronej/test-repo/pulls{/number}",
|
|
||||||
"pushed_at": "2020-04-30T09:02:25Z",
|
|
||||||
"releases_url": "https://api.github.com/repos/garronej/test-repo/releases{/id}",
|
|
||||||
"size": 31,
|
|
||||||
"ssh_url": "git@github.com:garronej/test-repo.git",
|
|
||||||
"stargazers_count": 1,
|
|
||||||
"stargazers_url": "https://api.github.com/repos/garronej/test-repo/stargazers",
|
|
||||||
"statuses_url": "https://api.github.com/repos/garronej/test-repo/statuses/{sha}",
|
|
||||||
"subscribers_url": "https://api.github.com/repos/garronej/test-repo/subscribers",
|
|
||||||
"subscription_url": "https://api.github.com/repos/garronej/test-repo/subscription",
|
|
||||||
"svn_url": "https://github.com/garronej/test-repo",
|
|
||||||
"tags_url": "https://api.github.com/repos/garronej/test-repo/tags",
|
|
||||||
"teams_url": "https://api.github.com/repos/garronej/test-repo/teams",
|
|
||||||
"trees_url": "https://api.github.com/repos/garronej/test-repo/git/trees{/sha}",
|
|
||||||
"updated_at": "2020-04-30T09:00:23Z",
|
|
||||||
"url": "https://api.github.com/repos/garronej/test-repo",
|
|
||||||
"watchers": 1,
|
|
||||||
"watchers_count": 1
|
|
||||||
},
|
|
||||||
"sha": "3cac089f0b03951b610a389564198f53fb485579",
|
|
||||||
"user": {
|
|
||||||
"avatar_url": "https://avatars0.githubusercontent.com/u/6702424?v=4",
|
|
||||||
"events_url": "https://api.github.com/users/garronej/events{/privacy}",
|
|
||||||
"followers_url": "https://api.github.com/users/garronej/followers",
|
|
||||||
"following_url": "https://api.github.com/users/garronej/following{/other_user}",
|
|
||||||
"gists_url": "https://api.github.com/users/garronej/gists{/gist_id}",
|
|
||||||
"gravatar_id": "",
|
|
||||||
"html_url": "https://github.com/garronej",
|
|
||||||
"id": 6702424,
|
|
||||||
"login": "garronej",
|
|
||||||
"node_id": "MDQ6VXNlcjY3MDI0MjQ=",
|
|
||||||
"organizations_url": "https://api.github.com/users/garronej/orgs",
|
|
||||||
"received_events_url": "https://api.github.com/users/garronej/received_events",
|
|
||||||
"repos_url": "https://api.github.com/users/garronej/repos",
|
|
||||||
"site_admin": false,
|
|
||||||
"starred_url": "https://api.github.com/users/garronej/starred{/owner}{/repo}",
|
|
||||||
"subscriptions_url": "https://api.github.com/users/garronej/subscriptions",
|
|
||||||
"type": "User",
|
|
||||||
"url": "https://api.github.com/users/garronej"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"body": "",
|
|
||||||
"changed_files": 1,
|
|
||||||
"closed_at": null,
|
|
||||||
"comments": 0,
|
|
||||||
"comments_url": "https://api.github.com/repos/garronej/test-repo/issues/3/comments",
|
|
||||||
"commits": 2,
|
|
||||||
"commits_url": "https://api.github.com/repos/garronej/test-repo/pulls/3/commits",
|
|
||||||
"created_at": "2020-04-30T09:00:35Z",
|
|
||||||
"deletions": 1,
|
|
||||||
"diff_url": "https://github.com/garronej/test-repo/pull/3.diff",
|
|
||||||
"draft": false,
|
|
||||||
"head": {
|
|
||||||
"label": "garronej:garronej-patch-4",
|
|
||||||
"ref": "garronej-patch-4",
|
|
||||||
"repo": {
|
|
||||||
"archive_url": "https://api.github.com/repos/garronej/test-repo/{archive_format}{/ref}",
|
|
||||||
"archived": false,
|
|
||||||
"assignees_url": "https://api.github.com/repos/garronej/test-repo/assignees{/user}",
|
|
||||||
"blobs_url": "https://api.github.com/repos/garronej/test-repo/git/blobs{/sha}",
|
|
||||||
"branches_url": "https://api.github.com/repos/garronej/test-repo/branches{/branch}",
|
|
||||||
"clone_url": "https://github.com/garronej/test-repo.git",
|
|
||||||
"collaborators_url": "https://api.github.com/repos/garronej/test-repo/collaborators{/collaborator}",
|
|
||||||
"comments_url": "https://api.github.com/repos/garronej/test-repo/comments{/number}",
|
|
||||||
"commits_url": "https://api.github.com/repos/garronej/test-repo/commits{/sha}",
|
|
||||||
"compare_url": "https://api.github.com/repos/garronej/test-repo/compare/{base}...{head}",
|
|
||||||
"contents_url": "https://api.github.com/repos/garronej/test-repo/contents/{+path}",
|
|
||||||
"contributors_url": "https://api.github.com/repos/garronej/test-repo/contributors",
|
|
||||||
"created_at": "2020-04-24T06:47:17Z",
|
|
||||||
"default_branch": "master",
|
|
||||||
"deployments_url": "https://api.github.com/repos/garronej/test-repo/deployments",
|
|
||||||
"description": "Alors ? ",
|
|
||||||
"disabled": false,
|
|
||||||
"downloads_url": "https://api.github.com/repos/garronej/test-repo/downloads",
|
|
||||||
"events_url": "https://api.github.com/repos/garronej/test-repo/events",
|
|
||||||
"fork": false,
|
|
||||||
"forks": 1,
|
|
||||||
"forks_count": 1,
|
|
||||||
"forks_url": "https://api.github.com/repos/garronej/test-repo/forks",
|
|
||||||
"full_name": "garronej/test-repo",
|
|
||||||
"git_commits_url": "https://api.github.com/repos/garronej/test-repo/git/commits{/sha}",
|
|
||||||
"git_refs_url": "https://api.github.com/repos/garronej/test-repo/git/refs{/sha}",
|
|
||||||
"git_tags_url": "https://api.github.com/repos/garronej/test-repo/git/tags{/sha}",
|
|
||||||
"git_url": "git://github.com/garronej/test-repo.git",
|
|
||||||
"has_downloads": true,
|
|
||||||
"has_issues": true,
|
|
||||||
"has_pages": false,
|
|
||||||
"has_projects": true,
|
|
||||||
"has_wiki": true,
|
|
||||||
"homepage": "",
|
|
||||||
"hooks_url": "https://api.github.com/repos/garronej/test-repo/hooks",
|
|
||||||
"html_url": "https://github.com/garronej/test-repo",
|
|
||||||
"id": 258429883,
|
|
||||||
"issue_comment_url": "https://api.github.com/repos/garronej/test-repo/issues/comments{/number}",
|
|
||||||
"issue_events_url": "https://api.github.com/repos/garronej/test-repo/issues/events{/number}",
|
|
||||||
"issues_url": "https://api.github.com/repos/garronej/test-repo/issues{/number}",
|
|
||||||
"keys_url": "https://api.github.com/repos/garronej/test-repo/keys{/key_id}",
|
|
||||||
"labels_url": "https://api.github.com/repos/garronej/test-repo/labels{/name}",
|
|
||||||
"language": null,
|
|
||||||
"languages_url": "https://api.github.com/repos/garronej/test-repo/languages",
|
|
||||||
"license": null,
|
|
||||||
"merges_url": "https://api.github.com/repos/garronej/test-repo/merges",
|
|
||||||
"milestones_url": "https://api.github.com/repos/garronej/test-repo/milestones{/number}",
|
|
||||||
"mirror_url": null,
|
|
||||||
"name": "test-repo",
|
|
||||||
"node_id": "MDEwOlJlcG9zaXRvcnkyNTg0Mjk4ODM=",
|
|
||||||
"notifications_url": "https://api.github.com/repos/garronej/test-repo/notifications{?since,all,participating}",
|
|
||||||
"open_issues": 1,
|
|
||||||
"open_issues_count": 1,
|
|
||||||
"owner": {
|
|
||||||
"avatar_url": "https://avatars0.githubusercontent.com/u/6702424?v=4",
|
|
||||||
"events_url": "https://api.github.com/users/garronej/events{/privacy}",
|
|
||||||
"followers_url": "https://api.github.com/users/garronej/followers",
|
|
||||||
"following_url": "https://api.github.com/users/garronej/following{/other_user}",
|
|
||||||
"gists_url": "https://api.github.com/users/garronej/gists{/gist_id}",
|
|
||||||
"gravatar_id": "",
|
|
||||||
"html_url": "https://github.com/garronej",
|
|
||||||
"id": 6702424,
|
|
||||||
"login": "garronej",
|
|
||||||
"node_id": "MDQ6VXNlcjY3MDI0MjQ=",
|
|
||||||
"organizations_url": "https://api.github.com/users/garronej/orgs",
|
|
||||||
"received_events_url": "https://api.github.com/users/garronej/received_events",
|
|
||||||
"repos_url": "https://api.github.com/users/garronej/repos",
|
|
||||||
"site_admin": false,
|
|
||||||
"starred_url": "https://api.github.com/users/garronej/starred{/owner}{/repo}",
|
|
||||||
"subscriptions_url": "https://api.github.com/users/garronej/subscriptions",
|
|
||||||
"type": "User",
|
|
||||||
"url": "https://api.github.com/users/garronej"
|
|
||||||
},
|
|
||||||
"private": false,
|
|
||||||
"pulls_url": "https://api.github.com/repos/garronej/test-repo/pulls{/number}",
|
|
||||||
"pushed_at": "2020-04-30T09:02:25Z",
|
|
||||||
"releases_url": "https://api.github.com/repos/garronej/test-repo/releases{/id}",
|
|
||||||
"size": 31,
|
|
||||||
"ssh_url": "git@github.com:garronej/test-repo.git",
|
|
||||||
"stargazers_count": 1,
|
|
||||||
"stargazers_url": "https://api.github.com/repos/garronej/test-repo/stargazers",
|
|
||||||
"statuses_url": "https://api.github.com/repos/garronej/test-repo/statuses/{sha}",
|
|
||||||
"subscribers_url": "https://api.github.com/repos/garronej/test-repo/subscribers",
|
|
||||||
"subscription_url": "https://api.github.com/repos/garronej/test-repo/subscription",
|
|
||||||
"svn_url": "https://github.com/garronej/test-repo",
|
|
||||||
"tags_url": "https://api.github.com/repos/garronej/test-repo/tags",
|
|
||||||
"teams_url": "https://api.github.com/repos/garronej/test-repo/teams",
|
|
||||||
"trees_url": "https://api.github.com/repos/garronej/test-repo/git/trees{/sha}",
|
|
||||||
"updated_at": "2020-04-30T09:00:23Z",
|
|
||||||
"url": "https://api.github.com/repos/garronej/test-repo",
|
|
||||||
"watchers": 1,
|
|
||||||
"watchers_count": 1
|
|
||||||
},
|
|
||||||
"sha": "e3788c6b40c0d017f2422f64193753d47d240471",
|
|
||||||
"user": {
|
|
||||||
"avatar_url": "https://avatars0.githubusercontent.com/u/6702424?v=4",
|
|
||||||
"events_url": "https://api.github.com/users/garronej/events{/privacy}",
|
|
||||||
"followers_url": "https://api.github.com/users/garronej/followers",
|
|
||||||
"following_url": "https://api.github.com/users/garronej/following{/other_user}",
|
|
||||||
"gists_url": "https://api.github.com/users/garronej/gists{/gist_id}",
|
|
||||||
"gravatar_id": "",
|
|
||||||
"html_url": "https://github.com/garronej",
|
|
||||||
"id": 6702424,
|
|
||||||
"login": "garronej",
|
|
||||||
"node_id": "MDQ6VXNlcjY3MDI0MjQ=",
|
|
||||||
"organizations_url": "https://api.github.com/users/garronej/orgs",
|
|
||||||
"received_events_url": "https://api.github.com/users/garronej/received_events",
|
|
||||||
"repos_url": "https://api.github.com/users/garronej/repos",
|
|
||||||
"site_admin": false,
|
|
||||||
"starred_url": "https://api.github.com/users/garronej/starred{/owner}{/repo}",
|
|
||||||
"subscriptions_url": "https://api.github.com/users/garronej/subscriptions",
|
|
||||||
"type": "User",
|
|
||||||
"url": "https://api.github.com/users/garronej"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"html_url": "https://github.com/garronej/test-repo/pull/3",
|
|
||||||
"id": 411270304,
|
|
||||||
"issue_url": "https://api.github.com/repos/garronej/test-repo/issues/3",
|
|
||||||
"labels": [],
|
|
||||||
"locked": false,
|
|
||||||
"maintainer_can_modify": false,
|
|
||||||
"merge_commit_sha": null,
|
|
||||||
"mergeable": null,
|
|
||||||
"mergeable_state": "unknown",
|
|
||||||
"merged": false,
|
|
||||||
"merged_at": null,
|
|
||||||
"merged_by": null,
|
|
||||||
"milestone": null,
|
|
||||||
"node_id": "MDExOlB1bGxSZXF1ZXN0NDExMjcwMzA0",
|
|
||||||
"number": 3,
|
|
||||||
"patch_url": "https://github.com/garronej/test-repo/pull/3.patch",
|
|
||||||
"rebaseable": null,
|
|
||||||
"requested_reviewers": [],
|
|
||||||
"requested_teams": [],
|
|
||||||
"review_comment_url": "https://api.github.com/repos/garronej/test-repo/pulls/comments{/number}",
|
|
||||||
"review_comments": 0,
|
|
||||||
"review_comments_url": "https://api.github.com/repos/garronej/test-repo/pulls/3/comments",
|
|
||||||
"state": "open",
|
|
||||||
"statuses_url": "https://api.github.com/repos/garronej/test-repo/statuses/e3788c6b40c0d017f2422f64193753d47d240471",
|
|
||||||
"title": "commit for pull request 4",
|
|
||||||
"updated_at": "2020-04-30T09:02:26Z",
|
|
||||||
"url": "https://api.github.com/repos/garronej/test-repo/pulls/3",
|
|
||||||
"user": {
|
|
||||||
"avatar_url": "https://avatars0.githubusercontent.com/u/6702424?v=4",
|
|
||||||
"events_url": "https://api.github.com/users/garronej/events{/privacy}",
|
|
||||||
"followers_url": "https://api.github.com/users/garronej/followers",
|
|
||||||
"following_url": "https://api.github.com/users/garronej/following{/other_user}",
|
|
||||||
"gists_url": "https://api.github.com/users/garronej/gists{/gist_id}",
|
|
||||||
"gravatar_id": "",
|
|
||||||
"html_url": "https://github.com/garronej",
|
|
||||||
"id": 6702424,
|
|
||||||
"login": "garronej",
|
|
||||||
"node_id": "MDQ6VXNlcjY3MDI0MjQ=",
|
|
||||||
"organizations_url": "https://api.github.com/users/garronej/orgs",
|
|
||||||
"received_events_url": "https://api.github.com/users/garronej/received_events",
|
|
||||||
"repos_url": "https://api.github.com/users/garronej/repos",
|
|
||||||
"site_admin": false,
|
|
||||||
"starred_url": "https://api.github.com/users/garronej/starred{/owner}{/repo}",
|
|
||||||
"subscriptions_url": "https://api.github.com/users/garronej/subscriptions",
|
|
||||||
"type": "User",
|
|
||||||
"url": "https://api.github.com/users/garronej"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"repository": {
|
|
||||||
"archive_url": "https://api.github.com/repos/garronej/test-repo/{archive_format}{/ref}",
|
|
||||||
"archived": false,
|
|
||||||
"assignees_url": "https://api.github.com/repos/garronej/test-repo/assignees{/user}",
|
|
||||||
"blobs_url": "https://api.github.com/repos/garronej/test-repo/git/blobs{/sha}",
|
|
||||||
"branches_url": "https://api.github.com/repos/garronej/test-repo/branches{/branch}",
|
|
||||||
"clone_url": "https://github.com/garronej/test-repo.git",
|
|
||||||
"collaborators_url": "https://api.github.com/repos/garronej/test-repo/collaborators{/collaborator}",
|
|
||||||
"comments_url": "https://api.github.com/repos/garronej/test-repo/comments{/number}",
|
|
||||||
"commits_url": "https://api.github.com/repos/garronej/test-repo/commits{/sha}",
|
|
||||||
"compare_url": "https://api.github.com/repos/garronej/test-repo/compare/{base}...{head}",
|
|
||||||
"contents_url": "https://api.github.com/repos/garronej/test-repo/contents/{+path}",
|
|
||||||
"contributors_url": "https://api.github.com/repos/garronej/test-repo/contributors",
|
|
||||||
"created_at": "2020-04-24T06:47:17Z",
|
|
||||||
"default_branch": "master",
|
|
||||||
"deployments_url": "https://api.github.com/repos/garronej/test-repo/deployments",
|
|
||||||
"description": "Alors ? ",
|
|
||||||
"disabled": false,
|
|
||||||
"downloads_url": "https://api.github.com/repos/garronej/test-repo/downloads",
|
|
||||||
"events_url": "https://api.github.com/repos/garronej/test-repo/events",
|
|
||||||
"fork": false,
|
|
||||||
"forks": 1,
|
|
||||||
"forks_count": 1,
|
|
||||||
"forks_url": "https://api.github.com/repos/garronej/test-repo/forks",
|
|
||||||
"full_name": "garronej/test-repo",
|
|
||||||
"git_commits_url": "https://api.github.com/repos/garronej/test-repo/git/commits{/sha}",
|
|
||||||
"git_refs_url": "https://api.github.com/repos/garronej/test-repo/git/refs{/sha}",
|
|
||||||
"git_tags_url": "https://api.github.com/repos/garronej/test-repo/git/tags{/sha}",
|
|
||||||
"git_url": "git://github.com/garronej/test-repo.git",
|
|
||||||
"has_downloads": true,
|
|
||||||
"has_issues": true,
|
|
||||||
"has_pages": false,
|
|
||||||
"has_projects": true,
|
|
||||||
"has_wiki": true,
|
|
||||||
"homepage": "",
|
|
||||||
"hooks_url": "https://api.github.com/repos/garronej/test-repo/hooks",
|
|
||||||
"html_url": "https://github.com/garronej/test-repo",
|
|
||||||
"id": 258429883,
|
|
||||||
"issue_comment_url": "https://api.github.com/repos/garronej/test-repo/issues/comments{/number}",
|
|
||||||
"issue_events_url": "https://api.github.com/repos/garronej/test-repo/issues/events{/number}",
|
|
||||||
"issues_url": "https://api.github.com/repos/garronej/test-repo/issues{/number}",
|
|
||||||
"keys_url": "https://api.github.com/repos/garronej/test-repo/keys{/key_id}",
|
|
||||||
"labels_url": "https://api.github.com/repos/garronej/test-repo/labels{/name}",
|
|
||||||
"language": null,
|
|
||||||
"languages_url": "https://api.github.com/repos/garronej/test-repo/languages",
|
|
||||||
"license": null,
|
|
||||||
"merges_url": "https://api.github.com/repos/garronej/test-repo/merges",
|
|
||||||
"milestones_url": "https://api.github.com/repos/garronej/test-repo/milestones{/number}",
|
|
||||||
"mirror_url": null,
|
|
||||||
"name": "test-repo",
|
|
||||||
"node_id": "MDEwOlJlcG9zaXRvcnkyNTg0Mjk4ODM=",
|
|
||||||
"notifications_url": "https://api.github.com/repos/garronej/test-repo/notifications{?since,all,participating}",
|
|
||||||
"open_issues": 1,
|
|
||||||
"open_issues_count": 1,
|
|
||||||
"owner": {
|
|
||||||
"avatar_url": "https://avatars0.githubusercontent.com/u/6702424?v=4",
|
|
||||||
"events_url": "https://api.github.com/users/garronej/events{/privacy}",
|
|
||||||
"followers_url": "https://api.github.com/users/garronej/followers",
|
|
||||||
"following_url": "https://api.github.com/users/garronej/following{/other_user}",
|
|
||||||
"gists_url": "https://api.github.com/users/garronej/gists{/gist_id}",
|
|
||||||
"gravatar_id": "",
|
|
||||||
"html_url": "https://github.com/garronej",
|
|
||||||
"id": 6702424,
|
|
||||||
"login": "garronej",
|
|
||||||
"node_id": "MDQ6VXNlcjY3MDI0MjQ=",
|
|
||||||
"organizations_url": "https://api.github.com/users/garronej/orgs",
|
|
||||||
"received_events_url": "https://api.github.com/users/garronej/received_events",
|
|
||||||
"repos_url": "https://api.github.com/users/garronej/repos",
|
|
||||||
"site_admin": false,
|
|
||||||
"starred_url": "https://api.github.com/users/garronej/starred{/owner}{/repo}",
|
|
||||||
"subscriptions_url": "https://api.github.com/users/garronej/subscriptions",
|
|
||||||
"type": "User",
|
|
||||||
"url": "https://api.github.com/users/garronej"
|
|
||||||
},
|
|
||||||
"private": false,
|
|
||||||
"pulls_url": "https://api.github.com/repos/garronej/test-repo/pulls{/number}",
|
|
||||||
"pushed_at": "2020-04-30T09:02:25Z",
|
|
||||||
"releases_url": "https://api.github.com/repos/garronej/test-repo/releases{/id}",
|
|
||||||
"size": 31,
|
|
||||||
"ssh_url": "git@github.com:garronej/test-repo.git",
|
|
||||||
"stargazers_count": 1,
|
|
||||||
"stargazers_url": "https://api.github.com/repos/garronej/test-repo/stargazers",
|
|
||||||
"statuses_url": "https://api.github.com/repos/garronej/test-repo/statuses/{sha}",
|
|
||||||
"subscribers_url": "https://api.github.com/repos/garronej/test-repo/subscribers",
|
|
||||||
"subscription_url": "https://api.github.com/repos/garronej/test-repo/subscription",
|
|
||||||
"svn_url": "https://github.com/garronej/test-repo",
|
|
||||||
"tags_url": "https://api.github.com/repos/garronej/test-repo/tags",
|
|
||||||
"teams_url": "https://api.github.com/repos/garronej/test-repo/teams",
|
|
||||||
"trees_url": "https://api.github.com/repos/garronej/test-repo/git/trees{/sha}",
|
|
||||||
"updated_at": "2020-04-30T09:00:23Z",
|
|
||||||
"url": "https://api.github.com/repos/garronej/test-repo",
|
|
||||||
"watchers": 1,
|
|
||||||
"watchers_count": 1
|
|
||||||
},
|
|
||||||
"sender": {
|
|
||||||
"avatar_url": "https://avatars0.githubusercontent.com/u/6702424?v=4",
|
|
||||||
"events_url": "https://api.github.com/users/garronej/events{/privacy}",
|
|
||||||
"followers_url": "https://api.github.com/users/garronej/followers",
|
|
||||||
"following_url": "https://api.github.com/users/garronej/following{/other_user}",
|
|
||||||
"gists_url": "https://api.github.com/users/garronej/gists{/gist_id}",
|
|
||||||
"gravatar_id": "",
|
|
||||||
"html_url": "https://github.com/garronej",
|
|
||||||
"id": 6702424,
|
|
||||||
"login": "garronej",
|
|
||||||
"node_id": "MDQ6VXNlcjY3MDI0MjQ=",
|
|
||||||
"organizations_url": "https://api.github.com/users/garronej/orgs",
|
|
||||||
"received_events_url": "https://api.github.com/users/garronej/received_events",
|
|
||||||
"repos_url": "https://api.github.com/users/garronej/repos",
|
|
||||||
"site_admin": false,
|
|
||||||
"starred_url": "https://api.github.com/users/garronej/starred{/owner}{/repo}",
|
|
||||||
"subscriptions_url": "https://api.github.com/users/garronej/subscriptions",
|
|
||||||
"type": "User",
|
|
||||||
"url": "https://api.github.com/users/garronej"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"workspace": "/home/runner/work/test-repo/test-repo",
|
|
||||||
"action": "run2",
|
|
||||||
"event_path": "/home/runner/work/_temp/_github_workflow/event.json"
|
|
||||||
}
|
|
||||||
|
|
@ -1,185 +0,0 @@
|
||||||
|
|
||||||
{
|
|
||||||
"token": "***",
|
|
||||||
"job": "test_node",
|
|
||||||
"ref": "refs/heads/dev",
|
|
||||||
"sha": "0e848524bf10b4896a939364d27afa2cd459a506",
|
|
||||||
"repository": "garronej/super_waffle",
|
|
||||||
"repository_owner": "garronej",
|
|
||||||
"repositoryUrl": "git://github.com/garronej/super_waffle.git",
|
|
||||||
"run_id": "102085103",
|
|
||||||
"run_number": "4",
|
|
||||||
"actor": "garronej",
|
|
||||||
"workflow": "ci",
|
|
||||||
"head_ref": "",
|
|
||||||
"base_ref": "",
|
|
||||||
"event_name": "push",
|
|
||||||
"event": {
|
|
||||||
"after": "0e848524bf10b4896a939364d27afa2cd459a506",
|
|
||||||
"base_ref": null,
|
|
||||||
"before": "6265951bf62040cca203c93b92fabf1b6a8a8711",
|
|
||||||
"commits": [
|
|
||||||
{
|
|
||||||
"author": {
|
|
||||||
"email": "denoify_ci@github.com",
|
|
||||||
"name": "denoify_ci"
|
|
||||||
},
|
|
||||||
"committer": {
|
|
||||||
"email": "denoify_ci@github.com",
|
|
||||||
"name": "denoify_ci"
|
|
||||||
},
|
|
||||||
"distinct": true,
|
|
||||||
"id": "0e848524bf10b4896a939364d27afa2cd459a506",
|
|
||||||
"message": "Update changelog v0.0.2",
|
|
||||||
"timestamp": "2020-05-12T02:57:00Z",
|
|
||||||
"tree_id": "b6ab3ee15210a0abf662d81364f93c172b7f0138",
|
|
||||||
"url": "https://github.com/garronej/super_waffle/commit/0e848524bf10b4896a939364d27afa2cd459a506"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"compare": "https://github.com/garronej/super_waffle/compare/6265951bf620...0e848524bf10",
|
|
||||||
"created": false,
|
|
||||||
"deleted": false,
|
|
||||||
"forced": false,
|
|
||||||
"head_commit": {
|
|
||||||
"author": {
|
|
||||||
"email": "denoify_ci@github.com",
|
|
||||||
"name": "denoify_ci"
|
|
||||||
},
|
|
||||||
"committer": {
|
|
||||||
"email": "denoify_ci@github.com",
|
|
||||||
"name": "denoify_ci"
|
|
||||||
},
|
|
||||||
"distinct": true,
|
|
||||||
"id": "0e848524bf10b4896a939364d27afa2cd459a506",
|
|
||||||
"message": "Update changelog v0.0.2",
|
|
||||||
"timestamp": "2020-05-12T02:57:00Z",
|
|
||||||
"tree_id": "b6ab3ee15210a0abf662d81364f93c172b7f0138",
|
|
||||||
"url": "https://github.com/garronej/super_waffle/commit/0e848524bf10b4896a939364d27afa2cd459a506"
|
|
||||||
},
|
|
||||||
"pusher": {
|
|
||||||
"email": "joseph.garrone@ensimag.grenoble-inp.fr",
|
|
||||||
"name": "garronej"
|
|
||||||
},
|
|
||||||
"ref": "refs/heads/dev",
|
|
||||||
"repository": {
|
|
||||||
"archive_url": "https://api.github.com/repos/garronej/super_waffle/{archive_format}{/ref}",
|
|
||||||
"archived": false,
|
|
||||||
"assignees_url": "https://api.github.com/repos/garronej/super_waffle/assignees{/user}",
|
|
||||||
"blobs_url": "https://api.github.com/repos/garronej/super_waffle/git/blobs{/sha}",
|
|
||||||
"branches_url": "https://api.github.com/repos/garronej/super_waffle/branches{/branch}",
|
|
||||||
"clone_url": "https://github.com/garronej/super_waffle.git",
|
|
||||||
"collaborators_url": "https://api.github.com/repos/garronej/super_waffle/collaborators{/collaborator}",
|
|
||||||
"comments_url": "https://api.github.com/repos/garronej/super_waffle/comments{/number}",
|
|
||||||
"commits_url": "https://api.github.com/repos/garronej/super_waffle/commits{/sha}",
|
|
||||||
"compare_url": "https://api.github.com/repos/garronej/super_waffle/compare/{base}...{head}",
|
|
||||||
"contents_url": "https://api.github.com/repos/garronej/super_waffle/contents/{+path}",
|
|
||||||
"contributors_url": "https://api.github.com/repos/garronej/super_waffle/contributors",
|
|
||||||
"created_at": 1589246432,
|
|
||||||
"default_branch": "dev",
|
|
||||||
"deployments_url": "https://api.github.com/repos/garronej/super_waffle/deployments",
|
|
||||||
"description": "oh well",
|
|
||||||
"disabled": false,
|
|
||||||
"downloads_url": "https://api.github.com/repos/garronej/super_waffle/downloads",
|
|
||||||
"events_url": "https://api.github.com/repos/garronej/super_waffle/events",
|
|
||||||
"fork": false,
|
|
||||||
"forks": 0,
|
|
||||||
"forks_count": 0,
|
|
||||||
"forks_url": "https://api.github.com/repos/garronej/super_waffle/forks",
|
|
||||||
"full_name": "garronej/super_waffle",
|
|
||||||
"git_commits_url": "https://api.github.com/repos/garronej/super_waffle/git/commits{/sha}",
|
|
||||||
"git_refs_url": "https://api.github.com/repos/garronej/super_waffle/git/refs{/sha}",
|
|
||||||
"git_tags_url": "https://api.github.com/repos/garronej/super_waffle/git/tags{/sha}",
|
|
||||||
"git_url": "git://github.com/garronej/super_waffle.git",
|
|
||||||
"has_downloads": true,
|
|
||||||
"has_issues": true,
|
|
||||||
"has_pages": false,
|
|
||||||
"has_projects": true,
|
|
||||||
"has_wiki": true,
|
|
||||||
"homepage": null,
|
|
||||||
"hooks_url": "https://api.github.com/repos/garronej/super_waffle/hooks",
|
|
||||||
"html_url": "https://github.com/garronej/super_waffle",
|
|
||||||
"id": 263199352,
|
|
||||||
"issue_comment_url": "https://api.github.com/repos/garronej/super_waffle/issues/comments{/number}",
|
|
||||||
"issue_events_url": "https://api.github.com/repos/garronej/super_waffle/issues/events{/number}",
|
|
||||||
"issues_url": "https://api.github.com/repos/garronej/super_waffle/issues{/number}",
|
|
||||||
"keys_url": "https://api.github.com/repos/garronej/super_waffle/keys{/key_id}",
|
|
||||||
"labels_url": "https://api.github.com/repos/garronej/super_waffle/labels{/name}",
|
|
||||||
"language": "TypeScript",
|
|
||||||
"languages_url": "https://api.github.com/repos/garronej/super_waffle/languages",
|
|
||||||
"license": null,
|
|
||||||
"master_branch": "dev",
|
|
||||||
"merges_url": "https://api.github.com/repos/garronej/super_waffle/merges",
|
|
||||||
"milestones_url": "https://api.github.com/repos/garronej/super_waffle/milestones{/number}",
|
|
||||||
"mirror_url": null,
|
|
||||||
"name": "super_waffle",
|
|
||||||
"node_id": "MDEwOlJlcG9zaXRvcnkyNjMxOTkzNTI=",
|
|
||||||
"notifications_url": "https://api.github.com/repos/garronej/super_waffle/notifications{?since,all,participating}",
|
|
||||||
"open_issues": 0,
|
|
||||||
"open_issues_count": 0,
|
|
||||||
"owner": {
|
|
||||||
"avatar_url": "https://avatars0.githubusercontent.com/u/6702424?v=4",
|
|
||||||
"email": "joseph.garrone@ensimag.grenoble-inp.fr",
|
|
||||||
"events_url": "https://api.github.com/users/garronej/events{/privacy}",
|
|
||||||
"followers_url": "https://api.github.com/users/garronej/followers",
|
|
||||||
"following_url": "https://api.github.com/users/garronej/following{/other_user}",
|
|
||||||
"gists_url": "https://api.github.com/users/garronej/gists{/gist_id}",
|
|
||||||
"gravatar_id": "",
|
|
||||||
"html_url": "https://github.com/garronej",
|
|
||||||
"id": 6702424,
|
|
||||||
"login": "garronej",
|
|
||||||
"name": "garronej",
|
|
||||||
"node_id": "MDQ6VXNlcjY3MDI0MjQ=",
|
|
||||||
"organizations_url": "https://api.github.com/users/garronej/orgs",
|
|
||||||
"received_events_url": "https://api.github.com/users/garronej/received_events",
|
|
||||||
"repos_url": "https://api.github.com/users/garronej/repos",
|
|
||||||
"site_admin": false,
|
|
||||||
"starred_url": "https://api.github.com/users/garronej/starred{/owner}{/repo}",
|
|
||||||
"subscriptions_url": "https://api.github.com/users/garronej/subscriptions",
|
|
||||||
"type": "User",
|
|
||||||
"url": "https://api.github.com/users/garronej"
|
|
||||||
},
|
|
||||||
"private": false,
|
|
||||||
"pulls_url": "https://api.github.com/repos/garronej/super_waffle/pulls{/number}",
|
|
||||||
"pushed_at": 1589252222,
|
|
||||||
"releases_url": "https://api.github.com/repos/garronej/super_waffle/releases{/id}",
|
|
||||||
"size": 13,
|
|
||||||
"ssh_url": "git@github.com:garronej/super_waffle.git",
|
|
||||||
"stargazers": 0,
|
|
||||||
"stargazers_count": 0,
|
|
||||||
"stargazers_url": "https://api.github.com/repos/garronej/super_waffle/stargazers",
|
|
||||||
"statuses_url": "https://api.github.com/repos/garronej/super_waffle/statuses/{sha}",
|
|
||||||
"subscribers_url": "https://api.github.com/repos/garronej/super_waffle/subscribers",
|
|
||||||
"subscription_url": "https://api.github.com/repos/garronej/super_waffle/subscription",
|
|
||||||
"svn_url": "https://github.com/garronej/super_waffle",
|
|
||||||
"tags_url": "https://api.github.com/repos/garronej/super_waffle/tags",
|
|
||||||
"teams_url": "https://api.github.com/repos/garronej/super_waffle/teams",
|
|
||||||
"trees_url": "https://api.github.com/repos/garronej/super_waffle/git/trees{/sha}",
|
|
||||||
"updated_at": "2020-05-12T02:36:00Z",
|
|
||||||
"url": "https://github.com/garronej/super_waffle",
|
|
||||||
"watchers": 0,
|
|
||||||
"watchers_count": 0
|
|
||||||
},
|
|
||||||
"sender": {
|
|
||||||
"avatar_url": "https://avatars0.githubusercontent.com/u/6702424?v=4",
|
|
||||||
"events_url": "https://api.github.com/users/garronej/events{/privacy}",
|
|
||||||
"followers_url": "https://api.github.com/users/garronej/followers",
|
|
||||||
"following_url": "https://api.github.com/users/garronej/following{/other_user}",
|
|
||||||
"gists_url": "https://api.github.com/users/garronej/gists{/gist_id}",
|
|
||||||
"gravatar_id": "",
|
|
||||||
"html_url": "https://github.com/garronej",
|
|
||||||
"id": 6702424,
|
|
||||||
"login": "garronej",
|
|
||||||
"node_id": "MDQ6VXNlcjY3MDI0MjQ=",
|
|
||||||
"organizations_url": "https://api.github.com/users/garronej/orgs",
|
|
||||||
"received_events_url": "https://api.github.com/users/garronej/received_events",
|
|
||||||
"repos_url": "https://api.github.com/users/garronej/repos",
|
|
||||||
"site_admin": false,
|
|
||||||
"starred_url": "https://api.github.com/users/garronej/starred{/owner}{/repo}",
|
|
||||||
"subscriptions_url": "https://api.github.com/users/garronej/subscriptions",
|
|
||||||
"type": "User",
|
|
||||||
"url": "https://api.github.com/users/garronej"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"workspace": "/home/runner/work/super_waffle/super_waffle",
|
|
||||||
"action": "run1"
|
|
||||||
}
|
|
||||||
316
res/tmp.json
316
res/tmp.json
|
|
@ -1,316 +0,0 @@
|
||||||
{
|
|
||||||
"url": "https://api.github.com/repos/denoland/deno_website2/pulls/315",
|
|
||||||
"id": 401601041,
|
|
||||||
"node_id": "MDExOlB1bGxSZXF1ZXN0NDAxNjAxMDQx",
|
|
||||||
"html_url": "https://github.com/denoland/deno_website2/pull/315",
|
|
||||||
"diff_url": "https://github.com/denoland/deno_website2/pull/315.diff",
|
|
||||||
"patch_url": "https://github.com/denoland/deno_website2/pull/315.patch",
|
|
||||||
"issue_url": "https://api.github.com/repos/denoland/deno_website2/issues/315",
|
|
||||||
"number": 315,
|
|
||||||
"state": "open",
|
|
||||||
"locked": false,
|
|
||||||
"title": "Auto-focus Third Party Modules search field",
|
|
||||||
"user": {
|
|
||||||
"login": "chances",
|
|
||||||
"id": 635049,
|
|
||||||
"node_id": "MDQ6VXNlcjYzNTA0OQ==",
|
|
||||||
"avatar_url": "https://avatars2.githubusercontent.com/u/635049?v=4",
|
|
||||||
"gravatar_id": "",
|
|
||||||
"url": "https://api.github.com/users/chances",
|
|
||||||
"html_url": "https://github.com/chances",
|
|
||||||
"followers_url": "https://api.github.com/users/chances/followers",
|
|
||||||
"following_url": "https://api.github.com/users/chances/following{/other_user}",
|
|
||||||
"gists_url": "https://api.github.com/users/chances/gists{/gist_id}",
|
|
||||||
"starred_url": "https://api.github.com/users/chances/starred{/owner}{/repo}",
|
|
||||||
"subscriptions_url": "https://api.github.com/users/chances/subscriptions",
|
|
||||||
"organizations_url": "https://api.github.com/users/chances/orgs",
|
|
||||||
"repos_url": "https://api.github.com/users/chances/repos",
|
|
||||||
"events_url": "https://api.github.com/users/chances/events{/privacy}",
|
|
||||||
"received_events_url": "https://api.github.com/users/chances/received_events",
|
|
||||||
"type": "User",
|
|
||||||
"site_admin": false
|
|
||||||
},
|
|
||||||
"body": "Add the [`autoFocus`](https://material-ui.com/api/text-field/#props) attribute to the Third Party Modules search field for better ergonomics when navigating directly to [deno.land/x](https://deno.land/x).\r\n\r\nRelated to #176.",
|
|
||||||
"created_at": "2020-04-09T19:21:59Z",
|
|
||||||
"updated_at": "2020-04-09T20:15:45Z",
|
|
||||||
"closed_at": null,
|
|
||||||
"merged_at": null,
|
|
||||||
"merge_commit_sha": "321921f786a5788289b5346a4ee7d999a63b46ce",
|
|
||||||
"assignee": null,
|
|
||||||
"assignees": [],
|
|
||||||
"requested_reviewers": [],
|
|
||||||
"requested_teams": [],
|
|
||||||
"labels": [],
|
|
||||||
"milestone": null,
|
|
||||||
"draft": false,
|
|
||||||
"commits_url": "https://api.github.com/repos/denoland/deno_website2/pulls/315/commits",
|
|
||||||
"review_comments_url": "https://api.github.com/repos/denoland/deno_website2/pulls/315/comments",
|
|
||||||
"review_comment_url": "https://api.github.com/repos/denoland/deno_website2/pulls/comments{/number}",
|
|
||||||
"comments_url": "https://api.github.com/repos/denoland/deno_website2/issues/315/comments",
|
|
||||||
"statuses_url": "https://api.github.com/repos/denoland/deno_website2/statuses/841509e864f96e890fed282b436f156b79ccfe12",
|
|
||||||
"head": {
|
|
||||||
"label": "chances:autofocus-module-search",
|
|
||||||
"ref": "autofocus-module-search",
|
|
||||||
"sha": "841509e864f96e890fed282b436f156b79ccfe12",
|
|
||||||
"user": {
|
|
||||||
"login": "chances",
|
|
||||||
"id": 635049,
|
|
||||||
"node_id": "MDQ6VXNlcjYzNTA0OQ==",
|
|
||||||
"avatar_url": "https://avatars2.githubusercontent.com/u/635049?v=4",
|
|
||||||
"gravatar_id": "",
|
|
||||||
"url": "https://api.github.com/users/chances",
|
|
||||||
"html_url": "https://github.com/chances",
|
|
||||||
"followers_url": "https://api.github.com/users/chances/followers",
|
|
||||||
"following_url": "https://api.github.com/users/chances/following{/other_user}",
|
|
||||||
"gists_url": "https://api.github.com/users/chances/gists{/gist_id}",
|
|
||||||
"starred_url": "https://api.github.com/users/chances/starred{/owner}{/repo}",
|
|
||||||
"subscriptions_url": "https://api.github.com/users/chances/subscriptions",
|
|
||||||
"organizations_url": "https://api.github.com/users/chances/orgs",
|
|
||||||
"repos_url": "https://api.github.com/users/chances/repos",
|
|
||||||
"events_url": "https://api.github.com/users/chances/events{/privacy}",
|
|
||||||
"received_events_url": "https://api.github.com/users/chances/received_events",
|
|
||||||
"type": "User",
|
|
||||||
"site_admin": false
|
|
||||||
},
|
|
||||||
"repo": {
|
|
||||||
"id": 253940050,
|
|
||||||
"node_id": "MDEwOlJlcG9zaXRvcnkyNTM5NDAwNTA=",
|
|
||||||
"name": "deno_website2",
|
|
||||||
"full_name": "chances/deno_website2",
|
|
||||||
"private": false,
|
|
||||||
"owner": {
|
|
||||||
"login": "chances",
|
|
||||||
"id": 635049,
|
|
||||||
"node_id": "MDQ6VXNlcjYzNTA0OQ==",
|
|
||||||
"avatar_url": "https://avatars2.githubusercontent.com/u/635049?v=4",
|
|
||||||
"gravatar_id": "",
|
|
||||||
"url": "https://api.github.com/users/chances",
|
|
||||||
"html_url": "https://github.com/chances",
|
|
||||||
"followers_url": "https://api.github.com/users/chances/followers",
|
|
||||||
"following_url": "https://api.github.com/users/chances/following{/other_user}",
|
|
||||||
"gists_url": "https://api.github.com/users/chances/gists{/gist_id}",
|
|
||||||
"starred_url": "https://api.github.com/users/chances/starred{/owner}{/repo}",
|
|
||||||
"subscriptions_url": "https://api.github.com/users/chances/subscriptions",
|
|
||||||
"organizations_url": "https://api.github.com/users/chances/orgs",
|
|
||||||
"repos_url": "https://api.github.com/users/chances/repos",
|
|
||||||
"events_url": "https://api.github.com/users/chances/events{/privacy}",
|
|
||||||
"received_events_url": "https://api.github.com/users/chances/received_events",
|
|
||||||
"type": "User",
|
|
||||||
"site_admin": false
|
|
||||||
},
|
|
||||||
"html_url": "https://github.com/chances/deno_website2",
|
|
||||||
"description": "deno.land website ",
|
|
||||||
"fork": true,
|
|
||||||
"url": "https://api.github.com/repos/chances/deno_website2",
|
|
||||||
"forks_url": "https://api.github.com/repos/chances/deno_website2/forks",
|
|
||||||
"keys_url": "https://api.github.com/repos/chances/deno_website2/keys{/key_id}",
|
|
||||||
"collaborators_url": "https://api.github.com/repos/chances/deno_website2/collaborators{/collaborator}",
|
|
||||||
"teams_url": "https://api.github.com/repos/chances/deno_website2/teams",
|
|
||||||
"hooks_url": "https://api.github.com/repos/chances/deno_website2/hooks",
|
|
||||||
"issue_events_url": "https://api.github.com/repos/chances/deno_website2/issues/events{/number}",
|
|
||||||
"events_url": "https://api.github.com/repos/chances/deno_website2/events",
|
|
||||||
"assignees_url": "https://api.github.com/repos/chances/deno_website2/assignees{/user}",
|
|
||||||
"branches_url": "https://api.github.com/repos/chances/deno_website2/branches{/branch}",
|
|
||||||
"tags_url": "https://api.github.com/repos/chances/deno_website2/tags",
|
|
||||||
"blobs_url": "https://api.github.com/repos/chances/deno_website2/git/blobs{/sha}",
|
|
||||||
"git_tags_url": "https://api.github.com/repos/chances/deno_website2/git/tags{/sha}",
|
|
||||||
"git_refs_url": "https://api.github.com/repos/chances/deno_website2/git/refs{/sha}",
|
|
||||||
"trees_url": "https://api.github.com/repos/chances/deno_website2/git/trees{/sha}",
|
|
||||||
"statuses_url": "https://api.github.com/repos/chances/deno_website2/statuses/{sha}",
|
|
||||||
"languages_url": "https://api.github.com/repos/chances/deno_website2/languages",
|
|
||||||
"stargazers_url": "https://api.github.com/repos/chances/deno_website2/stargazers",
|
|
||||||
"contributors_url": "https://api.github.com/repos/chances/deno_website2/contributors",
|
|
||||||
"subscribers_url": "https://api.github.com/repos/chances/deno_website2/subscribers",
|
|
||||||
"subscription_url": "https://api.github.com/repos/chances/deno_website2/subscription",
|
|
||||||
"commits_url": "https://api.github.com/repos/chances/deno_website2/commits{/sha}",
|
|
||||||
"git_commits_url": "https://api.github.com/repos/chances/deno_website2/git/commits{/sha}",
|
|
||||||
"comments_url": "https://api.github.com/repos/chances/deno_website2/comments{/number}",
|
|
||||||
"issue_comment_url": "https://api.github.com/repos/chances/deno_website2/issues/comments{/number}",
|
|
||||||
"contents_url": "https://api.github.com/repos/chances/deno_website2/contents/{+path}",
|
|
||||||
"compare_url": "https://api.github.com/repos/chances/deno_website2/compare/{base}...{head}",
|
|
||||||
"merges_url": "https://api.github.com/repos/chances/deno_website2/merges",
|
|
||||||
"archive_url": "https://api.github.com/repos/chances/deno_website2/{archive_format}{/ref}",
|
|
||||||
"downloads_url": "https://api.github.com/repos/chances/deno_website2/downloads",
|
|
||||||
"issues_url": "https://api.github.com/repos/chances/deno_website2/issues{/number}",
|
|
||||||
"pulls_url": "https://api.github.com/repos/chances/deno_website2/pulls{/number}",
|
|
||||||
"milestones_url": "https://api.github.com/repos/chances/deno_website2/milestones{/number}",
|
|
||||||
"notifications_url": "https://api.github.com/repos/chances/deno_website2/notifications{?since,all,participating}",
|
|
||||||
"labels_url": "https://api.github.com/repos/chances/deno_website2/labels{/name}",
|
|
||||||
"releases_url": "https://api.github.com/repos/chances/deno_website2/releases{/id}",
|
|
||||||
"deployments_url": "https://api.github.com/repos/chances/deno_website2/deployments",
|
|
||||||
"created_at": "2020-04-07T23:58:20Z",
|
|
||||||
"updated_at": "2020-04-07T23:58:22Z",
|
|
||||||
"pushed_at": "2020-04-09T19:52:19Z",
|
|
||||||
"git_url": "git://github.com/chances/deno_website2.git",
|
|
||||||
"ssh_url": "git@github.com:chances/deno_website2.git",
|
|
||||||
"clone_url": "https://github.com/chances/deno_website2.git",
|
|
||||||
"svn_url": "https://github.com/chances/deno_website2",
|
|
||||||
"homepage": "https://deno.land/",
|
|
||||||
"size": 1436,
|
|
||||||
"stargazers_count": 0,
|
|
||||||
"watchers_count": 0,
|
|
||||||
"language": null,
|
|
||||||
"has_issues": false,
|
|
||||||
"has_projects": true,
|
|
||||||
"has_downloads": true,
|
|
||||||
"has_wiki": false,
|
|
||||||
"has_pages": false,
|
|
||||||
"forks_count": 0,
|
|
||||||
"mirror_url": null,
|
|
||||||
"archived": false,
|
|
||||||
"disabled": false,
|
|
||||||
"open_issues_count": 0,
|
|
||||||
"license": null,
|
|
||||||
"forks": 0,
|
|
||||||
"open_issues": 0,
|
|
||||||
"watchers": 0,
|
|
||||||
"default_branch": "master"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"base": {
|
|
||||||
"label": "denoland:master",
|
|
||||||
"ref": "master",
|
|
||||||
"sha": "dd04ec78e2d1ae7d8b43eca1232e719574e9985a",
|
|
||||||
"user": {
|
|
||||||
"login": "denoland",
|
|
||||||
"id": 42048915,
|
|
||||||
"node_id": "MDEyOk9yZ2FuaXphdGlvbjQyMDQ4OTE1",
|
|
||||||
"avatar_url": "https://avatars1.githubusercontent.com/u/42048915?v=4",
|
|
||||||
"gravatar_id": "",
|
|
||||||
"url": "https://api.github.com/users/denoland",
|
|
||||||
"html_url": "https://github.com/denoland",
|
|
||||||
"followers_url": "https://api.github.com/users/denoland/followers",
|
|
||||||
"following_url": "https://api.github.com/users/denoland/following{/other_user}",
|
|
||||||
"gists_url": "https://api.github.com/users/denoland/gists{/gist_id}",
|
|
||||||
"starred_url": "https://api.github.com/users/denoland/starred{/owner}{/repo}",
|
|
||||||
"subscriptions_url": "https://api.github.com/users/denoland/subscriptions",
|
|
||||||
"organizations_url": "https://api.github.com/users/denoland/orgs",
|
|
||||||
"repos_url": "https://api.github.com/users/denoland/repos",
|
|
||||||
"events_url": "https://api.github.com/users/denoland/events{/privacy}",
|
|
||||||
"received_events_url": "https://api.github.com/users/denoland/received_events",
|
|
||||||
"type": "Organization",
|
|
||||||
"site_admin": false
|
|
||||||
},
|
|
||||||
"repo": {
|
|
||||||
"id": 216156518,
|
|
||||||
"node_id": "MDEwOlJlcG9zaXRvcnkyMTYxNTY1MTg=",
|
|
||||||
"name": "deno_website2",
|
|
||||||
"full_name": "denoland/deno_website2",
|
|
||||||
"private": false,
|
|
||||||
"owner": {
|
|
||||||
"login": "denoland",
|
|
||||||
"id": 42048915,
|
|
||||||
"node_id": "MDEyOk9yZ2FuaXphdGlvbjQyMDQ4OTE1",
|
|
||||||
"avatar_url": "https://avatars1.githubusercontent.com/u/42048915?v=4",
|
|
||||||
"gravatar_id": "",
|
|
||||||
"url": "https://api.github.com/users/denoland",
|
|
||||||
"html_url": "https://github.com/denoland",
|
|
||||||
"followers_url": "https://api.github.com/users/denoland/followers",
|
|
||||||
"following_url": "https://api.github.com/users/denoland/following{/other_user}",
|
|
||||||
"gists_url": "https://api.github.com/users/denoland/gists{/gist_id}",
|
|
||||||
"starred_url": "https://api.github.com/users/denoland/starred{/owner}{/repo}",
|
|
||||||
"subscriptions_url": "https://api.github.com/users/denoland/subscriptions",
|
|
||||||
"organizations_url": "https://api.github.com/users/denoland/orgs",
|
|
||||||
"repos_url": "https://api.github.com/users/denoland/repos",
|
|
||||||
"events_url": "https://api.github.com/users/denoland/events{/privacy}",
|
|
||||||
"received_events_url": "https://api.github.com/users/denoland/received_events",
|
|
||||||
"type": "Organization",
|
|
||||||
"site_admin": false
|
|
||||||
},
|
|
||||||
"html_url": "https://github.com/denoland/deno_website2",
|
|
||||||
"description": "deno.land website ",
|
|
||||||
"fork": false,
|
|
||||||
"url": "https://api.github.com/repos/denoland/deno_website2",
|
|
||||||
"forks_url": "https://api.github.com/repos/denoland/deno_website2/forks",
|
|
||||||
"keys_url": "https://api.github.com/repos/denoland/deno_website2/keys{/key_id}",
|
|
||||||
"collaborators_url": "https://api.github.com/repos/denoland/deno_website2/collaborators{/collaborator}",
|
|
||||||
"teams_url": "https://api.github.com/repos/denoland/deno_website2/teams",
|
|
||||||
"hooks_url": "https://api.github.com/repos/denoland/deno_website2/hooks",
|
|
||||||
"issue_events_url": "https://api.github.com/repos/denoland/deno_website2/issues/events{/number}",
|
|
||||||
"events_url": "https://api.github.com/repos/denoland/deno_website2/events",
|
|
||||||
"assignees_url": "https://api.github.com/repos/denoland/deno_website2/assignees{/user}",
|
|
||||||
"branches_url": "https://api.github.com/repos/denoland/deno_website2/branches{/branch}",
|
|
||||||
"tags_url": "https://api.github.com/repos/denoland/deno_website2/tags",
|
|
||||||
"blobs_url": "https://api.github.com/repos/denoland/deno_website2/git/blobs{/sha}",
|
|
||||||
"git_tags_url": "https://api.github.com/repos/denoland/deno_website2/git/tags{/sha}",
|
|
||||||
"git_refs_url": "https://api.github.com/repos/denoland/deno_website2/git/refs{/sha}",
|
|
||||||
"trees_url": "https://api.github.com/repos/denoland/deno_website2/git/trees{/sha}",
|
|
||||||
"statuses_url": "https://api.github.com/repos/denoland/deno_website2/statuses/{sha}",
|
|
||||||
"languages_url": "https://api.github.com/repos/denoland/deno_website2/languages",
|
|
||||||
"stargazers_url": "https://api.github.com/repos/denoland/deno_website2/stargazers",
|
|
||||||
"contributors_url": "https://api.github.com/repos/denoland/deno_website2/contributors",
|
|
||||||
"subscribers_url": "https://api.github.com/repos/denoland/deno_website2/subscribers",
|
|
||||||
"subscription_url": "https://api.github.com/repos/denoland/deno_website2/subscription",
|
|
||||||
"commits_url": "https://api.github.com/repos/denoland/deno_website2/commits{/sha}",
|
|
||||||
"git_commits_url": "https://api.github.com/repos/denoland/deno_website2/git/commits{/sha}",
|
|
||||||
"comments_url": "https://api.github.com/repos/denoland/deno_website2/comments{/number}",
|
|
||||||
"issue_comment_url": "https://api.github.com/repos/denoland/deno_website2/issues/comments{/number}",
|
|
||||||
"contents_url": "https://api.github.com/repos/denoland/deno_website2/contents/{+path}",
|
|
||||||
"compare_url": "https://api.github.com/repos/denoland/deno_website2/compare/{base}...{head}",
|
|
||||||
"merges_url": "https://api.github.com/repos/denoland/deno_website2/merges",
|
|
||||||
"archive_url": "https://api.github.com/repos/denoland/deno_website2/{archive_format}{/ref}",
|
|
||||||
"downloads_url": "https://api.github.com/repos/denoland/deno_website2/downloads",
|
|
||||||
"issues_url": "https://api.github.com/repos/denoland/deno_website2/issues{/number}",
|
|
||||||
"pulls_url": "https://api.github.com/repos/denoland/deno_website2/pulls{/number}",
|
|
||||||
"milestones_url": "https://api.github.com/repos/denoland/deno_website2/milestones{/number}",
|
|
||||||
"notifications_url": "https://api.github.com/repos/denoland/deno_website2/notifications{?since,all,participating}",
|
|
||||||
"labels_url": "https://api.github.com/repos/denoland/deno_website2/labels{/name}",
|
|
||||||
"releases_url": "https://api.github.com/repos/denoland/deno_website2/releases{/id}",
|
|
||||||
"deployments_url": "https://api.github.com/repos/denoland/deno_website2/deployments",
|
|
||||||
"created_at": "2019-10-19T05:53:43Z",
|
|
||||||
"updated_at": "2020-05-12T22:28:15Z",
|
|
||||||
"pushed_at": "2020-05-12T22:35:23Z",
|
|
||||||
"git_url": "git://github.com/denoland/deno_website2.git",
|
|
||||||
"ssh_url": "git@github.com:denoland/deno_website2.git",
|
|
||||||
"clone_url": "https://github.com/denoland/deno_website2.git",
|
|
||||||
"svn_url": "https://github.com/denoland/deno_website2",
|
|
||||||
"homepage": "https://deno.land/",
|
|
||||||
"size": 1517,
|
|
||||||
"stargazers_count": 187,
|
|
||||||
"watchers_count": 187,
|
|
||||||
"language": "TypeScript",
|
|
||||||
"has_issues": true,
|
|
||||||
"has_projects": false,
|
|
||||||
"has_downloads": true,
|
|
||||||
"has_wiki": false,
|
|
||||||
"has_pages": false,
|
|
||||||
"forks_count": 131,
|
|
||||||
"mirror_url": null,
|
|
||||||
"archived": false,
|
|
||||||
"disabled": false,
|
|
||||||
"open_issues_count": 32,
|
|
||||||
"license": null,
|
|
||||||
"forks": 131,
|
|
||||||
"open_issues": 32,
|
|
||||||
"watchers": 187,
|
|
||||||
"default_branch": "master"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"_links": {
|
|
||||||
"self": {
|
|
||||||
"href": "https://api.github.com/repos/denoland/deno_website2/pulls/315"
|
|
||||||
},
|
|
||||||
"html": {
|
|
||||||
"href": "https://github.com/denoland/deno_website2/pull/315"
|
|
||||||
},
|
|
||||||
"issue": {
|
|
||||||
"href": "https://api.github.com/repos/denoland/deno_website2/issues/315"
|
|
||||||
},
|
|
||||||
"comments": {
|
|
||||||
"href": "https://api.github.com/repos/denoland/deno_website2/issues/315/comments"
|
|
||||||
},
|
|
||||||
"review_comments": {
|
|
||||||
"href": "https://api.github.com/repos/denoland/deno_website2/pulls/315/comments"
|
|
||||||
},
|
|
||||||
"review_comment": {
|
|
||||||
"href": "https://api.github.com/repos/denoland/deno_website2/pulls/comments{/number}"
|
|
||||||
},
|
|
||||||
"commits": {
|
|
||||||
"href": "https://api.github.com/repos/denoland/deno_website2/pulls/315/commits"
|
|
||||||
},
|
|
||||||
"statuses": {
|
|
||||||
"href": "https://api.github.com/repos/denoland/deno_website2/statuses/841509e864f96e890fed282b436f156b79ccfe12"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"author_association": "CONTRIBUTOR"
|
|
||||||
}
|
|
||||||
150
scripts/link-in-app.ts
Normal file
150
scripts/link-in-app.ts
Normal file
|
|
@ -0,0 +1,150 @@
|
||||||
|
import { execSync } from "child_process";
|
||||||
|
import { join as pathJoin, relative as pathRelative } from "path";
|
||||||
|
import * as fs from "fs";
|
||||||
|
import * as os from "os";
|
||||||
|
|
||||||
|
const singletonDependencies: string[] = ["react", "@types/react"];
|
||||||
|
|
||||||
|
// For example [ "@emotion" ] it's more convenient than
|
||||||
|
// having to list every sub emotion packages (@emotion/css @emotion/utils ...)
|
||||||
|
// in singletonDependencies
|
||||||
|
const namespaceSingletonDependencies: string[] = [];
|
||||||
|
|
||||||
|
const rootDirPath = pathJoin(__dirname, "..");
|
||||||
|
|
||||||
|
//NOTE: This is only required because of: https://github.com/garronej/ts-ci/blob/c0e207b9677523d4ec97fe672ddd72ccbb3c1cc4/README.md?plain=1#L54-L58
|
||||||
|
//If you change the outDir in tsconfig.json you must update this block.
|
||||||
|
{
|
||||||
|
let modifiedPackageJsonContent = fs
|
||||||
|
.readFileSync(pathJoin(rootDirPath, "package.json"))
|
||||||
|
.toString("utf8");
|
||||||
|
|
||||||
|
modifiedPackageJsonContent = (() => {
|
||||||
|
const o = JSON.parse(modifiedPackageJsonContent);
|
||||||
|
|
||||||
|
delete o.files;
|
||||||
|
|
||||||
|
return JSON.stringify(o, null, 2);
|
||||||
|
})();
|
||||||
|
|
||||||
|
modifiedPackageJsonContent = modifiedPackageJsonContent
|
||||||
|
.replace(/"dist\//g, '"')
|
||||||
|
.replace(/"\.\/dist\//g, '"./')
|
||||||
|
.replace(/"!dist\//g, '"!')
|
||||||
|
.replace(/"!\.\/dist\//g, '"!./');
|
||||||
|
|
||||||
|
fs.writeFileSync(
|
||||||
|
pathJoin(rootDirPath, "dist", "package.json"),
|
||||||
|
Buffer.from(modifiedPackageJsonContent, "utf8")
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
const commonThirdPartyDeps = [
|
||||||
|
...namespaceSingletonDependencies
|
||||||
|
.map(namespaceModuleName =>
|
||||||
|
fs
|
||||||
|
.readdirSync(pathJoin(rootDirPath, "node_modules", namespaceModuleName))
|
||||||
|
.map(submoduleName => `${namespaceModuleName}/${submoduleName}`)
|
||||||
|
)
|
||||||
|
.reduce((prev, curr) => [...prev, ...curr], []),
|
||||||
|
...singletonDependencies
|
||||||
|
];
|
||||||
|
|
||||||
|
const yarnGlobalDirPath = pathJoin(rootDirPath, ".yarn_home");
|
||||||
|
|
||||||
|
fs.rmSync(yarnGlobalDirPath, { "recursive": true, "force": true });
|
||||||
|
fs.mkdirSync(yarnGlobalDirPath);
|
||||||
|
|
||||||
|
const execYarnLink = (params: { targetModuleName?: string; cwd: string }) => {
|
||||||
|
const { targetModuleName, cwd } = params;
|
||||||
|
|
||||||
|
const cmd = [
|
||||||
|
"yarn",
|
||||||
|
"link",
|
||||||
|
...(targetModuleName !== undefined ? [targetModuleName] : ["--no-bin-links"])
|
||||||
|
].join(" ");
|
||||||
|
|
||||||
|
console.log(`$ cd ${pathRelative(rootDirPath, cwd) || "."} && ${cmd}`);
|
||||||
|
|
||||||
|
execSync(cmd, {
|
||||||
|
cwd,
|
||||||
|
env: {
|
||||||
|
...process.env,
|
||||||
|
...(os.platform() === "win32"
|
||||||
|
? { USERPROFILE: yarnGlobalDirPath }
|
||||||
|
: { HOME: yarnGlobalDirPath })
|
||||||
|
}
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
const testAppPaths = (() => {
|
||||||
|
const [, , ...testAppNames] = process.argv;
|
||||||
|
|
||||||
|
return testAppNames
|
||||||
|
.map(testAppName => {
|
||||||
|
const testAppPath = pathJoin(rootDirPath, "..", testAppName);
|
||||||
|
|
||||||
|
if (fs.existsSync(testAppPath)) {
|
||||||
|
return testAppPath;
|
||||||
|
}
|
||||||
|
|
||||||
|
console.warn(`Skipping ${testAppName} since it cant be found here: ${testAppPath}`);
|
||||||
|
|
||||||
|
return undefined;
|
||||||
|
})
|
||||||
|
.filter((path): path is string => path !== undefined);
|
||||||
|
})();
|
||||||
|
|
||||||
|
if (testAppPaths.length === 0) {
|
||||||
|
console.error("No test app to link into!");
|
||||||
|
process.exit(-1);
|
||||||
|
}
|
||||||
|
|
||||||
|
testAppPaths.forEach(testAppPath => execSync("yarn install", { "cwd": testAppPath }));
|
||||||
|
|
||||||
|
console.log("=== Linking common dependencies ===");
|
||||||
|
|
||||||
|
const total = commonThirdPartyDeps.length;
|
||||||
|
let current = 0;
|
||||||
|
|
||||||
|
commonThirdPartyDeps.forEach(commonThirdPartyDep => {
|
||||||
|
current++;
|
||||||
|
|
||||||
|
console.log(`${current}/${total} ${commonThirdPartyDep}`);
|
||||||
|
|
||||||
|
const localInstallPath = pathJoin(
|
||||||
|
...[
|
||||||
|
rootDirPath,
|
||||||
|
"node_modules",
|
||||||
|
...(commonThirdPartyDep.startsWith("@")
|
||||||
|
? commonThirdPartyDep.split("/")
|
||||||
|
: [commonThirdPartyDep])
|
||||||
|
]
|
||||||
|
);
|
||||||
|
|
||||||
|
execYarnLink({ "cwd": localInstallPath });
|
||||||
|
});
|
||||||
|
|
||||||
|
commonThirdPartyDeps.forEach(commonThirdPartyDep =>
|
||||||
|
testAppPaths.forEach(testAppPath =>
|
||||||
|
execYarnLink({
|
||||||
|
"cwd": testAppPath,
|
||||||
|
"targetModuleName": commonThirdPartyDep
|
||||||
|
})
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
|
console.log("=== Linking in house dependencies ===");
|
||||||
|
|
||||||
|
execYarnLink({ "cwd": pathJoin(rootDirPath, "dist") });
|
||||||
|
|
||||||
|
testAppPaths.forEach(testAppPath =>
|
||||||
|
execYarnLink({
|
||||||
|
"cwd": testAppPath,
|
||||||
|
"targetModuleName": JSON.parse(
|
||||||
|
fs.readFileSync(pathJoin(rootDirPath, "package.json")).toString("utf8")
|
||||||
|
)["name"]
|
||||||
|
})
|
||||||
|
);
|
||||||
|
|
||||||
|
export {};
|
||||||
5
src/MyReactComponent.tsx
Normal file
5
src/MyReactComponent.tsx
Normal file
|
|
@ -0,0 +1,5 @@
|
||||||
|
export function MyReactComponent() {
|
||||||
|
return <div>My React Component</div>;
|
||||||
|
}
|
||||||
|
|
||||||
|
export default MyReactComponent;
|
||||||
|
|
@ -1,33 +0,0 @@
|
||||||
|
|
||||||
import * as fs from "fs";
|
|
||||||
import * as path from "path";
|
|
||||||
import { inputNames, getInputDescription, getInputDefault } from "../inputHelper";
|
|
||||||
import { outputNames, getOutputDescription } from "../outputHelper";
|
|
||||||
|
|
||||||
const projectRoot = path.join(__dirname, "..", "..");
|
|
||||||
|
|
||||||
const packageJsonParsed = require(path.join(projectRoot, "package.json"));
|
|
||||||
|
|
||||||
fs.writeFileSync(
|
|
||||||
path.join(projectRoot, "action.yml"),
|
|
||||||
Buffer.from([
|
|
||||||
`name: '${packageJsonParsed["name"]}'`,
|
|
||||||
`description: '${packageJsonParsed["description"]}'`,
|
|
||||||
`author: '${packageJsonParsed["author"]}'`,
|
|
||||||
`inputs:`,
|
|
||||||
...inputNames.map((inputName, i) => [
|
|
||||||
` ${inputName}:`,
|
|
||||||
` required: ${i === 0 ? "true" : "false"}`,
|
|
||||||
` description: '${getInputDescription(inputName).replace(/'/g,"''")}'`,
|
|
||||||
...[getInputDefault(inputName)].filter(x=>x!==undefined).map(s=>` default: '${s}'`)
|
|
||||||
].join("\n")),
|
|
||||||
`outputs:`,
|
|
||||||
...outputNames.map((outputName, i) => [
|
|
||||||
` ${outputName}:`,
|
|
||||||
` description: '${getOutputDescription(outputName).replace(/'/g,"''")}'`
|
|
||||||
].join("\n")),
|
|
||||||
`runs:`,
|
|
||||||
` using: 'node16'`,
|
|
||||||
` main: 'dist/index.js'`
|
|
||||||
].join("\n"), "utf8")
|
|
||||||
);
|
|
||||||
|
|
@ -1,47 +0,0 @@
|
||||||
import { getActionParamsFactory } from "./inputHelper";
|
|
||||||
import { createOctokit } from "./tools/createOctokit";
|
|
||||||
|
|
||||||
export const { getActionParams } = getActionParamsFactory({
|
|
||||||
"inputNameSubset": [
|
|
||||||
"owner",
|
|
||||||
"repo",
|
|
||||||
"event_type",
|
|
||||||
"client_payload_json",
|
|
||||||
"github_token"
|
|
||||||
] as const
|
|
||||||
});
|
|
||||||
|
|
||||||
export type Params = ReturnType<typeof getActionParams>;
|
|
||||||
|
|
||||||
|
|
||||||
type CoreLike = {
|
|
||||||
debug: (message: string) => void;
|
|
||||||
};
|
|
||||||
|
|
||||||
export async function action(
|
|
||||||
_actionName: "dispatch_event",
|
|
||||||
params: Params,
|
|
||||||
core: CoreLike
|
|
||||||
) {
|
|
||||||
|
|
||||||
const { owner, repo, event_type, client_payload_json, github_token } = params;
|
|
||||||
|
|
||||||
core.debug(JSON.stringify({ _actionName, params }));
|
|
||||||
|
|
||||||
|
|
||||||
const octokit = createOctokit({ github_token });
|
|
||||||
|
|
||||||
await octokit.repos.createDispatchEvent({
|
|
||||||
owner,
|
|
||||||
repo,
|
|
||||||
event_type,
|
|
||||||
|
|
||||||
...(!!client_payload_json ?
|
|
||||||
{ "client_payload": JSON.parse(client_payload_json) } :
|
|
||||||
{}
|
|
||||||
)
|
|
||||||
});
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
@ -1,61 +0,0 @@
|
||||||
|
|
||||||
import fetch from "node-fetch";
|
|
||||||
const urlJoin: typeof import("path").join = require("url-join");
|
|
||||||
import { setOutputFactory } from "./outputHelper";
|
|
||||||
import { NpmModuleVersion } from "./tools/NpmModuleVersion";
|
|
||||||
|
|
||||||
import { getActionParamsFactory } from "./inputHelper";
|
|
||||||
|
|
||||||
export const { getActionParams } = getActionParamsFactory({
|
|
||||||
"inputNameSubset": [
|
|
||||||
"owner",
|
|
||||||
"repo",
|
|
||||||
"branch",
|
|
||||||
"compare_to_version"
|
|
||||||
] as const
|
|
||||||
});
|
|
||||||
|
|
||||||
export type Params = ReturnType<typeof getActionParams>;
|
|
||||||
|
|
||||||
type CoreLike = {
|
|
||||||
debug: (message: string) => void;
|
|
||||||
};
|
|
||||||
|
|
||||||
export const { setOutput } = setOutputFactory<"version" | "compare_result">();
|
|
||||||
|
|
||||||
export async function action(
|
|
||||||
_actionName: "get_package_json_version",
|
|
||||||
params: Params,
|
|
||||||
core: CoreLike
|
|
||||||
): Promise<Parameters<typeof setOutput>[0]> {
|
|
||||||
|
|
||||||
core.debug(JSON.stringify(params));
|
|
||||||
|
|
||||||
const { owner, repo, branch, compare_to_version } = params;
|
|
||||||
|
|
||||||
const version = await fetch(
|
|
||||||
urlJoin(
|
|
||||||
"https://raw.github.com",
|
|
||||||
owner,
|
|
||||||
repo,
|
|
||||||
branch,
|
|
||||||
"package.json"
|
|
||||||
)
|
|
||||||
)
|
|
||||||
.then(res => res.text())
|
|
||||||
.then(text => JSON.parse(text))
|
|
||||||
.then(({ version }) => version as string)
|
|
||||||
.catch(() => "")
|
|
||||||
;
|
|
||||||
|
|
||||||
core.debug(`Version on ${owner}/${repo}#${branch} is ${version}`);
|
|
||||||
|
|
||||||
return {
|
|
||||||
version,
|
|
||||||
"compare_result": NpmModuleVersion.compare(
|
|
||||||
NpmModuleVersion.parse(version || "0.0.0"),
|
|
||||||
NpmModuleVersion.parse(compare_to_version)
|
|
||||||
).toString()
|
|
||||||
};
|
|
||||||
|
|
||||||
}
|
|
||||||
3
src/index.ts
Normal file
3
src/index.ts
Normal file
|
|
@ -0,0 +1,3 @@
|
||||||
|
export * from "./myFunction";
|
||||||
|
export * from "./myObject";
|
||||||
|
export * from "./MyReactComponent";
|
||||||
|
|
@ -1,129 +0,0 @@
|
||||||
|
|
||||||
import * as core from '@actions/core';
|
|
||||||
|
|
||||||
export const inputNames = [
|
|
||||||
"action_name",
|
|
||||||
"owner",
|
|
||||||
"repo",
|
|
||||||
"event_type",
|
|
||||||
"client_payload_json",
|
|
||||||
"branch",
|
|
||||||
"exclude_commit_from_author_names_json",
|
|
||||||
"module_name",
|
|
||||||
"compare_to_version",
|
|
||||||
"input_string",
|
|
||||||
"search_value",
|
|
||||||
"replace_value",
|
|
||||||
"should_webhook_be_enabled",
|
|
||||||
"github_token"
|
|
||||||
] as const;
|
|
||||||
|
|
||||||
export const availableActions = [
|
|
||||||
"get_package_json_version",
|
|
||||||
"dispatch_event",
|
|
||||||
"update_changelog",
|
|
||||||
"sync_package_and_package_lock_version",
|
|
||||||
"setup_repo_webhook_for_deno_land_publishing",
|
|
||||||
"is_well_formed_and_available_module_name",
|
|
||||||
"string_replace",
|
|
||||||
"tell_if_project_uses_npm_or_yarn",
|
|
||||||
"is_package_json_version_upgraded"
|
|
||||||
] as const;
|
|
||||||
|
|
||||||
|
|
||||||
export function getInputDescription(inputName: typeof inputNames[number]): string {
|
|
||||||
switch(inputName){
|
|
||||||
case "action_name": return [
|
|
||||||
`Action to run, one of: `,
|
|
||||||
availableActions.map(s=>`"${s}"`).join(", ")
|
|
||||||
].join("");
|
|
||||||
case "owner": return [
|
|
||||||
"Repository owner, example: 'garronej',",
|
|
||||||
"github.repository_owner"
|
|
||||||
].join("");
|
|
||||||
case "repo": return [
|
|
||||||
"Repository name, example: ",
|
|
||||||
"'evt', github.event.repository.name"
|
|
||||||
].join("");
|
|
||||||
case "event_type": return [
|
|
||||||
"see: https://developer.github.com/v3/",
|
|
||||||
"repos/#create-a-repository-dispatch-event"
|
|
||||||
].join("");
|
|
||||||
case "client_payload_json": return [
|
|
||||||
"Example '{\"p\":\"foo\"}' see: https://developer.github.com/v3/",
|
|
||||||
"repos/#create-a-repository-dispatch-event"
|
|
||||||
].join("");
|
|
||||||
case "branch": return "Example: default ( can also be a sha )";
|
|
||||||
case "exclude_commit_from_author_names_json": return [
|
|
||||||
"For update_changelog, do not includes commit from user ",
|
|
||||||
`certain committer in the CHANGELOG.md, ex: '["denoify_ci"]'`
|
|
||||||
].join("");
|
|
||||||
case "module_name": return [
|
|
||||||
`A candidate module name, Example: lodash`
|
|
||||||
].join("");
|
|
||||||
case "compare_to_version": return [
|
|
||||||
`For get_package_json_version, a version against which comparing the result`,
|
|
||||||
`if found version more recent than compare_to_version compare_result is 1`,
|
|
||||||
`if found version is equal to compare_to_version compare_result is 0`,
|
|
||||||
`if found version is older to compare_to_version compare_result -1`,
|
|
||||||
`Example: 0.1.3`
|
|
||||||
].join(" ");
|
|
||||||
case "input_string": return `For string_replace, the string to replace`;
|
|
||||||
case "search_value": return `For string_replace, Example '-' ( Will be used as arg for RegExp constructor )`;
|
|
||||||
case "replace_value": return `For string_replace, Example '_'`;
|
|
||||||
case "should_webhook_be_enabled": return `true|false, Should the create webhook be enabled, with setup_repo_webhook_for_deno_land_publishing`;
|
|
||||||
case "github_token": return "GitHub Personal access token";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
export function getInputDefault(inputName: typeof inputNames[number]): string | undefined {
|
|
||||||
|
|
||||||
switch(inputName){
|
|
||||||
case "owner": return "${{github.repository_owner}}";
|
|
||||||
case "repo": return "${{github.event.repository.name}}";
|
|
||||||
case "branch": return "${{ github.sha }}";
|
|
||||||
case "github_token": return "${{ github.token }}";
|
|
||||||
case "exclude_commit_from_author_names_json": return '["actions"]';
|
|
||||||
case "should_webhook_be_enabled": return "true";
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
const getInput = (inputName: typeof inputNames[number]) => {
|
|
||||||
|
|
||||||
if (inputNames.indexOf(inputName) < 0) {
|
|
||||||
throw new Error(`${inputName} expected`);
|
|
||||||
}
|
|
||||||
|
|
||||||
return core.getInput(inputName);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
export function getActionParamsFactory<U extends typeof inputNames[number]>(
|
|
||||||
params: {
|
|
||||||
inputNameSubset: readonly U[]
|
|
||||||
}
|
|
||||||
) {
|
|
||||||
|
|
||||||
const { inputNameSubset } = params;
|
|
||||||
|
|
||||||
function getActionParams() {
|
|
||||||
|
|
||||||
const params: Record<U, string> = {} as any;
|
|
||||||
|
|
||||||
inputNameSubset.forEach(inputName => params[inputName] = getInput(inputName));
|
|
||||||
|
|
||||||
return params;
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
return { getActionParams };
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
export function getActionName(): typeof availableActions[number] {
|
|
||||||
return getInput("action_name") as any;
|
|
||||||
}
|
|
||||||
|
|
@ -1,136 +0,0 @@
|
||||||
|
|
||||||
import fetch from "node-fetch";
|
|
||||||
const urlJoin: typeof import("path").join = require("url-join");
|
|
||||||
import { setOutputFactory } from "./outputHelper";
|
|
||||||
import { NpmModuleVersion } from "./tools/NpmModuleVersion";
|
|
||||||
import { getActionParamsFactory } from "./inputHelper";
|
|
||||||
import { createOctokit } from "./tools/createOctokit";
|
|
||||||
import { getLatestSemVersionedTagFactory } from "./tools/octokit-addons/getLatestSemVersionedTag";
|
|
||||||
import type { Param0 } from "tsafe";
|
|
||||||
|
|
||||||
|
|
||||||
export const { getActionParams } = getActionParamsFactory({
|
|
||||||
"inputNameSubset": [
|
|
||||||
"owner",
|
|
||||||
"repo",
|
|
||||||
"branch",
|
|
||||||
"github_token"
|
|
||||||
] as const
|
|
||||||
});
|
|
||||||
|
|
||||||
export type Params = ReturnType<typeof getActionParams>;
|
|
||||||
|
|
||||||
type CoreLike = {
|
|
||||||
debug: (message: string) => void;
|
|
||||||
};
|
|
||||||
|
|
||||||
export const { setOutput } = setOutputFactory<"from_version" | "to_version" | "is_upgraded_version" | "is_pre_release">();
|
|
||||||
|
|
||||||
export async function action(
|
|
||||||
_actionName: "is_package_json_version_upgraded",
|
|
||||||
params: Params,
|
|
||||||
core: CoreLike
|
|
||||||
): Promise<Parameters<typeof setOutput>[0]> {
|
|
||||||
|
|
||||||
core.debug(JSON.stringify(params));
|
|
||||||
|
|
||||||
const { owner, repo, github_token } = params;
|
|
||||||
|
|
||||||
//params.branch <- github.head_ref || github.ref
|
|
||||||
//When it's a normal branch: github.head_ref==="" and github.ref==="refs/heads/main"
|
|
||||||
//When it's a pr from: github.head_ref==="<name of the branch branch>"
|
|
||||||
const branch = params.branch.replace(/^refs\/heads\//, "");
|
|
||||||
|
|
||||||
const to_version = await getPackageJsonVersion({ owner, repo, branch });
|
|
||||||
|
|
||||||
if( to_version === undefined ){
|
|
||||||
throw new Error(`No version in package.json on ${owner}/${repo}#${branch} (or repo is private)`);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
core.debug(`Version on ${owner}/${repo}#${branch} is ${NpmModuleVersion.stringify(to_version)}`);
|
|
||||||
|
|
||||||
const octokit = createOctokit({ github_token });
|
|
||||||
|
|
||||||
const { getLatestSemVersionedTag } = getLatestSemVersionedTagFactory({ octokit });
|
|
||||||
|
|
||||||
const from_version= await (async () => {
|
|
||||||
|
|
||||||
const getLatestSemVersionedTagParam: Param0<typeof getLatestSemVersionedTag> = {
|
|
||||||
owner,
|
|
||||||
repo,
|
|
||||||
"rcPolicy": to_version.rc !== undefined ?
|
|
||||||
"ONLY LOOK FOR RC" : "IGNORE RC",
|
|
||||||
"major": to_version.major
|
|
||||||
};
|
|
||||||
|
|
||||||
let wrap = await getLatestSemVersionedTag(getLatestSemVersionedTagParam);
|
|
||||||
|
|
||||||
if( wrap !== undefined ){
|
|
||||||
return wrap.version;
|
|
||||||
}
|
|
||||||
wrap = await getLatestSemVersionedTag({ ...getLatestSemVersionedTagParam, "major": undefined });
|
|
||||||
|
|
||||||
if( wrap !== undefined ){
|
|
||||||
return wrap.version;
|
|
||||||
}
|
|
||||||
|
|
||||||
return NpmModuleVersion.parse("0.0.0");
|
|
||||||
|
|
||||||
|
|
||||||
})();
|
|
||||||
|
|
||||||
core.debug(`Last version was ${NpmModuleVersion.stringify(from_version)}`);
|
|
||||||
|
|
||||||
const is_upgraded_version = NpmModuleVersion.compare(
|
|
||||||
to_version,
|
|
||||||
from_version
|
|
||||||
) === 1 ? "true" : "false";
|
|
||||||
|
|
||||||
core.debug(`Is version upgraded: ${is_upgraded_version}`);
|
|
||||||
|
|
||||||
const is_pre_release = is_upgraded_version === "false" ? "false" : to_version.rc !== undefined ? "true" : "false";
|
|
||||||
|
|
||||||
core.debug(`Is pre release: ${is_pre_release}`);
|
|
||||||
|
|
||||||
return {
|
|
||||||
"to_version": NpmModuleVersion.stringify(to_version),
|
|
||||||
"from_version": NpmModuleVersion.stringify(from_version),
|
|
||||||
is_upgraded_version,
|
|
||||||
is_pre_release
|
|
||||||
};
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
//TODO: Find a way to make it work with private repo
|
|
||||||
async function getPackageJsonVersion(params: {
|
|
||||||
owner: string;
|
|
||||||
repo: string;
|
|
||||||
branch: string;
|
|
||||||
}): Promise<NpmModuleVersion | undefined> {
|
|
||||||
|
|
||||||
const { owner, repo, branch } = params;
|
|
||||||
|
|
||||||
const version = await fetch(
|
|
||||||
urlJoin(
|
|
||||||
`https://raw.github.com`,
|
|
||||||
owner,
|
|
||||||
repo,
|
|
||||||
branch,
|
|
||||||
"package.json"
|
|
||||||
)
|
|
||||||
)
|
|
||||||
.then(res => res.text())
|
|
||||||
.then(text => JSON.parse(text))
|
|
||||||
.then(({ version }) => version as string)
|
|
||||||
.catch(() => undefined)
|
|
||||||
;
|
|
||||||
|
|
||||||
if (version === undefined) {
|
|
||||||
return undefined;
|
|
||||||
}
|
|
||||||
|
|
||||||
return NpmModuleVersion.parse(version);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
@ -1,58 +0,0 @@
|
||||||
|
|
||||||
|
|
||||||
import { setOutputFactory } from "./outputHelper";
|
|
||||||
import { getActionParamsFactory } from "./inputHelper";
|
|
||||||
import { is404 } from "./tools/is404";
|
|
||||||
|
|
||||||
import validate_npm_package_name from "validate-npm-package-name";
|
|
||||||
|
|
||||||
|
|
||||||
export const { getActionParams } = getActionParamsFactory({
|
|
||||||
"inputNameSubset": [
|
|
||||||
"module_name"
|
|
||||||
] as const
|
|
||||||
});
|
|
||||||
|
|
||||||
export type Params = ReturnType<typeof getActionParams>;
|
|
||||||
|
|
||||||
type CoreLike = {
|
|
||||||
debug: (message: string) => void;
|
|
||||||
};
|
|
||||||
|
|
||||||
export const { setOutput } = setOutputFactory<
|
|
||||||
"is_valid_node_module_name" |
|
|
||||||
"is_valid_deno_module_name" |
|
|
||||||
"is_available_on_npm" |
|
|
||||||
"is_available_on_deno_land"
|
|
||||||
>();
|
|
||||||
|
|
||||||
export async function action(
|
|
||||||
_actionName: "is_well_formed_and_available_module_name",
|
|
||||||
params: Params,
|
|
||||||
core: CoreLike
|
|
||||||
): Promise<Parameters<typeof setOutput>[0]> {
|
|
||||||
|
|
||||||
const { module_name } = params;
|
|
||||||
|
|
||||||
const { validForNewPackages } = validate_npm_package_name(module_name);
|
|
||||||
|
|
||||||
const validForDenoPackages = validForNewPackages && module_name.indexOf("-") < 0
|
|
||||||
|
|
||||||
return {
|
|
||||||
"is_valid_node_module_name": validForNewPackages ? "true" : "false",
|
|
||||||
"is_available_on_npm":
|
|
||||||
!validForNewPackages ?
|
|
||||||
"false"
|
|
||||||
:
|
|
||||||
(await is404(`https://www.npmjs.com/package/${module_name}`)) ?
|
|
||||||
"true" : "false",
|
|
||||||
"is_valid_deno_module_name": validForDenoPackages ? "true" : "false",
|
|
||||||
"is_available_on_deno_land":
|
|
||||||
!validForDenoPackages ?
|
|
||||||
"false"
|
|
||||||
:
|
|
||||||
(await is404(`https://deno.land/x/${module_name}/`)) ?
|
|
||||||
"true" : "false"
|
|
||||||
};
|
|
||||||
|
|
||||||
}
|
|
||||||
113
src/main.ts
113
src/main.ts
|
|
@ -1,113 +0,0 @@
|
||||||
import * as core from '@actions/core'
|
|
||||||
import * as get_package_json_version from "./get_package_json_version";
|
|
||||||
import * as dispatch_event from "./dispatch_event";
|
|
||||||
import * as sync_package_and_package_lock_version from "./sync_package_and_package_lock_version";
|
|
||||||
import * as setup_repo_webhook_for_deno_land_publishing from "./setup_repo_webhook_for_deno_land_publishing";
|
|
||||||
import * as is_well_formed_and_available_module_name from "./is_well_formed_and_available_module_name";
|
|
||||||
import * as tell_if_project_uses_npm_or_yarn from "./tell_if_project_uses_npm_or_yarn";
|
|
||||||
import * as string_replace from "./string_replace";
|
|
||||||
import * as is_package_json_version_upgraded from "./is_package_json_version_upgraded";
|
|
||||||
import { getActionName } from "./inputHelper";
|
|
||||||
import * as update_changelog from "./update_changelog";
|
|
||||||
|
|
||||||
async function run(): Promise<null> {
|
|
||||||
|
|
||||||
const action_name = getActionName();
|
|
||||||
|
|
||||||
switch (action_name) {
|
|
||||||
case "get_package_json_version":
|
|
||||||
get_package_json_version.setOutput(
|
|
||||||
await get_package_json_version.action(
|
|
||||||
action_name,
|
|
||||||
get_package_json_version.getActionParams(),
|
|
||||||
core
|
|
||||||
)
|
|
||||||
);
|
|
||||||
return null;
|
|
||||||
case "dispatch_event":
|
|
||||||
await dispatch_event.action(
|
|
||||||
action_name,
|
|
||||||
dispatch_event.getActionParams(),
|
|
||||||
core
|
|
||||||
);
|
|
||||||
return null;
|
|
||||||
case "update_changelog":
|
|
||||||
await update_changelog.action(
|
|
||||||
action_name,
|
|
||||||
update_changelog.getActionParams(),
|
|
||||||
core
|
|
||||||
);
|
|
||||||
return null;
|
|
||||||
case "sync_package_and_package_lock_version":
|
|
||||||
await sync_package_and_package_lock_version.action(
|
|
||||||
action_name,
|
|
||||||
sync_package_and_package_lock_version.getActionParams(),
|
|
||||||
core
|
|
||||||
);
|
|
||||||
return null;
|
|
||||||
case "setup_repo_webhook_for_deno_land_publishing":
|
|
||||||
setup_repo_webhook_for_deno_land_publishing.setOutput(
|
|
||||||
await setup_repo_webhook_for_deno_land_publishing.action(
|
|
||||||
action_name,
|
|
||||||
setup_repo_webhook_for_deno_land_publishing.getActionParams(),
|
|
||||||
core
|
|
||||||
)
|
|
||||||
);
|
|
||||||
return null;
|
|
||||||
case "is_well_formed_and_available_module_name":
|
|
||||||
is_well_formed_and_available_module_name.setOutput(
|
|
||||||
await is_well_formed_and_available_module_name.action(
|
|
||||||
action_name,
|
|
||||||
is_well_formed_and_available_module_name.getActionParams(),
|
|
||||||
core
|
|
||||||
)
|
|
||||||
);
|
|
||||||
return null;
|
|
||||||
case "string_replace":
|
|
||||||
string_replace.setOutput(
|
|
||||||
await string_replace.action(
|
|
||||||
action_name,
|
|
||||||
string_replace.getActionParams(),
|
|
||||||
core
|
|
||||||
)
|
|
||||||
);
|
|
||||||
return null;
|
|
||||||
case "tell_if_project_uses_npm_or_yarn":
|
|
||||||
tell_if_project_uses_npm_or_yarn.setOutput(
|
|
||||||
await tell_if_project_uses_npm_or_yarn.action(
|
|
||||||
action_name,
|
|
||||||
tell_if_project_uses_npm_or_yarn.getActionParams(),
|
|
||||||
core
|
|
||||||
)
|
|
||||||
);
|
|
||||||
return null;
|
|
||||||
case "is_package_json_version_upgraded":
|
|
||||||
is_package_json_version_upgraded.setOutput(
|
|
||||||
await is_package_json_version_upgraded.action(
|
|
||||||
action_name,
|
|
||||||
is_package_json_version_upgraded.getActionParams(),
|
|
||||||
core
|
|
||||||
)
|
|
||||||
);
|
|
||||||
return null;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
if (1 === 0 + 1) {
|
|
||||||
throw new Error(`${action_name} Not supported by this toolkit`);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
(async () => {
|
|
||||||
|
|
||||||
try {
|
|
||||||
|
|
||||||
await run()
|
|
||||||
|
|
||||||
} catch (error) {
|
|
||||||
core.setFailed(error.message);
|
|
||||||
}
|
|
||||||
|
|
||||||
})();
|
|
||||||
|
|
||||||
3
src/myFunction.ts
Normal file
3
src/myFunction.ts
Normal file
|
|
@ -0,0 +1,3 @@
|
||||||
|
export function myFunction() {
|
||||||
|
return ["a", "b", "c"];
|
||||||
|
}
|
||||||
1
src/myObject.ts
Normal file
1
src/myObject.ts
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
export const myObject = { "p": "foo" };
|
||||||
|
|
@ -1,53 +0,0 @@
|
||||||
|
|
||||||
import * as core from '@actions/core'
|
|
||||||
import { objectKeys } from "evt/dist/tools/typeSafety/objectKeys";
|
|
||||||
|
|
||||||
export const outputNames = [
|
|
||||||
"version",
|
|
||||||
"is_valid_node_module_name",
|
|
||||||
"is_valid_deno_module_name",
|
|
||||||
"is_available_on_npm",
|
|
||||||
"is_available_on_deno_land",
|
|
||||||
"was_already_published",
|
|
||||||
"compare_result",
|
|
||||||
"replace_result",
|
|
||||||
"was_hook_created",
|
|
||||||
"npm_or_yarn",
|
|
||||||
"from_version",
|
|
||||||
"to_version",
|
|
||||||
"is_upgraded_version",
|
|
||||||
"is_pre_release"
|
|
||||||
] as const;
|
|
||||||
|
|
||||||
|
|
||||||
export function getOutputDescription(inputName: typeof outputNames[number]): string {
|
|
||||||
switch (inputName) {
|
|
||||||
case "version": return "Output of get_package_json_version";
|
|
||||||
case "is_valid_node_module_name": return "true|false";
|
|
||||||
case "is_valid_deno_module_name": return "true|false";
|
|
||||||
case "is_available_on_npm": return "true|false";
|
|
||||||
case "is_available_on_deno_land": return "true|false";
|
|
||||||
case "was_already_published": return "true|false";
|
|
||||||
case "compare_result": return "1|0|-1";
|
|
||||||
case "replace_result": return "Output of string_replace";
|
|
||||||
case "was_hook_created": return "true|false";
|
|
||||||
case "npm_or_yarn": return "npm|yarn";
|
|
||||||
case "from_version": return "Output of is_package_json_version_upgraded, string";
|
|
||||||
case "to_version": return "Output of is_package_json_version_upgraded, string";
|
|
||||||
case "is_upgraded_version": return "Output of is_package_json_version_upgraded, true|false";
|
|
||||||
case "is_pre_release": return "Output of is_package_json_version_upgraded, true|false";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
export function setOutputFactory<U extends typeof outputNames[number]>() {
|
|
||||||
|
|
||||||
function setOutput(outputs: Record<U, string>): void {
|
|
||||||
|
|
||||||
objectKeys(outputs)
|
|
||||||
.forEach(outputName => core.setOutput(outputName, outputs[outputName]));
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
return { setOutput };
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
@ -1,56 +0,0 @@
|
||||||
|
|
||||||
import { setOutputFactory } from "./outputHelper";
|
|
||||||
import { getActionParamsFactory } from "./inputHelper";
|
|
||||||
import { createOctokit } from "./tools/createOctokit";
|
|
||||||
|
|
||||||
export const { getActionParams } = getActionParamsFactory({
|
|
||||||
"inputNameSubset": [
|
|
||||||
"owner",
|
|
||||||
"repo",
|
|
||||||
"should_webhook_be_enabled",
|
|
||||||
"github_token"
|
|
||||||
] as const
|
|
||||||
});
|
|
||||||
|
|
||||||
export type Params = ReturnType<typeof getActionParams>;
|
|
||||||
|
|
||||||
type CoreLike = {
|
|
||||||
debug: (message: string) => void;
|
|
||||||
warning: (message: string) => void;
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
export const { setOutput } = setOutputFactory<"was_hook_created">();
|
|
||||||
|
|
||||||
export async function action(
|
|
||||||
_actionName: "setup_repo_webhook_for_deno_land_publishing",
|
|
||||||
params: Params,
|
|
||||||
core: CoreLike
|
|
||||||
): Promise<Parameters<typeof setOutput>[0]> {
|
|
||||||
|
|
||||||
const { owner, repo, should_webhook_be_enabled, github_token } = params;
|
|
||||||
|
|
||||||
const octokit = createOctokit({ github_token });
|
|
||||||
|
|
||||||
try {
|
|
||||||
|
|
||||||
await octokit.repos.createWebhook({
|
|
||||||
owner,
|
|
||||||
repo,
|
|
||||||
"active": should_webhook_be_enabled === "true",
|
|
||||||
"events": ["create"],
|
|
||||||
"config": {
|
|
||||||
"url": `https://api.deno.land/webhook/gh/${repo}?subdir=deno_dist%252F`,
|
|
||||||
"content_type": "json"
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
} catch {
|
|
||||||
|
|
||||||
return { "was_hook_created": "false" };
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
return { "was_hook_created": "true" };
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
@ -1,39 +0,0 @@
|
||||||
|
|
||||||
import { setOutputFactory } from "./outputHelper";
|
|
||||||
|
|
||||||
import { getActionParamsFactory } from "./inputHelper";
|
|
||||||
|
|
||||||
export const { getActionParams } = getActionParamsFactory({
|
|
||||||
"inputNameSubset": [
|
|
||||||
"input_string",
|
|
||||||
"search_value",
|
|
||||||
"replace_value"
|
|
||||||
] as const
|
|
||||||
});
|
|
||||||
|
|
||||||
export type Params = ReturnType<typeof getActionParams>;
|
|
||||||
|
|
||||||
type CoreLike = {
|
|
||||||
debug: (message: string) => void;
|
|
||||||
};
|
|
||||||
|
|
||||||
export const { setOutput } = setOutputFactory<"replace_result">();
|
|
||||||
|
|
||||||
export async function action(
|
|
||||||
_actionName: "string_replace",
|
|
||||||
params: Params,
|
|
||||||
core: CoreLike
|
|
||||||
): Promise<Parameters<typeof setOutput>[0]> {
|
|
||||||
|
|
||||||
core.debug(JSON.stringify(params));
|
|
||||||
|
|
||||||
const { input_string, search_value, replace_value } = params;
|
|
||||||
|
|
||||||
return {
|
|
||||||
"replace_result": input_string.replace(
|
|
||||||
new RegExp(search_value, "g"),
|
|
||||||
replace_value
|
|
||||||
)
|
|
||||||
};
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
@ -1,92 +0,0 @@
|
||||||
import { getActionParamsFactory } from "./inputHelper";
|
|
||||||
import * as st from "scripting-tools";
|
|
||||||
import * as fs from "fs";
|
|
||||||
import { gitCommit } from "./tools/gitCommit";
|
|
||||||
|
|
||||||
export const { getActionParams } = getActionParamsFactory({
|
|
||||||
"inputNameSubset": [
|
|
||||||
"owner",
|
|
||||||
"repo",
|
|
||||||
"branch",
|
|
||||||
"github_token"
|
|
||||||
] as const
|
|
||||||
});
|
|
||||||
|
|
||||||
export type Params = ReturnType<typeof getActionParams>;
|
|
||||||
|
|
||||||
type CoreLike = {
|
|
||||||
debug: (message: string) => void;
|
|
||||||
};
|
|
||||||
|
|
||||||
export async function action(
|
|
||||||
_actionName: "sync_package_and_package_lock_version",
|
|
||||||
params: Params,
|
|
||||||
core: CoreLike
|
|
||||||
) {
|
|
||||||
|
|
||||||
core.debug(JSON.stringify(params));
|
|
||||||
|
|
||||||
const { owner, repo, branch, github_token } = params;
|
|
||||||
|
|
||||||
await gitCommit({
|
|
||||||
owner,
|
|
||||||
repo,
|
|
||||||
github_token,
|
|
||||||
"commitAuthorEmail": "actions@github.com",
|
|
||||||
"performChanges": async () => {
|
|
||||||
|
|
||||||
await st.exec(`git checkout ${branch}`);
|
|
||||||
|
|
||||||
const { version } = JSON.parse(
|
|
||||||
fs.readFileSync("package.json")
|
|
||||||
.toString("utf8")
|
|
||||||
);
|
|
||||||
|
|
||||||
if (!fs.existsSync("package-lock.json")) {
|
|
||||||
core.debug(`No package-lock.json tracked by ${owner}/${repo}#${branch}`);
|
|
||||||
return { "commit": false };
|
|
||||||
}
|
|
||||||
|
|
||||||
const packageLockJsonRaw = fs.readFileSync("package-lock.json")
|
|
||||||
.toString("utf8")
|
|
||||||
;
|
|
||||||
|
|
||||||
const packageLockJsonParsed = JSON.parse(
|
|
||||||
packageLockJsonRaw
|
|
||||||
);
|
|
||||||
|
|
||||||
if (packageLockJsonParsed.version === version) {
|
|
||||||
core.debug("Nothing to do, version in package.json and package-lock.json are the same");
|
|
||||||
return { "commit": false };
|
|
||||||
}
|
|
||||||
|
|
||||||
fs.writeFileSync(
|
|
||||||
"package-lock.json",
|
|
||||||
Buffer.from(
|
|
||||||
JSON.stringify(
|
|
||||||
(() => {
|
|
||||||
packageLockJsonParsed.version = version;
|
|
||||||
packageLockJsonParsed.packages[""].version = version;
|
|
||||||
return packageLockJsonParsed;
|
|
||||||
})(),
|
|
||||||
null,
|
|
||||||
packageLockJsonRaw
|
|
||||||
.replace(/\t/g, " ")
|
|
||||||
.match(/^(\s*)\"version\"/m)![1].length
|
|
||||||
) + packageLockJsonRaw.match(/}([\r\n]*)$/)![1],
|
|
||||||
"utf8"
|
|
||||||
)
|
|
||||||
);
|
|
||||||
|
|
||||||
return {
|
|
||||||
"commit": true,
|
|
||||||
"addAll": false,
|
|
||||||
"message": "Sync package.json and package.lock version"
|
|
||||||
};
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
});
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
@ -1,53 +0,0 @@
|
||||||
|
|
||||||
import fetch from "node-fetch";
|
|
||||||
const urlJoin: typeof import("path").join = require("url-join");
|
|
||||||
import { setOutputFactory } from "./outputHelper";
|
|
||||||
|
|
||||||
import { getActionParamsFactory } from "./inputHelper";
|
|
||||||
|
|
||||||
export const { getActionParams } = getActionParamsFactory({
|
|
||||||
"inputNameSubset": [
|
|
||||||
"owner",
|
|
||||||
"repo",
|
|
||||||
"branch"
|
|
||||||
] as const
|
|
||||||
});
|
|
||||||
|
|
||||||
export type Params = ReturnType<typeof getActionParams>;
|
|
||||||
|
|
||||||
type CoreLike = {
|
|
||||||
debug: (message: string) => void;
|
|
||||||
};
|
|
||||||
|
|
||||||
export const { setOutput } = setOutputFactory<"npm_or_yarn">();
|
|
||||||
|
|
||||||
export async function action(
|
|
||||||
_actionName: "tell_if_project_uses_npm_or_yarn",
|
|
||||||
params: Params,
|
|
||||||
core: CoreLike
|
|
||||||
): Promise<Parameters<typeof setOutput>[0]> {
|
|
||||||
|
|
||||||
core.debug(JSON.stringify(params));
|
|
||||||
|
|
||||||
const { owner, repo } = params;
|
|
||||||
|
|
||||||
//params.branch <- github.head_ref || github.ref
|
|
||||||
//When it's a normal branch: github.head_ref==="" and github.ref==="refs/heads/main"
|
|
||||||
//When it's a pr from: github.head_ref==="<name of the branch branch>"
|
|
||||||
const branch = params.branch.replace(/^refs\/heads\//, "");
|
|
||||||
|
|
||||||
const npm_or_yarn = await fetch(
|
|
||||||
urlJoin(
|
|
||||||
"https://raw.github.com",
|
|
||||||
owner,
|
|
||||||
repo,
|
|
||||||
branch,
|
|
||||||
"yarn.lock"
|
|
||||||
)
|
|
||||||
).then(res => res.status === 404 ? "npm" : "yarn")
|
|
||||||
|
|
||||||
core.debug(`Version on ${owner}/${repo}#${branch} is using ${npm_or_yarn}`);
|
|
||||||
|
|
||||||
return { npm_or_yarn };
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
@ -1,17 +0,0 @@
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
import { action } from "../dispatch_event";
|
|
||||||
|
|
||||||
action(
|
|
||||||
"dispatch_event",
|
|
||||||
{
|
|
||||||
"owner": "garronej",
|
|
||||||
"repo": "test-repo",
|
|
||||||
"event_type": "example-event",
|
|
||||||
"client_payload_json": JSON.stringify({ "foo": "bar" }),
|
|
||||||
"github_token": ""
|
|
||||||
},
|
|
||||||
{ "debug": console.log }
|
|
||||||
);
|
|
||||||
|
|
||||||
|
|
@ -1,20 +0,0 @@
|
||||||
import { createOctokit } from "../tools/createOctokit";
|
|
||||||
import { getCommitAheadFactory } from "../tools/octokit-addons/getCommitAhead";
|
|
||||||
|
|
||||||
(async ()=>{
|
|
||||||
|
|
||||||
const octokit = createOctokit({ "github_token": "" });
|
|
||||||
|
|
||||||
const { getCommitAhead } = getCommitAheadFactory({ octokit });
|
|
||||||
|
|
||||||
const { commits } = await getCommitAhead({
|
|
||||||
"owner": "InseeFrLab",
|
|
||||||
"repo": "keycloakify",
|
|
||||||
"branchBehind": "v4.5.1",
|
|
||||||
"branchAhead": "Ann2827/pull"
|
|
||||||
}).catch(() => ({ "commits": undefined }));
|
|
||||||
|
|
||||||
console.log(commits);
|
|
||||||
|
|
||||||
|
|
||||||
})()
|
|
||||||
|
|
@ -1,22 +0,0 @@
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
import { action } from "../get_package_json_version";
|
|
||||||
|
|
||||||
(async () => {
|
|
||||||
|
|
||||||
const repo = "denoify";
|
|
||||||
|
|
||||||
const result = await action("get_package_json_version", {
|
|
||||||
"owner": "garronej",
|
|
||||||
repo,
|
|
||||||
"branch": "aa5da60301bea4cf0e80e98a4579f7076b544a44",
|
|
||||||
"compare_to_version": "0.0.0"
|
|
||||||
}, { "debug": console.log });
|
|
||||||
|
|
||||||
console.log(result);
|
|
||||||
|
|
||||||
|
|
||||||
})();
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -1,20 +0,0 @@
|
||||||
|
|
||||||
|
|
||||||
import { action } from "../is_package_json_version_upgraded";
|
|
||||||
|
|
||||||
(async () => {
|
|
||||||
|
|
||||||
const repo = "keycloakify-demo-app";
|
|
||||||
|
|
||||||
const result = await action("is_package_json_version_upgraded", {
|
|
||||||
"owner": "InseeFrLab",
|
|
||||||
repo,
|
|
||||||
"branch": "4fc0ccb46bdb3912e0a215ca3ae45aed458ea6a4",
|
|
||||||
"github_token": ""
|
|
||||||
}, { "debug": console.log });
|
|
||||||
|
|
||||||
console.log(result);
|
|
||||||
|
|
||||||
})();
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -1,33 +0,0 @@
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
import { action } from "../is_well_formed_and_available_module_name";
|
|
||||||
|
|
||||||
(async () => {
|
|
||||||
|
|
||||||
|
|
||||||
for (const module_name of [
|
|
||||||
"congenial_pancake",
|
|
||||||
"evt",
|
|
||||||
"_okay",
|
|
||||||
"mai-oui-c-clair"
|
|
||||||
]) {
|
|
||||||
|
|
||||||
console.log({ module_name });
|
|
||||||
|
|
||||||
const resp = await action(
|
|
||||||
"is_well_formed_and_available_module_name",
|
|
||||||
{ module_name },
|
|
||||||
{ "debug": console.log }
|
|
||||||
);
|
|
||||||
|
|
||||||
console.log(resp);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
})();
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -1,27 +0,0 @@
|
||||||
|
|
||||||
import { action } from "../setup_repo_webhook_for_deno_land_publishing";
|
|
||||||
import * as st from "scripting-tools";
|
|
||||||
|
|
||||||
(async () => {
|
|
||||||
|
|
||||||
st.enableCmdTrace();
|
|
||||||
|
|
||||||
const repo = "reimagined_octo_winner_kay";
|
|
||||||
|
|
||||||
const resp = await action(
|
|
||||||
"setup_repo_webhook_for_deno_land_publishing",
|
|
||||||
{
|
|
||||||
"owner": "garronej",
|
|
||||||
"repo": "reimagined_octo_winner_kay",
|
|
||||||
"should_webhook_be_enabled": "false",
|
|
||||||
"github_token": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"debug": console.log,
|
|
||||||
"warning": console.warn
|
|
||||||
}
|
|
||||||
);
|
|
||||||
|
|
||||||
console.log(resp);
|
|
||||||
|
|
||||||
})();
|
|
||||||
|
|
@ -1,17 +0,0 @@
|
||||||
|
|
||||||
import { action } from "../string_replace";
|
|
||||||
import * as st from "scripting-tools";
|
|
||||||
|
|
||||||
(async () => {
|
|
||||||
|
|
||||||
const { replace_result } = await action("string_replace", {
|
|
||||||
"input_string": "octo-computing-machine",
|
|
||||||
"search_value": "-",
|
|
||||||
"replace_value": "_"
|
|
||||||
},
|
|
||||||
{ "debug": console.log }
|
|
||||||
);
|
|
||||||
|
|
||||||
console.log({ replace_result });
|
|
||||||
|
|
||||||
})();
|
|
||||||
|
|
@ -1,20 +0,0 @@
|
||||||
|
|
||||||
|
|
||||||
import { action } from "../sync_package_and_package_lock_version";
|
|
||||||
|
|
||||||
(async () => {
|
|
||||||
|
|
||||||
const repo = "literate-sniffle";
|
|
||||||
|
|
||||||
await action("sync_package_and_package_lock_version", {
|
|
||||||
"owner": "garronej",
|
|
||||||
repo,
|
|
||||||
"branch": "master",
|
|
||||||
"github_token": ""
|
|
||||||
},
|
|
||||||
{ "debug": console.log }
|
|
||||||
);
|
|
||||||
|
|
||||||
})();
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -1,17 +0,0 @@
|
||||||
|
|
||||||
|
|
||||||
import { action } from "../tell_if_project_uses_npm_or_yarn";
|
|
||||||
|
|
||||||
(async () => {
|
|
||||||
|
|
||||||
const repo = "powerhooks";
|
|
||||||
|
|
||||||
await action("tell_if_project_uses_npm_or_yarn", {
|
|
||||||
"owner": "garronej",
|
|
||||||
repo,
|
|
||||||
"branch": "refs/heads/master"
|
|
||||||
},
|
|
||||||
{ "debug": console.log }
|
|
||||||
);
|
|
||||||
|
|
||||||
})();
|
|
||||||
|
|
@ -1,25 +0,0 @@
|
||||||
|
|
||||||
import { action } from "../update_changelog";
|
|
||||||
import * as st from "scripting-tools";
|
|
||||||
|
|
||||||
(async () => {
|
|
||||||
|
|
||||||
st.enableCmdTrace();
|
|
||||||
|
|
||||||
const repo = "sturdy_umbrella";
|
|
||||||
|
|
||||||
await action("update_changelog", {
|
|
||||||
"owner": "garronej",
|
|
||||||
repo,
|
|
||||||
"branch": "dev",
|
|
||||||
"exclude_commit_from_author_names_json": JSON.stringify(["denoify_ci"]),
|
|
||||||
"github_token": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"debug": console.log,
|
|
||||||
"warning": console.log
|
|
||||||
}
|
|
||||||
);
|
|
||||||
|
|
||||||
|
|
||||||
})();
|
|
||||||
|
|
@ -1,94 +0,0 @@
|
||||||
|
|
||||||
|
|
||||||
export type NpmModuleVersion = {
|
|
||||||
major: number;
|
|
||||||
minor: number;
|
|
||||||
patch: number;
|
|
||||||
rc?: number;
|
|
||||||
};
|
|
||||||
|
|
||||||
export namespace NpmModuleVersion {
|
|
||||||
|
|
||||||
export function parse(versionStr: string): NpmModuleVersion {
|
|
||||||
|
|
||||||
const match = versionStr.match(/^([0-9]+)\.([0-9]+)\.([0-9]+)(?:-rc.([0-9]+))?/);
|
|
||||||
|
|
||||||
if (!match) {
|
|
||||||
throw new Error(`${versionStr} is not a valid NPM version`);
|
|
||||||
}
|
|
||||||
|
|
||||||
return {
|
|
||||||
"major": parseInt(match[1]),
|
|
||||||
"minor": parseInt(match[2]),
|
|
||||||
"patch": parseInt(match[3]),
|
|
||||||
...(() => {
|
|
||||||
|
|
||||||
const str = match[4];
|
|
||||||
return str === undefined ?
|
|
||||||
{} :
|
|
||||||
{ "rc": parseInt(str) };
|
|
||||||
|
|
||||||
})()
|
|
||||||
};
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
export function stringify(v: NpmModuleVersion) {
|
|
||||||
return `${v.major}.${v.minor}.${v.patch}${v.rc === undefined ? "" : `-rc.${v.rc}`}`;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
* v1 < v2 => -1
|
|
||||||
* v1 === v2 => 0
|
|
||||||
* v1 > v2 => 1
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
export function compare(v1: NpmModuleVersion, v2: NpmModuleVersion): -1 | 0 | 1 {
|
|
||||||
|
|
||||||
const sign = (diff: number): -1 | 0 | 1 => diff === 0 ? 0 : (diff < 0 ? -1 : 1);
|
|
||||||
const noUndefined= (n: number | undefined)=> n ?? Infinity;
|
|
||||||
|
|
||||||
for (const level of ["major", "minor", "patch", "rc"] as const) {
|
|
||||||
if (noUndefined(v1[level]) !== noUndefined(v2[level])) {
|
|
||||||
return sign(noUndefined(v1[level]) - noUndefined(v2[level]));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
console.log(compare(parse("3.0.0-rc.3"), parse("3.0.0")) === -1 )
|
|
||||||
console.log(compare(parse("3.0.0-rc.3"), parse("3.0.0-rc.4")) === -1 )
|
|
||||||
console.log(compare(parse("3.0.0-rc.3"), parse("4.0.0")) === -1 )
|
|
||||||
*/
|
|
||||||
|
|
||||||
export function bumpType(
|
|
||||||
params: {
|
|
||||||
versionBehindStr: string;
|
|
||||||
versionAheadStr: string;
|
|
||||||
}
|
|
||||||
): "major" | "minor" | "patch" | "rc" | "same" {
|
|
||||||
|
|
||||||
|
|
||||||
const versionAhead = parse(params.versionAheadStr);
|
|
||||||
const versionBehind = parse(params.versionBehindStr);
|
|
||||||
|
|
||||||
if (compare(versionBehind, versionAhead) === 1) {
|
|
||||||
throw new Error(`Version regression ${versionBehind} -> ${versionAhead}`);
|
|
||||||
}
|
|
||||||
|
|
||||||
for (const level of ["major", "minor", "patch", "rc"] as const) {
|
|
||||||
if (versionBehind[level] !== versionAhead[level]) {
|
|
||||||
return level;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return "same";
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
5
src/tools/capitalize.ts
Normal file
5
src/tools/capitalize.ts
Normal file
|
|
@ -0,0 +1,5 @@
|
||||||
|
/** @see <https://docs.tsafe.dev/capitalize> */
|
||||||
|
export function capitalize<S extends string>(str: S): Capitalize<S> {
|
||||||
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
||||||
|
return (str.charAt(0).toUpperCase() + str.slice(1)) as any;
|
||||||
|
}
|
||||||
|
|
@ -1,10 +0,0 @@
|
||||||
|
|
||||||
import { Octokit } from "@octokit/rest";
|
|
||||||
|
|
||||||
export function createOctokit(params: { github_token: string; }) {
|
|
||||||
|
|
||||||
const { github_token } = params;
|
|
||||||
|
|
||||||
return new Octokit({ ...(github_token !== "" ? { "auth": github_token } : {}) });
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
@ -1,60 +0,0 @@
|
||||||
import * as st from "scripting-tools";
|
|
||||||
|
|
||||||
export async function gitCommit(
|
|
||||||
params: {
|
|
||||||
owner: string;
|
|
||||||
repo: string;
|
|
||||||
commitAuthorEmail: string;
|
|
||||||
performChanges: () => Promise<{ commit: false; } | { commit: true; addAll: boolean; message: string; }>;
|
|
||||||
github_token: string;
|
|
||||||
}
|
|
||||||
) {
|
|
||||||
|
|
||||||
const { owner, repo, commitAuthorEmail, performChanges, github_token } = params;
|
|
||||||
|
|
||||||
await st.exec(`git clone https://github.com/${owner}/${repo}`);
|
|
||||||
|
|
||||||
const cwd = process.cwd();
|
|
||||||
|
|
||||||
process.chdir(repo);
|
|
||||||
|
|
||||||
const changesResult = await (async () => {
|
|
||||||
|
|
||||||
try {
|
|
||||||
|
|
||||||
return await performChanges();
|
|
||||||
|
|
||||||
} catch (error) {
|
|
||||||
|
|
||||||
return error as Error;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
})()
|
|
||||||
|
|
||||||
if (!(changesResult instanceof Error) && changesResult.commit) {
|
|
||||||
|
|
||||||
await st.exec(`git config --local user.email "${commitAuthorEmail}"`);
|
|
||||||
await st.exec(`git config --local user.name "${commitAuthorEmail.split("@")[0]}"`);
|
|
||||||
|
|
||||||
if (changesResult.addAll) {
|
|
||||||
|
|
||||||
await st.exec(`git add -A`);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
await st.exec(`git commit -am "${changesResult.message}"`);
|
|
||||||
|
|
||||||
await st.exec(`git push "https://${owner}:${github_token}@github.com/${owner}/${repo}.git"`);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
process.chdir(cwd);
|
|
||||||
|
|
||||||
await st.exec(`rm -r ${repo}`);
|
|
||||||
|
|
||||||
if (changesResult instanceof Error) {
|
|
||||||
throw changesResult;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
1
src/tools/index.ts
Normal file
1
src/tools/index.ts
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
export * from "./capitalize";
|
||||||
|
|
@ -1,6 +0,0 @@
|
||||||
|
|
||||||
import fetch from "node-fetch";
|
|
||||||
|
|
||||||
export function is404(url: string): Promise<boolean> {
|
|
||||||
return fetch(url).then(({ status }) => status === 404);
|
|
||||||
}
|
|
||||||
|
|
@ -1,55 +0,0 @@
|
||||||
|
|
||||||
import { getCommonOriginFactory } from "./getCommonOrigin";
|
|
||||||
import { listCommitFactory } from "./listCommit";
|
|
||||||
import type { Commit } from "./getCommitAsyncIterable";
|
|
||||||
import type { Octokit } from "@octokit/rest";
|
|
||||||
|
|
||||||
/** Take two branch that have a common origin and list all the
|
|
||||||
* commit that have been made on the branch that is ahead since it
|
|
||||||
* has been forked from the branch that is behind.
|
|
||||||
* From the older to the newest.
|
|
||||||
* */
|
|
||||||
export function getCommitAheadFactory(
|
|
||||||
params: { octokit: Octokit; }
|
|
||||||
) {
|
|
||||||
|
|
||||||
const { octokit } = params;
|
|
||||||
|
|
||||||
const { getCommonOrigin } = getCommonOriginFactory({ octokit });
|
|
||||||
const { listCommit } = listCommitFactory({ octokit });
|
|
||||||
|
|
||||||
async function getCommitAhead(
|
|
||||||
params: {
|
|
||||||
owner: string;
|
|
||||||
repo: string;
|
|
||||||
branchBehind: string;
|
|
||||||
branchAhead: string;
|
|
||||||
}
|
|
||||||
): Promise<{ commits: Commit[]; }> {
|
|
||||||
|
|
||||||
const { owner, repo, branchBehind, branchAhead } = params;
|
|
||||||
|
|
||||||
const { sha } = await getCommonOrigin({
|
|
||||||
owner,
|
|
||||||
repo,
|
|
||||||
"branch1": branchBehind,
|
|
||||||
"branch2": branchAhead
|
|
||||||
});
|
|
||||||
|
|
||||||
const commits = await listCommit({
|
|
||||||
owner,
|
|
||||||
repo,
|
|
||||||
"branch": branchAhead,
|
|
||||||
sha
|
|
||||||
});
|
|
||||||
|
|
||||||
return { commits };
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
return { getCommitAhead };
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
@ -1,100 +0,0 @@
|
||||||
|
|
||||||
import type { AsyncReturnType } from "evt/dist/tools/typeSafety/AsyncReturnType";
|
|
||||||
import type { Octokit } from "@octokit/rest";
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
.sha
|
|
||||||
.commit.message
|
|
||||||
.author.type
|
|
||||||
.author.type !== "User"
|
|
||||||
*/
|
|
||||||
|
|
||||||
/** Alias for the non exported ReposListCommitsResponseData type alias */
|
|
||||||
export type Commit = AsyncReturnType<Octokit["repos"]["listCommits"]>["data"][number];
|
|
||||||
|
|
||||||
const per_page = 30;
|
|
||||||
|
|
||||||
/** Iterate over the commits of a repo's branch */
|
|
||||||
export function getCommitAsyncIterableFactory(params: { octokit: Octokit; }) {
|
|
||||||
|
|
||||||
const { octokit } = params;
|
|
||||||
|
|
||||||
function getCommitAsyncIterable(
|
|
||||||
params: {
|
|
||||||
owner: string;
|
|
||||||
repo: string;
|
|
||||||
branch: string;
|
|
||||||
}
|
|
||||||
): AsyncIterable<Commit> {
|
|
||||||
|
|
||||||
const { owner, repo, branch } = params;
|
|
||||||
|
|
||||||
let commits: Commit[] = [];
|
|
||||||
|
|
||||||
let page = 0;
|
|
||||||
|
|
||||||
let isLastPage: boolean | undefined = undefined;
|
|
||||||
|
|
||||||
const getReposListCommitsResponseData = (params: { page: number }) =>
|
|
||||||
octokit.repos.listCommits({
|
|
||||||
owner,
|
|
||||||
repo,
|
|
||||||
per_page,
|
|
||||||
"page": params.page,
|
|
||||||
"sha": branch
|
|
||||||
}).then(({ data }) => data)
|
|
||||||
;
|
|
||||||
|
|
||||||
return {
|
|
||||||
[Symbol.asyncIterator]() {
|
|
||||||
return {
|
|
||||||
"next": async ()=> {
|
|
||||||
|
|
||||||
if (commits.length === 0) {
|
|
||||||
|
|
||||||
if (isLastPage) {
|
|
||||||
return { "done": true, "value": undefined };
|
|
||||||
}
|
|
||||||
|
|
||||||
page++;
|
|
||||||
|
|
||||||
commits = await getReposListCommitsResponseData({ page });
|
|
||||||
|
|
||||||
if (commits.length === 0) {
|
|
||||||
return { "done": true, "value": undefined };
|
|
||||||
}
|
|
||||||
|
|
||||||
isLastPage =
|
|
||||||
commits.length !== per_page ||
|
|
||||||
(await getReposListCommitsResponseData({ "page": page + 1 })).length === 0
|
|
||||||
;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
const [commit, ...rest] = commits;
|
|
||||||
|
|
||||||
commits = rest;
|
|
||||||
|
|
||||||
return {
|
|
||||||
"value": commit,
|
|
||||||
"done": false
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
};
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
return { getCommitAsyncIterable };
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -1,90 +0,0 @@
|
||||||
|
|
||||||
import { getCommitAsyncIterableFactory } from "./getCommitAsyncIterable";
|
|
||||||
import type { Octokit } from "@octokit/rest";
|
|
||||||
|
|
||||||
/** Return the sha of the first common commit between two branches */
|
|
||||||
export function getCommonOriginFactory(params: { octokit: Octokit; }) {
|
|
||||||
|
|
||||||
const { octokit } = params;
|
|
||||||
|
|
||||||
const { getCommitAsyncIterable } = getCommitAsyncIterableFactory({ octokit });
|
|
||||||
|
|
||||||
async function getCommonOrigin(
|
|
||||||
params: {
|
|
||||||
owner: string;
|
|
||||||
repo: string;
|
|
||||||
branch1: string;
|
|
||||||
branch2: string;
|
|
||||||
}
|
|
||||||
): Promise<{ sha: string; }> {
|
|
||||||
|
|
||||||
const { owner, repo, branch1, branch2 } = params;
|
|
||||||
|
|
||||||
const [
|
|
||||||
commitAsyncIterable1,
|
|
||||||
commitAsyncIterable2
|
|
||||||
] = ([branch1, branch2] as const)
|
|
||||||
.map(branch => getCommitAsyncIterable({ owner, repo, branch }))
|
|
||||||
;
|
|
||||||
|
|
||||||
|
|
||||||
let shas1: string[] = [];
|
|
||||||
let shas2: string[] = [];
|
|
||||||
|
|
||||||
while (true) {
|
|
||||||
|
|
||||||
const [
|
|
||||||
itRes1,
|
|
||||||
itRes2
|
|
||||||
] =
|
|
||||||
await Promise.all(
|
|
||||||
([commitAsyncIterable1, commitAsyncIterable2] as const)
|
|
||||||
.map(
|
|
||||||
commitAsyncIterable => commitAsyncIterable[Symbol.asyncIterator]()
|
|
||||||
.next()
|
|
||||||
)
|
|
||||||
)
|
|
||||||
;
|
|
||||||
|
|
||||||
let sha1: string | undefined = undefined;
|
|
||||||
|
|
||||||
if (!itRes1.done) {
|
|
||||||
|
|
||||||
sha1 = itRes1.value.sha;
|
|
||||||
|
|
||||||
shas1.push(sha1);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
let sha2: string | undefined = undefined;
|
|
||||||
|
|
||||||
if (!itRes2.done) {
|
|
||||||
|
|
||||||
sha2 = itRes2.value.sha;
|
|
||||||
|
|
||||||
shas2.push(sha2);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!!sha1 && shas2.includes(sha1)) {
|
|
||||||
return { "sha": sha1 };
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!!sha2 && shas1.includes(sha2)) {
|
|
||||||
return { "sha": sha2 };
|
|
||||||
}
|
|
||||||
|
|
||||||
if (itRes1.done && itRes2.done) {
|
|
||||||
throw new Error("No common origin");
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
return { getCommonOrigin };
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
@ -1,69 +0,0 @@
|
||||||
|
|
||||||
import { listTagsFactory } from "./listTags";
|
|
||||||
import type { Octokit } from "@octokit/rest";
|
|
||||||
import { NpmModuleVersion } from "../NpmModuleVersion";
|
|
||||||
|
|
||||||
export function getLatestSemVersionedTagFactory(params: { octokit: Octokit; }) {
|
|
||||||
|
|
||||||
const { octokit } = params;
|
|
||||||
|
|
||||||
async function getLatestSemVersionedTag(
|
|
||||||
params: {
|
|
||||||
owner: string;
|
|
||||||
repo: string;
|
|
||||||
rcPolicy: "ONLY LOOK FOR RC" | "IGNORE RC" | "RC OR REGULAR RELEASE";
|
|
||||||
major: number | undefined;
|
|
||||||
}
|
|
||||||
): Promise<{
|
|
||||||
tag: string;
|
|
||||||
version: NpmModuleVersion;
|
|
||||||
} | undefined> {
|
|
||||||
|
|
||||||
const { owner, repo, rcPolicy, major } = params;
|
|
||||||
|
|
||||||
const semVersionedTags: { tag: string; version: NpmModuleVersion; }[] = [];
|
|
||||||
|
|
||||||
const { listTags } = listTagsFactory({ octokit });
|
|
||||||
|
|
||||||
for await (const tag of listTags({ owner, repo })) {
|
|
||||||
|
|
||||||
let version: NpmModuleVersion;
|
|
||||||
|
|
||||||
try {
|
|
||||||
|
|
||||||
version = NpmModuleVersion.parse(tag.replace(/^[vV]?/, ""));
|
|
||||||
|
|
||||||
if (major !== undefined && version.major !== major) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
} catch {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
switch (rcPolicy) {
|
|
||||||
case "IGNORE RC":
|
|
||||||
if (version.rc !== undefined) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case "ONLY LOOK FOR RC":
|
|
||||||
if (version.rc === undefined) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
case "RC OR REGULAR RELEASE":
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
semVersionedTags.push({ tag, version });
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
return semVersionedTags
|
|
||||||
.sort(({ version: vX }, { version: vY }) => NpmModuleVersion.compare(vY, vX))[0];
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
return { getLatestSemVersionedTag };
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
@ -1,93 +0,0 @@
|
||||||
|
|
||||||
import type { AsyncReturnType } from "evt/dist/tools/typeSafety/AsyncReturnType";
|
|
||||||
import type { Octokit } from "@octokit/rest";
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/** Alias for the non exported PullsListResponseData type alias */
|
|
||||||
export type PullRequest = AsyncReturnType<Octokit["pulls"]["list"]>["data"][number];
|
|
||||||
|
|
||||||
const per_page = 99;
|
|
||||||
|
|
||||||
export function getPullRequestAsyncIterableFactory(params: { octokit: Octokit; }) {
|
|
||||||
|
|
||||||
const { octokit } = params;
|
|
||||||
|
|
||||||
function getPullRequestAsyncIterable(
|
|
||||||
params: {
|
|
||||||
owner: string;
|
|
||||||
repo: string;
|
|
||||||
state: "open" | "closed" | "all"
|
|
||||||
}
|
|
||||||
): AsyncIterable<PullRequest> {
|
|
||||||
|
|
||||||
const { owner, repo, state } = params;
|
|
||||||
|
|
||||||
let pullRequests: PullRequest[] = [];
|
|
||||||
|
|
||||||
let page = 0;
|
|
||||||
|
|
||||||
let isLastPage: boolean | undefined = undefined;
|
|
||||||
|
|
||||||
const getPullsListResponseData = (params: { page: number }) =>
|
|
||||||
octokit.pulls.list({
|
|
||||||
owner,
|
|
||||||
repo,
|
|
||||||
state,
|
|
||||||
per_page,
|
|
||||||
"page": params.page
|
|
||||||
}).then(({ data }) => data)
|
|
||||||
;
|
|
||||||
|
|
||||||
return {
|
|
||||||
[Symbol.asyncIterator]() {
|
|
||||||
return {
|
|
||||||
"next": async ()=> {
|
|
||||||
|
|
||||||
if (pullRequests.length === 0) {
|
|
||||||
|
|
||||||
if (isLastPage) {
|
|
||||||
return { "done": true, "value": undefined };
|
|
||||||
}
|
|
||||||
|
|
||||||
page++;
|
|
||||||
|
|
||||||
pullRequests = await getPullsListResponseData({ page });
|
|
||||||
|
|
||||||
if (pullRequests.length === 0) {
|
|
||||||
return { "done": true, "value": undefined };
|
|
||||||
}
|
|
||||||
|
|
||||||
isLastPage =
|
|
||||||
pullRequests.length !== per_page ||
|
|
||||||
(await getPullsListResponseData({ "page": page + 1 })).length === 0
|
|
||||||
;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
const [pullRequest, ...rest] = pullRequests;
|
|
||||||
|
|
||||||
pullRequests = rest;
|
|
||||||
|
|
||||||
return {
|
|
||||||
"value": pullRequest,
|
|
||||||
"done": false
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
};
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
return { getPullRequestAsyncIterable };
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -1,4 +0,0 @@
|
||||||
export { getCommitAheadFactory as getChangeLogFactory } from "./getCommitAhead";
|
|
||||||
export { Commit, getCommitAsyncIterableFactory } from "./getCommitAsyncIterable";
|
|
||||||
export { getCommonOriginFactory } from "./getCommonOrigin";
|
|
||||||
export { listCommitFactory } from "./listCommit";
|
|
||||||
|
|
@ -1,51 +0,0 @@
|
||||||
|
|
||||||
import type { Octokit } from "@octokit/rest";
|
|
||||||
import { getCommitAsyncIterableFactory } from "./getCommitAsyncIterable";
|
|
||||||
import type { Commit } from "./getCommitAsyncIterable";
|
|
||||||
|
|
||||||
/** Return the list of commit since given sha (excluded)
|
|
||||||
* ordered from the oldest to the newest */
|
|
||||||
export function listCommitFactory(
|
|
||||||
params: { octokit: Octokit }
|
|
||||||
) {
|
|
||||||
|
|
||||||
const { octokit } = params;
|
|
||||||
|
|
||||||
const { getCommitAsyncIterable } = getCommitAsyncIterableFactory({ octokit });
|
|
||||||
|
|
||||||
async function listCommit(
|
|
||||||
params: {
|
|
||||||
owner: string;
|
|
||||||
repo: string;
|
|
||||||
branch: string;
|
|
||||||
sha: string;
|
|
||||||
}
|
|
||||||
): Promise<Commit[]> {
|
|
||||||
|
|
||||||
const { owner, repo, branch, sha } = params;
|
|
||||||
|
|
||||||
const commitAsyncIterable = getCommitAsyncIterable({
|
|
||||||
owner,
|
|
||||||
repo,
|
|
||||||
branch
|
|
||||||
});
|
|
||||||
|
|
||||||
const commits: Commit[]= [];
|
|
||||||
|
|
||||||
for await (const commit of commitAsyncIterable) {
|
|
||||||
|
|
||||||
if( commit.sha === sha ){
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
commits.push(commit);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
return commits.reverse();
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
return { listCommit };
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
@ -1,82 +0,0 @@
|
||||||
import type { Octokit } from "@octokit/rest";
|
|
||||||
|
|
||||||
const per_page = 99;
|
|
||||||
|
|
||||||
export function listTagsFactory(params: { octokit: Octokit; }) {
|
|
||||||
|
|
||||||
const { octokit } = params;
|
|
||||||
|
|
||||||
const octokit_repo_listTags = (
|
|
||||||
async (
|
|
||||||
params: {
|
|
||||||
owner: string;
|
|
||||||
repo: string;
|
|
||||||
per_page: number;
|
|
||||||
page: number;
|
|
||||||
}
|
|
||||||
) => {
|
|
||||||
|
|
||||||
return octokit.repos.listTags(params);
|
|
||||||
|
|
||||||
}
|
|
||||||
);
|
|
||||||
|
|
||||||
|
|
||||||
async function* listTags(
|
|
||||||
params: {
|
|
||||||
owner: string;
|
|
||||||
repo: string;
|
|
||||||
}
|
|
||||||
): AsyncGenerator<string> {
|
|
||||||
|
|
||||||
const { owner, repo } = params;
|
|
||||||
|
|
||||||
let page = 1;
|
|
||||||
|
|
||||||
while (true) {
|
|
||||||
|
|
||||||
const resp = await octokit_repo_listTags({
|
|
||||||
owner,
|
|
||||||
repo,
|
|
||||||
per_page,
|
|
||||||
"page": page++
|
|
||||||
});
|
|
||||||
|
|
||||||
for (const branch of resp.data.map(({ name }) => name)) {
|
|
||||||
yield branch;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (resp.data.length < 99) {
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/** Returns the same "latest" tag as deno.land/x, not actually the latest though */
|
|
||||||
async function getLatestTag(
|
|
||||||
params: {
|
|
||||||
owner: string;
|
|
||||||
repo: string;
|
|
||||||
}
|
|
||||||
): Promise<string | undefined> {
|
|
||||||
|
|
||||||
const { owner, repo } = params;
|
|
||||||
|
|
||||||
const itRes = await listTags({ owner, repo }).next();
|
|
||||||
|
|
||||||
if (itRes.done) {
|
|
||||||
return undefined;
|
|
||||||
}
|
|
||||||
|
|
||||||
return itRes.value;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
return { listTags, getLatestTag };
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -1,22 +0,0 @@
|
||||||
|
|
||||||
import { getCommitAheadFactory } from "../../octokit-addons/getCommitAhead";
|
|
||||||
import { Octokit } from "@octokit/rest";
|
|
||||||
|
|
||||||
(async ()=>{
|
|
||||||
|
|
||||||
const octokit = new Octokit();
|
|
||||||
|
|
||||||
const { getCommitAhead } = getCommitAheadFactory({ octokit });
|
|
||||||
|
|
||||||
const { commits } = await getCommitAhead({
|
|
||||||
"owner": "garronej",
|
|
||||||
"repo": "test-repo",
|
|
||||||
"branchBehind": "garronej-patch-1",
|
|
||||||
"branchAhead": "master"
|
|
||||||
});
|
|
||||||
|
|
||||||
const messages = commits.map(({ commit })=> commit.message );
|
|
||||||
|
|
||||||
console.log(JSON.stringify(messages, null, 2));
|
|
||||||
|
|
||||||
})();
|
|
||||||
|
|
@ -1,28 +0,0 @@
|
||||||
|
|
||||||
import { getCommitAsyncIterableFactory } from "../../octokit-addons/getCommitAsyncIterable";
|
|
||||||
import { createOctokit } from "../../createOctokit";
|
|
||||||
|
|
||||||
|
|
||||||
(async function () {
|
|
||||||
|
|
||||||
const octokit = createOctokit({ "github_token": "" });
|
|
||||||
|
|
||||||
const { getCommitAsyncIterable } = getCommitAsyncIterableFactory({ octokit });
|
|
||||||
|
|
||||||
const commitAsyncIterable = getCommitAsyncIterable({
|
|
||||||
"owner": "garronej",
|
|
||||||
"repo": "test-repo",
|
|
||||||
"branch": "master"
|
|
||||||
});
|
|
||||||
|
|
||||||
for await (const commit of commitAsyncIterable) {
|
|
||||||
console.log(commit.commit.message);
|
|
||||||
}
|
|
||||||
|
|
||||||
console.log("done");
|
|
||||||
|
|
||||||
})();
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -1,23 +0,0 @@
|
||||||
|
|
||||||
import { getCommonOriginFactory } from "../../octokit-addons/getCommonOrigin";
|
|
||||||
import { Octokit } from "@octokit/rest";
|
|
||||||
|
|
||||||
|
|
||||||
(async function () {
|
|
||||||
|
|
||||||
const octokit = new Octokit();
|
|
||||||
|
|
||||||
const { getCommonOrigin } = getCommonOriginFactory({ octokit });
|
|
||||||
|
|
||||||
const { sha } = await getCommonOrigin({
|
|
||||||
"owner": "garronej",
|
|
||||||
"repo": "test-repo",
|
|
||||||
"branch1": "master",
|
|
||||||
"branch2": "garronej-patch-1"
|
|
||||||
});
|
|
||||||
|
|
||||||
console.log({ sha });
|
|
||||||
|
|
||||||
})();
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -1,21 +0,0 @@
|
||||||
|
|
||||||
import { listCommitFactory } from "../../octokit-addons/listCommit";
|
|
||||||
import { createOctokit } from "../../createOctokit";
|
|
||||||
|
|
||||||
(async ()=>{
|
|
||||||
|
|
||||||
const octokit = createOctokit({ "github_token": "" });
|
|
||||||
|
|
||||||
|
|
||||||
const { listCommit } = listCommitFactory({ octokit });
|
|
||||||
|
|
||||||
const commits= await listCommit({
|
|
||||||
"owner": "garronej",
|
|
||||||
"repo": "supreme_tribble",
|
|
||||||
"branch": "dev",
|
|
||||||
"sha": "84792f5719d0812e6917051b5c6331891187ca20"
|
|
||||||
});
|
|
||||||
|
|
||||||
console.log(JSON.stringify(commits, null, 2));
|
|
||||||
|
|
||||||
})();
|
|
||||||
|
|
@ -1,205 +0,0 @@
|
||||||
|
|
||||||
import { getActionParamsFactory } from "./inputHelper";
|
|
||||||
import * as st from "scripting-tools";
|
|
||||||
import { getCommitAheadFactory } from "./tools/octokit-addons/getCommitAhead";
|
|
||||||
import * as get_package_json_version from "./get_package_json_version";
|
|
||||||
import * as fs from "fs";
|
|
||||||
import { NpmModuleVersion } from "./tools/NpmModuleVersion";
|
|
||||||
import { gitCommit } from "./tools/gitCommit";
|
|
||||||
import { getLatestSemVersionedTagFactory } from "./tools/octokit-addons/getLatestSemVersionedTag";
|
|
||||||
import { createOctokit } from "./tools/createOctokit";
|
|
||||||
import { assert } from "tsafe/assert";
|
|
||||||
|
|
||||||
export const { getActionParams } = getActionParamsFactory({
|
|
||||||
"inputNameSubset": [
|
|
||||||
"owner",
|
|
||||||
"repo",
|
|
||||||
"branch",
|
|
||||||
"exclude_commit_from_author_names_json",
|
|
||||||
"github_token"
|
|
||||||
] as const
|
|
||||||
});
|
|
||||||
|
|
||||||
export type Params = ReturnType<typeof getActionParams>;
|
|
||||||
|
|
||||||
type CoreLike = {
|
|
||||||
debug: (message: string) => void;
|
|
||||||
warning: (message: string)=> void;
|
|
||||||
};
|
|
||||||
|
|
||||||
export async function action(
|
|
||||||
_actionName: "update_changelog",
|
|
||||||
params: Params,
|
|
||||||
core: CoreLike
|
|
||||||
) {
|
|
||||||
|
|
||||||
const {
|
|
||||||
owner,
|
|
||||||
repo,
|
|
||||||
github_token
|
|
||||||
} = params;
|
|
||||||
|
|
||||||
//params.branch <- github.head_ref || github.ref
|
|
||||||
//When it's a normal branch: github.head_ref==="" and github.ref==="refs/heads/main"
|
|
||||||
//When it's a pr from: github.head_ref==="<name of the branch branch>"
|
|
||||||
const branch = params.branch.replace(/^refs\/heads\//, "");
|
|
||||||
|
|
||||||
core.debug(`params: ${JSON.stringify(params)}`);
|
|
||||||
|
|
||||||
const exclude_commit_from_author_names: string[] =
|
|
||||||
JSON.parse(params.exclude_commit_from_author_names_json)
|
|
||||||
;
|
|
||||||
|
|
||||||
|
|
||||||
const octokit = createOctokit({ github_token });
|
|
||||||
|
|
||||||
const { getCommitAhead } = getCommitAheadFactory({ octokit });
|
|
||||||
|
|
||||||
const { getLatestSemVersionedTag } = getLatestSemVersionedTagFactory({ octokit });
|
|
||||||
|
|
||||||
const { tag: branchBehind } = (await getLatestSemVersionedTag({ owner, repo, "rcPolicy": "IGNORE RC", "major": undefined })) ?? {};
|
|
||||||
|
|
||||||
if( branchBehind === undefined ){
|
|
||||||
|
|
||||||
core.warning(`It's the first release, not editing the CHANGELOG.md`);
|
|
||||||
|
|
||||||
return;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
const { commits } = await getCommitAhead({
|
|
||||||
owner,
|
|
||||||
repo,
|
|
||||||
branchBehind,
|
|
||||||
"branchAhead": branch
|
|
||||||
}).catch(() => ({ "commits": undefined }));
|
|
||||||
|
|
||||||
if( commits === undefined ){
|
|
||||||
|
|
||||||
core.warning(`${owner}/${repo}#${branchBehind} probably does not exist ( branch: ${branch})`);
|
|
||||||
|
|
||||||
return;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
const [
|
|
||||||
branchBehindVersion,
|
|
||||||
branchAheadVersion
|
|
||||||
] = await Promise.all(
|
|
||||||
([branchBehind, branch] as const)
|
|
||||||
.map(branch =>
|
|
||||||
get_package_json_version.action(
|
|
||||||
"get_package_json_version",
|
|
||||||
{
|
|
||||||
owner,
|
|
||||||
repo,
|
|
||||||
branch,
|
|
||||||
"compare_to_version": "0.0.0"
|
|
||||||
},
|
|
||||||
core
|
|
||||||
).then(({ version }) => version)
|
|
||||||
)
|
|
||||||
);
|
|
||||||
|
|
||||||
if( NpmModuleVersion.parse(branchAheadVersion).rc !== undefined ){
|
|
||||||
|
|
||||||
core.warning(`Version on ${branch} is ${branchAheadVersion} it's a release candidate, we do not update the CHANGELOG.md`);
|
|
||||||
|
|
||||||
return;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
const bumpType = NpmModuleVersion.bumpType({
|
|
||||||
"versionAheadStr": branchAheadVersion,
|
|
||||||
"versionBehindStr": branchBehindVersion || "0.0.0"
|
|
||||||
});
|
|
||||||
|
|
||||||
assert(bumpType !== "rc");
|
|
||||||
|
|
||||||
if( bumpType === "same" ){
|
|
||||||
|
|
||||||
core.warning(`Version on ${branch} and ${branchBehind} are the same, not editing CHANGELOG.md`);
|
|
||||||
|
|
||||||
return;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
await gitCommit({
|
|
||||||
owner,
|
|
||||||
repo,
|
|
||||||
github_token,
|
|
||||||
"commitAuthorEmail": "actions@github.com",
|
|
||||||
"performChanges": async () => {
|
|
||||||
|
|
||||||
await st.exec(`git checkout ${branch}`);
|
|
||||||
|
|
||||||
const { changelogRaw } = updateChangelog({
|
|
||||||
"changelogRaw":
|
|
||||||
fs.existsSync("CHANGELOG.md") ?
|
|
||||||
fs.readFileSync("CHANGELOG.md")
|
|
||||||
.toString("utf8")
|
|
||||||
: "",
|
|
||||||
"version": branchAheadVersion,
|
|
||||||
bumpType,
|
|
||||||
"body": commits
|
|
||||||
.reverse()
|
|
||||||
.filter(({ commit }) => !exclude_commit_from_author_names.includes(commit.author.name))
|
|
||||||
.map(({ commit }) => commit.message)
|
|
||||||
.filter(message => !/changelog/i.test(message))
|
|
||||||
.filter(message => !/^Merge branch /.test(message))
|
|
||||||
.filter(message => !/^GitBook: /.test(message))
|
|
||||||
.map(message => `- ${message} `)
|
|
||||||
.join("\n")
|
|
||||||
});
|
|
||||||
|
|
||||||
core.debug(`CHANGELOG.md: ${changelogRaw}`);
|
|
||||||
|
|
||||||
fs.writeFileSync(
|
|
||||||
"CHANGELOG.md",
|
|
||||||
Buffer.from(changelogRaw, "utf8")
|
|
||||||
);
|
|
||||||
|
|
||||||
return {
|
|
||||||
"commit": true,
|
|
||||||
"addAll": true,
|
|
||||||
"message": `Update changelog v${branchAheadVersion}`
|
|
||||||
};
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
});
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
function updateChangelog(
|
|
||||||
params: {
|
|
||||||
changelogRaw: string;
|
|
||||||
version: string;
|
|
||||||
bumpType: "major" | "minor" | "patch";
|
|
||||||
body: string;
|
|
||||||
}
|
|
||||||
): { changelogRaw: string; } {
|
|
||||||
|
|
||||||
const { body, version, bumpType } = params;
|
|
||||||
|
|
||||||
const dateString = (() => {
|
|
||||||
|
|
||||||
const now = new Date();
|
|
||||||
|
|
||||||
return new Date(now.getTime() - (now.getTimezoneOffset() * 60000))
|
|
||||||
.toISOString()
|
|
||||||
.split("T")[0];
|
|
||||||
|
|
||||||
})();
|
|
||||||
|
|
||||||
const changelogRaw = [
|
|
||||||
`${bumpType === "major" ? "#" : (bumpType === "minor" ? "##" : "###")}`,
|
|
||||||
` **${version}** (${dateString}) \n \n`,
|
|
||||||
`${body} \n \n`,
|
|
||||||
params.changelogRaw
|
|
||||||
].join("");
|
|
||||||
|
|
||||||
|
|
||||||
return { changelogRaw };
|
|
||||||
|
|
||||||
}
|
|
||||||
11
test/myFunction.test.ts
Normal file
11
test/myFunction.test.ts
Normal file
|
|
@ -0,0 +1,11 @@
|
||||||
|
import { describe, it, expect } from "vitest";
|
||||||
|
import { myFunction } from "../src/myFunction";
|
||||||
|
|
||||||
|
describe("Test myFunction", () => {
|
||||||
|
it("Should return the correct value", async () => {
|
||||||
|
expect(myFunction()).toStrictEqual(["a", "b", "c"]);
|
||||||
|
});
|
||||||
|
it("should return the correct number of element", async () => {
|
||||||
|
expect(myFunction().length).toBe(3);
|
||||||
|
});
|
||||||
|
});
|
||||||
8
test/myObject.test.ts
Normal file
8
test/myObject.test.ts
Normal file
|
|
@ -0,0 +1,8 @@
|
||||||
|
import { describe, it, expect } from "vitest";
|
||||||
|
import { myObject } from "../src/myObject";
|
||||||
|
|
||||||
|
describe("Test myObject", () => {
|
||||||
|
it("Should have the correct keys", async () => {
|
||||||
|
expect(Object.keys(myObject)).toStrictEqual(["p"]);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
@ -1,12 +1,24 @@
|
||||||
{
|
{
|
||||||
"compilerOptions": {
|
"compilerOptions": {
|
||||||
"target": "es6", /* Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017', 'ES2018', 'ES2019' or 'ESNEXT'. */
|
"module": "CommonJS",
|
||||||
"module": "commonjs", /* Specify module code generation: 'none', 'commonjs', 'amd', 'system', 'umd', 'es2015', or 'ESNext'. */
|
"target": "es5",
|
||||||
"outDir": "./lib", /* Redirect output structure to the directory. */
|
"moduleResolution": "node",
|
||||||
"rootDir": "./src", /* Specify the root directory of input files. Use to control the output directory structure with --outDir. */
|
"lib": ["es2015", "DOM", "ES2019.Object"],
|
||||||
"strict": true, /* Enable all strict type-checking options. */
|
"esModuleInterop": true,
|
||||||
"noImplicitAny": true, /* Raise error on expressions and declarations with an implied 'any' type. */
|
"declaration": true,
|
||||||
"esModuleInterop": true /* Enables emit interoperability between CommonJS and ES Modules via creation of namespace objects for all imports. Implies 'allowSyntheticDefaultImports'. */
|
// Do not change or the linking script will stop working
|
||||||
},
|
"outDir": "./dist",
|
||||||
"exclude": ["node_modules", "**/*.test.ts"]
|
"sourceMap": true,
|
||||||
|
"newLine": "LF",
|
||||||
|
"noUnusedLocals": true,
|
||||||
|
"noUnusedParameters": true,
|
||||||
|
"incremental": true,
|
||||||
|
"strict": true,
|
||||||
|
"downlevelIteration": true,
|
||||||
|
"jsx": "react-jsx",
|
||||||
|
"noFallthroughCasesInSwitch": true,
|
||||||
|
"skipLibCheck": true
|
||||||
|
},
|
||||||
|
"include": ["src"],
|
||||||
|
"exclude": ["src/**/*.deno.ts", "src/**/*.deno.tsx"]
|
||||||
}
|
}
|
||||||
|
|
|
||||||
8
vitest.config.ts
Normal file
8
vitest.config.ts
Normal file
|
|
@ -0,0 +1,8 @@
|
||||||
|
import { defineConfig } from "vitest/config";
|
||||||
|
|
||||||
|
// ref: https://vitest.dev/config/
|
||||||
|
export default defineConfig({
|
||||||
|
"test": {
|
||||||
|
"watch": false
|
||||||
|
}
|
||||||
|
});
|
||||||
Loading…
Add table
Add a link
Reference in a new issue