 So my intent had been that if there was somebody who wanted to see a tutorial on how do you create a blog post, I could do that do that very easily. That's what you're envisioning or did you want a more specific blog post. Well, I want to create a post for the GSOC mech term evaluation so how to do a blog post would be I think good enough. Okay, all right, so and the blog. Yeah, yeah. Is there anything you would suggest like what kind of blog post the Jenkins project expect from the GSOC students. Yeah, and that that we can certainly we can certainly review and discuss I think that's a good topic to discuss, and I think it had come out in the, at least my technique would come out in the in the conversation very easily I tend to grab somebody's blog post that I like how it looked, copy it and then replace it with my the content I want. There's a lot of. Right well and there are some techniques some techniques there that I use that that fit me that others may say oh no I wouldn't use that technique but at least if you're aware of the technique it can help. So do we could, we could have you create your blog post, and I could tutor you on it, or I can create a blog post because I've actually got one that Rishabh, Rishabh and I need to create for the get credentials binding. Our student is working intently on the code and we agreed we would take on the right the blog post. So I could do my blog post or we could do your blog post what's which do you prefer. Anything's fine actually I don't have any particular idea right now so I'll be clueless most of the time so yeah I would prefer if you can do your blog post so that I get to see the process. Great, okay then let's let's do that we'll do. I'll work on I'm going to start I'm going to begin a blog post that describes the get credentials binding plugin, or the get credentials binding edition that was made to the get plugin. And let's talk through what that means and I'm going to start sharing my screen so that we've got something more than just my face to see. Okay. Alright, so let's see first challenge is the font large enough how about that is that a little more readable font. Yes, it looks perfect. Alright, so, so yes, this is my terminal window and I'm going to bring in latest copy of the Jenkins.io repository so the repository is this place right here. Jenkins CI slash Jenkins.i slash Jenkins.io and if we look at that repository in the in a web browser. We'll see it is maintained as code. So if we look at this one right here. Here is the Jenkins.io website as code and we use pull requests to propose changes to it. So, so we'll be doing that here as well and let's let's just go find something that we can use as a as a sample pull request and we'll make it do our job. So, here's this don't need that. Okay. Alright, so first is I like to update my local copy of the master branch to match with everybody else's copy. And so, yes, we're up to date. So, I'm going to check out a new branch and this is announce get credentials username password binding. Okay, so that's the, that's the the branch name is just for my benefit. And now I want to go look for a blog post that sort of fits the style that I would like to use because then I'll, I'll use it as a basis for for what I want to do so let's see there's this one. Yeah, we could use that or this one. Now I tend to like a blog post that has a picture somewhere in it like this one. And, and so maybe I'm going to go borrow that one as my base blog post so Libre Libre chat. That is a good phrase. Let's go find that. Okay, so we're going to follow this pattern. And I would like to copy that file from its origin to a new location the location it goes to is the assumed or proposed publication date and I would like to publish tomorrow. That will give us a little bit of time to do a review. So here is. So I copied that file, and then there is this file, which is the open graph image and we like open I like open graph images very much because they they appear in social media credentials. So like this, get credentials, binding phase one slash. Okay, so an open graph image will give us a picture that is associated with the thing. Oh, and we need to make a directory to hold that. Oh, no, that's. We need the destination directory. Now the copy should work okay and that's not the image we will actually use. But that's a good, a good starter image so now if I do a good status there are two files that are brand new. This baseline of the blog post and this directory for the image. So now, one of the things that I found very helpful is Jenkins the Jenkins project has Jenkins social media covers here. And what these are is Jenkins artwork for social media and open graph images. And I like this because somebody else has thought about and created pretty pictures that highlight Jenkins. So I'm going to create and as it turns out. Oh, sorry, did you have a question. No, I was just like, I was just embracing this is so useful. Yeah, one image or positive or your own whichever image we want is copy paste. Exactly well and and and that for me is, oh, this is much better than if I tried to create this myself it really really is much better. So, username password. All right so now what I do with this. Here's the picture that I'm going to include as my open graph image and probably let's see maybe I want. What if it were like this. Get username password credentials binding. And maybe what we should do is put in something that indicates batch files and shells and. Now what we need is an image for Windows batch file. Show me an image. There it is. Oh, even better. Here we go. Okay, let's see if we can save that image as that seems like a reasonable. Oh, except it's jpeg. Okay. I would like a well. I can work on making that image better later just let's work on the concept, because I'll want to find something that looks like that include puts batch and power show. Go ahead. Oh, like why did you. Like why did you take the image because it was jpeg is there something like we should avoid jpeg images or. No, it's good question I just, I, I, I have tended to prefer PNG images, but you're right. There may be no justification for me not using jpeg jpeg maybe just fine. Oh, okay, I thought some it might be something related to the background of the image like in PNG easily get you can easily separate the background with the foreground. And that that may have that may be why others who are who are more aware than I am of image standards would do that I can't claim that that's my reason. I wish I could say oh yes that's why and I thought thought about that no it's just that I'm just accustomed to doing something different. I'm just accustomed to me for just doing doing something different because that works for me. It's absolutely fine experience. Okay, and so I think I think we need those pictures there to say, Mr Jenkins plus get plus shell batch and power shell. All right, but here let's, I'm going to grab this in its current state. So what I do is I do a file download the PNG image. So this will download the the image to my local computer. And because I'm actually running on a Windows computer but I do most of my development on Linux, I'm going to have to copy that file. To my Linux computer so okay we have to rename it just a moment. Alright, so scp something dot PNG to my Linux computer. Oops. Okay, it's been copied there. And now what we need to do is we need to move something to this directory was not what I wanted sorry, you'll have to just ignore that mistake. Yeah. Okay, so one of the things that I do other it is certainly not required. But I tend to do it just to keep things under control as I tend to run an image optimizer, so that I can reduce the size of the images in hopes of helping the search engine optimization process for the Jenkins that I oh site. Okay, so the images is there. Now let's start editing or go ahead. What was your question. Oh, the question was, first of all, it sounds really amazing. But my question was doesn't it degrade the quality of the image when you try to kind of sharing it and size, like what Yeah, there certainly is a trade off there's certainly a compromise and image optimization programs. That's why most people probably should not bother do an image optimization in this case the particular optimization settings that I'm using using have have not had a significant impact on image quality as far as I could tell. Oh, that doesn't doesn't mean that it wouldn't for others but as far as I could tell I have not I've not seen it there. Okay, so what I'm going to do is take that open graph image and put it the reference to it right there. And right there. So you remember that the original. The original blog post that I used as my base as my copy started with an image. The credentials binding for username. password. So we probably want this to go to plugins dot Jenkins dot IO slash get And we'll double check that that link works. It would help if I did it correctly. This is why we test. Okay, so, so you see here I've done the open graph and now I'm doing I inserted my picture and it's the new picture. And now let's make some other changes. username slash password credentials binding. Okay, this is not about chat about community. It's about have to see if it's about get shop will add. I know here's another good one. All right, so discourse. This allows this link section with a discourse link allows us to open up the the the the blog post for comments so that the comments will be captured in our discourse environment so if you look here you see this discussion. This is available because of that discourse link. So it's very helpful to include a discourse topic like this, but now I need a discourse topic which means I've got to go create it. So I go to community that Jenkins dot IO. And now let's find Oh, I know a good place to put it is showing off showing off is where we highlight new things and so I'm going to say new topic. So potential get username slash password and shows binding has released. Would it make sense to add the gsoc factor. Oh, it would very good suggestion. Yes, so get. Let's give it a gsoc tag. It's interesting and there isn't a gsoc tag there. Yeah, so let's add the optional tag gsoc. And I assume that those tags. Okay, and now let's see if we can add another optional get create get. Okay, we'll call it those two. All right, the Jenkins. The Google summer of code project. Get credentials binding project. With our should Chopra has or has released. The username slash password credentials binding. This is part of get plug in 4.8.0. Alright, so now we should probably put in why get credentials binding, I use. Yeah, using get credentials. Actually this will all be in the blog post so maybe this is just let's see just the place to put it so refer to the online documentation. For examples that show how to use get credentials binding this first. Okay. This release. This release includes. No, let's say it this way a future release. What it expects to add support for SSH private key credential binding credentials binding special thanks to our should Chopra for the implementation and to Justin haringa. Reshab. Okay, and I always have to look up how to spell reshops name. I'll go look over here. I really it's kind of sad that I can't start a shops name consistently but B U D H O U L. There we go. Okay, as mentors for the online documentation for examples and usage guidelines. Okay, got it so now where is the online documentation right there. Okay, get credentials binding. Can be used with pipeline jobs. Using the with credentials step get credentials binding and also be used with freestyle projects pipeline examples and freestyle examples. Okay. Now back to where we were here is pipeline examples will make it a hyperlink freestyle, which is right here. All right, so now. Okay. So now I have have something I can paste into that discourse link. There it is. Okay, good. This is the piece of get username password credentials binding. Thanks to the thanks to the Google to Google summer of code, sponsoring the project. Thanks to the student and mentors. Now, we should take a look at this and see if we can see it. When we run it. So, I'm going to switch modes. Go ahead. What was your question. No question. All right. So, this is me doing make run, and what make run does is it will compile the website and put it into a mode where if I make a change to the file, a file it will reload that that change the next time I load the page. So now I'm going to look at my at that site, and it will be on port 4242 of my computer. So here is the prototype. And let's bring up the real site for comparison so here's the prototype. Here's, or here's the prototype here's the real site and they look the same that's good. If I click blog though here is get username passwords credentials binding whereas on the real site if I click blog. That isn't there yet. So here we go. And there's my picture. Now it doesn't have all the it doesn't have any text in it yet, but there's my picture. Discourse. Yeah, that's interesting. This one doesn't show the connection and I'm not sure why I wonder if my local development environment doesn't have the correct correct credentials or, and that's perfectly fine I think it will be okay. Let's double check that discourse link just to be sure. So here's my oops wrong file. Here's my file. Let's look at this one. So is that actually the correct link. As far as I can tell it is so I think that's okay. So we're going to hope that this discuss section not being immediately visible is not a serious problem. Oh, and now we need to add authors because Rashab is going to help with this he'll be one of the authors and a reviewer. And now I need to find is author file. So one of the things that is needed in order to submit a blog post is an author file, and it looks like this content underscore data authors resolve. This is Rashab's. So it starts with these three dashes name GitHub ID. If we were to look at mine. We'd see a little more I've got an IRC username, which is now to. I've got a LinkedIn account. And those are those are all valid things to do so. Now, we're going to just grab. We'll take this and insert it as as him as one of the authors. Okay, authors me. Now if if it behaves the way I hope it does. When I go back here and reload this page. And we jump to the oops it didn't do it. Okay, so sometimes I have to go back to the thing where it's compiling and restart it. Because some processing doesn't happen, oops, or maybe there's a. Well, let's watch and see. So make run is is very much a great yes there we go so there's Rashab is one of the authors. There's me as the other author. So this back and forth with being sure that everything's working is at least for me a much healthier way to do the work on it so that I know that looks the way I want and it says what I want. Okay, so now I'm going to put in insert. Let's see let's get heading so what how about topic ideas would be why get credentials binding. Why use get credentials binding. And it's all title case so it's supposed to. And then another topic would probably be examples. Another would probably be limitations. What else. Let's see. So probably that set is enough. And then the oh what's next what's next is a good topic. Okay. Okay. Because it is great. Insert examples here does not work with. Unsupported. Command line get versions like the version included is sent oh six and unsupported operating system. Okay. Does not support private key credentials does not walk the dog. Okay. Okay. Okay. Good. Private key credentials support coming soon. All right now let's see if my my roughed in changes are visible. Okay, there it is. Aditya, did that help you? I think we've gone far beyond the time that you had probably allocated for this exercise. Are you okay with that so far? Yes, I'm okay. This has really helped me to understand the process. Great. All right. So I will, I propose we call this as an end to office hours, because the rest of this editing is not something that I think will particularly interest you or others who watch, but just knowing that yes, I can use ASCII Doc Markup, I can use lists, definition lists, I can get to use headings, I can even insert tables when I need to, all that can help make my blog post a little more readable, interesting and usable. Yes. All right. Anything else that we need to cover today? I just had one question. The development server, what development server is it? Is it Jekail or is it something else? Sorry, I didn't quite catch that. What development, and then I missed the rest of the sentence. Oh, yeah, yeah, I'm sorry. Just a second. Yeah, so I was asking what development server is it using to host the website locally? Oh, it's just using my own computer. Yes, but there might be some kind of a server instance, right, a thread running which is catching the change. I see what, yeah, so it's a Ruby application, if I remember, I don't remember the details of which, what component is inside of it that's providing that. If we take a look at it here, I think that it's, oh, come on, silly thing. I think it will tell us. My prediction is it's Jekail. Could be. What it's, what I see it running is it runs a thing called script slash awestruct. And if I look in script slash awestruct, that I think just calls a Ruby bundle exec awestruct. Okay, got it. And awestruct is the site generator that we use. And it lets us interpret ASCII doc and have it converted into HTML. Got it. Thank you. Any other questions? None for now. I think I got the needed so I can start. All right. Thank you. I did 10. Good luck. Thanks very much. Thank you for the demo. Oh, tutorials. You bet. Absolutely. Recording should be, I should be able to post the recording within the next two or three hours. Talk to you again. Before we go and probably off the record, when will be the recording for the