DEV Community: Francesco Sardone The latest articles on DEV Community by Francesco Sardone (@airscript). https://dev.to/airscript https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F236885%2Ff236bc9a-96e1-4e7b-86b1-a0a9e96d8593.png DEV Community: Francesco Sardone https://dev.to/airscript en Understanding GitHub Pull Requests Francesco Sardone Mon, 16 Oct 2023 06:00:00 +0000 https://dev.to/airscript/understanding-github-pull-requests-17cm https://dev.to/airscript/understanding-github-pull-requests-17cm <h2> Contents </h2> <ul> <li>Introduction</li> <li>Requirements</li> <li>Overview</li> <li>Pull Requests</li> <li>Navigating Request</li> <li>Conclusion</li> <li>Share Support</li> </ul> <h2> Introduction </h2> <p>Hey there! I'm Francesco known as Airscript on the web.<br> Today we're gonna continue our focus on <code>GitHub Repositories</code> taking a look to <code>Pull Requests</code> tab.<br> Without any further ado, I think we can start.</p> <h2> Requirements </h2> <p>You don't need any particular requirement to consult <code>pull requests</code> section on GitHub.<br> If you need a place to follow along this post, my chosen repository for today's blog post is <a href="proxy.php?url=https://github.com/mariocandela/beelzebub" rel="noopener noreferrer">Beelzebub</a>.</p> <h2> Overview </h2> <p>I will start this post with a simple question: have you ever wondered how you can actually contribute to a software project?<br> Probably now in your mind you have something like: "Writing code, of course!"<br> That is totally right, but how? How do you represent and share that block of code that you wrote?<br> That is done by making a pull request!</p> <h2> Pull Requests </h2> <p>So, let's deep dive on what is a <code>pull request</code> first.<br> As we have seen in the overview section, a pull request, for short <code>PR</code>, is actually a request for making a change inside a software.<br> Those changes are detected as additions and removals and usually they look like this:<br> <a href="proxy.php?url=https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9dgvtlnmr19p4d3fal0h.png" class="article-body-image-wrapper"><img src="proxy.php?url=https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9dgvtlnmr19p4d3fal0h.png" alt="Pull Request Changes" width="663" height="323"></a></p> <blockquote> <p>In green we see additions and in red removals.</p> </blockquote> <p>Unlike <code>issues</code>, pull requests can have more than two states.<br> A pull request can be seen as open, closed and merged. In some cases also as draft.<br> Let's see what they mean:</p> <ul> <li>An <code>open</code> pull request means that a contributor just has expressed the willingness to contribute to a project, making some changes;</li> <li>A <code>closed</code> pull request means that the pull request has come to an end, without being merged inside the repository;</li> <li>A <code>merged</code> pull request means that our contribution has seen light and now it is part of the software project itself;</li> <li>A <code>draft</code> pull request means that it is not ready to be reviewed and merged.</li> </ul> <p>As a last note, pull requests like issues can be labeled and added to milestones.<br> So, everything we told about those two entities in <a href="proxy.php?url=https://dev.to/airscript/no-more-problems-with-github-issues-20ne">this previous blog post</a> is totally right also for pull requests!</p> <h2> Navigating Requests </h2> <p>Now that we are experts of what a pull request actually means, let's see where we can find them and how we can filter them out.<br> While over our selected GitHub repository, let's just take a look on the top left portion of our screen:<br> <a href="proxy.php?url=https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjksbug8dsrq8w3gi2t1e.png" class="article-body-image-wrapper"><img src="proxy.php?url=https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjksbug8dsrq8w3gi2t1e.png" alt="Accessing Pull Requests" width="800" height="185"></a></p> <p>As indicated inside the image above, we can simply select <code>Pull Requests</code> and jump inside this wonderful world:<br> <a href="proxy.php?url=https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F775k0383k1ynvjduzrt3.png" class="article-body-image-wrapper"><img src="proxy.php?url=https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F775k0383k1ynvjduzrt3.png" alt="Pull Requests List" width="800" height="373"></a></p> <blockquote> <p>I've filtered out for closed ones since there were no open requests at the time of this blog post.</p> </blockquote> <p>This is where all the pull requests lie. <br> And just like issues themselves, we can use fast filters for searching whatever we are looking for in a rapid fashion as well as just searching for keywords inside the search bar!<br> <a href="proxy.php?url=https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvuu7vl90h809r8kff188.png" class="article-body-image-wrapper"><img src="proxy.php?url=https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvuu7vl90h809r8kff188.png" alt="Pull Requests Fast Filters" width="643" height="608"></a></p> <h2> Bonus </h2> <p>Now that you know what is a pull request and where you can find it, if you're looking for making your own first pull request just make sure to drop off my blog post on <a href="proxy.php?url=https://dev.to/airscript/making-your-first-pull-request-4ahc">how to make your first pull request</a>!</p> <h2> Conclusion </h2> <p>In today's blog post we have seen what is a pull request, how many states it can have and where we can find and filter them out in GitHub.<br> At this point with the knowledge acquired with this series, you are already able to create your own project, open issues and resolve them via pull request.<br> Be proud of yourself!</p> <h2> Share Support </h2> <p>If you have liked this post, just leave a reaction and a comment in the section below.<br> To not lose any new post, just remember that you can follow me here on <a href="proxy.php?url=https://dev.to/airscript/">dev.to</a> and also other platforms that you can find on <a href="proxy.php?url=https://airscript.it" rel="noopener noreferrer">airscript.it</a>.<br> Thank you kindly!</p> beginners opensource github tutorial Patreon Meets GitHub Sponsors Francesco Sardone Mon, 09 Oct 2023 06:00:00 +0000 https://dev.to/airscript/patreon-meets-github-sponsors-2mha https://dev.to/airscript/patreon-meets-github-sponsors-2mha <h2> Contents </h2> <ul> <li>Introduction</li> <li>Requirements</li> <li>Overview</li> <li>Connecting Patreon</li> <li>Bonus</li> <li>Conclusion</li> <li>Share Support</li> </ul> <h2> Introduction </h2> <p>Hey there! I'm Francesco known as Airscript on the web.<br> Today we're gonna see how to connect Patreon to our GitHub Sponsors profile.<br> This possibility to interconnect these two services has been launched a few days ago from the publishment of this post, so I thought it would be awesome to see how it can be done.</p> <h2> Requirements </h2> <p>In order to proceed with this post, you'll need two things:</p> <ul> <li>A personal <a href="proxy.php?url=https://github.com/sponsors" rel="noopener noreferrer">GitHub Sponsors</a> profile;</li> <li>A personal <a href="proxy.php?url=https://patreon.com" rel="noopener noreferrer">Patreon</a> profile;</li> </ul> <h2> Overview </h2> <p>This event, happened between GitHub Sponsors and Patreon, marks a new milestone in open source empowerment.<br> One thing that we suffer inside our ecosystem is the possibility to give something back to those marvelous contributors, who gift everyday their time for our own pledge.</p> <p>Having Patreon it's not only an additional service to give credit, but this credit can be shown up over our GitHub profile too!</p> <p>Now without investing more words on the matter, let's see how we can connect everything.</p> <h2> Connecting Patreon </h2> <p>Let's start heading to our GitHub profile.<br> <a href="proxy.php?url=https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fi1rsk8a4pkuhbqr28j1q.png" class="article-body-image-wrapper"><img src="proxy.php?url=https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fi1rsk8a4pkuhbqr28j1q.png" alt="GitHub Profile" width="800" height="498"></a></p> <p>Here we can simply click onto <code>Sponsors Dashboard</code> and reach this section after that:<br> <a href="proxy.php?url=https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fy8bz4em4lt231vv2zp3m.png" class="article-body-image-wrapper"><img src="proxy.php?url=https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fy8bz4em4lt231vv2zp3m.png" alt="GitHub Sponsors Settings" width="642" height="1015"></a></p> <p>You can find this at the left of the page.<br> Just click onto <code>Settings</code> to reach our final stop for connecting Patreon:<br> <a href="proxy.php?url=https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fuvz3npg8fru7djswf8sr.png" class="article-body-image-wrapper"><img src="proxy.php?url=https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fuvz3npg8fru7djswf8sr.png" alt="Link Patreon Account" width="800" height="141"></a></p> <p>Simply click <code>Connect with Patreon</code> and allow Patreon to connect with your GitHub Profile:<br> <a href="proxy.php?url=https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flzjand7jateva136h2vs.png" class="article-body-image-wrapper"><img src="proxy.php?url=https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flzjand7jateva136h2vs.png" alt="Patreon Allowance" width="800" height="954"></a></p> <p>If everything goes as expected, you'll be redirected to your GitHub Sponsors with this marvelous message appearing before your eyes:<br> <a href="proxy.php?url=https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4xxwef3jze2xxnhks59k.png" class="article-body-image-wrapper"><img src="proxy.php?url=https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4xxwef3jze2xxnhks59k.png" alt="Patreon Connect Success" width="791" height="118"></a></p> <p>And that's all, we did it!<br> Now we can see who sponsors us on Patreon also onto GitHub Sponsors!</p> <h2> Bonus </h2> <p>If you want to allow people to sponsor you through Patreon via GitHub Sponsors, there is a small step to do.<br> Just go again inside your <code>Settings</code> section and tick this functionality:<br> <a href="proxy.php?url=https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fclxm0472q5lxw46jfdan.png" class="article-body-image-wrapper"><img src="proxy.php?url=https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fclxm0472q5lxw46jfdan.png" alt="Patreon Allowance" width="800" height="212"></a></p> <p>After selecting this, inside your sponsor page, you'll see a new tab leading to Patreon and its tiers:<br> <a href="proxy.php?url=https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbcghw0yvmvz6bt75oxin.png" class="article-body-image-wrapper"><img src="proxy.php?url=https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbcghw0yvmvz6bt75oxin.png" alt="Patreon Sponsorship" width="693" height="1095"></a></p> <h2> Conclusion </h2> <p>In today's post we have seen how to connect Patreon with GitHub Sponsors.<br> Don't forget to donate even a single dollar to your most ispirational open contributors out there.<br> Tell them that they are meaningful for you!</p> <h2> Share Support </h2> <p>If you have liked this post, just leave a reaction and a comment in the section below.<br> To not lose any new post, just remember that you can follow me here on <a href="proxy.php?url=https://dev.to/airscript/">dev.to</a> and also other platforms that you can find on <a href="proxy.php?url=https://airscript.it" rel="noopener noreferrer">airscript.it</a>.<br> Thank you kindly!</p> beginners tutorial opensource github No More Problems With GitHub Issues Francesco Sardone Mon, 02 Oct 2023 06:00:00 +0000 https://dev.to/airscript/no-more-problems-with-github-issues-20ne https://dev.to/airscript/no-more-problems-with-github-issues-20ne <h2> Contents </h2> <ul> <li>Introduction</li> <li>Requirements</li> <li>Overview</li> <li>Issues</li> <li>Labels</li> <li>Milestones</li> <li>Conclusion</li> <li>Share Support</li> </ul> <h2> Introduction </h2> <p>Hey there! I'm Francesco known as Airscript on the web.<br> Today we're gonna continue our focus on <code>GitHub Repositories</code> taking a look to <code>Issues</code> tab.<br> Without any further ado, I think we can start.</p> <h2> Requirements </h2> <p>You don't need any particular requirement to consult <code>issues</code> section on GitHub.<br> If you need a place to follow along this post, my chosen repository for today's blog post is <a href="proxy.php?url=https://github.com/sindresorhus/awesome" rel="noopener noreferrer">Awesome</a>.</p> <h2> Overview </h2> <p>Let's say you have encountered problems with a particular software that you're using and that software is also available on GitHub. How do you check an open issue or report one?<br> That's what we'll be learning today! <br> <a href="proxy.php?url=https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5hyiamuts21ww9f4ndvm.png" class="article-body-image-wrapper"><img src="proxy.php?url=https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5hyiamuts21ww9f4ndvm.png" alt="Issues Overview" width="800" height="501"></a></p> <p>It can be daunting at first, looking at this image, to know what's going on. Fear not, there are three main things to learn here: <code>issues</code>, <code>labels</code> and <code>milestones</code>.</p> <h2> Issues </h2> <p>Starting from the roots, an issue as the name implies, is a problem.<br> During the years this term just evolved in something more, even though not matching its meaning.<br> Today's issues are simply activities. Activities that can span from features, discussions, ideas, bugs and so on.<br> One important thing to keep in mind for issues is that they can have, talking simply, two states: <code>open</code> and <code>close</code> state.</p> <p>Inside of GitHub you can create, search or simply interact with issues.</p> <h3> Creating An Issue </h3> <p>So starting from here, what do I have to do to start creating a new issue?<br> It's simple. Just use the green button on the right and fill the information needed in the opening page:<br> <a href="proxy.php?url=https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F20kvbwfmk23h15r2ra28.png" class="article-body-image-wrapper"><img src="proxy.php?url=https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F20kvbwfmk23h15r2ra28.png" alt="Create Issue" width="790" height="387"></a></p> <blockquote> <p>Remember that this is not an in-depth article on issues lifecycle , but an overview on issues tab in GitHub.</p> </blockquote> <h3> Searching An Issue </h3> <p>In order to fulfill the search of an issue, we have a pretty long search bar in this section.<br> And, the cool thing about this bar, is that it just responds to its search language.<br> <a href="proxy.php?url=https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F76zo1hpji7ee2vb2m81c.png" class="article-body-image-wrapper"><img src="proxy.php?url=https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F76zo1hpji7ee2vb2m81c.png" alt="Search Issue" width="800" height="419"></a></p> <blockquote> <p>In this image, we are filtering for opened issues.</p> </blockquote> <h3> Interacting With An Issue </h3> <p>The last thing that we can do, regarding issues in this section, it to click on them and actually interacting with them.<br> As you see, there is a list in the first image representing, of course, the listed issues for the repository.<br> When clicking on one of them, you are entering the deep context of it, looking at title, descriptions, comments and so on.<br> You can also leave a comment of yours if you want to!</p> <h2> Labels </h2> <p>Now that we have seen what issues are and what we can do with them, specifically to this section, let's talk about labels.<br> <a href="proxy.php?url=https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fezso4uu3a0eolo003frg.png" class="article-body-image-wrapper"><img src="proxy.php?url=https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fezso4uu3a0eolo003frg.png" alt="Labels" width="800" height="265"></a></p> <p>Labels serve different purposes but the main one is to categorize issues.<br> GitHub on every new repository just creates some default ones such as: <code>enhancement</code>, <code>documentation</code>, <code>bug</code> and so on.<br> <a href="proxy.php?url=https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fymhz01j01d3m2ijlsy4q.png" class="article-body-image-wrapper"><img src="proxy.php?url=https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fymhz01j01d3m2ijlsy4q.png" alt="Labels List" width="800" height="380"></a></p> <p>Don't forget to put a label on your issue if you want to get recognized for what it really is!</p> <h2> Milestones </h2> <p>At last only milestones remain.<br> <a href="proxy.php?url=https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqgfwsphzccy3n6rmo15u.png" class="article-body-image-wrapper"><img src="proxy.php?url=https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqgfwsphzccy3n6rmo15u.png" alt="Milestones" width="759" height="226"></a></p> <p>Milestones are something that you don't want to sleep on.<br> They can be a container for issues, regarding a specific goal.<br> Let's do an example on this. Let's say that you file an issue for a project that you use and want to know when that issue will be solved.<br> Milestones tell you exactly that, even though not everyone uses them in the right way.<br> If your issue is listed inside a milestone that will be marked as the next version of the software, then you're good to go!</p> <p>Here, following, an image representing a list of milestones.<br> <a href="proxy.php?url=https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fue9avnnnvui2qybh5per.png" class="article-body-image-wrapper"><img src="proxy.php?url=https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fue9avnnnvui2qybh5per.png" alt="Milestones List" width="800" height="425"></a></p> <blockquote> <p>Had to take this one onto another repository since Awesome is not using milestones currently.</p> </blockquote> <h2> Conclusion </h2> <p>In today's post we have seen <code>Issues</code> section inside a GitHub Repository.<br> We have talked about how to create, search and interact with issues as well as the meaning behind labels and milestones.<br> As you can see, things are starting to get a little bit complicated but don't worry: we still have time to talk in depth about issues, labeling, milestones and so on in later specific posts.</p> <h2> Share Support </h2> <p>If you have liked this post, just leave a reaction and a comment in the section below.<br> To not lose any new post, just remember that you can follow me here on <a href="proxy.php?url=https://dev.to/airscript/">dev.to</a> and also other platforms that you can find on <a href="proxy.php?url=https://airscript.it" rel="noopener noreferrer">airscript.it</a>.<br> Thank you kindly!</p> github opensource tutorial beginners Navigating Code In GitHub Repositories Francesco Sardone Mon, 25 Sep 2023 06:00:00 +0000 https://dev.to/airscript/navigating-code-in-github-repositories-10km https://dev.to/airscript/navigating-code-in-github-repositories-10km <h2> Contents </h2> <ul> <li>Introduction</li> <li>Requirements</li> <li>Header</li> <li>Files</li> <li>About</li> <li>Releases</li> <li>README</li> <li>Conclusion</li> <li>Share Support</li> </ul> <h2> Introduction </h2> <p>Hey there! I'm Francesco known as Airscript on the web.<br> Today we're gonna continue our focus on <code>GitHub Repositories</code> taking a look to <code>Code</code> tab.<br> Without any further ado, I think we can start.</p> <h2> Requirements </h2> <p>You don't need any particular requirement to consult <code>code</code> section on GitHub.</p> <h2> Header </h2> <p>Since we're going to do a deep dive on this topic, let's start from the top.<br> For the purpose of this blog post, I'll be using <a href="proxy.php?url=https://github.com/airscripts/awesome-steam-deck" rel="noopener noreferrer">Awesome Steam Deck</a> as reference.</p> <p>Open the link and start with me from the left, just below the code tab:<br> <a href="proxy.php?url=https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgxodz0vbx3l7skilbrlo.png" class="article-body-image-wrapper"><img src="proxy.php?url=https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgxodz0vbx3l7skilbrlo.png" alt="Header" width="641" height="142"></a></p> <p>In the case of this repository we have three main aspects:</p> <ul> <li> <code>Title</code>: the actual name of repository;</li> <li> <code>Template</code>: the base template from where it was generated;</li> <li> <code>Visibility</code>: in this case as public, means it can be seen by everyone.</li> </ul> <p>Going right, instead, we start to see something specific to GitHub itself:<br> <a href="proxy.php?url=https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7m1axg1jhbi2qs2s6k4w.png" class="article-body-image-wrapper"><img src="proxy.php?url=https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7m1axg1jhbi2qs2s6k4w.png" alt="Header 2" width="800" height="60"></a></p> <p>Just looking at them in order, from left to right:</p> <ul> <li> <code>Sponsor</code>: on GitHub repositories or users can be funded through GitHub Sponsors and this button serves that purpose;</li> <li> <code>Pin/Unpin</code>: if you want to showreel you work, you can pin it on your profile page to make it stand thanks to this button;</li> <li> <code>Watch/Unwatch</code>: when you're interested by a project, you can watch it and get all the updates from it such as releases and more;</li> <li> <code>Fork</code>: the concept of fork is literally to make a copy of a repository on your profile or organization;</li> <li> <code>Star/Starred</code>: a star is something that usually makes GitHub users happy and you can refer to it as a bookmark telling that you like it.</li> </ul> <h2> Files </h2> <p>After the header we can move out together inside the hot part of a repository: files.<br> Inside files we can check the actual code, documentation and more.<br> The whole project, basically.<br> <a href="proxy.php?url=https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2p963f9s0dpm3e1gmo6a.png" class="article-body-image-wrapper"><img src="proxy.php?url=https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2p963f9s0dpm3e1gmo6a.png" alt="Files" width="800" height="469"></a></p> <p>Starting from the top, we see a selector for both <code>branches</code> and <code>tags</code>, but what are they?<br> Simply put, branches can be seen like different versions of a project that can be identical or flow in a different pathway just like a tree branch.<br> Tags have a similar concept but they're literally a photo of a branch on a specific period in time. Yes, just the selfie you made yourself years ago.<br> Other than this, on the right you see utilities for searching files, creating new ones and also different possibilities to code on your own.</p> <p>Leaving behind the top part, we can go directly to the files tree.<br> This tree shows two main things:</p> <ul> <li>Who made the last changes to the repository's code;</li> <li>The files that compose up the repository.</li> </ul> <p>Before moving onto the right portion of this page, I have to make a small focus onto the changes.<br> When you make a change to repository's code, that change is being called a <code>commit</code>.</p> <h2> About </h2> <p>Moving forward and for forward I mean to the right, we can see the <code>About</code> section.<br> Treat this as a recap section with all the useful information and metrics about a repository:<br> <a href="proxy.php?url=https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsi11nhrez033lyapvhen.png" class="article-body-image-wrapper"><img src="proxy.php?url=https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsi11nhrez033lyapvhen.png" alt="About" width="648" height="976"></a></p> <p>Aside all the information that we have already seen in the previous sections, a mention of honor goes to the software license, the various policies and the README of which we'll be talking in a few words.</p> <h2> Releases </h2> <p>The last section that we'll be covering from the right part is the one for <code>Releases</code>.<br> One thing that I've seen during my travels in the web, is that both technical and non-technical people will, from time to time, reach this section.<br> <a href="proxy.php?url=https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7em14giq8yl3lhcf7070.png" class="article-body-image-wrapper"><img src="proxy.php?url=https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7em14giq8yl3lhcf7070.png" alt="Releases" width="644" height="275"></a></p> <p>The reason is simple: it contains the actual software and usually you can download it from there.</p> <h2> README </h2> <p>The last part that we'll see in this post, is the famous <code>README</code>.<br> <a href="proxy.php?url=https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fx2jya3xqaarmho0lfoaa.png" class="article-body-image-wrapper"><img src="proxy.php?url=https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fx2jya3xqaarmho0lfoaa.png" alt="README" width="800" height="483"></a></p> <p>This section is one of the most useful inside a repository.<br> It tells you what does the project, how you can use it or how you can even contribute to it.<br> Look always for this section because it makes things clear about what you're looking to!</p> <h2> Conclusion </h2> <p>And we reached the end also for this blog post.<br> We have seen from top to bottom how a repository is organized, how to read and interpret all the fancy words it has in it and so on.</p> <p>As a side note, a GitHub Repository is fulfilled of things that may be or not be there, so I made sure to treat only visible sections.<br> My wish is that you would go out there and discover them out by yourself. Now you have the knowledge to look up at repositories, after all!</p> <h2> Share Support </h2> <p>If you have liked this post, just leave a reaction and a comment in the section below.<br> To not lose any new post, just remember that you can follow me here on <a href="proxy.php?url=https://dev.to/airscript/">dev.to</a> and also other platforms that you can find on <a href="proxy.php?url=https://airscript.it" rel="noopener noreferrer">airscript.it</a>.<br> Thank you kindly!</p> github tutorial beginners opensource Creating A New GitHub Repository Francesco Sardone Mon, 18 Sep 2023 06:00:00 +0000 https://dev.to/airscript/creating-a-new-repository-4ff3 https://dev.to/airscript/creating-a-new-repository-4ff3 <h2> Contents </h2> <ul> <li>Introduction</li> <li>Requirements</li> <li>Creating A Repository</li> <li>Repository Tabs</li> <li>Conclusion</li> <li>Share Support</li> </ul> <h2> Introduction </h2> <p>Hey there! I'm Francesco known as Airscript on the web.<br> Today I want to share with you how you can create a new GitHub Repository and navigate into it.<br> This post will serve us well for the next weeks while we'll be going deeper into the concepts behind repositories. </p> <h2> Requirements </h2> <p>In order to create a GitHub Repository you'll need a <a href="proxy.php?url=https://github.com" rel="noopener noreferrer">GitHub Account</a>.</p> <h2> Creating A Repository </h2> <p>Now that you've checked all the requirements, just head to <a href="proxy.php?url=https://github.com" rel="noopener noreferrer">github.com</a> and look at the top right portion of the screen.<br> There you'll see a button with a plus sign that makes wonders:<br> <a href="proxy.php?url=https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpjpn20jqhxebl5u5glog.png" class="article-body-image-wrapper"><img src="proxy.php?url=https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpjpn20jqhxebl5u5glog.png" alt="New Repository" width="800" height="475"></a></p> <p>After clicking on <code>New Repository</code>, something like this one will appear in front of you:<br> <a href="proxy.php?url=https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frp4lph3bu63ycfaftc55.png" class="article-body-image-wrapper"><img src="proxy.php?url=https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frp4lph3bu63ycfaftc55.png" alt="Create New Repository" width="800" height="615"></a></p> <p>First of all you'll be asked for a template repository.<br> A template repository is an already setup repository that will just work as a blueprint.<br> After that you'll have to choose the owner, a repository name and description.<br> Fill it out with whatever you want or use the funny suggestions that GitHub does for you!</p> <p>Now let's go deeper onto the next steps and see what they mean:<br> <a href="proxy.php?url=https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffcpgb5cjr8397h7vw4kz.png" class="article-body-image-wrapper"><img src="proxy.php?url=https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffcpgb5cjr8397h7vw4kz.png" alt="Create New Repository 2" width="800" height="555"></a></p> <p>You'll be asking yourself: "What is a <code>README</code> or even a <code>license</code>?"<br> Good question! A README is a simple text file where you can describe your repository starting from what does it address, to how you can use it and also how to contribute to it.</p> <p>The license, on the other side, is also a file that contains a contract for protecting your rights regarding the software you're creating.<br> If you choose to not have one, the software you're making will not be freely usable like usually an open source software can.<br> If you want to make your own ideas on this matter, jump by <a href="proxy.php?url=https://choosealicense.com/" rel="noopener noreferrer">choosealicense.com</a> or wait for my series on the matter.</p> <p>Of course I'm not forgetting about <code>.gitignore</code>.<br> This is a simple file that takes track of which files are not welcomed inside your repository.<br> If you have a personal file that you don't want to commit publicly then you just add its name inside of it and the magic is done.</p> <p>After you've setup everything just click onto <code>Create repository</code> and the mission will be completed!</p> <h2> Repository Tabs </h2> <p>Now that you have created your repository, you'll see something like this:<br> <a href="proxy.php?url=https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5844rdlq4exlzq64vev9.png" class="article-body-image-wrapper"><img src="proxy.php?url=https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5844rdlq4exlzq64vev9.png" alt="Repository Overview" width="800" height="469"></a></p> <p>Yes, I know. There's a lot of stuff right in front of us but fear not! I'm here.<br> As a first stepping stone let's see the various tabs inside of it and what they mean:<br> <a href="proxy.php?url=https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F283j7418ug0bsaap4vya.png" class="article-body-image-wrapper"><img src="proxy.php?url=https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F283j7418ug0bsaap4vya.png" alt="Repository Tabs" width="800" height="92"></a></p> <p>Right know we are into the <code>Code</code> section.<br> In this section you can actually see the code of your software and other useful information such as topics, websites and more.</p> <p>Right after that, there's <code>Issues</code> tab where all issues are stored.<br> An issue can be a lot of things but explained simply, it's a tool to track down things about your repository.<br> e.g. Your software has an error while doing something? Fine, that's an issue to be opened.</p> <p>Next to the issues tab there is a <code>Pull Requests</code> tab that also stores them.<br> This one is practically the heart of open source if you ask me.<br> Basically, if I want to contribute to a software, I make my own magic with code and then send it back to the original repository as a pull request.</p> <p><code>Actions</code> tab is a cool one. A little bit more advanced but nothing impossible to understand.<br> Let's think about something you do everyday, like brushing your teeths.<br> The key question here is: "Can you automate it?" and if the answer is yes, then you can represent it with the use of a reusable action!<br> Inside this tab you'll find all the actions and all the reports for every action that has been runned in the past.</p> <p>Following this, there's <code>Projects</code> tab.<br> It speaks by itself but, you can see projects like big boards where you can track down things to do over your software.<br> This is a cool collaboration and management tool that GitHub gives for managing issues as well!</p> <p>The <code>Wiki</code> tab is a good stop point for learning about the software itself.<br> Just imagine: you're a newcomer and don't know how things work. Where should you go to read about it? That's that place.</p> <p>Now things start getting intresting with the <code>Security</code> tab.<br> This tab is essential if you want to keep track of vulnerabilities, updates, code improvements and so on. All automated for you with the ease of a simple click.</p> <p>If you're a social person, we have also a tab for that side of you: <code>Insights</code>.<br> Here you have a lot of interesting information spacing between how many changes you did to the project to from where that contributor came inside your repository in the first place.</p> <p>As last but not as least important we have the <code>Settings</code> tab.<br> This tab is the control panel for everything that just rotates around your repository.<br> e.g. Repository name, who can access it and more.</p> <h2> Conclusion </h2> <p>And I think we're good to go for now!<br> In the next posts we'll be seeing every tab in detail and also add some tabs that are hidden right after you create a project.<br> So, basically we have seen how to create a new repository and learned more about code licenses, README files and repository tabs.<br> As you can see behind a simple action, there is a lot more. But this is a good thing: means that you have a lot of space for self improvement!</p> <h2> Share Support </h2> <p>If you have liked this post, just leave a reaction and a comment in the section below.<br> To not lose any new post, just remember that you can follow me here on <a href="proxy.php?url=https://dev.to/airscript/">dev.to</a> and also other platforms that you can find on <a href="proxy.php?url=https://airscript.it" rel="noopener noreferrer">airscript.it</a>.<br> Thank you kindly!</p> tutorial github opensource beginners Adding Tools To Your GitHub Repositories Francesco Sardone Sun, 10 Sep 2023 15:57:05 +0000 https://dev.to/airscript/adding-tools-to-your-repositories-2o9h https://dev.to/airscript/adding-tools-to-your-repositories-2o9h <h2> Contents </h2> <ul> <li>Introduction</li> <li>Requirements</li> <li>Accessing The Marketplace</li> <li>A Brief Overview</li> <li>Integrating An App</li> <li>Integrating An Action</li> <li>Conclusion</li> <li>Share Support</li> </ul> <h2> Introduction </h2> <p>Hey there! I'm Francesco known as Airscript on the web.<br> Today I want to share with you what is <a href="proxy.php?url=https://github.com/marketplace" rel="noopener noreferrer">GitHub Marketplace</a> and how you can use it for adding mainly tools to your repositories!</p> <h2> Requirements </h2> <p>In order to use GitHub Marketplace you'll need a <a href="proxy.php?url=https://github.com" rel="noopener noreferrer">personal GitHub account</a> and preferably a repository where you can experiment all of this.</p> <h2> Accessing The Marketplace </h2> <p>In order to access the marketplace, go to your <a href="proxy.php?url=https://github.com" rel="noopener noreferrer">GitHub Dashboard</a> while logged in, and select the hamburger menu in top left corner:<br> <a href="proxy.php?url=https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6wcu2nr02at0radhbhud.png" class="article-body-image-wrapper"><img src="proxy.php?url=https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6wcu2nr02at0radhbhud.png" alt="GitHub Hamburger Menu" width="800" height="393"></a></p> <p>A sidebar will appear.<br> Just at the bottom of it, you'll see a marketplace entry:<br> <a href="proxy.php?url=https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fao0cxdq4aclielszrjkz.png" class="article-body-image-wrapper"><img src="proxy.php?url=https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fao0cxdq4aclielszrjkz.png" alt="GitHub Marketplace Button" width="800" height="319"></a></p> <p>Clicking it, you will reach <a href="proxy.php?url=https://github.com/marketplace" rel="noopener noreferrer">GitHub Marketplace</a>, where our adventure will take place.</p> <h2> A Brief Overview </h2> <p>Inside the marketplace we can practically select two different types of things: apps and actions.</p> <p>They can be seen as almost the same thing: they just automate something and report back to you.<br> One of the key differences is that apps can act on their behalf.</p> <p>Other than this, you can filter apps and actions by categories or their price.<br> No worries on that, most of the apps are regularly free for open source projects.<br> <a href="proxy.php?url=https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6h00po85cz1d8sfhrajg.png" class="article-body-image-wrapper"><img src="proxy.php?url=https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6h00po85cz1d8sfhrajg.png" alt="Explore GitHub Marketplace" width="800" height="564"></a></p> <h2> Integrating An App </h2> <p>After our brief introduction, I think it's time to start integrating stuff.<br> I've already selected one app, but feel free to experiment with your own needs and taste on that.<br> We'll try to integrate an image bot inside my blog repository:<br> <a href="proxy.php?url=https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F36gm30jam1d2jlb8s1o4.png" class="article-body-image-wrapper"><img src="proxy.php?url=https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F36gm30jam1d2jlb8s1o4.png" alt="Imgbot Marketplace" width="800" height="356"></a></p> <p>Now just scroll down, select Open Source and click onto install:<br> <a href="proxy.php?url=https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsl6t9zt931nxk9xjv245.png" class="article-body-image-wrapper"><img src="proxy.php?url=https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsl6t9zt931nxk9xjv245.png" alt="Install Bot" width="800" height="441"></a></p> <p>The platform will ask you for a payment method but don't worry, the bot is free of cost, it's just a requirement.<br> Follow the steps and eventually you'll see something like this:<br> <a href="proxy.php?url=https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fz58c0p7pa8vl6k99fex4.png" class="article-body-image-wrapper"><img src="proxy.php?url=https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fz58c0p7pa8vl6k99fex4.png" alt="GitHub Select Bot Repositories" width="800" height="1249"></a></p> <p>I've just selected one repository, but you can install over them all or wherever you want to.<br> Now that everything is setup, just click onto install again.<br> You'll be prompted for a password and then a screen like this will show up for giving the actual permissions:<br> <a href="proxy.php?url=https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fo34w42jn7fu2kce01mdl.png" class="article-body-image-wrapper"><img src="proxy.php?url=https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fo34w42jn7fu2kce01mdl.png" alt="Authorize Bot" width="800" height="1023"></a></p> <blockquote> <p>Just remember: you're giving permissions on acting on your behalf to the apps that you're integrating.<br> Be sure of what you're installing or it can lead to serious security flaws.</p> </blockquote> <p>Here we can click the authorization button and...<br> <a href="proxy.php?url=https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F26tbj4etkmcrh52edtgk.png" class="article-body-image-wrapper"><img src="proxy.php?url=https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F26tbj4etkmcrh52edtgk.png" alt="Imgbot Winning Screen" width="800" height="488"></a></p> <p>Now it's just a matter of time for receiving a pull request from our bot that is optimizing repo's images in a lossless fashion!</p> <h2> Integrating An Action </h2> <p>The other type of cool things that we can take from the marketplace are the actions.<br> Actions are simple workflows that automate something.<br> Instead of reinventing the wheel writing your own commands for running automated tests, for example, you can just check if there is an action already prepared for this reason and install it right away on your fabulous project.</p> <p>Now, into the action. Same thing as before, let's go to the marketplace and select an action filtering by type.<br> For this post, I've selected a simple Action called First Interaction.<br> It simply greets a user on the first issue or pull request:<br> <a href="proxy.php?url=https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fon4t7mhttppce6xt9f8m.png" class="article-body-image-wrapper"><img src="proxy.php?url=https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fon4t7mhttppce6xt9f8m.png" alt="Installing GitHub Action" width="800" height="445"></a></p> <p>Click onto use latest version and copy the lines of code that it just gives you.<br> Go onto your repository on GitHub and create a .yml file inside a .github folder like this:<br> <a href="proxy.php?url=https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdfeam4c1wzown2sk4mkf.png" class="article-body-image-wrapper"><img src="proxy.php?url=https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdfeam4c1wzown2sk4mkf.png" alt="Creating New File" width="800" height="347"></a></p> <p>After that, just write on top of the explorer this string: <code>.github/workflows/interaction.yml</code>.<br> This is needed in order to create or point up to a folder.<br> The explorer I'm talking about it's something like this one:<br> <a href="proxy.php?url=https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcrbtkna8tnijn7aw8vkr.png" class="article-body-image-wrapper"><img src="proxy.php?url=https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcrbtkna8tnijn7aw8vkr.png" alt="Create New Filename Explorer" width="800" height="252"></a></p> <p>And then, you can paste what we have actually copied.</p> <p>Now, this is not enough because we're not telling the action the actual messages we want to display or, for example, on what kind of issues or pull requests it has to print them out.<br> Documentation comes in our help and every action has a usage section on their installation page:<br> <a href="proxy.php?url=https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhkrbukpl8f9a0nnf714r.png" class="article-body-image-wrapper"><img src="proxy.php?url=https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhkrbukpl8f9a0nnf714r.png" alt="First Interaction Usage" width="800" height="318"></a></p> <p>So we'll just use the one from the example but a little bit more customization since it's missing all the environment's directives:<br> </p> <div class="highlight js-code-highlight"> <pre class="highlight yaml"><code><span class="na">name</span><span class="pi">:</span> <span class="s">interaction</span> <span class="na">on</span><span class="pi">:</span> <span class="na">issues</span><span class="pi">:</span> <span class="na">types</span><span class="pi">:</span> <span class="pi">[</span><span class="nv">opened</span><span class="pi">]</span> <span class="na">pull_request</span><span class="pi">:</span> <span class="na">branches</span><span class="pi">:</span> <span class="pi">[</span><span class="nv">main</span><span class="pi">]</span> <span class="na">types</span><span class="pi">:</span> <span class="pi">[</span><span class="nv">opened</span><span class="pi">]</span> <span class="na">jobs</span><span class="pi">:</span> <span class="na">interaction-checker</span><span class="pi">:</span> <span class="na">runs-on</span><span class="pi">:</span> <span class="s">ubuntu-latest</span> <span class="na">steps</span><span class="pi">:</span> <span class="pi">-</span> <span class="na">uses</span><span class="pi">:</span> <span class="s">actions/checkout@v3</span> <span class="pi">-</span> <span class="na">uses</span><span class="pi">:</span> <span class="s">actions/first-interaction@main</span> <span class="na">with</span><span class="pi">:</span> <span class="na">repo-token</span><span class="pi">:</span> <span class="s">${{ secrets.GITHUB_TOKEN }}</span> <span class="na">issue-message</span><span class="pi">:</span> <span class="pi">|</span> <span class="s">Hey there! Thank you kindly for filing an issue.</span> <span class="s">I'll reply back to you as soon as I can.</span> <span class="na">pr-message</span><span class="pi">:</span> <span class="pi">|</span> <span class="s">Hey there! Thank you kindly for your contribution!</span> <span class="s">I'll review back as soon as I can.</span> </code></pre> </div> <p>What I'm telling here is simply that I want to run this action only on opened issues and pull requests that are being made towards main branch.<br> The next thing I configured is the actual job that indicates the machine it'll be running on and the custom messages for both issues and pull requests.<br> Simple, isn't it?</p> <p>Now we can simply commit everything and wait for someone to contribute to our project to see the magic!<br> In my case I've just asked <a class="mentioned-user" href="proxy.php?url=https://dev.to/ilmanzo">@ilmanzo</a> to open a test issue for me:<br> <a href="proxy.php?url=https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvcao1busvn3nbpcru3kq.png" class="article-body-image-wrapper"><img src="proxy.php?url=https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvcao1busvn3nbpcru3kq.png" alt="Action Test Issue" width="800" height="420"></a></p> <p>And this clears up the process on integrating also an action!</p> <h2> Conclusion </h2> <p>Today we have seen what is GitHub Marketplace and how to use it to integrate Apps and Actions as tools onto our repositories.<br> It may be challenging at first but don't give up!<br> Struggle is a sign of growth if you move toward it.</p> <h2> Share Support </h2> <p>If you have liked this post, just come and tell me!<br> Are you too shy for doing this? No problem. Just visit <a href="proxy.php?url=https://airscript.it" rel="noopener noreferrer">airscript.it</a> and share your support following me on your preferred social platform.<br> If you want to make me even happier, just follow, share or star me and my projects on <a href="proxy.php?url=https://github.com/airscripts" rel="noopener noreferrer">GitHub</a>.</p> beginners opensource github tutorial Discovering With GitHub Explore Francesco Sardone Sat, 02 Sep 2023 20:33:26 +0000 https://dev.to/airscript/discovering-with-github-explore-4d17 https://dev.to/airscript/discovering-with-github-explore-4d17 <h2> Contents </h2> <ul> <li>Introduction</li> <li>Requirements</li> <li>How To Access It</li> <li>Explore</li> <li>Topics</li> <li>Trending</li> <li>Collections</li> <li>Events</li> <li>GitHub Sponsors</li> <li>Conclusion</li> <li>Share Support</li> </ul> <h2> Introduction </h2> <p>Hey there! I'm Francesco known as Airscript on the web.<br> Today I want to share with you what is <a href="proxy.php?url=https://github.com/explore" rel="noopener noreferrer">GitHub Explore</a> and how you can use it for discovering magic things on it!</p> <h2> Requirements </h2> <p>In order to use GitHub Explore you don't need anything else except your browser.<br> I just recommend you make a <a href="proxy.php?url=https://github.com" rel="noopener noreferrer">personal GitHub account</a> to take out the best out of it in terms of feeds.</p> <h2> How To Access It </h2> <p>In order to access Explore, we have different ways. <br> I'll just divide them by ease of access spacing from simple URL to the actual button inside the UI.</p> <p>If you don't have an account on GitHub, the easiest way to reach it, it's by just simply going to <a href="proxy.php?url=https://github.com/explore" rel="noopener noreferrer">https://github.com/explore</a>:</p> <p><a href="proxy.php?url=https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frjsc3p0tjlb6smocogto.png" class="article-body-image-wrapper"><img src="proxy.php?url=https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frjsc3p0tjlb6smocogto.png" alt="Unauthenticated GitHub Explore" width="800" height="518"></a></p> <p>The other way you can do it, it's via authenticated access.<br> While logged in, go to <a href="proxy.php?url=https://github.com" rel="noopener noreferrer">GitHub</a> and on the bottom right portion you'll find something like this section:</p> <p><a href="proxy.php?url=https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqi29519p68dspuwctcak.png" class="article-body-image-wrapper"><img src="proxy.php?url=https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqi29519p68dspuwctcak.png" alt="Dashboard Explore Shortcut" width="800" height="811"></a></p> <p>Just click over <code>Explore more</code> and voilà, you're inside it.</p> <p>Of course, there are other ways to go inside of it, but here we're listing only a few ways to do that.</p> <h2> Explore </h2> <p>Now that we know how to enter it, let's just look at Explore!<br> As we have seen in the other images in the previous section, we have a lot of things to check out.<br> In this section we'll be looking at Explore tab.<br> This specific part is useful for having a quick overview over everything we'll be seeing in other tabs.</p> <p>At left we can see our starred topics, at the center the heart of Explore, i.e. repositories and on the right trending stuff.<br> Just by looking at this and scrolling you'll be finding, eventually, cool stuff to look over and try out!</p> <p><a href="proxy.php?url=https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F171h9flv12cscvhu03p5.png" class="article-body-image-wrapper"><img src="proxy.php?url=https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F171h9flv12cscvhu03p5.png" alt="Explore Repositories" width="800" height="943"></a></p> <blockquote> <p>An example of feed from Explore.</p> </blockquote> <h2> Topics </h2> <p>Let's imagine that you like a certain topic and you want to build a feed over it.<br> Instead of just cherry-picking best projects, GitHub Explore gives you the possibility to star a topic.<br> In this way you can have everything related to a topic straight up in your feeds without any effort!</p> <p><a href="proxy.php?url=https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Froc5yoiyh6pmod2n6eg3.png" class="article-body-image-wrapper"><img src="proxy.php?url=https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Froc5yoiyh6pmod2n6eg3.png" alt="Explore Topics" width="800" height="576"></a></p> <h2> Trending </h2> <p>The Trending section is one of my most preferred ones and the one that will make your next fabulous project practically viral.<br> If you end up here, you made it.</p> <p>The reasons on why I just prefer this section is because you can find really good projects that can change you workflow in better, giving something you never heard about!</p> <p>It is also divided by both repositories and developers...so you can also pick some developers to look for.</p> <p><a href="proxy.php?url=https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7ctuzjnonvj42xb9c9yu.png" class="article-body-image-wrapper"><img src="proxy.php?url=https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7ctuzjnonvj42xb9c9yu.png" alt="Explore Trending Repositories" width="800" height="524"></a></p> <blockquote> <p>These are trending repositories.</p> </blockquote> <p><a href="proxy.php?url=https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwmekx2p7l8o7ktp9jj3h.png" class="article-body-image-wrapper"><img src="proxy.php?url=https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwmekx2p7l8o7ktp9jj3h.png" alt="Explore Trending Developers" width="800" height="475"></a></p> <blockquote> <p>These are trending developers.</p> </blockquote> <h2> Collections </h2> <p>Maybe you're just wondering that a topic cannot cover completely a specific theme or that a trending repository is only one about a big pool of things that concerns, for example, learning to code.<br> No worries on that! We got collections.</p> <p>Collections, as the name suggests, are simply specific collections about a specific theme.<br> One example that comes to my mind is repositories made in your country and so on.</p> <p><a href="proxy.php?url=https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fo4b9boupi5yl68mhxrq7.png" class="article-body-image-wrapper"><img src="proxy.php?url=https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fo4b9boupi5yl68mhxrq7.png" alt="Explore Collections" width="800" height="570"></a></p> <h2> Events </h2> <p>This section is relevant to open source related events and here, if you like the subject, you can find something really amazing.<br> For example, in this period of time when I'm writing, GitHub itself is organizing GitHub Universe!</p> <p><a href="proxy.php?url=https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F10776l0icsoauva0hdef.png" class="article-body-image-wrapper"><img src="proxy.php?url=https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F10776l0icsoauva0hdef.png" alt="Explore Events" width="800" height="604"></a></p> <h2> GitHub Sponsors </h2> <p>The last section is dedicated to GitHub Sponsors.<br> If you don't know what it is, it's simply the sponsor program made by GitHub in order to give value to developers contributing to open source.<br> We'll be making a deep focus on this matter, don't you worry.<br> Here you can practically check who's behind the libraries you use in your projects and eventually you can donate to them...and I highly suggest you do it.</p> <p><a href="proxy.php?url=https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fotnz9yfgg1ncr4g3c3s0.png" class="article-body-image-wrapper"><img src="proxy.php?url=https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fotnz9yfgg1ncr4g3c3s0.png" alt="Explore GitHub Sponsors" width="800" height="770"></a></p> <h2> Conclusion </h2> <p>So, we are at the end of this post from GitHub series.<br> We have checked how to access GitHub Explore, what are basically Explore, Topics, Trending, Collections, Events and GitHub Sponsors and what you can do with them!<br> If you integrate this tool in your dailies, I can assure you will find something that will change your life for the better.</p> <h2> Share Support </h2> <p>If you have liked this post, just come and tell me!<br> Are you too shy for doing this? No problem. Just visit <a href="proxy.php?url=https://airscript.it" rel="noopener noreferrer">airscript.it</a> and share your support following me on your preferred social platform.<br> If you want to make me even happier, just follow, share or star me and my projects on <a href="proxy.php?url=https://github.com/airscripts" rel="noopener noreferrer">GitHub</a>.</p> github beginners tutorial opensource Making Your First Pull Request Francesco Sardone Sun, 27 Aug 2023 16:02:43 +0000 https://dev.to/airscript/making-your-first-pull-request-4ahc https://dev.to/airscript/making-your-first-pull-request-4ahc <h2> Contents </h2> <ul> <li>Introduction</li> <li>Requirements</li> <li>Searching For A Project</li> <li>Forking</li> <li>Making Your Changes</li> <li>The Pull Request</li> <li>Conclusion</li> <li>Share Support</li> </ul> <h2> Introduction </h2> <p>Hey there! I'm Francesco known as Airscript on the web.<br> Today I want to share with you how you can contribute to an open source project making your first pull request to it!</p> <h2> Requirements </h2> <p>In order to make it, we'll use solely GitHub, since going into depth with tools and programming languages can be hard at first.<br> So the only requirement needed is an account on <a href="proxy.php?url=https://github.com" rel="noopener noreferrer">GitHub</a>.</p> <h2> Searching For A Project </h2> <p>After you've got your GitHub account, we just need to search for a project to contribute to.<br> We have different options here: known projects, using the search bar, using the explore section and so on. It's really up to you.<br> If you're interested on how to do project scouting, let me know and I'll make a blog post specific to it.<br> For this blog post, I have chosen option A and so I'll be doing the pull request to a <a href="proxy.php?url=https://github.com/gpghilardi/parkedhere" rel="noopener noreferrer">known project</a> of a close connection.</p> <h2> Forking </h2> <p>The first action to do when contributing to open source projects, is to make a fork of the repository.<br> This comes true when you don't have direct push access to those repositories.<br> The fork process is easy to do as clicking a simple button on GitHub:</p> <p><a href="proxy.php?url=https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxq2l5bq5szsve6usohx3.png" class="article-body-image-wrapper"><img src="proxy.php?url=https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxq2l5bq5szsve6usohx3.png" alt="Fork" width="800" height="334"></a></p> <p>After clicking that button, GitHub will ask us where we want to place the repository and how we want to name it:</p> <p><a href="proxy.php?url=https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fup64w2tzkexse8pen6pc.png" class="article-body-image-wrapper"><img src="proxy.php?url=https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fup64w2tzkexse8pen6pc.png" alt="Create New Fork" width="800" height="598"></a></p> <p>Let's keep everything as default and click the fork button.<br> Ta-da! Our first fork has been done.<br> Now the repository will be copied over the profile you have chosen.</p> <h2> Making Your Changes </h2> <p>Now that you did the fork, you got a copy of that project over your profile or the one that you've chosen to.<br> Because of this, we can just do our changes safely without worrying about being blocked for lack of permissions.<br> As I told you, this blog post just covers the basics of how you can do your first pull request taking out all the tech jargon you can from the process.<br> So even for our changes, we'll use GitHub's editor:</p> <p><a href="proxy.php?url=https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6m1f21wpblnf8h2tf4h6.png" class="article-body-image-wrapper"><img src="proxy.php?url=https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6m1f21wpblnf8h2tf4h6.png" alt="Edit File" width="800" height="387"></a></p> <p>The edit option is placed on top right corner, just right when you select the file to be edited.<br> Clicking it, you'll just go inside the editor where you can make the changes.<br> After you have done that, we have to commit:</p> <p><a href="proxy.php?url=https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fk24xosn7yjud259fa514.png" class="article-body-image-wrapper"><img src="proxy.php?url=https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fk24xosn7yjud259fa514.png" alt="Commit Changes" width="800" height="390"></a></p> <p>Clicking on commit changes will open a modal where we can choose a bunch of things:</p> <p><a href="proxy.php?url=https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1pihx61qdqfbelbqiujh.png" class="article-body-image-wrapper"><img src="proxy.php?url=https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1pihx61qdqfbelbqiujh.png" alt="Propose New Changes" width="800" height="948"></a></p> <p>Things like a commit title and description or the branch where we want to commit.<br> For the purpose of this post we want to choose main branch, like I did in this photo.<br> This help us cutting of the process of doing feature branching on our forked repository before doing the actual Pull Request to the project owner.<br> After clicking the green button, we are ready for opening our first Pull Request!</p> <h2> The Pull Request </h2> <p>Let's head back to our forked repository page and click onto the contribute button:</p> <p><a href="proxy.php?url=https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxhb9xlacusupdvdrh7ct.png" class="article-body-image-wrapper"><img src="proxy.php?url=https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxhb9xlacusupdvdrh7ct.png" alt="Contribute" width="800" height="454"></a></p> <p>Here we can click onto the green button for opening the actual Pull Request and GitHub will just launch us towards a page like this one:</p> <p><a href="proxy.php?url=https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frjoqdw9eaikwuw7pghf3.png" class="article-body-image-wrapper"><img src="proxy.php?url=https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frjoqdw9eaikwuw7pghf3.png" alt="Open Pull Request" width="800" height="435"></a></p> <p>And after you've applied a title and a description to what you are changing, just click again the green button and ta-da! You made it!</p> <h2> Conclusion </h2> <p>In this blog post we actually have seen how to make our first pull request to our chosen open source project.<br> Bear in mind that we have actually looked only at the process and that in reality this can take up extra effort.<br> For example, the need to read how to contribute specifically to a project or, keeping behind the lifecycle of a pull request starting from change requests to failing pipelines.<br> I hope you have found this useful and if you want something deeper regarding this kind of topic, just reach me out!</p> <h2> Share Support </h2> <p>If you have liked this post, just come and tell me!<br> Are you too shy for doing this? No problem. Just visit <a href="proxy.php?url=https://airscript.it" rel="noopener noreferrer">airscript.it</a> and share your support following me on your preferred social platform.<br> If you want to make me even happier, just follow, share or star me and my projects on <a href="proxy.php?url=https://github.com/airscripts" rel="noopener noreferrer">GitHub</a>.</p> tutorial beginners github opensource Multi Repository Documentation Francesco Sardone Sun, 20 Aug 2023 14:53:02 +0000 https://dev.to/airscript/multi-repository-documentation-29fp https://dev.to/airscript/multi-repository-documentation-29fp <h2> Contents </h2> <ul> <li>Introduction</li> <li>Requirements</li> <li>Setup</li> <li>Wrapping Up</li> <li>Conclusion</li> <li>Share Support</li> </ul> <h2> Introduction </h2> <p>Hey there! I'm Francesco known as Airscript on the web.<br> Today I want to share with you how to use <a href="proxy.php?url=https://antora.org/" rel="noopener noreferrer">Antora</a>, a tool for managing multi repository documentations.<br> In this blog post we'll see what's required to run an Antora project and how actually you can spin up one too!</p> <h2> Requirements </h2> <p>Before even starting the next section, be sure to have installed on your machine the following requirements: </p> <ul> <li><a href="proxy.php?url=https://nodejs.org" rel="noopener noreferrer">Node.js</a></li> <li><a href="proxy.php?url=https://git-scm.com/" rel="noopener noreferrer">git</a></li> <li><a href="proxy.php?url=https://www.npmjs.com/package/gulp-cli" rel="noopener noreferrer">Gulp CLI</a></li> </ul> <p>Since we'll be using Antora 3, the suggested versions for Node.js runtime are spacing between 16 and 18 LTS.<br> Be sure to type <code>node -v</code> inside your terminal of choice to check which version you have.</p> <h2> Setup </h2> <p>After you got all the requirements, we can start making our multi repository documentation.<br> In this article I'll be covering a multi repository where we have split up the actual documentation and the UI used to present it.</p> <h3> UI </h3> <p>Let's start from the UI. In order to use it, we can just clone the base template offered by Antora:<br> </p> <div class="highlight js-code-highlight"> <pre class="highlight shell"><code><span class="nv">$ </span>git clone https://gitlab.com/antora/antora-ui-default.git documentation-ui </code></pre> </div> <p>In this default UI, you'll find a folder structure comprehensible of various sections such as one for previewing your UI changes and so on.</p> <h3> Contents </h3> <p>After looking at the UI, we can practically move onto the actual repository for the documentation.<br> For this post we'll be using two demo documentations made by Antora, written in AsciiDoc.<br> You can simply modify those to your needs after all.<br> </p> <div class="highlight js-code-highlight"> <pre class="highlight shell"><code><span class="nv">$ </span>git clone https://gitlab.com/antora/demo/demo-component-a.git documentation-1 <span class="nv">$ </span>git clone https://gitlab.com/antora/demo/demo-component-b.git documentation-2 </code></pre> </div> <p>Now we have two documentations to add to our previously built UI.</p> <h2> Wrapping Up </h2> <p>Now that you have a fully scaffolded multi repository documentation, we have to wrap things up together.<br> Just for ease of use, we'll be making a dedicated repository that will contain the actual documentation holding both UI and contents.<br> In this repository we only need a playbook that will link everything up.<br> This playbook we'll be needed by <code>antora</code> CLI.<br> Let's start creating a <code>documentation-playbook.yml</code> file with contents like this one in it:<br> </p> <div class="highlight js-code-highlight"> <pre class="highlight yaml"><code><span class="na">site</span><span class="pi">:</span> <span class="na">title</span><span class="pi">:</span> <span class="s">Antora Documentation</span> <span class="na">url</span><span class="pi">:</span> <span class="s">&lt;documentation-url&gt;</span> <span class="na">start_page</span><span class="pi">:</span> <span class="s">documentation::index.adoc</span> <span class="na">content</span><span class="pi">:</span> <span class="na">sources</span><span class="pi">:</span> <span class="pi">-</span> <span class="na">url</span><span class="pi">:</span> <span class="s">&lt;documentation-1-url&gt;</span> <span class="pi">-</span> <span class="na">url</span><span class="pi">:</span> <span class="s">&lt;documentation-2-url&gt;</span> <span class="na">ui</span><span class="pi">:</span> <span class="na">bundle</span><span class="pi">:</span> <span class="na">url</span><span class="pi">:</span> <span class="s">&lt;documentation-ui-bundle-url&gt;</span> <span class="na">snapshot</span><span class="pi">:</span> <span class="kc">true</span> <span class="na">output_dir</span><span class="pi">:</span> <span class="s">assets</span> <span class="na">output</span><span class="pi">:</span> <span class="na">clean</span><span class="pi">:</span> <span class="kc">true</span> <span class="na">dir</span><span class="pi">:</span> <span class="s">./docs</span> </code></pre> </div> <p>And to generate the actual final result, we only have to install <code>antora</code> CLI and run a simple command:<br> </p> <div class="highlight js-code-highlight"> <pre class="highlight shell"><code><span class="nv">$ </span>npm <span class="nb">install</span> <span class="nt">-g</span> antora <span class="nv">$ </span>antora documentation-playbook.yml <span class="c"># If you don't want to install globally antora, this is an alternative with npx.</span> <span class="nv">$ </span>npx antora documentation-playbook.yml </code></pre> </div> <p>This command will generate our bundle inside <code>docs</code> folder and basically that's it.<br> You only have to deploy it wherever you want to.</p> <h2> Conclusion </h2> <p>After almost 5 repositories we managed to compose up a multi repository documentation: starting from UI, content and actual bundle repository.<br> This tool is suggested to who wants to build products with multiple versions or a hub of documentations encapsulated in their own repository.<br> In case you want something lighter and easier, just take a lighter tool like <a href="proxy.php?url=https://docusaurus.io" rel="noopener noreferrer">Docusaurus</a>.</p> <h2> Share Support </h2> <p>If you have liked this post, just come and tell me!<br> Are you too shy for doing this? No problem. Just visit <a href="proxy.php?url=https://airscript.it" rel="noopener noreferrer">airscript.it</a> and share your support following me on your preferred social platform.<br> If you want to make me even happier, just follow, share or star me and my projects on <a href="proxy.php?url=https://github.com/airscripts" rel="noopener noreferrer">GitHub</a>.</p> antora documentation node tutorial Documentation Made Easy Francesco Sardone Tue, 15 Aug 2023 12:33:00 +0000 https://dev.to/airscript/documentation-made-easy-4eko https://dev.to/airscript/documentation-made-easy-4eko <h2> Contents </h2> <ul> <li>Introduction</li> <li>Requirements</li> <li>Installation</li> <li>Running</li> <li>Configuration</li> <li>Pages</li> <li>Conclusion</li> <li>Share Support</li> </ul> <h2> Introduction </h2> <p>Hey there! I'm Francesco known as Airscript on the web.<br> Today I want to share with you how to use <a href="proxy.php?url=https://docusaurus.io" rel="noopener noreferrer">Docusaurus</a> in order to document your next awesome project.<br> Docusaurus comes as an all-in-one tool, meaning that you can create front pages, blogs and more with it.<br> I'll be covering only the documentation part with this blog post.</p> <h2> Requirements </h2> <p>Before even starting the next section, be sure to have installed on your machine the only requirement needed: <a href="proxy.php?url=https://nodejs.org" rel="noopener noreferrer">Node.js</a>.<br> The suggested version goes from 16.14 and above and you can check which one you have just typing <code>node -v</code> inside of your terminal of choice.</p> <h2> Installation </h2> <p>After you got all the requirements, you can easily install docusaurus inside one of your projects by simply running these simple commands:<br> </p> <div class="highlight js-code-highlight"> <pre class="highlight shell"><code>npx create-docusaurus@latest documentation classic <span class="c"># If you prefer TypeScript, you can pass an argument for that.</span> npx create-docusaurus@latest documentation classic <span class="nt">--typescript</span> </code></pre> </div> <p>With the commands above we can create a fully classic docusaurus project, both with or without the usage of TypeScript.<br> There are more templates such as <code>facebook</code> instead of classic but we're not covering them in this article.</p> <p>After running that command, you should have a situation like this in the <code>documentation</code> folder:<br> </p> <div class="highlight js-code-highlight"> <pre class="highlight plaintext"><code>documentation ├── blog │ ├── file.md │ ├── ... │ └── ... ├── docs │ ├── file.md │ ├── ... │ ├── ... │ └── ... ├── src │ ├── css │ │ └── custom.css │ └── pages │ ├── styles.module.css │ └── index.js ├── static │ └── img ├── docusaurus.config.js ├── package.json ├── README.md ├── sidebars.js └── yarn.lock </code></pre> </div> <h2> Running </h2> <p>Now that you have a fully scaffolded project, let's try a simple first run.<br> It can be done easily following this commands:<br> </p> <div class="highlight js-code-highlight"> <pre class="highlight plaintext"><code>cd documentation npm run start </code></pre> </div> <h2> Configuration </h2> <p>Regarding the configuration part, you may have seen that our documentation right now has some examples in it.<br> We have to change that in order to reflect our project.<br> Before all of that, we have to configure how our documentation will be presented.</p> <p>Inside the project you'll find a <code>docusaurus.config.js</code> file.<br> This file contains every configuration needed by your documentation site.<br> Here you can choose if your site needs to have only docs or even a blog!<br> Or simply change its title or logo.<br> For more information on what you can do here, just take a look to this <a href="proxy.php?url=https://docusaurus.io/docs/api/docusaurus-config" rel="noopener noreferrer">documentation page</a>.</p> <h2> Pages </h2> <p>As last, let's see how it's possible to add documentation pages or even edit the existing ones.<br> Start creating a Markdown file inside the inner <code>docs</code> folder:<br> </p> <div class="highlight js-code-highlight"> <pre class="highlight shell"><code><span class="nb">touch </span>docs/hello.md </code></pre> </div> <p>The folder structure will be something like this:<br> </p> <div class="highlight js-code-highlight"> <pre class="highlight plaintext"><code>documentation ├── docs │ └── hello.md ├── src │ └── pages ├── docusaurus.config.js ├── ... </code></pre> </div> <p>Then you can start editing that Markdown file, adding some rich content:<br> </p> <div class="highlight js-code-highlight"> <pre class="highlight plaintext"><code>--- description: "Hello Page." --- # Hello Hey there! I'm a documentation page. </code></pre> </div> <p>Simple, isn't it?<br> In this file you can simply use Markdown and everything will be rendered with a rich content inside your documentation site.<br> I've also provided a description in order to add metadata to this page.<br> For doing this I've used <a href="proxy.php?url=https://docusaurus.io/docs/markdown-features#front-matter" rel="noopener noreferrer">Front Matter</a>.</p> <h2> Conclusion </h2> <p>And we're at the end of our journey.<br> We have seen how to install Docusaurus, how to configure it and even how to create our first documentation page.<br> If you're interested, we can talk about deploying this actual documentation to your preferred site in a later article.<br> Until then, thank you kindly.</p> <h2> Share Support </h2> <p>If you have liked this post, just come and tell me!<br> Are you too shy for doing this? No problem. Just visit <a href="proxy.php?url=https://airscript.it" rel="noopener noreferrer">airscript.it</a> and share your support following me on your preferred social platform.<br> If you want to make me even happier, just follow, share or star me and my projects on <a href="proxy.php?url=https://github.com/airscripts" rel="noopener noreferrer">GitHub</a>.</p> documentation docusaurus node tutorial Linting Your Awesome Lists Francesco Sardone Tue, 08 Aug 2023 08:00:00 +0000 https://dev.to/airscript/linting-your-awesome-lists-bai https://dev.to/airscript/linting-your-awesome-lists-bai <h2> Contents </h2> <ul> <li>Introduction</li> <li>Purpose</li> <li>CLI</li> <li>Continuous Integration</li> <li>API</li> <li>Conclusion</li> <li>Share Support</li> </ul> <h2> Introduction </h2> <p>Hey there! I'm Francesco known as Airscript on the web.<br> Today I want to share with you how to use <a href="proxy.php?url=https://github.com/sindresorhus/awesome-lint" rel="noopener noreferrer">awesome-lint</a>, a linter for your Awesome Lists. </p> <h2> Purpose </h2> <p>Awesome Lint was born for helping in standardize and check statically all the Awesome Lists that just try to drop into <a href="proxy.php?url=https://github.com/sindresorhus/awesome" rel="noopener noreferrer">awesome</a>.<br><br> It does a really good job in this for the fact that it is simple to use and usable in so many different ways.<br> Let's check them all out!</p> <h2> CLI </h2> <p>The first usage that we will see, it is via CLI.<br> Awesome Lint can be installed via <code>npm</code> or executed using <code>npx</code>:<br> </p> <div class="highlight js-code-highlight"> <pre class="highlight shell"><code><span class="c"># Installing through npm</span> npm <span class="nb">install </span>awesome-lint <span class="c"># Installing temporarily and executing through npx</span> npx awesome-lint </code></pre> </div> <p>Then you just need to run it toward one of your repositories, both local or remote:<br> </p> <div class="highlight js-code-highlight"> <pre class="highlight shell"><code><span class="c"># If you are into a local repository with a README.md</span> npx awesome-lint <span class="c"># If you have installed it globally through npm</span> awesome-list <span class="c"># If you don't have the repository locally</span> awesome-lint https://github.com/airscripts/awesome-steam-deck </code></pre> </div> <p>At last the command will output something like this:<br> </p> <div class="highlight js-code-highlight"> <pre class="highlight shell"><code>✖ Linting README.md:1:1 ✖ 1:1 Git repository must be at least 30 days old remark-lint:awesome-git-repo-age ✖ 1:1 Forbidden license section found remark-lint:awesome-license ✖ 24:1 Table of Contents must be the first section remark-lint:awesome-toc 3 errors </code></pre> </div> <h2> Continuous Integration </h2> <p>You can also run everything inside your CI pipelines by making sure that your list adheres to the standards after every change.<br><br> Just make sure to create the workflow in <code>.github/workflows/main.yml</code>, starting from the root of your project, with the following contents:<br> </p> <div class="highlight js-code-highlight"> <pre class="highlight yaml"><code><span class="na">name</span><span class="pi">:</span> <span class="s">ci</span> <span class="na">on</span><span class="pi">:</span> <span class="na">pull_request</span><span class="pi">:</span> <span class="na">branches</span><span class="pi">:</span> <span class="pi">[</span><span class="nv">main</span><span class="pi">]</span> <span class="na">jobs</span><span class="pi">:</span> <span class="na">lint</span><span class="pi">:</span> <span class="na">runs-on</span><span class="pi">:</span> <span class="s">ubuntu-latest</span> <span class="na">steps</span><span class="pi">:</span> <span class="pi">-</span> <span class="na">uses</span><span class="pi">:</span> <span class="s">actions/checkout@v2</span> <span class="na">with</span><span class="pi">:</span> <span class="na">fetch-depth</span><span class="pi">:</span> <span class="m">0</span> <span class="pi">-</span> <span class="na">run</span><span class="pi">:</span> <span class="s">npx awesome-lint</span> </code></pre> </div> <h2> API </h2> <p>Awesome Lint also exposes an API that you can use inside of your projects.<br> Just make sure to first install into your project awesome-lint:<br> </p> <div class="highlight js-code-highlight"> <pre class="highlight shell"><code>npm <span class="nb">install </span>awesome-lint </code></pre> </div> <p>And after that, you can use it with these two small lines of code:<br> </p> <div class="highlight js-code-highlight"> <pre class="highlight javascript"><code><span class="kd">const</span> <span class="nx">awesomeLint</span> <span class="o">=</span> <span class="nf">require</span><span class="p">(</span><span class="dl">'</span><span class="s1">awesome-lint</span><span class="dl">'</span><span class="p">);</span> <span class="nx">awesomeLint</span><span class="p">.</span><span class="nf">report</span><span class="p">();</span> </code></pre> </div> <p>The report function just returns the lint output as we have seen previously in CLI section.</p> <h2> Conclusion </h2> <p>So, wrapping up we have seen what Awesome Lint is, how we can use it and how we can integrate it in our automation workflows.<br> I hope that everything was clear and informative to you.<br> Thank you kindly for reading this post and I will see you onto the next one!</p> <h2> Share Support </h2> <p>If you have liked this post, just come and tell me!<br> Are you too shy for doing this? No problem. Just visit <a href="proxy.php?url=https://airscript.it" rel="noopener noreferrer">airscript.it</a> and share your support following me on your preferred social platform.<br> If you want to make me even happier, just follow, share or star me and my projects on <a href="proxy.php?url=https://github.com/airscripts" rel="noopener noreferrer">GitHub</a>.</p> awesome linter terminal opensource