- You will be able to create an issue
- You will learn to fork a github repo
- You will be able to to create a project and a task
- You will be able to create a branch and check the branch out for development
- You will learn to create a pull request
- You will learn to generate an SSH key and add it to GitHub
- You will learn to merge pull requests and resolve merge conflicts
- You will learn to manage a basic project using GitHub Project.
The purpose of this assignment is to practice collaborating using GIT/GitHub. To accomplish this task we are going to create three lists(What I Know, What I Don't Know, and What I Want To Learn) that consolidate the items from everyone in the class. You need at least 3 items for each list and you should plan that these items are going to be used for project 1 as the basis for the possible topics that people can choose to build online tutorials about. In project one each person will need to create 3 tutorial (one item from each list). You should develop your issue templates to collect the information from someone filing an issue that you might want to know to develop the correct tutorial article.
-
Each person will follow the instructions below to create issues -> project task -> issue branch -> fetch -> checkout issue branch -> resolve issue -> commit -> push branch -> pull request -> merge & close issue-> update master locally -> repeat
-
Find a person in class and then make a pull request for each item on your list to THEIR repository. Create an issue using the template "Submitting Assignment List" and reference the pull request that you make in the comment.
This person should then merge the pull requests and resolve the merge conflict to add new items to their list and increment the count on dupilicate items. We want to know how many people said the same thing, so that we can prioritize the requirement, when we decide on what tutorials to make in project 1.
-
Once you have merged the pull requests from someone in class, you need to find someone new in class to submit a pull request called "merge my list". that asks to merge your master into their master, so that they can add new items to their list and increment the duplicate issue count for each item in the list. Create an issue using the template "Submitting Assignment List" and reference the pull request that you make in the comment.
-
The person that receives the pull request from #3 needs to resolve merge conflics and merge, so that the new issues are added and duplicate counts are incrimented as necessary.
-
Once you have merged someone else's list into your project make a pull request on this repository that asks to merge your list into the branch "complete_list". Submit this pull request to canvas to finish the assignment. Create an issue using the template "Submitting Assignment List" and reference the pull request that you make in the comment.
- Added your issues individually and resolved them
- Made pull requests to another person for each item that contains the branch you want to merge
- Made a pull request to another person with your master branch that contains the consolidated list
- Merged the pull request of someone with a compiled list
- Submmited a pull request to this repository to have your complete list merged and create an issue using the template "Submitting Assignment List" and attach the pull request to the issue.
To submit this assignment you need to submit the result of step #4 to canvas. When you look at the commits for your project you should see at least 3 different users have contributed items to the list. If you don't have at least 3 different people's commits on the. project you will lose 33 points for each person not found.
- Creating an SSH public key[2]. <-count of duplicated issues should be in brackets
- Setting up a Traefik
Add your ssh public key to github
Collaborating on GitHub:
- Fork the repository: Each person should fork the repository to their own GitHub account. To do this, click the "Fork" button in the top-right corner of the repository page.
- Enable issues: If you don't see the "Issues" tab in the main menu, you should enable it in the repository settings. Go to the "Issues" tab, and click "Milestones" to add a 0.1.0 milestone and describe it as a consolidated list of issues from your team. On the issues tab you should also create labels for "I Know", "Want to Know", and "Don't Understand". Once you create these labels then go to settings and look for the "Issues Template" and create 3 issue templates that will provide the starting text for each issue filed of that type. At the bottom of each issue you will see that you can automaticly assign a label to that issue type, so connect the respective labels you created with the 3 issue types.
- Create one issue per item in your list and assign it to the correct issue template.
- Create a new project tab and create a new project (you have to click the down arrow next to "link project" to change it to new project). When you create a project you need to select "board" and name it "Documentation Tasks".
- Go back to your issues, click on each issue, and assign the issue to the following: assignee i.e. you, miletone i.e. the one you created 0.1.0, project documentation (set the status to todo) and create the branch for the issue.
- Go to the "Project" board, and if you see any tasks without a status move them to the todo column.
- Pick one task and move it to the in progress column to indicate you are going to work on it.
- If you have not done so already clone the repository to your local and type "git fetch" to see the branch(s) for the issues you created.
- Do a "git checkout " i.e. "git checkout 1-some-issue".
- Complete the issue by adding one item to one of the 3 categories. Do a git status and make sure that only the readme is changed. If the readme just has the change then you can do a git commit -a -m "PUT A DESCRIPTIVE MESSAGE HERE". git commit with the -a flag adds all the new and modified files to the commit.
- Push the branch back by doing a git push origin head or use the push command from the drop down in Pycharm.
- Make a pull request (MAKE SURE YOU DO IT FOR YOUR OWN IT WILL DEFAULT TO MAKING A PULL REQUEST TO THE UPSTREAM REPOSITORY" for the branch and when you come to the part where you have to need the commit message you have to add "closes #?" the ? is whatever issue number that the pull request resolves.
- Check the documentation board and you should see that the task has moved from in progress to done.
- Once you have resolved an issue you should go to your partners' fork and make a pull request that to merge your issue branch.
- Your partner will then need to create an issue to merge the pull request. You first need to save an issue and after you save it will make the right side controls active and you can select the repository / pull request you want to link and fill out the other fields like assigning the task to the milestone, assigning a developer, assiginging it to the right project with the todo status.
- Once your partner creates the issue they need to merge the pull request and close it with the "closes #?" in the merge message.
- On your own fork, you will want to make a pull request to yourself to merge their updated master into yours.
- I know now how to build branches, commit changes, and put to github [3]
- I now know how to use Terminal. [2]
- I didn't know what pull requests did but now it is well known by me.
- making an edit locally on pycharm
- Installing Docker and Docker Hub [2]
- What is the code that connects the docker to GitHub. [3]
- What are all the files already in the github when we clone a repo?
- What is the code that connects the docker to the github?
- I don't understand the Terminal shortcuts on Mac.
- Creating Pytests and running pytests [1]
- Creating GitHub Workflows and running them [1]
- Using oracle cloud services [1]
- Agile Project Management [1]
- The different libraries of python, like what they are, why they are important and how do I use them. [2]
- I am also interested in the database side of web development like SQL.
- How to actually start code now that we can work as a team. [3]
- I want to learn more about project management and how to be a good project manager.
- How to create and deploy web apps [1]
- Data analys/mining [1]
- How to create the backend of a website [1]