Learn about

Presentations for @rcodi team members ~

Getting Started

RCODI Activty on GitHub

Getting activity data

Chapter 1: Git vs GitHub

vs.
  • git is not GitHub.com
  • GitHub.com uses git but it does way more

What most people think when they hear “GitHub”

$ cat 0001-add-limit-to-log-function.patch
From 330090432754092d704da8e76ca5c05c198e71a8 Mon Sep 17 00:00:00 2001
From: Jessica Smith <jessica@example.com>
Date: Sun, 6 Apr 2008 10:17:23 -0700
Subject: [PATCH 1/2] Add limit to log function

Limit log functionality to the first 20

lib/simplegit.rb |    2 +-
1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/lib/simplegit.rb b/lib/simplegit.rb
index 76f47bc..f9815f1 100644

--- a/lib/simplegit.rb
+++ b/lib/simplegit.rb
@@ -14,7 +14,7 @@ class SimpleGit
end

def log(treeish = 'master')
-    command("git log #{treeish}")
+    command("git log -n 20 #{treeish}")
end

Projects on GitHub use git, but the platform is much more than file hosting for your project.

  • Issue tracking
  • Feature requests
  • Task management
  • Wikis
  • Free web hosting
  • Automated actions/triggers
  • API for 3rd party apps and integration

As of January 2020, GitHub reports having over

  • 40 million users
  • over 100 million repositories
  • including at least 28 million public

Making it the largest host of open-source code in the world.

GitHub Feature Overview

GitHub Feature Overview

GitHub Feature Overview

GitHub is a huge community and very active

In the midst of the uncertainty and seriousness of COVID-19, we've been inspired to see a global community of scientists, government officials, journalists, programmers, and concerned citizens come together to collaborate on a variety of projects with the shared goal of understanding COVID-19 and coordinating on the best response.

Even though many of these projects aren't traditional software projects, the same collaborative development model is being applied to curated data sets, DIY instruction sets, and more.

(March 23, 2020)
- GitHub Blog

Project Highlight:
Covid19 India Tracker

  • New group
  • Created within the last 30 days
  • 1,200 Stars
  • 739 Forks
  • 83 Open Issues

Covid19 India Tracker

Covid19 India Tracker

Covid19 India Tracker

Covid19 India Issue 13

Chapter 2: Workflows

vs.

Dropbox: is a file hosting service

1. DB brings files together in one central place.
2. By creating a special folder on the user's computer.
3. All folders contents are sync'd to DB servers.
4. DB servers keep all the users computers and devices sync'd.
5. DB keeps the same files up-to-date on all devices.

Dropbox: is a file hosting service

  • Dropbox is effortless, automatic, and require no thought
  • These features also are what make it terrible for project work
  • When any file is changed DB uploads changed pieces, whenever possible
  • DB uses SSL for transfers and synchronization
  • DB stores the data via Advanced Encryption Standard (AES)-256 encryption
  • DB is constantly watching and rehashing every file in your account

Dropbox: for project sync

  • git is purposeful
  • error correcting
  • requires some thought
  • merges all changes before updating

Things you can't on DropBox

Branching

Contributions Stats

Visualizations

Using Issues to Communicate on GitHub

Issues are very helpful and every person on the team can easily contribute.

Enabling transparency and managing change in projects with collaboration

"Issues are the fundamental medium for collaborating on ideas and planning work in GitLab."


- Gitlab Company Handbook

Issues can allow sharing and discussion of proposals before, and during, their implementation between:

They can also be used for a variety of other purposes, customized to your needs and workflow. Issues are always associated with a specific project, but if you have multiple projects in a group, you can also view all the issues collectively at the group level.

  • You and your team.
  • Outside collaborators.

Common use cases include:

  • Discussing the implementation of a new idea
  • Tracking tasks and work status
  • Accepting feature proposals, questions, support requests, or bug reports
  • Elaborating on new code implementations

Things you can do with the project issue tracker

  • Create an issue from a template
  • Set a due date
  • Bulk edit issues
  • From the Issues List, select multiple issues in order to change their status, assignee, milestone, or labels in bulk.
  • Import issues
  • Export issues
  • Connect directly with the Issues API
  • Configure an external issue tracker such as Jira, Redmine, or Bugzilla

Properties of Issues

  • Milestones
  • Labels
  • Due Dates
  • Assignees
  • Notifications
  • @mentions
  • References