OHSU ODG GitHub Tutorial

Introduction to GitHub for Creative Collaboration

Welcome to Lesson 2

Privacy reminder

This tutorial is scoped for public data and communications only. If you have any questions about the suitability of these technologies for your particular project, please contact the information technology group. https://o2.ohsu.edu/information-technology-group/contact-us.cfm

Gitter

Gitter is a chat platform that is linked your github account, and can be used for individuals and teams to chat/instant message.

Start using Gitter Do we want to have folks do this? If yes, we need to update this and create a CD2H chat room

Note - you can also download gitter to your desktop and chat through the app

When to use GitHub

Back to top

It can be tricky to figure out what technologies to use for what kinds of purposes. The table below is a simplified matrix comparing different systems for collaboratively working on documents and versions.

Legend:

+++ Purpose-built
++ Reasonably suited
+ Barely suited
- not supported
--- Disastrous implications when attempted

Note: Native Google Docs is not the same as Google Drive. These are often conflated.

When to use GitHub for managing versions your (text or data) documents

Feature GitHub Native Google Docs Office via DropBox Office via Box Office via Google Drive
Concurrent collaborative editing + # +++ +++ (office online only) +++ (office online only) ?
Serial collaborative editing +++ +++ +++ + # + #
Typesetting and formatting * ++ ++ +++ +++  
Version control +++ ++ + +  
View either clean or marked up versions without necessarily accepting changes +++ - +++ +++ +++
Compare any two versions +++ - + + +
Public attribution of specific contributors +++ - - - -
R/W access control at team level +++ + + + +
R/W access control at individual level - +++ +++ +++ +++
OHSU approved for sensitive data/communications (PHI/PII) - - - +++ -

# True serial collaborative editing is supported via Box, however at this time, Box does not warn users regarding who already has a document open. Consequently, using Box in the context of tight deadlines with multiple contributors requires extremely rigorous immediate communication regarding who has the lock on a document at any given moment. In our team’s experience collaboratively writing grant proposals under tight deadlines, the lack of safeguards afforded by automatic notification (eg as supported by DropBox, by contrast) have led to confusion and lost effort. GitHub does not support simultaneous collaborative editing, however if editing happens to be carried out simultaneously by chance, conflicts are easy to assess and resolve.

* Note that the formatting afforded by markdown is sleek but bare bones (affords more focus on content and less on rendering as text can be rendered differently in different contexts (desktop, mobile, etc). Thus, more about structure (headings) and emphasis and less about style (color of text).

Except in “Office Online” mode, using Google Drive or Box to share collaboratively-edited files (eg. Office files) has terrible implications for tight deadlines: there are currently no notifications in case of version conflict. In Google drive in particular, the speed of syncrhonization is very spotty (sometimes as long as 30 minutes in our experience).

Combinations of technologies can work synergistically (eg. link a google doc to a github issue) if you understand their strengths and limitations.

Box is the only OHSU-approved system for the storage of PHI/PII; all questions related to what constitutes PHI/PII must be referred to the appropriate OHSU office.

When to use GitHub for your tracking and managing your projects

Feature GitHub issues MS Project JIRA Trello
Free +++ +++
Transparent/attribution-friendly +++ + +
Suited to digital-artifact based projects ** +++ +++ - ++
Tight integration w GitHub +++ + + +
Tight integration w chat systems +++ ? ? ?
Detailed dependency view/control + +++ +++ ?
Powerful but not overwhelming/feature-bloated +++ + +++

TL;DR this is Julie’s personal opinion: MS Project and JIRA are best reserved for gigantic multidependency projects that ALSO have a project management blackbelt at the helm AND that have the buy-in of the team for a lot of organizational overhead. For most projects in academia, I have found GitHub, in combination with Google Docs, to be ample tool for the PM job. Managing well has less to do with tools and more to do with discipline/organizational culture. Other PM tools exist that are GitHub integrated, such as ZenHub and Waffle.io. Our advice would be to first get really comfortable with the native basics in GitHub and workarounds (eg. specialized use of labels) and then explore the options for your use case.

** GitHub is not per se poorly suited to managing projects that are not digital artifact based, but there’s less of a marginal advantage that makes it a clear win over other free tools like Trello. The caveat is that when all of someone’s projects, regardless of nature, are on GitHub, their competing priorities are easier to spot and tackle.

Create issues

Back to top

Why: “Issues are a great way to keep track of tasks, enhancements, and bugs for your projects or for anyone else’s. As long as you are a registered GitHub user you can log an issue, or comment on an issue for any open repo on GitHub. Issues are a bit like email—except they can be shared, intelligently organized, and discussed with the rest of your team. GitHub’s tracker is called Issues, and has its own section in every repository.” (From: https://guides.github.com/features/issues/)

How:

How to create an issue in GitHub:

Your turn:

Follow the instructions above to create a ticket about a hypothetical issue (such as an improvement to this tutorial) that includes a sub-task list.

Assign issues

Back to top

Assign issues to people

Add labels

Your turn:

On the ticket you previously created:

Communicate about issues

Back to top

Comment on issues

Use direct @ mentions

Link documents

You can link documents and files by:

Cross reference to another ticket

Before saving your changes, you can preview the comment to ensure the correct formatting.

Your turn:

Organize issues

Back to top

Milestones

New Labels

Your turn

Create a new milestone and a new label, and add the milestone and label to an existing ticket.

Projects

To create project:

Your turn

Create a new project and add columns and add cards to the columns.

Query issues

Back to top

Once you start using github for lots of things it is easy to get overwhelmed by the number of issues. I find the query dashboard (https://github.com/issues) much more relevant to me than the notification page (https://github.com/notifications).

Teams

Back to top

See this help article on creating teams

More complex queries are also possible.

Further reading on Issue querys

Help

Back to top

If you have an issue with GitHub itself (bug, feature request, etc) where do you go? Ironically, there is no good place. If you want to look up things that others have reported, isaacs has a good resource. https://github.com/isaacs/github/issues/. However, this is a rogue repo and a bit contentious.

Miscellany

Back to top

Edit this lesson

To make suggestions to this lesson, go to the markdown file in the github repository and click the “edit” icon.

Back to Home