Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

What can IT use GitHub for?

GitHub allows you to create, store, change, merge, and collaborate on files or code. Any member of a team can access the GitHub repository (think of this as a folder for files) and see the most recent version in real-time. Then, they can make edits or changes that the other collaborators also see.  The files can be source code for applications or scripts being created or maintained by the Team or simply configuration files or build steps used to setup and administer a service or application.

Why do I need to use GitHub?

Simple answer is version control.  Version control is important as it makes collaboration more transparent and reproducible. By visibly tracking iterative changes, you and your Team can experiment with new approaches knowing that you can revert to the original as needed or keep track of changes to a service over time.

How to securely leverage GitHub?

Syracuse University IT users of GitHub should ensure that they enable the highest level of security to protect the information they are storing in GitHub.  The way to do that is to enable the use of "Passkeys" to login to GitHub.  Many of the IT users on campus already possess a physical FIDO2 complaint "Passkey" device in the form of their YubiKey Smartcard and it can be used as the physical "Passkey" device for GitHub. Learn More

Can I use GitHub to make tasks easier to accomplish?

GitHub has GitHub Actions that allow for automation and Continuous Integration & Continuous Delivery (CI/CD) to be used with your Team's repositories. Learn More



How to get started

Create a GitHub Team

Once logged into Syracuse University's instance, create a GitHub Team - 

Create

Team
  • To enable easier collaboration and discovery in the platform ITS users should name their Team based on the following naming convention: "ITS-(Department/Team Name/Acronym)-(Role if required)". e.g. "ITS-CIS"
  • "Visible" teams are recommended so that collaboration can be made easier and requests to join can be made.
  • Nested Teams are not recommended since the relationship of a child team to its parent may result in users having access to a repository that you did not intend.  If there is

    a

    new group of people working on a repository, create another Team.
  • In some situations, you may want to create separate Teams for differencing level of access to the Team's repositories.  For example, it may be required to create a Team named "ITS-IAM-Admins" to provide a smaller scope of user access to the Admin role of the Team's repositories instead of the whole "ITS-IAM" team.
  • Setup Team Maintainers so that requests to join the Team can be approved - Setup Maintainers
    • There should be at least two group maintainers so that if one person is unavailable another Team member can perform the administrative duties of Team maintenance.
  • Publicize your Team's GitHub URL so that other members of your department can join the GitHub Team.

    GitHub Repository


    GitHub Repository

    Repositories are used to hold files and represent an entity that can have permissions/roles applied to it.  Common reasons for creating a repository would be to hold software project source code, scripts used to setup/configure a service, or documenting some process or procedure.

    Create a new GitHub repository

    • Name for repositories must be unique in the Syracuse University GitHub organization, once a name has been taken you will have to choose another until the repository with the name is deleted - Create Repository
    • Set Team as Admin for the Repository; Remove direct user permission to the newly created repository. - Manage access
    • If the repository is going to be not "Private" then the name should be prefixed with the Team's name that owns the repository. e.g. "ITS-CIS-PowerShell Best Practices" (repository name for an "Internal" repository owned by the ITS-CIS team).
    • It is recommended that the "Description" field be filled in with information describing what the repository contains.
    • All repositories should be set to "Private" initially and can be changed to "Internal" (available to all Syracuse University GitHub users), or "Public" (available to anyone on the internet) if needed.

    Additional Tips

    GitHub Desktop

    GitHub Desktop is a free, open-source application that helps you to work with code hosted on GitHub or other Git hosting services. With GitHub Desktop, you can perform Git commands, such as committing and pushing changes, in a graphical user interface, rather than using the command line. Learn More

    File Paths

    The location of files and their pathing may be important to being able to collaborate with others on your team using GitHub.  It is recommended that the team choose a standard location on the file system that repositories are cloned to.

    For example, a team may choose to clone all repositories to the path "C:\Users\<username>\Apps-SU\Git\".  By being consistent across collaborators linking of source files into other repositories or files will always result in the same relative path.  Also, in most source code it is easy to use a variable to reference the <username> value and therefore make sure that the even full paths to files are usable by all the collaborators.