{title}
7 |{text}
8 |├── .gitignore ├── Code ├── 02 Basics │ ├── 01 First Workflow │ │ ├── .github │ │ │ └── workflows │ │ │ │ └── first-action.yml │ │ └── README.md │ ├── 02 Starting Project │ │ ├── .gitignore │ │ ├── index.html │ │ ├── package-lock.json │ │ ├── package.json │ │ ├── public │ │ │ └── vite.svg │ │ ├── src │ │ │ ├── App.jsx │ │ │ ├── assets │ │ │ │ └── images │ │ │ │ │ └── logo.png │ │ │ ├── components │ │ │ │ ├── HelpArea.css │ │ │ │ ├── HelpArea.jsx │ │ │ │ ├── HelpBox.css │ │ │ │ ├── HelpBox.jsx │ │ │ │ ├── MainContent.jsx │ │ │ │ └── MainContent.test.jsx │ │ │ ├── index.css │ │ │ ├── main.jsx │ │ │ └── test │ │ │ │ └── setup.js │ │ └── vite.config.js │ ├── 03 Finished Project │ │ ├── .github │ │ │ └── workflows │ │ │ │ ├── deployment.yml │ │ │ │ └── output.yml │ │ ├── .gitignore │ │ ├── index.html │ │ ├── package-lock.json │ │ ├── package.json │ │ ├── public │ │ │ └── vite.svg │ │ ├── src │ │ │ ├── App.jsx │ │ │ ├── assets │ │ │ │ └── images │ │ │ │ │ └── logo.png │ │ │ ├── components │ │ │ │ ├── HelpArea.css │ │ │ │ ├── HelpArea.jsx │ │ │ │ ├── HelpBox.css │ │ │ │ ├── HelpBox.jsx │ │ │ │ ├── MainContent.jsx │ │ │ │ └── MainContent.test.jsx │ │ │ ├── index.css │ │ │ ├── main.jsx │ │ │ └── test │ │ │ │ └── setup.js │ │ └── vite.config.js │ ├── 04 Practice Project (Start) │ │ ├── .eslintrc.json │ │ ├── .gitignore │ │ ├── index.html │ │ ├── package-lock.json │ │ ├── package.json │ │ ├── public │ │ │ └── vite.svg │ │ ├── src │ │ │ ├── App.jsx │ │ │ ├── assets │ │ │ │ └── images │ │ │ │ │ └── logo.png │ │ │ ├── components │ │ │ │ ├── HelpArea.css │ │ │ │ ├── HelpArea.jsx │ │ │ │ ├── HelpBox.css │ │ │ │ ├── HelpBox.jsx │ │ │ │ ├── MainContent.jsx │ │ │ │ └── MainContent.test.jsx │ │ │ ├── index.css │ │ │ ├── main.jsx │ │ │ └── test │ │ │ │ └── setup.js │ │ └── vite.config.js │ └── 05 Practice Project (Finished) │ │ ├── .eslintrc.json │ │ ├── .github │ │ └── workflows │ │ │ ├── deployment1.yaml │ │ │ ├── deployment2.yaml │ │ │ └── issues.yml │ │ ├── .gitignore │ │ ├── index.html │ │ ├── package-lock.json │ │ ├── package.json │ │ ├── public │ │ └── vite.svg │ │ ├── src │ │ ├── App.jsx │ │ ├── assets │ │ │ └── images │ │ │ │ └── logo.png │ │ ├── components │ │ │ ├── HelpArea.css │ │ │ ├── HelpArea.jsx │ │ │ ├── HelpBox.css │ │ │ ├── HelpBox.jsx │ │ │ ├── MainContent.jsx │ │ │ └── MainContent.test.jsx │ │ ├── index.css │ │ ├── main.jsx │ │ └── test │ │ │ └── setup.js │ │ └── vite.config.js ├── 03 Events │ ├── 01 Starting Project │ │ ├── .eslintrc.json │ │ ├── .github │ │ │ └── workflows │ │ │ │ └── demo1.yml │ │ ├── .gitignore │ │ ├── index.html │ │ ├── package-lock.json │ │ ├── package.json │ │ ├── public │ │ │ └── vite.svg │ │ ├── src │ │ │ ├── App.jsx │ │ │ ├── assets │ │ │ │ └── images │ │ │ │ │ └── logo.png │ │ │ ├── components │ │ │ │ ├── HelpArea.css │ │ │ │ ├── HelpArea.jsx │ │ │ │ ├── HelpBox.css │ │ │ │ ├── HelpBox.jsx │ │ │ │ ├── MainContent.jsx │ │ │ │ └── MainContent.test.jsx │ │ │ ├── index.css │ │ │ ├── main.jsx │ │ │ └── test │ │ │ │ └── setup.js │ │ └── vite.config.js │ └── 02 Finished Project │ │ ├── .eslintrc.json │ │ ├── .github │ │ └── workflows │ │ │ └── demo1.yml │ │ ├── .gitignore │ │ ├── index.html │ │ ├── package-lock.json │ │ ├── package.json │ │ ├── public │ │ └── vite.svg │ │ ├── src │ │ ├── App.jsx │ │ ├── assets │ │ │ └── images │ │ │ │ └── logo.png │ │ ├── components │ │ │ ├── HelpArea.css │ │ │ ├── HelpArea.jsx │ │ │ ├── HelpBox.css │ │ │ ├── HelpBox.jsx │ │ │ ├── MainContent.jsx │ │ │ └── MainContent.test.jsx │ │ ├── index.css │ │ ├── main.jsx │ │ └── test │ │ │ └── setup.js │ │ └── vite.config.js ├── 04 Artifacts & Outputs │ ├── 01 Starting Project │ │ ├── .eslintrc.json │ │ ├── .github │ │ │ └── workflows │ │ │ │ └── demo.yml │ │ ├── .gitignore │ │ ├── index.html │ │ ├── package-lock.json │ │ ├── package.json │ │ ├── public │ │ │ └── vite.svg │ │ ├── src │ │ │ ├── App.jsx │ │ │ ├── assets │ │ │ │ └── images │ │ │ │ │ └── logo.png │ │ │ ├── components │ │ │ │ ├── HelpArea.css │ │ │ │ ├── HelpArea.jsx │ │ │ │ ├── HelpBox.css │ │ │ │ ├── HelpBox.jsx │ │ │ │ ├── MainContent.jsx │ │ │ │ └── MainContent.test.jsx │ │ │ ├── index.css │ │ │ ├── main.jsx │ │ │ └── test │ │ │ │ └── setup.js │ │ └── vite.config.js │ ├── 02 Extra Files │ │ └── command.txt │ └── 03 Finished Project │ │ ├── .eslintrc.json │ │ ├── .github │ │ └── workflows │ │ │ └── demo.yml │ │ ├── .gitignore │ │ ├── index.html │ │ ├── package-lock.json │ │ ├── package.json │ │ ├── public │ │ └── vite.svg │ │ ├── src │ │ ├── App.jsx │ │ ├── assets │ │ │ └── images │ │ │ │ └── logo.png │ │ ├── components │ │ │ ├── HelpArea.css │ │ │ ├── HelpArea.jsx │ │ │ ├── HelpBox.css │ │ │ ├── HelpBox.jsx │ │ │ ├── MainContent.jsx │ │ │ └── MainContent.test.jsx │ │ ├── index.css │ │ ├── main.jsx │ │ └── test │ │ │ └── setup.js │ │ └── vite.config.js ├── 05 Environment Variables & Secrets │ ├── 01 Starting Project │ │ ├── .github │ │ │ └── workflows │ │ │ │ └── deploy.yml │ │ ├── .gitignore │ │ ├── app.js │ │ ├── data │ │ │ └── database.js │ │ ├── package-lock.json │ │ ├── package.json │ │ ├── playwright.config.js │ │ ├── routes │ │ │ └── events.js │ │ └── tests │ │ │ └── events-api.spec.js │ └── 02 Finished Project │ │ ├── .github │ │ └── workflows │ │ │ └── deploy.yml │ │ ├── .gitignore │ │ ├── app.js │ │ ├── data │ │ └── database.js │ │ ├── package-lock.json │ │ ├── package.json │ │ ├── playwright.config.js │ │ ├── routes │ │ └── events.js │ │ └── tests │ │ └── events-api.spec.js ├── 06 Execution Flow │ ├── 01 Starting Project │ │ ├── .eslintrc.json │ │ ├── .github │ │ │ └── workflows │ │ │ │ └── execution-flow.yml │ │ ├── .gitignore │ │ ├── index.html │ │ ├── package-lock.json │ │ ├── package.json │ │ ├── public │ │ │ └── vite.svg │ │ ├── src │ │ │ ├── App.jsx │ │ │ ├── assets │ │ │ │ └── images │ │ │ │ │ └── logo.png │ │ │ ├── components │ │ │ │ ├── HelpArea.css │ │ │ │ ├── HelpArea.jsx │ │ │ │ ├── HelpBox.css │ │ │ │ ├── HelpBox.jsx │ │ │ │ ├── MainContent.jsx │ │ │ │ └── MainContent.test.jsx │ │ │ ├── index.css │ │ │ ├── main.jsx │ │ │ └── test │ │ │ │ └── setup.js │ │ ├── test.json │ │ └── vite.config.js │ └── 02 Finished Project │ │ ├── .eslintrc.json │ │ ├── .github │ │ └── workflows │ │ │ ├── continue.yml │ │ │ ├── execution-flow.yml │ │ │ ├── matrix.yml │ │ │ ├── reusable.yml │ │ │ └── use-reuse.yml │ │ ├── .gitignore │ │ ├── index.html │ │ ├── package-lock.json │ │ ├── package.json │ │ ├── public │ │ └── vite.svg │ │ ├── src │ │ ├── App.jsx │ │ ├── assets │ │ │ └── images │ │ │ │ └── logo.png │ │ ├── components │ │ │ ├── HelpArea.css │ │ │ ├── HelpArea.jsx │ │ │ ├── HelpBox.css │ │ │ ├── HelpBox.jsx │ │ │ ├── MainContent.jsx │ │ │ └── MainContent.test.jsx │ │ ├── index.css │ │ ├── main.jsx │ │ └── test │ │ │ └── setup.js │ │ ├── test.json │ │ └── vite.config.js ├── 07 Containers │ ├── 01 Starting Project │ │ ├── .github │ │ │ └── workflows │ │ │ │ └── deploy.yml │ │ ├── .gitignore │ │ ├── .vscode │ │ │ └── settings.json │ │ ├── Dockerfile │ │ ├── app.js │ │ ├── data │ │ │ └── database.js │ │ ├── package-lock.json │ │ ├── package.json │ │ ├── playwright.config.js │ │ ├── routes │ │ │ └── events.js │ │ └── tests │ │ │ └── events-api.spec.js │ └── 02 Finished Project │ │ ├── .github │ │ └── workflows │ │ │ └── deploy.yml │ │ ├── .gitignore │ │ ├── .vscode │ │ └── settings.json │ │ ├── Dockerfile │ │ ├── app.js │ │ ├── data │ │ └── database.js │ │ ├── package-lock.json │ │ ├── package.json │ │ ├── playwright.config.js │ │ ├── routes │ │ └── events.js │ │ └── tests │ │ └── events-api.spec.js ├── 08 Custom Actions │ ├── 01 Starting Project │ │ ├── .eslintrc.json │ │ ├── .github │ │ │ └── workflows │ │ │ │ └── deploy.yml │ │ ├── .gitignore │ │ ├── index.html │ │ ├── package-lock.json │ │ ├── package.json │ │ ├── public │ │ │ └── vite.svg │ │ ├── src │ │ │ ├── App.jsx │ │ │ ├── assets │ │ │ │ └── images │ │ │ │ │ └── logo.png │ │ │ ├── components │ │ │ │ ├── HelpArea.css │ │ │ │ ├── HelpArea.jsx │ │ │ │ ├── HelpBox.css │ │ │ │ ├── HelpBox.jsx │ │ │ │ ├── MainContent.jsx │ │ │ │ └── MainContent.test.jsx │ │ │ ├── index.css │ │ │ ├── main.jsx │ │ │ └── test │ │ │ │ └── setup.js │ │ ├── test.json │ │ └── vite.config.js │ ├── 02 Docker Code │ │ ├── .eslintrc.json │ │ ├── .github │ │ │ ├── actions │ │ │ │ ├── cached-deps │ │ │ │ │ └── action.yml │ │ │ │ ├── deploy-s3-docker │ │ │ │ │ ├── Dockerfile │ │ │ │ │ ├── deployment.py │ │ │ │ │ └── requirements.txt │ │ │ │ └── deploy-s3-javascript │ │ │ │ │ ├── action.yml │ │ │ │ │ ├── main.js │ │ │ │ │ ├── package-lock.json │ │ │ │ │ └── package.json │ │ │ └── workflows │ │ │ │ └── deploy.yml │ │ ├── .gitignore │ │ ├── index.html │ │ ├── package-lock.json │ │ ├── package.json │ │ ├── public │ │ │ └── vite.svg │ │ ├── src │ │ │ ├── App.jsx │ │ │ ├── assets │ │ │ │ └── images │ │ │ │ │ └── logo.png │ │ │ ├── components │ │ │ │ ├── HelpArea.css │ │ │ │ ├── HelpArea.jsx │ │ │ │ ├── HelpBox.css │ │ │ │ ├── HelpBox.jsx │ │ │ │ ├── MainContent.jsx │ │ │ │ └── MainContent.test.jsx │ │ │ ├── index.css │ │ │ ├── main.jsx │ │ │ └── test │ │ │ │ └── setup.js │ │ ├── test.json │ │ └── vite.config.js │ └── 03 Finished Project │ │ ├── .eslintrc.json │ │ ├── .github │ │ ├── actions │ │ │ ├── cached-deps │ │ │ │ └── action.yml │ │ │ ├── deploy-s3-docker │ │ │ │ ├── Dockerfile │ │ │ │ ├── action.yml │ │ │ │ ├── deployment.py │ │ │ │ └── requirements.txt │ │ │ └── deploy-s3-javascript │ │ │ │ ├── action.yml │ │ │ │ ├── main.js │ │ │ │ ├── node_modules │ │ │ │ ├── .bin │ │ │ │ │ └── uuid │ │ │ │ ├── .package-lock.json │ │ │ │ ├── @actions │ │ │ │ │ ├── core │ │ │ │ │ │ ├── LICENSE.md │ │ │ │ │ │ ├── README.md │ │ │ │ │ │ ├── lib │ │ │ │ │ │ │ ├── command.d.ts │ │ │ │ │ │ │ ├── command.js │ │ │ │ │ │ │ ├── command.js.map │ │ │ │ │ │ │ ├── core.d.ts │ │ │ │ │ │ │ ├── core.js │ │ │ │ │ │ │ ├── core.js.map │ │ │ │ │ │ │ ├── file-command.d.ts │ │ │ │ │ │ │ ├── file-command.js │ │ │ │ │ │ │ ├── file-command.js.map │ │ │ │ │ │ │ ├── oidc-utils.d.ts │ │ │ │ │ │ │ ├── oidc-utils.js │ │ │ │ │ │ │ ├── oidc-utils.js.map │ │ │ │ │ │ │ ├── path-utils.d.ts │ │ │ │ │ │ │ ├── path-utils.js │ │ │ │ │ │ │ ├── path-utils.js.map │ │ │ │ │ │ │ ├── summary.d.ts │ │ │ │ │ │ │ ├── summary.js │ │ │ │ │ │ │ ├── summary.js.map │ │ │ │ │ │ │ ├── utils.d.ts │ │ │ │ │ │ │ ├── utils.js │ │ │ │ │ │ │ └── utils.js.map │ │ │ │ │ │ └── package.json │ │ │ │ │ ├── exec │ │ │ │ │ │ ├── LICENSE.md │ │ │ │ │ │ ├── README.md │ │ │ │ │ │ ├── lib │ │ │ │ │ │ │ ├── exec.d.ts │ │ │ │ │ │ │ ├── exec.js │ │ │ │ │ │ │ ├── exec.js.map │ │ │ │ │ │ │ ├── interfaces.d.ts │ │ │ │ │ │ │ ├── interfaces.js │ │ │ │ │ │ │ ├── interfaces.js.map │ │ │ │ │ │ │ ├── toolrunner.d.ts │ │ │ │ │ │ │ ├── toolrunner.js │ │ │ │ │ │ │ └── toolrunner.js.map │ │ │ │ │ │ └── package.json │ │ │ │ │ ├── github │ │ │ │ │ │ ├── LICENSE.md │ │ │ │ │ │ ├── README.md │ │ │ │ │ │ ├── lib │ │ │ │ │ │ │ ├── context.d.ts │ │ │ │ │ │ │ ├── context.js │ │ │ │ │ │ │ ├── context.js.map │ │ │ │ │ │ │ ├── github.d.ts │ │ │ │ │ │ │ ├── github.js │ │ │ │ │ │ │ ├── github.js.map │ │ │ │ │ │ │ ├── interfaces.d.ts │ │ │ │ │ │ │ ├── interfaces.js │ │ │ │ │ │ │ ├── interfaces.js.map │ │ │ │ │ │ │ ├── internal │ │ │ │ │ │ │ │ ├── utils.d.ts │ │ │ │ │ │ │ │ ├── utils.js │ │ │ │ │ │ │ │ └── utils.js.map │ │ │ │ │ │ │ ├── utils.d.ts │ │ │ │ │ │ │ ├── utils.js │ │ │ │ │ │ │ └── utils.js.map │ │ │ │ │ │ └── package.json │ │ │ │ │ ├── http-client │ │ │ │ │ │ ├── LICENSE │ │ │ │ │ │ ├── README.md │ │ │ │ │ │ ├── lib │ │ │ │ │ │ │ ├── auth.d.ts │ │ │ │ │ │ │ ├── auth.js │ │ │ │ │ │ │ ├── auth.js.map │ │ │ │ │ │ │ ├── index.d.ts │ │ │ │ │ │ │ ├── index.js │ │ │ │ │ │ │ ├── index.js.map │ │ │ │ │ │ │ ├── interfaces.d.ts │ │ │ │ │ │ │ ├── interfaces.js │ │ │ │ │ │ │ ├── interfaces.js.map │ │ │ │ │ │ │ ├── proxy.d.ts │ │ │ │ │ │ │ ├── proxy.js │ │ │ │ │ │ │ └── proxy.js.map │ │ │ │ │ │ └── package.json │ │ │ │ │ └── io │ │ │ │ │ │ ├── LICENSE.md │ │ │ │ │ │ ├── README.md │ │ │ │ │ │ ├── lib │ │ │ │ │ │ ├── io-util.d.ts │ │ │ │ │ │ ├── io-util.js │ │ │ │ │ │ ├── io-util.js.map │ │ │ │ │ │ ├── io.d.ts │ │ │ │ │ │ ├── io.js │ │ │ │ │ │ └── io.js.map │ │ │ │ │ │ └── package.json │ │ │ │ ├── @octokit │ │ │ │ │ ├── auth-token │ │ │ │ │ │ ├── LICENSE │ │ │ │ │ │ ├── README.md │ │ │ │ │ │ ├── dist-node │ │ │ │ │ │ │ ├── index.js │ │ │ │ │ │ │ └── index.js.map │ │ │ │ │ │ ├── dist-src │ │ │ │ │ │ │ ├── auth.js │ │ │ │ │ │ │ ├── hook.js │ │ │ │ │ │ │ ├── index.js │ │ │ │ │ │ │ ├── types.js │ │ │ │ │ │ │ └── with-authorization-prefix.js │ │ │ │ │ │ ├── dist-types │ │ │ │ │ │ │ ├── auth.d.ts │ │ │ │ │ │ │ ├── hook.d.ts │ │ │ │ │ │ │ ├── index.d.ts │ │ │ │ │ │ │ ├── types.d.ts │ │ │ │ │ │ │ └── with-authorization-prefix.d.ts │ │ │ │ │ │ ├── dist-web │ │ │ │ │ │ │ ├── index.js │ │ │ │ │ │ │ └── index.js.map │ │ │ │ │ │ └── package.json │ │ │ │ │ ├── core │ │ │ │ │ │ ├── LICENSE │ │ │ │ │ │ ├── README.md │ │ │ │ │ │ ├── dist-node │ │ │ │ │ │ │ ├── index.js │ │ │ │ │ │ │ └── index.js.map │ │ │ │ │ │ ├── dist-src │ │ │ │ │ │ │ ├── index.js │ │ │ │ │ │ │ ├── types.js │ │ │ │ │ │ │ └── version.js │ │ │ │ │ │ ├── dist-types │ │ │ │ │ │ │ ├── index.d.ts │ │ │ │ │ │ │ ├── types.d.ts │ │ │ │ │ │ │ └── version.d.ts │ │ │ │ │ │ ├── dist-web │ │ │ │ │ │ │ ├── index.js │ │ │ │ │ │ │ └── index.js.map │ │ │ │ │ │ └── package.json │ │ │ │ │ ├── endpoint │ │ │ │ │ │ ├── LICENSE │ │ │ │ │ │ ├── README.md │ │ │ │ │ │ ├── dist-node │ │ │ │ │ │ │ ├── index.js │ │ │ │ │ │ │ └── index.js.map │ │ │ │ │ │ ├── dist-src │ │ │ │ │ │ │ ├── defaults.js │ │ │ │ │ │ │ ├── endpoint-with-defaults.js │ │ │ │ │ │ │ ├── index.js │ │ │ │ │ │ │ ├── merge.js │ │ │ │ │ │ │ ├── parse.js │ │ │ │ │ │ │ ├── util │ │ │ │ │ │ │ │ ├── add-query-parameters.js │ │ │ │ │ │ │ │ ├── extract-url-variable-names.js │ │ │ │ │ │ │ │ ├── lowercase-keys.js │ │ │ │ │ │ │ │ ├── merge-deep.js │ │ │ │ │ │ │ │ ├── omit.js │ │ │ │ │ │ │ │ ├── remove-undefined-properties.js │ │ │ │ │ │ │ │ └── url-template.js │ │ │ │ │ │ │ ├── version.js │ │ │ │ │ │ │ └── with-defaults.js │ │ │ │ │ │ ├── dist-types │ │ │ │ │ │ │ ├── defaults.d.ts │ │ │ │ │ │ │ ├── endpoint-with-defaults.d.ts │ │ │ │ │ │ │ ├── index.d.ts │ │ │ │ │ │ │ ├── merge.d.ts │ │ │ │ │ │ │ ├── parse.d.ts │ │ │ │ │ │ │ ├── util │ │ │ │ │ │ │ │ ├── add-query-parameters.d.ts │ │ │ │ │ │ │ │ ├── extract-url-variable-names.d.ts │ │ │ │ │ │ │ │ ├── lowercase-keys.d.ts │ │ │ │ │ │ │ │ ├── merge-deep.d.ts │ │ │ │ │ │ │ │ ├── omit.d.ts │ │ │ │ │ │ │ │ ├── remove-undefined-properties.d.ts │ │ │ │ │ │ │ │ └── url-template.d.ts │ │ │ │ │ │ │ ├── version.d.ts │ │ │ │ │ │ │ └── with-defaults.d.ts │ │ │ │ │ │ ├── dist-web │ │ │ │ │ │ │ ├── index.js │ │ │ │ │ │ │ └── index.js.map │ │ │ │ │ │ └── package.json │ │ │ │ │ ├── graphql │ │ │ │ │ │ ├── LICENSE │ │ │ │ │ │ ├── README.md │ │ │ │ │ │ ├── dist-node │ │ │ │ │ │ │ ├── index.js │ │ │ │ │ │ │ └── index.js.map │ │ │ │ │ │ ├── dist-src │ │ │ │ │ │ │ ├── error.js │ │ │ │ │ │ │ ├── graphql.js │ │ │ │ │ │ │ ├── index.js │ │ │ │ │ │ │ ├── types.js │ │ │ │ │ │ │ ├── version.js │ │ │ │ │ │ │ └── with-defaults.js │ │ │ │ │ │ ├── dist-types │ │ │ │ │ │ │ ├── error.d.ts │ │ │ │ │ │ │ ├── graphql.d.ts │ │ │ │ │ │ │ ├── index.d.ts │ │ │ │ │ │ │ ├── types.d.ts │ │ │ │ │ │ │ ├── version.d.ts │ │ │ │ │ │ │ └── with-defaults.d.ts │ │ │ │ │ │ ├── dist-web │ │ │ │ │ │ │ ├── index.js │ │ │ │ │ │ │ └── index.js.map │ │ │ │ │ │ └── package.json │ │ │ │ │ ├── openapi-types │ │ │ │ │ │ ├── LICENSE │ │ │ │ │ │ ├── README.md │ │ │ │ │ │ ├── package.json │ │ │ │ │ │ └── types.d.ts │ │ │ │ │ ├── plugin-paginate-rest │ │ │ │ │ │ ├── LICENSE │ │ │ │ │ │ ├── README.md │ │ │ │ │ │ ├── dist-node │ │ │ │ │ │ │ ├── index.js │ │ │ │ │ │ │ └── index.js.map │ │ │ │ │ │ ├── dist-src │ │ │ │ │ │ │ ├── compose-paginate.js │ │ │ │ │ │ │ ├── generated │ │ │ │ │ │ │ │ └── paginating-endpoints.js │ │ │ │ │ │ │ ├── index.js │ │ │ │ │ │ │ ├── iterator.js │ │ │ │ │ │ │ ├── normalize-paginated-list-response.js │ │ │ │ │ │ │ ├── paginate.js │ │ │ │ │ │ │ ├── paginating-endpoints.js │ │ │ │ │ │ │ ├── types.js │ │ │ │ │ │ │ └── version.js │ │ │ │ │ │ ├── dist-types │ │ │ │ │ │ │ ├── compose-paginate.d.ts │ │ │ │ │ │ │ ├── generated │ │ │ │ │ │ │ │ └── paginating-endpoints.d.ts │ │ │ │ │ │ │ ├── index.d.ts │ │ │ │ │ │ │ ├── iterator.d.ts │ │ │ │ │ │ │ ├── normalize-paginated-list-response.d.ts │ │ │ │ │ │ │ ├── paginate.d.ts │ │ │ │ │ │ │ ├── paginating-endpoints.d.ts │ │ │ │ │ │ │ ├── types.d.ts │ │ │ │ │ │ │ └── version.d.ts │ │ │ │ │ │ ├── dist-web │ │ │ │ │ │ │ ├── index.js │ │ │ │ │ │ │ └── index.js.map │ │ │ │ │ │ └── package.json │ │ │ │ │ ├── plugin-rest-endpoint-methods │ │ │ │ │ │ ├── LICENSE │ │ │ │ │ │ ├── README.md │ │ │ │ │ │ ├── dist-node │ │ │ │ │ │ │ ├── index.js │ │ │ │ │ │ │ └── index.js.map │ │ │ │ │ │ ├── dist-src │ │ │ │ │ │ │ ├── endpoints-to-methods.js │ │ │ │ │ │ │ ├── generated │ │ │ │ │ │ │ │ ├── endpoints.js │ │ │ │ │ │ │ │ ├── method-types.js │ │ │ │ │ │ │ │ └── parameters-and-response-types.js │ │ │ │ │ │ │ ├── index.js │ │ │ │ │ │ │ ├── types.js │ │ │ │ │ │ │ └── version.js │ │ │ │ │ │ ├── dist-types │ │ │ │ │ │ │ ├── endpoints-to-methods.d.ts │ │ │ │ │ │ │ ├── generated │ │ │ │ │ │ │ │ ├── endpoints.d.ts │ │ │ │ │ │ │ │ ├── method-types.d.ts │ │ │ │ │ │ │ │ └── parameters-and-response-types.d.ts │ │ │ │ │ │ │ ├── index.d.ts │ │ │ │ │ │ │ ├── types.d.ts │ │ │ │ │ │ │ └── version.d.ts │ │ │ │ │ │ ├── dist-web │ │ │ │ │ │ │ ├── index.js │ │ │ │ │ │ │ └── index.js.map │ │ │ │ │ │ └── package.json │ │ │ │ │ ├── request-error │ │ │ │ │ │ ├── LICENSE │ │ │ │ │ │ ├── README.md │ │ │ │ │ │ ├── dist-node │ │ │ │ │ │ │ ├── index.js │ │ │ │ │ │ │ └── index.js.map │ │ │ │ │ │ ├── dist-src │ │ │ │ │ │ │ ├── index.js │ │ │ │ │ │ │ └── types.js │ │ │ │ │ │ ├── dist-types │ │ │ │ │ │ │ ├── index.d.ts │ │ │ │ │ │ │ └── types.d.ts │ │ │ │ │ │ ├── dist-web │ │ │ │ │ │ │ ├── index.js │ │ │ │ │ │ │ └── index.js.map │ │ │ │ │ │ └── package.json │ │ │ │ │ ├── request │ │ │ │ │ │ ├── LICENSE │ │ │ │ │ │ ├── README.md │ │ │ │ │ │ ├── dist-node │ │ │ │ │ │ │ ├── index.js │ │ │ │ │ │ │ └── index.js.map │ │ │ │ │ │ ├── dist-src │ │ │ │ │ │ │ ├── fetch-wrapper.js │ │ │ │ │ │ │ ├── get-buffer-response.js │ │ │ │ │ │ │ ├── index.js │ │ │ │ │ │ │ ├── version.js │ │ │ │ │ │ │ └── with-defaults.js │ │ │ │ │ │ ├── dist-types │ │ │ │ │ │ │ ├── fetch-wrapper.d.ts │ │ │ │ │ │ │ ├── get-buffer-response.d.ts │ │ │ │ │ │ │ ├── index.d.ts │ │ │ │ │ │ │ ├── version.d.ts │ │ │ │ │ │ │ └── with-defaults.d.ts │ │ │ │ │ │ ├── dist-web │ │ │ │ │ │ │ ├── index.js │ │ │ │ │ │ │ └── index.js.map │ │ │ │ │ │ └── package.json │ │ │ │ │ └── types │ │ │ │ │ │ ├── LICENSE │ │ │ │ │ │ ├── README.md │ │ │ │ │ │ ├── dist-node │ │ │ │ │ │ ├── index.js │ │ │ │ │ │ └── index.js.map │ │ │ │ │ │ ├── dist-src │ │ │ │ │ │ ├── AuthInterface.js │ │ │ │ │ │ ├── EndpointDefaults.js │ │ │ │ │ │ ├── EndpointInterface.js │ │ │ │ │ │ ├── EndpointOptions.js │ │ │ │ │ │ ├── Fetch.js │ │ │ │ │ │ ├── GetResponseTypeFromEndpointMethod.js │ │ │ │ │ │ ├── OctokitResponse.js │ │ │ │ │ │ ├── RequestError.js │ │ │ │ │ │ ├── RequestHeaders.js │ │ │ │ │ │ ├── RequestInterface.js │ │ │ │ │ │ ├── RequestMethod.js │ │ │ │ │ │ ├── RequestOptions.js │ │ │ │ │ │ ├── RequestParameters.js │ │ │ │ │ │ ├── RequestRequestOptions.js │ │ │ │ │ │ ├── ResponseHeaders.js │ │ │ │ │ │ ├── Route.js │ │ │ │ │ │ ├── Signal.js │ │ │ │ │ │ ├── StrategyInterface.js │ │ │ │ │ │ ├── Url.js │ │ │ │ │ │ ├── VERSION.js │ │ │ │ │ │ ├── generated │ │ │ │ │ │ │ └── Endpoints.js │ │ │ │ │ │ └── index.js │ │ │ │ │ │ ├── dist-types │ │ │ │ │ │ ├── AuthInterface.d.ts │ │ │ │ │ │ ├── EndpointDefaults.d.ts │ │ │ │ │ │ ├── EndpointInterface.d.ts │ │ │ │ │ │ ├── EndpointOptions.d.ts │ │ │ │ │ │ ├── Fetch.d.ts │ │ │ │ │ │ ├── GetResponseTypeFromEndpointMethod.d.ts │ │ │ │ │ │ ├── OctokitResponse.d.ts │ │ │ │ │ │ ├── RequestError.d.ts │ │ │ │ │ │ ├── RequestHeaders.d.ts │ │ │ │ │ │ ├── RequestInterface.d.ts │ │ │ │ │ │ ├── RequestMethod.d.ts │ │ │ │ │ │ ├── RequestOptions.d.ts │ │ │ │ │ │ ├── RequestParameters.d.ts │ │ │ │ │ │ ├── RequestRequestOptions.d.ts │ │ │ │ │ │ ├── ResponseHeaders.d.ts │ │ │ │ │ │ ├── Route.d.ts │ │ │ │ │ │ ├── Signal.d.ts │ │ │ │ │ │ ├── StrategyInterface.d.ts │ │ │ │ │ │ ├── Url.d.ts │ │ │ │ │ │ ├── VERSION.d.ts │ │ │ │ │ │ ├── generated │ │ │ │ │ │ │ └── Endpoints.d.ts │ │ │ │ │ │ └── index.d.ts │ │ │ │ │ │ ├── dist-web │ │ │ │ │ │ ├── index.js │ │ │ │ │ │ └── index.js.map │ │ │ │ │ │ └── package.json │ │ │ │ ├── before-after-hook │ │ │ │ │ ├── LICENSE │ │ │ │ │ ├── README.md │ │ │ │ │ ├── index.d.ts │ │ │ │ │ ├── index.js │ │ │ │ │ ├── lib │ │ │ │ │ │ ├── add.js │ │ │ │ │ │ ├── register.js │ │ │ │ │ │ └── remove.js │ │ │ │ │ └── package.json │ │ │ │ ├── deprecation │ │ │ │ │ ├── LICENSE │ │ │ │ │ ├── README.md │ │ │ │ │ ├── dist-node │ │ │ │ │ │ └── index.js │ │ │ │ │ ├── dist-src │ │ │ │ │ │ └── index.js │ │ │ │ │ ├── dist-types │ │ │ │ │ │ └── index.d.ts │ │ │ │ │ ├── dist-web │ │ │ │ │ │ └── index.js │ │ │ │ │ └── package.json │ │ │ │ ├── is-plain-object │ │ │ │ │ ├── LICENSE │ │ │ │ │ ├── README.md │ │ │ │ │ ├── dist │ │ │ │ │ │ ├── is-plain-object.js │ │ │ │ │ │ └── is-plain-object.mjs │ │ │ │ │ ├── is-plain-object.d.ts │ │ │ │ │ └── package.json │ │ │ │ ├── node-fetch │ │ │ │ │ ├── LICENSE.md │ │ │ │ │ ├── README.md │ │ │ │ │ ├── browser.js │ │ │ │ │ ├── lib │ │ │ │ │ │ ├── index.es.js │ │ │ │ │ │ ├── index.js │ │ │ │ │ │ └── index.mjs │ │ │ │ │ └── package.json │ │ │ │ ├── once │ │ │ │ │ ├── LICENSE │ │ │ │ │ ├── README.md │ │ │ │ │ ├── once.js │ │ │ │ │ └── package.json │ │ │ │ ├── tr46 │ │ │ │ │ ├── .npmignore │ │ │ │ │ ├── index.js │ │ │ │ │ ├── lib │ │ │ │ │ │ ├── .gitkeep │ │ │ │ │ │ └── mappingTable.json │ │ │ │ │ └── package.json │ │ │ │ ├── tunnel │ │ │ │ │ ├── .travis.yml │ │ │ │ │ ├── CHANGELOG.md │ │ │ │ │ ├── LICENSE │ │ │ │ │ ├── README.md │ │ │ │ │ ├── index.js │ │ │ │ │ ├── lib │ │ │ │ │ │ └── tunnel.js │ │ │ │ │ └── package.json │ │ │ │ ├── universal-user-agent │ │ │ │ │ ├── LICENSE.md │ │ │ │ │ ├── README.md │ │ │ │ │ ├── dist-node │ │ │ │ │ │ ├── index.js │ │ │ │ │ │ └── index.js.map │ │ │ │ │ ├── dist-src │ │ │ │ │ │ └── index.js │ │ │ │ │ ├── dist-types │ │ │ │ │ │ └── index.d.ts │ │ │ │ │ ├── dist-web │ │ │ │ │ │ ├── index.js │ │ │ │ │ │ └── index.js.map │ │ │ │ │ └── package.json │ │ │ │ ├── uuid │ │ │ │ │ ├── CHANGELOG.md │ │ │ │ │ ├── CONTRIBUTING.md │ │ │ │ │ ├── LICENSE.md │ │ │ │ │ ├── README.md │ │ │ │ │ ├── dist │ │ │ │ │ │ ├── bin │ │ │ │ │ │ │ └── uuid │ │ │ │ │ │ ├── esm-browser │ │ │ │ │ │ │ ├── index.js │ │ │ │ │ │ │ ├── md5.js │ │ │ │ │ │ │ ├── nil.js │ │ │ │ │ │ │ ├── parse.js │ │ │ │ │ │ │ ├── regex.js │ │ │ │ │ │ │ ├── rng.js │ │ │ │ │ │ │ ├── sha1.js │ │ │ │ │ │ │ ├── stringify.js │ │ │ │ │ │ │ ├── v1.js │ │ │ │ │ │ │ ├── v3.js │ │ │ │ │ │ │ ├── v35.js │ │ │ │ │ │ │ ├── v4.js │ │ │ │ │ │ │ ├── v5.js │ │ │ │ │ │ │ ├── validate.js │ │ │ │ │ │ │ └── version.js │ │ │ │ │ │ ├── esm-node │ │ │ │ │ │ │ ├── index.js │ │ │ │ │ │ │ ├── md5.js │ │ │ │ │ │ │ ├── nil.js │ │ │ │ │ │ │ ├── parse.js │ │ │ │ │ │ │ ├── regex.js │ │ │ │ │ │ │ ├── rng.js │ │ │ │ │ │ │ ├── sha1.js │ │ │ │ │ │ │ ├── stringify.js │ │ │ │ │ │ │ ├── v1.js │ │ │ │ │ │ │ ├── v3.js │ │ │ │ │ │ │ ├── v35.js │ │ │ │ │ │ │ ├── v4.js │ │ │ │ │ │ │ ├── v5.js │ │ │ │ │ │ │ ├── validate.js │ │ │ │ │ │ │ └── version.js │ │ │ │ │ │ ├── index.js │ │ │ │ │ │ ├── md5-browser.js │ │ │ │ │ │ ├── md5.js │ │ │ │ │ │ ├── nil.js │ │ │ │ │ │ ├── parse.js │ │ │ │ │ │ ├── regex.js │ │ │ │ │ │ ├── rng-browser.js │ │ │ │ │ │ ├── rng.js │ │ │ │ │ │ ├── sha1-browser.js │ │ │ │ │ │ ├── sha1.js │ │ │ │ │ │ ├── stringify.js │ │ │ │ │ │ ├── umd │ │ │ │ │ │ │ ├── uuid.min.js │ │ │ │ │ │ │ ├── uuidNIL.min.js │ │ │ │ │ │ │ ├── uuidParse.min.js │ │ │ │ │ │ │ ├── uuidStringify.min.js │ │ │ │ │ │ │ ├── uuidValidate.min.js │ │ │ │ │ │ │ ├── uuidVersion.min.js │ │ │ │ │ │ │ ├── uuidv1.min.js │ │ │ │ │ │ │ ├── uuidv3.min.js │ │ │ │ │ │ │ ├── uuidv4.min.js │ │ │ │ │ │ │ └── uuidv5.min.js │ │ │ │ │ │ ├── uuid-bin.js │ │ │ │ │ │ ├── v1.js │ │ │ │ │ │ ├── v3.js │ │ │ │ │ │ ├── v35.js │ │ │ │ │ │ ├── v4.js │ │ │ │ │ │ ├── v5.js │ │ │ │ │ │ ├── validate.js │ │ │ │ │ │ └── version.js │ │ │ │ │ ├── package.json │ │ │ │ │ └── wrapper.mjs │ │ │ │ ├── webidl-conversions │ │ │ │ │ ├── LICENSE.md │ │ │ │ │ ├── README.md │ │ │ │ │ ├── lib │ │ │ │ │ │ └── index.js │ │ │ │ │ └── package.json │ │ │ │ ├── whatwg-url │ │ │ │ │ ├── LICENSE.txt │ │ │ │ │ ├── README.md │ │ │ │ │ ├── lib │ │ │ │ │ │ ├── URL-impl.js │ │ │ │ │ │ ├── URL.js │ │ │ │ │ │ ├── public-api.js │ │ │ │ │ │ ├── url-state-machine.js │ │ │ │ │ │ └── utils.js │ │ │ │ │ └── package.json │ │ │ │ └── wrappy │ │ │ │ │ ├── LICENSE │ │ │ │ │ ├── README.md │ │ │ │ │ ├── package.json │ │ │ │ │ └── wrappy.js │ │ │ │ ├── package-lock.json │ │ │ │ └── package.json │ │ └── workflows │ │ │ └── deploy.yml │ │ ├── .gitignore │ │ ├── index.html │ │ ├── package-lock.json │ │ ├── package.json │ │ ├── public │ │ └── vite.svg │ │ ├── src │ │ ├── App.jsx │ │ ├── assets │ │ │ └── images │ │ │ │ └── logo.png │ │ ├── components │ │ │ ├── HelpArea.css │ │ │ ├── HelpArea.jsx │ │ │ ├── HelpBox.css │ │ │ ├── HelpBox.jsx │ │ │ ├── MainContent.jsx │ │ │ └── MainContent.test.jsx │ │ ├── index.css │ │ ├── main.jsx │ │ └── test │ │ │ └── setup.js │ │ ├── test.json │ │ └── vite.config.js ├── 09 Security │ ├── 01 Starting Project │ │ ├── .github │ │ │ └── workflows │ │ │ │ ├── label-issues-real.yml │ │ │ │ └── script-injection.yml │ │ ├── .gitignore │ │ └── README.md │ └── 02 Finished Project │ │ ├── .github │ │ └── workflows │ │ │ ├── label-issues-real.yml │ │ │ └── script-injection.yml │ │ ├── .gitignore │ │ └── README.md └── ZZ Git & GitHub Refresher │ ├── 01 Starting Project │ └── index.html │ ├── 02 Updated Project │ └── index.html │ ├── 03 Extra Files │ ├── index.html │ ├── logo.png │ └── styles.css │ ├── 04 Updated Files │ ├── index.html │ ├── logo.png │ └── styles.css │ └── 05 Finished │ ├── .gitignore │ ├── README.md │ ├── index.html │ ├── logo.png │ └── styles.css └── Slides └── github-actions.pdf /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store -------------------------------------------------------------------------------- /Code/02 Basics/01 First Workflow/.github/workflows/first-action.yml: -------------------------------------------------------------------------------- 1 | name: First Workflow 2 | on: workflow_dispatch 3 | jobs: 4 | first-job: 5 | runs-on: ubuntu-latest 6 | steps: 7 | - name: Print greeting 8 | run: echo "Hello World!" 9 | - name: Print goodbye 10 | run: echo "Done - bye!" 11 | -------------------------------------------------------------------------------- /Code/02 Basics/01 First Workflow/README.md: -------------------------------------------------------------------------------- 1 | # Getting Started with GitHub Actions 2 | 3 | This repository will be used to get started with GitHub Actions! -------------------------------------------------------------------------------- /Code/02 Basics/02 Starting Project/.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | pnpm-debug.log* 8 | lerna-debug.log* 9 | 10 | node_modules 11 | dist 12 | dist-ssr 13 | *.local 14 | 15 | # Editor directories and files 16 | .vscode/* 17 | !.vscode/extensions.json 18 | .idea 19 | .DS_Store 20 | *.suo 21 | *.ntvs* 22 | *.njsproj 23 | *.sln 24 | *.sw? 25 | -------------------------------------------------------------------------------- /Code/02 Basics/02 Starting Project/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 |
4 | 5 | 6 | 7 |{text}
8 |{text}
8 |{text}
10 |{text}
10 |{text}
10 |{text}
10 |{text}
10 |{text}
10 |{text}
10 |{text}
10 |{text}
10 |{text}
10 |