Skip to content

Repo: GitHub

Richard edited this page May 15, 2024 · 2 revisions

By Adam Morsa - github: @ramblingadam

Problem:

We need a place where we can host our code and collaboratively contribute to it. Solution Requirements:

  • Must support git
  • Must support pull requests
  • Must support issues and milestone tracking

Solution:

GitHub will be used as our code repository. Not only is it widely used and familiar to all team members, but it has built-in issue tracking, project boards, milestones, sprint tracking, and even CI/CD via GitHub Actions are all built in. Keeping as many solutions as possible in one place will be a great boon to the project and the entire team, and GitHub, frankly, has it all. For anything that we can’t do on GitHub, nearly every software engineering application out there supports some kind of GitHub integration.

In addition, all team members are familiar with GitHub. No further onboarding is required. We will create a LetsGetTechnical GitHub org and utilize the Teams feature to assign our team members to the project.

Security Considerations:

  • GitHub is a globally trusted code hosting platform managed by Microsoft. This means we have enterprise-level security built into the platform. (That said, our code will be open source before long)

Cost Analysis:

  • While a paid Org offers several desirable features (such as wikis and assigning issues to multiple team members), most of those features are free on public repos. Since our code will be public, the paid tier is not necessary. This solution will cost us nothing to implement.

Operational Readiness:

  • Creating an org, teams, and the repo itself are trivial matters. (And already completed). We’re good to go, no further setup is needed on the repo itself.

Risks:

  • Depending on the scope of the project, there might someday come a time when we want access to the paid features. Solutions Considered and Discarded:
  • GitLab and BitBucket: While either would work fine as repos, there is no compelling reason to use either one over GitHub.

Work Required:

  • (M) Need to set up an Org, a Team, and a Repo. (Already done)
  • (XL) Project Manager will need to set up project boards, milestones, and sprints.
  • (L) Engineers will need to stay on top of their assigned issues, moving their tasks through the project boards as they complete work on them, to ensure we always have a a clear picture of the project’s status.