Versions Compared

Key

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

...

There are two main workflows when contributing code on GitlabGitLab: branching and forking. Which one you use will depend on your need and level of access to a project. In all
cases the fork workflow is preferred.

The first step is to create a Gitlab GitLab account. You'll need to have verify your account with a credit card (no charge) before  before CI jobs can be ran in your personal or project forks.
If you'd prefer not to have to add a credit card , after making an account you can click "Request Access" on the Anuket group, after creating an account. Once your access is approved, CI for any MRs you make against
Anuket projects should run.

Gitlab Branch Workflow

  1. Clone the project
  2. edit, git add, commit
    Write you change (remember to include `-s` to sign off commits: `git
    commit -s`)
  3. git push
  4. Click the link from the message to open a merge request to the
    upstream repository
  5. If you have multiple commits, write a detailed explanation about what you're asking to be merged in.
    Set the change to "Draft" if its still being worked on.
  6. Wait for CI to pass and a CODEOWNER to review.
    If the project is utilizing hardware for their CI, a developer will need to approve your pipeline to run before it is tested.

...

you can utilize CI through merge
requests (MRs) against Anuket projects.

GitLab Fork Workflow

  1. Fork the project
    1. After logging in, click on the "Fork" link at the top right of the project page.
    2. Specify the Project name, Group (or user account) the project should be under, and the name for the fork as Project slug. Set the Visibility level to Public, and click "Fork project"
  2. Setup mirroring - This will keep the project's default branch up-to-date in your fork so you can always start your work from the most recent changes to the project.
    Alternatively you may manage this yourself by adding an extra 'upstream' git remote pointed at the original project, and routinely running 'git pull upstream/master','git push origin master' to update your fork.
    1. Open Settings → Repository from the project sidebar.
    2. Expand the "Mirroring repositories" section
    3. Enter the Git Repository URL starting with https://gitlab.com/anuket and ending with /<project>.git
    4. Check "Mirror only


  3. Clone your fork
    There is a "Clone" drop down on the fork project page which provides git URLs to clone over SSH or HTTPS (to be passed to git clone) or magic links to clone the project through Visual Studio Code.
    Image RemovedImage Added
  4. Checkout a new branch to make your change
    git checkout -b <mybranchname>
  5. Edit the code, stage the changes (git add), and commit them to your branch
    Remember to include a 'Signed-off-by' line on your commits ( git commit -s if on the command line).
    1. In the UI: If you're going to be making more than one commit, uncheck 'Start a new merge request with these changes'
      Image Modified
  6. Push the branch to your forkgit push
  7. There will be a link returned in the console from running git push, which when clicked will automatically open a merge request to the upstream project.

    Code Block
    $ git push
    Enumerating objects: 4, done.
    Counting objects: 100% (4/4), done.
    Delta compression using up to 8 threads
    Compressing objects: 100% (2/2), done.
    Writing objects: 100% (3/3), 731 bytes | 731.00 KiB/s, done.

    Make sure the source branch comes from your fork and the target is the
    
    Total 3 (delta 1), reused 0 (delta 0), pack-reused 0
    remote: 
    remote: To create a merge request for test-commit, visit:
    remote:   https://gitlab.com/bramwelt-ci/airship/-/merge_requests/new?merge_request%5Bsource_branch%5D=test-commit
    remote: 
    To gitlab.com:bramwelt-ci/airship
     * [new branch]      test-commit -> test-commit

    You can also create the merge request manually from the Merge Request page of your fork.
    Image Added

  8. Fill out the details of your merge request.
    If you have multiple commits, write a detailed explanation about what you're asking to be merged in. You can also add "Draft: " to the title to signal that changes are still being made.
  9. Wait for CI to pass and a committer (identified by the CODEOWNERS file) to review.
    Image Added
    If the project is utilizing hardware for their CI, a developer will need to approve your pipeline to run before it is tested.

GitLab Branch Workflow

  1. Clone the project
  2. edit, git add, commit
    Write you change (remember to include `-s` to sign off commits: `git
    commit -s`)
  3. git push
  4. Click the link from the message to open a merge request to the
    upstream repository
  5. If you have multiple commits, write a detailed explanation about what you're asking to be merged in.
    Set the change to "Draft" if its still being worked on.
  6. Wait for CI to pass and a CODEOWNER to review.
    If the project is utilizing hardware for their CI, a developer will need to approve your pipeline to run before it is tested.

...