DevOps Management With GitHub
DevOps Management With GitHub
with GitHub
Table of Contents
Introduction to GitHub 03
What is GitHub? 03
Why GitHub? 03
Features of GitHub 05
Issues 05
Notifications 05
Branches 06
Commits 06
Pull Requests 06
Labels 07
Actions 07
Control execution 10
GitHub Secrets 10
Conclusion 13
Author Bio 13
DevOps Management with GitHub 03
Introduction to GitHub
Since its inception in 2008, GitHub has continuously transformed the way people code,
making it easier to collaborate and develop elegant, disparate solutions for the market.
GitHub has grown and evolved from a version control system to a social utility for
programmers and finally to the place were code lives online.
It is a blessing in disguise for software developers by creating the most comprehensive
open-source platform facilitating cloud storage for source code, codeshare, networking,
publishing services, and code talks. Today millions of people around the globe use these
repositories. GitHub has achieved an incredible growth, and collaboration with Microsoft
has scaled it to a new height which has helped many users efficiently maintain complex
codebases.
This whitepaper provides you with a detailed guide about GitHub, and how you can
effectively deploy and manage your code using Git & GitHub.
What is GitHub?
GitHub is a well-known web-based open-source platform where users host git repositories.
It is a highly used software version control and is helpful when more than one person is
working on a project.
Why GitHub?
GitHub provides a centralized repository for the software development team to upload, edit,
and manage code files to help them build a website. Everyone can update their codes
simultaneously when working on the project. GitHub allows us to document the changes in
codes files and reflect them in a systemized manner to avoid disruption between any of the
files uploaded.
The GitHub centralized repository allows us to steer clear of all the confusion, and therefore,
working on the same code becomes effortless and free.
The most important feature of GitHub is “Forking”, copying a repository from one user’s
account to another. This helps you to take a project that you do not have right access to and
modify it under your account. If users want to make changes, they will need to share it with
the original owner by sending a notification called a “Pull request”. Then the owner, with one
click of a button, can merge the changes found in the repo with the original repo.
These three features – Fork, pull request, and merge – is what made GitHub more powerful.
DevOps Management with GitHub 04
GitHub is a cloud platform that consumes GIT as its core technology. It streamlines the
collaboration process and provides a website, command-line tools, and overall flow that
allows software developers and users to work together. GitHub is a remote repository.
DevOps Management with GitHub 05
Features of GitHub
Issues
Issues are where most of the communication between a client and the development team occurs.
An issue can be created to discuss a broad set of topics, including bug reports, feature requests,
documentation clarifications, etc. Once an issue is created, it can be assigned to owners, labels,
projects, and milestones. Developers can also associate issues with pull requests and other
GitHub items to provide future traceability.
Notifications
GitHub offers notifications for virtually every event that takes place within a workflow. These
notifications can be fine-tuned to meet all your preferences. As you can subscribe to all issue
creations and edits on a project, or you can just receive notifications for issues that mention you.
You can also decide whether you receive notifications via email, web & mobile, or both.
DevOps Management with GitHub 06
Branches
Branches are the preferred way to create changes in GitHub Flow. They provide isolation so that
multiple people may simultaneously work on the same code in a controlled way. This model
enables stability among critical branches, such as “main”, while allowing complete freedom for
developers to commit any changes they need to meet their goals. Once the code from a branch is
ready to become part of the main branch, it may be merged via “pull request”.
Source: GitHub
Commits
A “commit” is a change to one or more files on a branch. Every time a commit is created, it is
assigned a unique ID and tracked along with the time and contributor. This provides a clear audit
trail for anyone reviewing the history of a file or linked item, such as an “issue” or “pull request”.
Pull Requests
A “pull request” is a way used to signal that the commits from one branch are ready to be merged
into another. The developer submitting the pull request will request one or more reviewers to
verify the code and approve the merge. These reviewers can comment on changes, add their
own, or use the pull request for further discussion. Once the changes have been approved (if
approval is required), the pull request's source branch (the compare branch) may be merged into
the base branch.
DevOps Management with GitHub 07
Labels
Labels provide a way to categorize and organize issues and pull requests in a repository. As you
create a GitHub repository, several labels will automatically get added for you, and you can even
create a new one as well.
Actions
GitHub actions provide task automation and workflow functionality in a repository. Actions can be
used to streamline processes in your software development lifecycle and implement continuous
integration and continuous deployment (CI/CD).
Creating a trigger CD workflow with ChatOps: Using labels in your pull request:
ChatOps uses chat clients, chatbots, and Different labels can start different
real-time communication tools to execute workflows. Add a staging label to begin a
tasks. When you leave a specific comment deployment workflow to the staging
in a pull request, that can kick off a bot. environment or add a spin-up environment
That bot might comment back with some label to run the workflow that creates the
statistics or run a workflow. Microsoft Azure resources you will deploy.
Control Execution
Many developers want to run a workflow if some condition is true. GitHub workflows provide the
‘if’ conditional for this scenario. The conditional uses an expression that will be evaluated at run
time. For example, we want to run this workflow if a staging label is added to the pull request.
GitHub Secrets
GitHub Secrets is a secure place to store sensitive information that your workflow needs. The
GitHub Action must have permission to access the resource to deploy to an Azure resource. You
will need to store Azure credentials in plain sight in the workflow file. Instead, you can store your
credentials in GitHub Secrets.
To store any information in GitHub Secrets, you can create a “secret” on the portal. You can use
the name of the “secret” you created in your workflow wherever you need that information.
DevOps Management with GitHub 11
Deploy to Microsoft Azure using
GitHub Actions
The GitHub Marketplace has several actions that help you automate Azure-related tasks.
You can search and browse GitHub Actions directly in a repository's workflow editor. You can
search for a specific Action from the sidebar, view featured Actions, and browse featured
categories.
To find an Action:
In your repository, browse to Click the edit icon in the Use the GitHub marketplace
the workflow file that you upper right corner of the sidebar to the right of the editor
want to edit. file view. to browse actions.
Integration Options
02 GitHub integrates with common platforms like Amazon and Google cloud, services like Code
Climate to track your feedback, and can highlight syntax in 200 different programming languages.
GitHub is a repository
03 GitHub allows you to showcase your projects in front of the public. GitHub is one of the largest
coding communities around the world, so it provides wide exposure to your project.
Markdown
06 Markdown allows users to use a simple text editor to write formatted documents. GitHub has
revolutionized writing by channeling everything through Markdown: from issue tracker, user
comments, and much more.
Conclusion
Git is an open-source version control system used for source code management in software
development and is rapidly gaining ground. Git is not specific to Azure DevOps – a collaborative
software development tools set. In fact, it is used by many platforms that provide source control
hosting as a service. GitHub’s extensive feature set for team-based software development and
its ease of use makes it a prominent platform of choice among coders and writers alike. It is also
one of the largest communities of coders around. In a nutshell, if you are all in about the commu-
nity and wish to build and collaborate on open-source projects with millions of diligent developers
worldwide, GitHub is just about the right platform for you.
Author Bio
Vandana Yadav has over 5 years of experience in the IT industry. She has
vast exposure to Azure Cloud services and has worked with many ventures
for their DevOps operations. Vandana is capable of handling CI/CD, infra
creation, Monitoring, certificates for security, Application deployments, azure
Repo, Git & GitHub, and recently she has worked on Migration services.
Before this, Vandana worked with MVP solutions, where she helped clients
enhance their infra for cost optimization and efficient services.
Business Contact
A Great Place to Work-Certified™ company, Happiest Minds is headquartered in Bangalore, India with operations in the U.S., UK, Canada, Australia
and Middle East.