Hello GitlabΒΆ

Description

This exercise guides you through the process of setting up everything so that you can submit the assignment. What we expect you have done before you submit:

  • Find your project repository in Gitlab
  • Clone the repository to your computer
  • Save your SSH keys to Gitlab
  • Make a commit to the repository
  • Push the commit to Gitlab
  • Paste the commit hash to the input below

Detailed Instructions

1. Log into https://course-gitlab.tuni.fi/

Logging in requires TUNI authentication. TUNI hosts course-gitlab service to facilitate your studies and research.

2. Find your project

Your own repository is at: https://course-gitlab.tuni.fi/compcs300-october-YEAR/YOUR_USERNAME If not found, please contact the course personnel.

3. Save your SSH keys

Pulling and pushing is easier and faster when you have saved SSH keys to course-gitlab. The method of generating ssh-key differs from operating system to another, but it is first recommended to check if an ssh-key already exists. There are two instructions, one for Windows and the other for Mac OS + GNU/Linux and other UNIX compatible systems. Please follow the instructions corresponding to your operating system.

Note: ~ refers to the home directory in operating systems. If all operating systems had a user called student, the home directory would be C:\Users\student\ in Windows, /home/student/ in GNU/Linux and /Users/student/ in Mac OS.
After ssh-key has been created, it will be in a hidden folder .ssh within the home directory.

Windows

(recommended) Checking if ssh-key already exists
  1. Open Windows PowerShell
  2. run command Get-Content ~/.ssh/id_rsa.pub
  3. If the command prints something starting with ssh-rsa and does not give an error, ssh key already exists, and you may now copy this key to course-gitlab
Generating ssh-key on Windows
  1. Open Windows PowerShell
  2. run command ssh-keygen
  3. The command now asks for the path where to save the key, just press enter
  4. a passphrase for the key, in this case it is recommended to just leave it empty
  5. the same passphrase is confirmed, so press enter again
  6. the command should state that a key has been saved (it might be phrased as your identification)
  7. To print out the key to copy to course-gitlab run Get-Content ~/.ssh/id_rsa.pub
  8. you may now copy this key to course-gitlab

Mac OS, GNU/Linux and other UNIX-compatible operating systems (with cat and ssh-keygen)

(recommended) Checking if ssh-key already exists
  1. Open terminal
  2. run command cat ~/.ssh/id_rsa.pub
  3. If the command prints something starting with ssh-rsa and does not give an error, ssh key already exists, and you may now copy this key to course-gitlab
Generating ssh-key on Mac OS, GNU/Linux and others
  1. Open terminal
  2. run command ssh-keygen
  3. The command now asks for the path where to save the key, just press enter
  4. a passphrase for the key, in this case it is recommended to just leave it empty
  5. the same passphrase is confirmed, so press enter again
  6. the command should state that a key has been saved (it might be phrased as your identification)
  7. To print out the key to copy to course-gitlab run cat ~/.ssh/id_rsa.pub
  8. you may now copy this key to course-gitlab

All operating systems: save the SSH-key to course-gitlab

Here, one example on GNU/Linux when following instructions

student@linux:~$ cat ~/.ssh/id_rsa.pub
cat: /home/student/.ssh/id_rsa.pub: No such file or directory
student@linux:~$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/student/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/student/.ssh/id_rsa
Your public key has been saved in /home/student/.ssh/id_rsa.pub
The key fingerprint is:
SHA256:MUNoKtafK9W/02VzWdysHrim4EOhKNXEz/v25Chaijc student@linux
The key's randomart image is:
+---[RSA 3072]----+
|     . ..        |
|      =.         |
|   . = o+      o.|
|  o + . ++      =|
| . o o +So   . .o|
|  . . = +   . *..|
|   . . ooo ..= + |
|    ..E+o.=++ .  |
|    .ooo.++*o    |
+----[SHA256]-----+
student@linux:~$ cat ~/.ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDVixpMZhpjmBuOn5BLS9/mpCUcSLbwgxIP9/r5o01/
KWxvTnWZS1bGTmJN98DEhLzL+7zWnB3+cqWSGrKKU++G9cy0FnLbJYW4Ip/q18Y04g9RHNcIy+tEwrUA
uCwsRgU0Eg9DPrvRVUmA04ODhA/PxS7kROEly5ryteQqcOmsqDNAg6LjHXUuxb40MUZeZ9fA3/DOlka+
tJJL6XcZ2GEVtRet4BIuEYcfp3ukr1ItwJ9gecEdAA9t/Xy2Q0KdRFd8OvAU+ZGU4GbL9tI3IxyaQCp1
KTCwV21yPUzYVAd82BEmBKvQKgGBgiyGJJEcekqAAVdHglHVpml+LDPjWF+3VRW3GgT918RyRQ676elv
j+NvaHAzh8WpXI61620NwepwFEofCZNkwNCJvGcX2rQcI1m5OJNGnSgpqiKkrvrLffrboOml8GUg/qSE
sJ5z6q9114cNX655bytYeY5e/6T7NWtYVRgg2cJZTTw2DuHQVtsRoObCF2wj8OyXf4H2gV8= student@linux
  • Copy paste the corresponding output from your computer starting from ssh-rsa till the very end.
  • Paste here: https://course-gitlab.tuni.fi/-/profile/keys
  • Paste the key to the textarea
  • Add key button activates. Press it. Your key is now saved. Next, we'll have to clone the repository.

4. Cloning the repository locally

Select a good place for your repo in your computer, and then clone it:

git clone git@course-gitlab.tuni.fi:compcs300-october-YEAR/YOUR_USERNAME.git
During some weekly exercises and the projects, students will commit their changes to the repository to grade it. The grading is done with the git url, like in this exercise. The normal procedure:

git pull  # to get the latest changes (not that crucial if submitting alone)
git commit -m "heapify" -a # -m "message to describe the changes"
# -a for all changes, you can also commit only one file or a dir
git push  # only now the changes are visible in gitlab, and an exercise can be graded

5. Copying the git commit hash

Once you are ready to submit the exercise, copy the hash of your commit to plussa.
The commit hash can be copied from course-gitlab repository webpage or terminal.
Choose the method you prefer and follow its instructions (or both if you want to learn more about git).

Copying the commit hash from course-gitlab webpage

Start by opening your repository webpage, then click the copy commit SHA button to copy the commit hash to the clipboard

Copying git-URL
Copying git commit hash from the copy commit SHA button on course-gitlab repository page
If you want to use an older commit hash, open the commits list (In the figure you would click 42 Commits below the repository name). There you will find all the commits and all the commits will have their respective copy commit SHA buttons.

Copying the commit hash from terminal

When you are in the directory of your git repository, run git log
It will open a text listing as in the example below

      student@linux:~/path/to/repository$ git log
      commit cab9f5b0ae657a321a2af84463ccadc4358dcd16 (HEAD -> main, origin/main, origin/HEAD)
      Author: Student Name 
      Date:   Wed Sep 6 08:47:01 2023 +0300

          Good and descriptive commit message

      commit f8bc013b24fe1caba6aa628517aaf68af47b9775
      Author: Student Name 
      Date:   Wed Sep 6 08:42:57 2023 +0300

          Another good and descriptive commit message

      commit 13aa92cca8407a2acf7f1ab1edea64e18f412116
      Author: Student Name 
      Date:   Tue Sep 5 15:30:01 2023 +0300

          Another good and descriptive commit message

      commit 10ef99cd400a02dbbaf2016cf60fe519680c0def
      Author: Student Name 
      Date:   Tue Sep 5 15:26:16 2023 +0300

      :
      
The commit hashes are now listed for each commit, and it is possible to copy it from there.
Note! If the next terminal prompt didn't pop up and you don't want to scroll the list up and down with arrow keys, press q to quit the listing.

For learning git, TUNI provides a self-study course. If you want the credits for the git course, register to the course in Sisu (COMP.CS.060), too.

6. Grading the exercise - making your first commit

In this course, most of the grading is automated. Exercises that require you to use git will be graded here in plussa. Once you have pushed your changes to the repository, copy your commit hash and paste it in the exercises grader input. If the commit hash is valid, your repository can then be graded once you click on the "Grade my repository" button. The grading process will start shortly after. Most of the time, the grading is done in a few seconds, but sometimes in more complex exercises it can take up quite a few minutes, so please be patient.

Let's give it a shot!

Make a commit to the repository and push it to Gitlab:

  1. Inside the local instance of your repository. Open the file README.md in your preferred editor
  2. Write "Hello gitlab" to the file
  3. Save the file
  4. Use git add to add the file to the staging area:
    git add README.md
  5. Commit the changes to the repository:
    git commit -m "my first commit" -a
  6. Push the commit to Gitlab:
    git push
  7. Copy the commit hash from the terminal or course-gitlab project page
  8. Paste the commit hash to the input below (titled: "Git commit hash of your submission")
  9. Click on the "Grade my repository" button below to receive points for going through this introduction.

A+ presents the exercise submission form here.

Posting submission...