GitHub Development Workflow - Blogs
X
22Mar

GitHub Development Workflow

GitHub is a version management and collaboration tool for programming. It allows you and others to collaborate on projects from any location.

Developer Workflow

A standardized workflow which dictates how changes/updates can be done for an application will help developers follow the required development practices to ship secure and robust code. Traditionally a development workflow will include defining requirements, development, testing, release, and production stages.

When a developer receives any work items or a requirement  they will start working on it to provide the  changes.

Creating an Issue

A requirement  can be defined in GitHub by creating an issue. Issues to keep track of ideas, enhancement tasks, and bugs for projects that are linked to our GitHub Repository. So, between the developer and the project manager, we have a comprehensive process as well as an end-to-end solution in your Repository.

  • Click the New Issue button
  • Give your issue the title ‘Setup GitHub pages’
  • Give a clear description e.g., ‘Need to setup GitHub Pages in this repository’
  • Assign the issues to a Developer
  • Click Submit new issue

issues1

 

The GitHub Flow

Our project is by default on the main branch. This branch will usually be protected to not allow any breaking changes (which can be problematic if you haven't thoroughly examined your modifications!). The developer will create a new branch to submit any new changes or resolve any bugs.

branch

Creating a Branch

  • Open your Repository and click the Code tab
  • Click Branch: main in the drop-down
  • In the field, enter a name for your branch (e.g., ‘Feature’)
  • Click Create branch

First, checkout to your new branch. Then, add all the files you want to commit to staging. Lastly, commit all the files you just added.

maintofeature

Commit a new file

Now we can safely work within our branch, let’s create a file and make our first commit.

  • Make an edit (just add a simple comment to your code) to one of the files you had added to the Repository earlier
  • Give the commit a name and description
  • Make sure your newly created (Feature) branch is selected
  • Click Commit changes

It's time to open a pull request after you're sure that the modifications are complete. Your group will discuss from here. The branch will be merged into the main branch once the changes have been accepted. Let's have a look at an example

Linking a commit to an issue

Each work item can be planned as an Issue, with tags, assignees, etc.  When the developer commit code relevant to that Issue, referencing it in the commit message by the Issue number (eg #123) will hyperlink that commit on the Issue page. This hyperlink will do it for traceability. You can also close the issue from the commit with comments like Fix #123 or Closes #123.Traceability allows you to track work items across the development lifecycle to where requirements are implemented in the code.

linkissuestocommit

Opening a Pull Request

A pull request is something shows us changes that we have pushed to newly created branch (e.g., ‘Feature’) in a Repository on GitHub.

  • Open the Pull requests tab and click New pull request
  • In the base: drop-down menu, ensure the main branch is selected
  • In the compare: drop-down menu, select the Feature branch you created earlier
  • Click Create pull request
  • Now enter a title & description for your pull request
  • Click Create pull request!

prfrommaintofeature

 

Branch Protection Rule

After you create a pull request, you can ask a specific person/team to review the changes you've proposed. If you're an organization member, you can also request a specific team to review your changes. Enforce this policy we use branch protection rule . To protect your main branch against unapproved/breaking changes, we can enforce a set of policies So how will you enable those policies by enabling branch protection rule. So, using branch protection rule you enable some feature like reviewer must approve this changes & you can enable status check.

  • Require a pull request before merging

When enabled, all commits must be made to a non-protected branch and  submitted via a pull request before they can be merged into a branch that matches this rule.

  • Require status checks to pass before merging

Status checks let you know if your commits meet the conditions set for the repository you're contributing to.

Screenshot(155)

Merging a Pull Request

  • Merge a pull request into the upstream branch when work is completed. Anyone with push access to the repository can complete the merge. Once your branch has been merged, if you don’t need it anymore. You can click Delete branch!

mergepullrequest

Conclusion

You’ve learned how requirements defined in GitHub using issues. Developer will establish a new branch and submit those changes to work on that specific requirement. We also learned how to maintain traceability by attaching a commit to an issue, and then how to merge those changes into the main branch.

Related

How to Remove the Departments Action Button in NAV 2015

Some customers may not want to use Departments menu available. We need to have some option to remove...

Read More >

Design Microsoft Dynamics Navision 2013R2 RDLC Report Part-2

 In this post we will move to next step, and there we will go through two more data item groupi...

Read More >

How to Set Up Selenium WebDriver in Visual Studio Enterprise 2015?

Pre-requisite : Visual Studio Enterprise 2015 application should be installed into the system.Create...

Read More >

Creating a Point-to-Site Connectivity using Azure Resource Manager

Configure a Point-to-Site connectivity to a VNet using PowerShell (ARM Mode)Task 1: Create a Self-Si...

Read More >

OUT OF BAND Feature

What is the Out of Band??Think about the situation – your one of the user who is thousand mile...

Read More >

Token Based Authentication for Web API's

Securing ASP.NET Web API using Custom Token Based AuthenticationProviding a security to the Web API&...

Read More >

It is Networking Time!!

Canarys participated in the Microsoft Worldwide Partner Conference (10th to 14th July 2011) in Los A...

Read More >

Design Microsoft Dynamics Navision 2013R2 RDLC Report

What is RDLC Report?The Report Definition Language (RDL) Data is a report component that is used by ...

Read More >

Starting with CSS Preprocessor

In this article we learn about, 1.What is CSS Preprocessor? 2.Installations 3.How to ...

Read More >

How to setup Module to Module communication in DotnetNuke

Are you building modules in DotnetNuke?Is one module depends on another module?Want to exchange data...

Read More >

Share

Try DevOpSmartBoard Ultimate complete Azure DevOps End-to end reporting tool

Sign Up

  • Recent
  • Popular
  • Tag
Monthly Archive
Subscribe
Name

Text/HTML
Contact Us
  • *
  • *