
अधिकृत सुरक्षा-अनुसंधान प्रयोगशाला CVE-2021-21423 (GHSA-gg2g-m5wc-vccq) का पुनरुत्पादन कर रही है: issue_comment के माध्यम से projen rebuild-bot pwn अनुरोध
स्वचालित शोध आर्टिफैक्ट — अपस्ट्रीम प्रोजेक्ट नहीं।
यह रिपॉजिटरी Université Laval में मास्टर थीसिस के लिए एक स्वचालित हार्नेस द्वारा निर्मित एक डिस्पोजेबल लैब है, जो प्रकाशित GitHub Actions वर्कफ़्लो कमजोरियों को पुन: प्रस्तुत करने पर केंद्रित है। यह
projen/projenका कमिट284d9162b9903c1828aa13ab56420c1183c49d40(2021-03-09) पर एक शब्दशः स्नैपशॉट है, जो उस प्रोजेक्ट के अपने लाइसेंस के तहत पुनर्वितरित किया गया है, जिसकी फ़ाइल इस स्नैपशॉट में अपरिवर्तित शामिल है।अपस्ट्रीम प्रोजेक्ट शामिल नहीं है, उसे कभी लक्षित नहीं किया जाता है, और यहाँ अध्ययन की गई कमजोरी पहले से ही सार्वजनिक है। इस रिपॉजिटरी में हर सीक्रेट और वेरिएबल एक यादृच्छिक रूप से उत्पन्न डमी मान है — कोई वास्तविक क्रेडेंशियल मौजूद नहीं है। एक्शन संदर्भ और रनर इमेज उसी पर पिन किए गए हैं जो 2021-03-09 को हल हुए थे; स्नैपशॉट में किए गए हर बदलाव के लिए हार्नेस आउटपुट में
pinning.mdदेखें।प्रश्न या आपत्तियाँ: [email protected]
जटिल प्रोजेक्ट कॉन्फ़िगरेशन को कोड के माध्यम से परिभाषित और बनाए रखें।
#TemplatesAreEvil आंदोलन में शामिल हों!
projen package.json, tsconfig.json, .gitignore, GitHub Workflows, eslint, jest आदि जैसी प्रोजेक्ट कॉन्फ़िगरेशन फ़ाइलों को JavaScript में लिखी गई एक अच्छी तरह से टाइप की गई परिभाषा से संश्लेषित करता है।
projen के बारे में यह टॉक देखें।
मौजूदा टेम्प्लेटिंग/स्कैफोल्डिंग टूल्स के विपरीत, projen एक एक-बार का जनरेटर नहीं है। संश्लेषित फ़ाइलों को कभी भी मैन्युअल रूप से संपादित नहीं किया जाना चाहिए (वास्तव में, projen इसे लागू करता है)। अपने प्रोजेक्ट सेटअप को संशोधित करने के लिए, उपयोगकर्ता समृद्ध, मजबूती से टाइप किए गए क्लास के साथ इंटरैक्ट करते हैं और अपनी प्रोजेक्ट कॉन्फ़िगरेशन फ़ाइलों को अपडेट करने के लिए projen निष्पादित करते हैं।
एक नया प्रोजेक्ट बनाने के लिए, निम्न कमांड चलाएँ और निर्देशों का पालन करें:```console $ mkdir my-project $ cd my-project $ git init $ npx projen new PROJECT-TYPE 🤖 Synthesizing project... ...
वर्तमान में समर्थित प्रोजेक्ट प्रकार (सूची के लिए बिना किसी प्रकार के `npx projen new` उपयोग करें):
<!-- <macro exec="node ./scripts/readme-projects.js"> -->
* [awscdk-app-ts](https://github.com/projen/projen/blob/master/API.md#projen-awscdktypescriptapp) - TypeScript में AWS CDK ऐप।
* [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` कमांड एक `.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 बिल्ड वर्कफ़्लो में एक "एंटी-टैम्पर" जांच कॉन्फ़िगर की गई है ताकि यह सुनिश्चित किया जा सके कि बिल्ड के दौरान फ़ाइलें अपडेट न हों)।
उदाहरण के लिए, jsii प्रोजेक्ट्स में PyPI प्रकाशन सेट करने के लिए, आप python option का उपयोग कर सकते हैं:```js
const project = new JsiiProject({
// ...
python: {
distName: "mydist",
module: "my_module",
}
});
चलाएँ:
```bash
docker run -d --name=wazigate -e WAZIGATE_MODE=local -p 80:80 -v /var/lib/wazigate:/var/lib/wazigate waziup/wazigate
फिर अपने ब्राउज़र में http://localhost खोलें।```shell
npx projen
और आप देखेंगे कि आपकी `package.json` फ़ाइल में अब इसके `jsii` कॉन्फ़िग में एक `python` सेक्शन है और GitHub `release.yml` वर्कफ़्लो में एक PyPI पब्लिशिंग स्टेप शामिल है।
हम अनुशंसा करते हैं कि इसे अपने शेल प्रोफ़ाइल में रखें, ताकि जब भी आप `.projenrc.js` अपडेट करें, आप बस `pj` चला सकें:```bash
alias pj='npx projen'
अधिकांश प्रोजेक्ट एक 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: संकलन, पैकेजिंग, API संगतता जाँच, API.md
* Conventional Commits पर आधारित CHANGELOG निर्माण के साथ बंप और रिलीज़ स्क्रिप्ट
* स्वचालित PR बिल्ड
* npm, maven, NuGet और PyPI के लिए स्वचालित रिलीज़
* Mergify कॉन्फ़िगरेशन
* LICENSE फ़ाइल निर्माण
* gitignore + npmignore प्रबंधन
* CI बिल्ड वातावरण और @types/node के साथ युग्मन के साथ Node "engines" समर्थन
* एंटी-टैम्पर: यदि कोई संश्लेषित फ़ाइल मैन्युअल रूप से संशोधित की जाती है तो CI बिल्ड विफल हो जाएगा
## API संदर्भ
API विवरण के लिए [API संदर्भ](https://github.com/pvharmo2/gha-lab-b9842b12c0/blob/main/API.md) देखें।
इसके अलावा, कई projen घटक और प्रोजेक्ट प्रकार [/docs](https://github.com/pvharmo2/gha-lab-b9842b12c0/blob/main/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
यदि संदर्भित मॉड्यूल में कई प्रोजेक्ट प्रकार शामिल हैं, तो प्रकार आवश्यक है।
प्रोजेक्ट प्रकार APIs के आधार पर प्रारंभिक मान निर्दिष्ट करने के लिए स्विच का भी उपयोग किया जा सकता है।
आप yarn add द्वारा समर्थित किसी भी पैकेज सिंटैक्स का उपयोग कर सकते हैं, जैसे
[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` को एक dev निर्भरता के रूप में परिभाषित किया गया है:```javascript
const { VueJsProject } = require('projen-vuejs');
const project = new VueJsProject({
name: 'my-vuejs-sample',
description: "my awesome vue project",
// ...
devDeps: [
'projen-vuejs'
]
});
project.synth();
विज़न देखें।
सभी प्रकार के योगदानों का स्वागत है! हमारे योगदानकर्ता गाइड और हमारे आचार संहिता देखें।
त्वरित शुरुआत के लिए, एक विकास वातावरण देखें:```bash $ git clone [email protected]:projen/projen $ cd projen $ yarn $ yarn watch # compile in the background
Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):
<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->
<!-- prettier-ignore-start -->
<!-- markdownlint-disable -->
<table>
<tr>
<td align="center"><a href="http://eladb.github.com/"><img src="https://assets.kitploit.com/production/public/readmes/53717/2ce9521fade1cfe0d6bf2044e85d0bc513573ad08da50979a31bc17835c04d56/e538080812e3459df94eaf54f6d04f7da3171fed9ee2052a2a64ef6519c88a8b-display-v1.webp" width="100px;" alt=""/><br /><sub><b>Elad Ben-Israel</b></sub></a><br /><a href="https://github.com/projen/projen/commits?author=eladb" title="Code">💻</a></td>
<td align="center"><a href="https://rybicki.io/"><img src="https://assets.kitploit.com/production/public/readmes/53717/9c233c49984a73bf42e21a524482f14a93222260ab7df6df9670e94aa4ee6b01/02aff17a8d38833b3f605bf11d76b7a6e9623fb7a13ff92db107079d28771718-display-v1.webp" width="100px;" alt=""/><br /><sub><b>Christopher Rybicki</b></sub></a><br /><a href="https://github.com/projen/projen/commits?author=Chriscbr" title="Code">💻</a></td>
<td align="center"><a href="http://p6m7g8.github.io/"><img src="https://assets.kitploit.com/production/public/readmes/53717/5c38ca0993f657ea56103d54291bfa76e638a725e93ffc76584fbdfdce52e263/4b07a6f73bde92306d638d44772cd43cc651ae1e2b3133de01601ac45762b2b0-display-v1.webp" width="100px;" alt=""/><br /><sub><b>Philip M. Gollucci</b></sub></a><br /><a href="https://github.com/projen/projen/commits?author=pgollucci" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/hoegertn"><img src="https://assets.kitploit.com/production/public/readmes/53717/89f3a2abc9ac58db886b7336f15d324e5feb66c160f44ec5eac783d53a968784/993f9871906d5cc1cf77f7ff0c0107720147959828840e79486d6892fca2579b-display-v1.webp" width="100px;" alt=""/><br /><sub><b>Thorsten Hoeger</b></sub></a><br /><a href="https://github.com/projen/projen/commits?author=hoegertn" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/kcwinner"><img src="https://assets.kitploit.com/production/public/readmes/53717/2dbf70094cab64d39b8971abd872bfaa82d4e1d01e219ef30803c612b577b818/bcf3cc0878ec9c06b0188d6df4cfa227519f6ec553ee4741e9d570c29207efc1-display-v1.webp" width="100px;" alt=""/><br /><sub><b>Kenneth Winner</b></sub></a><br /><a href="https://github.com/projen/projen/commits?author=kcwinner" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/JordanSinko"><img src="https://assets.kitploit.com/production/public/readmes/53717/26e664ebac022f1eff63526052f959f837ecd431ff093ccbc3d7c1da776a293a/d106d7e7f5cb58ebd02c918cc626dc03b73ab851aa900065faa7f81909851cc2-display-v1.webp" width="100px;" alt=""/><br /><sub><b>Jordan Sinko</b></sub></a><br /><a href="https://github.com/projen/projen/commits?author=JordanSinko" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/misterjoshua"><img src="https://assets.kitploit.com/production/public/readmes/53717/2cc04b96e4e0060fec7daa9ae66f2fa9f3c0202d61853e657c5d408b726863d2/22a38d187c4ddd7149f6561ac0982ad8beae584c8300d136ec58e08f8bd05b07-display-v1.webp" width="100px;" alt=""/><br /><sub><b>Josh Kellendonk</b></sub></a><br /><a href="https://github.com/projen/projen/commits?author=misterjoshua" title="Code">💻</a></td>
</tr>
<tr>
<td align="center"><a href="https://github.com/andrestone"><img src="https://assets.kitploit.com/production/public/readmes/53717/242172d7d11d0af30c66aeb1b67408e2374f0c23d554be50166227c0aac80f3e/48e539e5b5510d85876077ab1d4a39f0495934bcf27174dce4eb07c3714e0716-display-v1.webp" width="100px;" alt=""/><br /><sub><b>andrestone</b></sub></a><br /><a href="https://github.com/projen/projen/commits?author=andrestone" title="Code">💻</a></td>
<td align="center"><a href="https://pallares.io/"><img src="https://assets.kitploit.com/production/public/readmes/53717/401e84de152d3c04b7c17885e868d707ee3f9a23ad3b6c9007a4beb4b0de8b99/9ac70be9fca68266823e34715c19d86e1244a3923dcf72b4e1ee73325f35a8cb-display-v1.webp" width="100px;" alt=""/><br /><sub><b>Cristian Pallarés</b></sub></a><br /><a href="https://github.com/projen/projen/commits?author=skyrpex" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/jogold"><img src="https://assets.kitploit.com/production/public/readmes/53717/87529e933b78776151960744a2685d5736ef03ed94a0fb534c3ac47f4c8c83a0/f569918eaa84b2feb46bfa379c4438f8957cc4442a075b56300a964f813e60f1-display-v1.webp" width="100px;" alt=""/><br /><sub><b>Jonathan Goldwasser</b></sub></a><br /><a href="https://github.com/projen/projen/commits?author=jogold" title="Code">💻</a></td>
<td align="center"><a href="http://www.matthewbonig.com/"><img src="https://assets.kitploit.com/production/public/readmes/53717/6acad69fb43169d746aad038ea57b2c1e5c90b42b767deac8a2f2cc8479753af/6fa77f456e780ea7ce495a72f0c106a1233478f457e86158ab57781baa0fb96d-display-v1.webp" width="100px;" alt=""/><br /><sub><b>Matthew Bonig</b></sub></a><br /><a href="https://github.com/projen/projen/commits?author=mbonig" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/pahud"><img src="https://assets.kitploit.com/production/public/readmes/53717/0dbee69f27a82561f885e951496d49d3c3724933eeeda24599ea386c5537afe6/95d2c5db64fd1d6860a8b076947075462ec5fb44d733be9c51625771b8e6dfb9-display-v1.webp" width="100px;" alt=""/><br /><sub><b>Pahud Hsieh</b></sub></a><br /><a href="https://github.com/projen/projen/commits?author=pahud" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/adamelmore"><img src="https://assets.kitploit.com/production/public/readmes/53717/07350f2f5e2531c9f8e607ad72719736047a00186bc5f64db1a011be1e3dc73a/e6d146d74547d00c4ba4530b8c462334e6e42ae91987cfc5c23603eb588f512a-display-v1.webp" width="100px;" alt=""/><br /><sub><b>Adam Elmore</b></sub></a><br /><a href="https://github.com/projen/projen/commits?author=adamelmore" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/abelmokadem"><img src="https://assets.kitploit.com/production/public/readmes/53717/7742abc0c9b46279d6a06a009d1387e442ae9983d8e1903c94fe6f3a35d9d3a7/8357537fe276557e00cc9318afa7040fe65fe8561c296c0b774cf9fb66fbbd39-display-v1.webp" width="100px;" alt=""/><br /><sub><b>Ash</b></sub></a><br /><a href="https://github.com/projen/projen/commits?author=abelmokadem" title="Code">💻</a></td>
</tr>
<tr>
<td align="center"><a href="https://github.com/jmourelos"><img src="https://assets.kitploit.com/production/public/readmes/53717/6dd42bfbc03a4e2189eeb7a11cc9e18f2ae7d7b64eb68ea2071e52a34d950258/ed07cebf68daf9daa34c53f1d489f52a2526254bbf1aab5cd564ec20e99a97a6-display-v1.webp" width="100px;" alt=""/><br /><sub><b>Jacob</b></sub></a><br /><a href="https://github.com/projen/projen/commits?author=jmourelos" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/bigkraig"><img src="https://assets.kitploit.com/production/public/readmes/53717/31cf12d4c5b706281b1cf246a74260c6c453087a88f1e119ac6327daeb5305b0/6c6cc864190b10a2c537569c5b3118cef4b545be5bb955923d3183fd0f3a593d-display-v1.webp" width="100px;" alt=""/><br /><sub><b>Kraig Amador</b></sub></a><br /><a href="https://github.com/projen/projen/commits?author=bigkraig" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/mmuller88"><img src="https://assets.kitploit.com/production/public/readmes/53717/faf36d3db7c48ea437b1c8e2e63ad0e093a84928cbfbdd43354e46ed387f266c/1050bf42c9b4cb339cb0450628c8cc4976ed01ad9a533ae910b2fed64ab2fab0-display-v1.webp" width="100px;" alt=""/><br /><sub><b>Martin Muller</b></sub></a><br /><a href="https://github.com/projen/projen/commits?author=mmuller88" title="Code">💻</a></td>
<td align="center"><a href="https://tlakomy.com/"><img src="https://assets.kitploit.com/production/public/readmes/53717/4a81dea55f2356351220472ac64249f13d01262d43005bc681456f7cc83b9f44/6d99552c65e9acc313ac75941c382fbedf096fd12309224859e3d311030074ba-display-v1.webp" width="100px;" alt=""/><br /><sub><b>Tomasz Łakomy</b></sub></a><br /><a href="https://github.com/projen/projen/commits?author=tlakomy" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/john-tipper"><img src="https://assets.kitploit.com/production/public/readmes/53717/0d5ac6d4c81a918bd669a4d9c78bdee5767eaf3435b26dae73bffbd0604b9d1f/9f57ce5c63f04b0b62530e1301e5a6752daac24aa7e78ffccb8ea6cf945d850b-display-v1.webp" width="100px;" alt=""/><br /><sub><b>john-tipper</b></sub></a><br /><a href="https://github.com/projen/projen/commits?author=john-tipper" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/henrysachs"><img src="https://assets.kitploit.com/production/public/readmes/53717/8e15ad7ce30a289c5bbc45aa242310c91884a05bd3d09b533eb3da1288d530c8/3f90b5c9378bce3c98252ff706ad352694611773ee87c7f563fe2de8fad50644-display-v1.webp" width="100px;" alt=""/><br /><sub><b>Henry Sachs</b></sub></a><br /><a href="https://github.com/projen/projen/commits?author=henrysachs" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/eganjs"><img src="https://assets.kitploit.com/production/public/readmes/53717/97549d9ab4e67a20eed6f666b05ae8885e9bd9b0aa4473351b60a4862895dfd5/117cd1a23e367368a2808659e8fb3198664cf415727f7df3d8da42a97fe05487-display-v1.webp" width="100px;" alt=""/><br /><sub><b>Joseph Egan</b></sub></a><br /><a href="https://github.com/projen/projen/commits?author=eganjs" title="Code">💻</a></td>
</tr>
<tr>
<td align="center"><a href="https://skorfmann.com/"><img src="https://assets.kitploit.com/production/public/readmes/53717/7128dd9339e905a7dec91056c6aa712e5de039266418ff54b329560e49978585/158fc637f5c8da0fd9de66a11db3eeab58196563d81588de012f01e7fd30dacc-display-v1.webp" width="100px;" alt=""/><br /><sub><b>Sebastian Korfmann</b></sub></a><br /><a href="https://github.com/projen/projen/commits?author=skorfmann" title="Code">💻</a></td>
<td align="center"><a href="http://www.callant.net/"><img src="https://assets.kitploit.com/production/public/readmes/53717/9f58198ec8fc7457e0501b40747d9b76989eaf887b2eb98b82fe5d9dda16b69a/98bfb61fa8473a1be9e80a57ee9c27aa8862b0ff753dbc6b74e44d78f739bd28-display-v1.webp" width="100px;" alt=""/><br /><sub><b>Bart Callant</b></sub></a><br /><a href="https://github.com/projen/projen/commits?author=bartcallant" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/campionfellin"><img src="https://assets.kitploit.com/production/public/readmes/53717/6876dfc9d381418712cc0efcd948bd67569fdf159936af628d40fd2a8fbd0a24/ade5b0fe301a5ec41421175e51f6733e2d5faa8330ca2da0ac325e539ac75431-display-v1.webp" width="100px;" alt=""/><br /><sub><b>Campion Fellin</b></sub></a><br /><a href="https://github.com/projen/projen/commits?author=campionfellin" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/gradybarrett"><img src="https://assets.kitploit.com/production/public/readmes/53717/78660d8f98f6b21edc9738afbc2d2b6bf61b2f61b67d0e9e999055405d51ffc0/9991df3d8dc38010498161085b494b47f57d807d787028f4633160aa55c1c367-display-v1.webp" width="100px;" alt=""/><br /><sub><b>Grady Barrett</b></sub></a><br /><a href="https://github.com/projen/projen/commits?author=gradybarrett" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/HassanMahmud"><img src="https://assets.kitploit.com/production/public/readmes/53717/108bcd2c47bb3cbe145fd1c9866cfc11c112695314816162c4fdc1ba2025b3da/0fae8492a14e09f8becdf25d07c4c4f5596a8e0c9bc4d2fb8631d73e93d3c3b6-display-v1.webp" width="100px;" alt=""/><br /><sub><b>Hassan Mahmud</b></sub></a><br /><a href="https://github.com/projen/projen/commits?author=HassanMahmud" title="Code">💻</a></td>
<td align="center"><a href="https://dk.linkedin.com/in/hassanmahmud93"><img src="https://assets.kitploit.com/production/public/readmes/53717/bf5aa5dc928b141b3d805f6a51dd3b23ec4ee8e10b1af5d65ab7fc50f2b6d76a/1e4f08f9d6ab4be0574f05500cb5b3d6770503466361efece6ea3d831073b613-display-v1.webp" width="100px;" alt=""/><br /><sub><b>Hassan Mahmud</b></sub></a><br /><a href="https://github.com/projen/projen/commits?author=hass123uk" title="Code">💻</a></td>
<td align="center"><a href="http://joapy.com/"><img src="https://assets.kitploit.com/production/public/readmes/53717/268a95477f47a562ad309394c4e3938ee4556beeff5854abb8a9528a897f5c95/3fb53b3507f0d85b5b5902e58b7a3e3a1c200ebc0d42e4dd05f083b2a9e450f7-display-v1.webp" width="100px;" alt=""/><br /><sub><b>Jake Pearson</b></sub></a><br /><a href="https://github.com/projen/projen/commits?author=jakepearson" title="Code">💻</a></td>
</tr>
<tr>
<td align="center"><a href="https://github.com/JeremyJonas"><img src="https://assets.kitploit.com/production/public/readmes/53717/c484499e937f15c5d99fa5aeae768c73402cef978e346827df2f39059b7ed833/d3eb61c90f1ba1be09f4fd48dfd32d95182b35e09c938cc715da9b07596537fd-display-v1.webp" width="100px;" alt=""/><br /><sub><b>Jeremy Jonas</b></sub></a><br /><a href="https://github.com/projen/projen/commits?author=JeremyJonas" title="Code">💻</a></td>
<td align="center"><a href="https://dev.to/martzcodes"><img src="https://assets.kitploit.com/production/public/readmes/53717/e3f7e354da2b6b00410249c11ea60bed6fca7bb48e84fe2a7b392ad4139d666c/75c8b5e9993d5cc79433a7e86fcbbdfa85256b7a0331eb113977c31837560436-display-v1.webp" width="100px;" alt=""/><br /><sub><b>Matt Martz</b></sub></a><br /><a href="https://github.com/projen/projen/commits?author=martzcodes" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/fongie"><img src="https://assets.kitploit.com/production/public/readmes/53717/0028b1d649a55650eceaaa99a8f316ecb7f123ed1a6d062c0c69a38329e068d6/89bea30640b54850fde4928d98365609f3223222124587f3f40ab1a3a0db840b-display-v1.webp" width="100px;" alt=""/><br /><sub><b>Max Körlinge</b></sub></a><br /><a href="https://github.com/projen/projen/commits?author=fongie" title="Code">💻</a></td>
<td align="center"><a href="https://blog.neilkuan.dev/"><img src="https://assets.kitploit.com/production/public/readmes/53717/3c0031d6361ecf2c706103d22993365d2c957ffd3e7895b0799c8e42e5f63067/a8dfd782150b9f83749b5ee94a507ab1ec0293757d158871f17f00513da97a5a-display-v1.webp" width="100px;" alt=""/><br /><sub><b>Neil Kuan</b></sub></a><br /><a href="https://github.com/projen/projen/commits?author=guan840912" title="Code">💻</a></td>
<td align="center"><a href="https://dynobase.dev/"><img src="https://assets.kitploit.com/production/public/readmes/53717/21acb8ddb02c8b1c85708d4f11ad948a886b5e2d642c0ad4aac1864fd9056b07/e2fa014e43ed2cdf4723bf17d343e019b5e160f9b9007da9abee3ce067c260a1-display-v1.webp" width="100px;" alt=""/><br /><sub><b>Rafal Wilinski</b></sub></a><br /><a href="https://github.com/projen/projen/commits?author=RafalWilinski" title="Code">💻</a></td>
<td align="center"><a href="https://keybase.io/romainmuller"><img src="https://assets.kitploit.com/production/public/readmes/53717/6b3bbcff5eced5470446f3ceac451c7b20f20f6aeda7a0ca9b6919bb7ccb9113/a5bdd4f4d7791a1de6128d7e44c9fd377375acb289cf30cda0ec901df48d3425-display-v1.webp" width="100px;" alt=""/><br /><sub><b>Romain Marcadier</b></sub></a><br /><a href="https://github.com/projen/projen/commits?author=RomainMuller" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/thomasklinger1234"><img src="https://assets.kitploit.com/production/public/readmes/53717/8275e58ffa6fd95b202610851a8c463238d59e4e33cae3475808a63ffe4ec2a3/1269590fd8f91004a78c68464cdb7fcb81cdcb753d42fe5907c762297c84922a-display-v1.webp" width="100px;" alt=""/><br /><sub><b>Thomas Klinger</b></sub></a><br /><a href="https://github.com/projen/projen/commits?author=thomasklinger1234" title="Code">💻</a></td>
</tr>
<tr>
<td align="center"><a href="https://github.com/gwriss"><img src="https://assets.kitploit.com/production/public/readmes/53717/015eea04cbaced5bceb1d8829092eac81f781191f5ad18e3815d5cdfbfc607bd/fb90b0ac8ec5cf511451105b8eb5ce64e11ad53e6ca893d8aa10b7b1e9da9771-display-v1.webp" width="100px;" alt=""/><br /><sub><b>Tobias</b></sub></a><br /><a href="https://github.com/projen/projen/commits?author=gwriss" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/flyingImer"><img src="https://assets.kitploit.com/production/public/readmes/53717/2a5c0ad8a48e7a1e6aa75dd6c0c74eecff8f9f2608cc69b89c20906ca0dc5ebc/e7613bf388d067c1debb8414cf1a212e195980a08f9d72169787c985fcd4d62a-display-v1.webp" width="100px;" alt=""/><br /><sub><b>flyingImer</b></sub></a><br /><a href="https://github.com/projen/projen/commits?author=flyingImer" title="Code">💻</a></td>
</tr>
</table>
<!-- markdownlint-restore -->
<!-- prettier-ignore-end -->
<!-- ALL-CONTRIBUTORS-LIST:END -->
## लाइसेंस
[Apache-2.0](https://github.com/pvharmo2/gha-lab-b9842b12c0/blob/main/LICENSE) लाइसेंस के अंतर्गत वितरित।