Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
ツール/GitHubGitHub/pvharmo2/gha-lab-b9842b12c0
脆弱性分析エクスプロイト学習と教育厳選リソース
GitHubpvharmo2/gha-lab-b9842b12c0

gha-lab-b9842b12c0

認可されたセキュリティ研究ラボによるCVE-2021-21423(GHSA-gg2g-m5wc-vccq)の再現: issue_commentを介したprojen rebuild-botのpwnリクエスト

リポジトリを見る
118時間27分前未レビュー

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

自動化された研究アーティファクト — 上流プロジェクトではありません。

このリポジトリは、ラヴァル大学の修士論文で公開済みのGitHub Actionsワークフロー脆弱性の再現を目的とした自動化ハーネスによって構築された使い捨てラボです。これはprojen/projenのコミット284d9162b9903c1828aa13ab56420c1183c49d40(2021-03-09)時点の逐語的なスナップショットであり、そのプロジェクト自身のライセンスの下で再配布されており、そのライセンスファイルはこのスナップショットに変更なしで含まれています。

上流プロジェクトは関与しておらず、標的にされることもありません。ここで研究されている脆弱性はすでに公開されています。このリポジトリ内のすべてのシークレットと変数はランダムに生成されたダミー値であり、実際の認証情報は存在しません。アクション参照とランナーイメージは、2021-03-09時点で解決されたものに固定されています。スナップショットに加えられたすべての変更については、ハーネス出力内のpinning.mdを参照してください。

質問や異議がある場合: [email protected]


License

All Contributors

Gitpod ready-to-code Build Release

projen

projen logo

複雑なプロジェクト構成をコードを通じて定義し、維持します。

#TemplatesAreEvil運動に参加しよう!

projenは、JavaScriptで書かれた型付けのしっかりした定義から、package.json、tsconfig.json、.gitignore、GitHub Workflows、eslint、jestなどのプロジェクト構成ファイルを合成します。

projenに関するこのトークをチェックしてください。

既存のテンプレーティング/スキャフォールディングツールとは異なり、projenは一度きりのジェネレーターではありません。合成されたファイルは手動で編集すべきではありません(実際、projenはそれを強制します)。プロジェクト設定を変更するには、ユーザーはリッチで強く型付けされたクラスを操作し、projenを実行してプロジェクト構成ファイルを更新します。

はじめに

新しいプロジェクトを作成するには、次のコマンドを実行して指示に従ってください。```console $ mkdir my-project $ cd my-project $ git init $ npx projen new PROJECT-TYPE 🤖 Synthesizing project... ...

root@kitploit:~
現在サポートされているプロジェクトタイプ(タイプを指定せずに `npx projen new` を実行すると一覧が表示されます):

<!-- <macro exec="node ./scripts/readme-projects.js"> -->
* [awscdk-app-ts](https://github.com/projen/projen/blob/master/API.md#projen-awscdktypescriptapp) - AWS CDKアプリ(TypeScript)。
* [awscdk-construct](https://github.com/projen/projen/blob/master/API.md#projen-awscdkconstructlibrary) - AWS CDKコンストラクトライブラリプロジェクト。
* [cdk8s-construct](https://github.com/projen/projen/blob/master/API.md#projen-constructlibrarycdk8s) - CDK8sコンストラクトライブラリプロジェクト。
* [java](https://github.com/projen/projen/blob/master/API.md#projen-java.javaproject) - Javaプロジェクト。
* [jsii](https://github.com/projen/projen/blob/master/API.md#projen-jsiiproject) - 多言語対応のjsiiライブラリプロジェクト。
* [nextjs](https://github.com/projen/projen/blob/master/API.md#projen-web.nextjsproject) - TypeScriptを使用しないNext.jsプロジェクト。
* [nextjs-ts](https://github.com/projen/projen/blob/master/API.md#projen-web.nextjstypescriptproject) - TypeScriptを使用するNext.jsプロジェクト。
* [node](https://github.com/projen/projen/blob/master/API.md#projen-nodeproject) - Node.jsプロジェクト。
* [project](https://github.com/projen/projen/blob/master/API.md#projen-project) - 基本プロジェクト。
* [python](https://github.com/projen/projen/blob/master/API.md#projen-python.pythonproject) - Pythonプロジェクト。
* [react](https://github.com/projen/projen/blob/master/API.md#projen-web.reactproject) - TypeScriptを使用しないReactプロジェクト。
* [react-ts](https://github.com/projen/projen/blob/master/API.md#projen-web.reacttypescriptproject) - TypeScriptを使用するReactプロジェクト。
* [typescript](https://github.com/projen/projen/blob/master/API.md#projen-typescriptproject) - TypeScriptプロジェクト。
* [typescript-app](https://github.com/projen/projen/blob/master/API.md#projen-typescriptappproject) - TypeScriptアプリ。
<!-- </macro> -->

> `npx projen new PROJECT-TYPE --help` を使用すると、ブートストラップ時にほとんどのプロジェクトオプションを指定できるコマンドラインスイッチの一覧が表示されます。
> 例:`npx projen new jsii --author-name "Jerry Berry"`。

`new` コマンドは、`jsii` プロジェクトの場合、次のような `.projenrc.js` ファイルを作成します:```js
const { JsiiProject } = require('projen');

const project = new JsiiProject({
  authorAddress: "[email protected]",
  authorName: "Elad Ben-Israel",
  name: "foobar",
  repository: "https://github.com/eladn/foobar.git",
});

project.synth();

このプログラムは、最小限のセットアップでプロジェクトタイプをインスタンス化し、その後 synth() を呼び出してプロジェクトファイルを合成します。デフォルトでは、new コマンドも このプログラムを実行するため、完全に動作するプロジェクトが生成されます。

プロジェクトが作成されたら、.projenrc.js を編集してプロジェクトを設定し、 npx projen を再実行して再度合成できます。

projen によって生成されたファイルは「実装の詳細」と見なされ、 projen はそれらが手動で編集されるのを防ぎます(ほとんどのファイルは 読み取り専用としてマークされ、CIビルドワークフローには「改ざん防止」チェックが 設定されており、ビルド中にファイルが更新されないことを保証します)。

例えば、jsii プロジェクトでPyPI公開を設定するには、次のように python option を使用できます:```js const project = new JsiiProject({ // ... python: { distName: "mydist", module: "my_module", } });

root@kitploit:~
実行:

```bash
python3 setup.py install
``````shell
npx projen

そして、package.json ファイルの jsii 設定に python セクションが含まれ、GitHub の release.yml ワークフローに PyPI 公開ステップが含まれていることに気づくでしょう。

これをシェルプロファイルに追加することをお勧めします。そうすれば、.projenrc.js を更新するたびに pj を実行するだけで済みます。```bash alias pj='npx projen'

root@kitploit:~
ほとんどのプロジェクトは、ワークフローアクティビティのメニューを表示する `start` コマンドをサポートしています。```shell
$ yarn start
? Scripts: (Use arrow keys)

  BUILD
❯ compile          Only compile
  watch            Watch & compile in the background
  build            Full release build (test+compile)

  TEST
  test             Run tests
  test:watch       Run jest in watch mode
  eslint           Runs eslint against the codebase

  ...

build コマンドは、CI ビルドで実行されるものと同じコマンドです。通常、モジュールのコンパイル、リント、テスト、パッケージングを行い、配布用に準備します。

機能

プロジェクトタイプに組み込まれている機能の例をいくつか示します:

  • package.json の完全な合成
  • compile、build、test、package などの標準的な npm スクリプト
  • eslint
  • Jest
  • jsii: コンパイル、パッケージング、API 互換性チェック、API.md
  • Conventional Commits に基づく CHANGELOG 生成を伴うバンプ & リリーススクリプト
  • 自動化された PR ビルド
  • npm、maven、NuGet、PyPI への自動リリース
  • Mergify 設定
  • LICENSE ファイルの生成
  • gitignore + npmignore の管理
  • CI ビルド環境および @types/node と連携した Node の「engines」サポート
  • 改ざん防止: 合成されたファイルが手動で変更された場合、CI ビルドは失敗します

API リファレンス

API の詳細については、API リファレンス を参照してください。

さらに、いくつかの projen コンポーネントとプロジェクトタイプが、/docs で例とともに説明されています(現在作業中です!)。

エコシステム

projen は「バッテリー同梱」アプローチを採用しており、すぐに使える数十種類のプロジェクトタイプを提供することを目指しています(まだ始まったばかりです)。projen new react、projen new angular、projen new java-maven、projen new awscdk-typescript、projen new cdk8s-python を考えてみてください(projen の何も javascript や npm に縛られていません)...

新しいプロジェクトタイプの追加は、このリポジトリにプルリクエストを送信し、projen.Project(またはその派生クラス)を拡張するクラスをエクスポートするだけで簡単にできます。Projen はプロジェクトタイプを自動的に検出するため、あなたのタイプは projen new ですぐに利用可能になります。

外部モジュール内のプロジェクト

projen には多くのプロジェクトタイプが同梱されていますが、外部の jsii モジュールで定義されたプロジェクトタイプやコンポーネントでも動作できます(jsii が必要な理由は、projen が jsii メタデータを使用して、projen new でプロジェクトタイプとオプションを検出するためです)。

npm に projen-vuejs というモジュールがあり、vue.js 用の単一のプロジェクトタイプが含まれているとします:```bash $ npx projen new --from projen-vuejs

root@kitploit:~
参照先のモジュールに複数のプロジェクトタイプが含まれる場合、タイプは必須です。
スイッチを使用して、プロジェクトタイプのAPIに基づいて初期値を指定することもできます。
また、[yarn add](https://classic.yarnpkg.com/en/docs/cli/add#toc-adding-dependencies) でサポートされている任意のパッケージ構文(`[email protected]`、`file:/path/to/local/folder`、`[email protected]/awesome/projen-vuejs#1.2.3` など)を使用することもできます。```bash
$ npx projen new --from projen-vuejs@^2 vuejs-ts --description "my awesome vue project"

内部では、projen new はnpmからprojen-vuejsモジュール(バージョン2.0.0以上)をインストールし、その中のプロジェクトタイプを検出してvuejs-tsプロジェクトタイプをブートストラップします。descriptionフィールドには値"my awesome vue project"が割り当てられます。.projenrc.jsファイルを確認すると、projen-vuejsが開発依存関係として定義されているのがわかります。```javascript const { VueJsProject } = require('projen-vuejs');

const project = new VueJsProject({ name: 'my-vuejs-sample', description: "my awesome vue project", // ... devDeps: [ 'projen-vuejs' ] });

project.synth();

root@kitploit:~
## ロードマップ

[ビジョン](https://github.com/pvharmo2/gha-lab-b9842b12c0/blob/HEAD/VISION.md)をご覧ください。

## コントリビューション

あらゆる種類のコントリビューションを歓迎します。[コントリビューターガイド](https://github.com/pvharmo2/gha-lab-b9842b12c0/blob/HEAD/CONTRIBUTING.md)と[行動規範](https://github.com/pvharmo2/gha-lab-b9842b12c0/blob/HEAD/CODE_OF_CONDUCT.md)をご確認ください。

クイックスタートとして、開発環境をチェックしてください:```bash
$ git clone [email protected]:projen/projen
$ cd projen
$ yarn
$ yarn watch # compile in the background

Thanks goes to these wonderful people (emoji key):


Elad Ben-Israel

💻

Christopher Rybicki

💻

Philip M. Gollucci

💻

Thorsten Hoeger

💻

Kenneth Winner

💻

ライセンス

Apache-2.0 ライセンスの下で配布されています。

ツールをダウンロード

Jordan Sinko

💻

Josh Kellendonk

💻

andrestone

💻

Cristian Pallarés

💻

Jonathan Goldwasser

💻

Matthew Bonig

💻

Pahud Hsieh

💻

Adam Elmore

💻

Ash

💻

Jacob

💻

Kraig Amador

💻

Martin Muller

💻

Tomasz Łakomy

💻

john-tipper

💻

Henry Sachs

💻

Joseph Egan

💻

Sebastian Korfmann

💻

Bart Callant

💻

Campion Fellin

💻

Grady Barrett

💻

Hassan Mahmud

💻

Hassan Mahmud

💻

Jake Pearson

💻

Jeremy Jonas

💻

Matt Martz

💻

Max Körlinge

💻

Neil Kuan

💻

Rafal Wilinski

💻

Romain Marcadier

💻

Thomas Klinger

💻

Tobias

💻

flyingImer

💻