Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
gha-lab-b9842b12c0 — مختبر أبحاث أمني مُصرَّح به لإعادة إنتاج CVE-2021-21423 (GHSA-gg2g-m5wc-vccq): طلب pwn الخاص بـ projen rebuild-bot عبر issue_comment | Kitploit
أدوات/GitHubGitHub/pvharmo2/gha-lab-b9842b12c0
تحليل الثغرات الأمنيةالاستغلالالتعلم والتعليمموارد منسقة
GitHubpvharmo2/gha-lab-b9842b12c0

gha-lab-b9842b12c0

مختبر أبحاث أمني مُصرَّح به لإعادة إنتاج CVE-2021-21423 (GHSA-gg2g-m5wc-vccq): طلب pwn الخاص بـ projen rebuild-bot عبر issue_comment

عرض المستودع
11منذ 8س 26دلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة

أداة بحث آلية — ليست المشروع الأصلي (upstream).

هذا المستودع عبارة عن بيئة مختبرية مؤقتة (disposable lab) أُنشئت بواسطة نظام آلي (automated harness) لأطروحة ماجستير في جامعة لافال (Université Laval) حول إعادة إنتاج ثغرات سير عمل GitHub Actions المنشورة. وهو لقطة حرفية (verbatim snapshot) من projen/projen عند الالتزام (commit) 284d9162b9903c1828aa13ab56420c1183c49d40 (2021-03-09)، مُعاد توزيعه بموجب ترخيص ذلك المشروع نفسه، الذي تم تضمين ملفه دون تغيير في هذه اللقطة.

المشروع الأصلي (upstream) ليس مشاركًا، ولا يُستهدف أبدًا، والثغرة المدروسة هنا معلنة بالفعل. كل سر (secret) ومتغير في هذا المستودع هو قيمة وهمية مولّدة عشوائيًا — لا توجد أي بيانات اعتماد حقيقية. مراجع الإجراءات (Action references) وصور المشغّل (runner images) مثبتة على ما كانت تُحل إليه في 2021-03-09؛ راجع pinning.md في مخرجات النظام الآلي لمعرفة كل تغيير أُجري على اللقطة.

الأسئلة أو الاعتراضات: [email protected]


License

All Contributors

Gitpod ready-to-code

Build
Release

projen

projen logo

عرّف وحافظ على إعدادات المشاريع المعقدة من خلال الكود.

انضم إلى حركة #TemplatesAreEvil!

projen يولّد ملفات إعدادات المشروع مثل package.json، tsconfig.json، .gitignore، سير عمل GitHub، eslint، jest، وغيرها من تعريف مكتوب جيدًا (well-typed) بلغة JavaScript.

اطّلع على هذه المحاضرة حول projen.

على عكس أدوات القوالب/السقالات (templating/scaffolding) الحالية، projen ليس مولّدًا لمرة واحدة. الملفات المُولَّدة لا ينبغي أبدًا تحريرها يدويًا (في الواقع، يفرض projen ذلك). لتعديل إعداد مشروعك، يتفاعل المستخدمون مع فئات غنية ومكتوبة بقوة (strongly-typed) وينفّذون 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) - مشروع Next.js بدون TypeScript.
* [nextjs-ts](https://github.com/projen/projen/blob/master/API.md#projen-web.nextjstypescriptproject) - مشروع Next.js مع TypeScript.
* [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) - مشروع React بدون TypeScript.
* [react-ts](https://github.com/projen/projen/blob/master/API.md#projen-web.reacttypescriptproject) - مشروع React مع TypeScript.
* [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` ملف `.projenrc.js` يبدو هكذا لمشاريع `jsii`:```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 لضمان عدم تحديث الملفات أثناء البناء).

على سبيل المثال، لإعداد نشر PyPI في مشاريع jsii، يمكنك استخدام خيار python:```js const project = new JsiiProject({ // ... python: { distName: "mydist", module: "my_module", } });

root@kitploit:~
قم بتشغيل:```shell
npx projen

وستلاحظ أن ملف package.json الخاص بك يحتوي الآن على قسم python ضمن إعداد jsii الخاص به، كما يتضمن سير عمل GitHub release.yml خطوة نشر إلى PyPI.

نوصي بوضع هذا في ملف تعريف الصدفة (shell profile) لديك، بحيث يمكنك ببساطة تشغيل pj في كل مرة تقوم فيها بتحديث .projenrc.js:```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 بالكامل
  • نصوص npm القياسية مثل compile و build و test و package
  • eslint
  • Jest
  • jsii: compile و package و فحوصات توافق API و API.md
  • نصوص Bump & release مع توليد CHANGELOG استنادًا إلى Conventional Commits
  • عمليات بناء PR آلية
  • إصدارات آلية إلى npm و maven و NuGet و PyPI
  • إعداد Mergify
  • توليد ملف LICENSE
  • إدارة gitignore + npmignore
  • دعم "engines" الخاصة بـ Node مع الربط ببيئة بناء CI و @types/node
  • مكافحة العبث: ستفشل عمليات بناء 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:~
إذا كان الوحدة النمطية المشار إليها تتضمن أنواع مشاريع متعددة، فإن النوع مطلوب.
يمكن أيضًا استخدام المفاتيح (Switches) لتحديد قيم أولية بناءً على واجهات برمجة التطبيقات (APIs) الخاصة بنوع المشروع.
يمكنك أيضًا استخدام أي صيغة حزم مدعومة بواسطة [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 بتثبيت وحدة projen-vuejs من npm (الإصدار 2.0.0 وما فوق)، واكتشاف أنواع المشاريع فيها وتهيئة نوع المشروع vuejs-ts. سيتم تعيين القيمة "my awesome vue project" إلى حقل description. إذا فحصت ملف .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

شكرًا لهؤلاء الأشخاص الرائعين (مفتاح الرموز التعبيرية):


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

💻