Difference between revisions of "Git / Gitlab"

From LinuxMCE
Jump to: navigation, search
(Clone repository)
(With no write access)
 
(One intermediate revision by the same user not shown)
Line 26: Line 26:
 
You have 2 options to clone a repository:
 
You have 2 options to clone a repository:
  
* SSH (requires a SSH key set up in [https://git.linuxmce.org/profile/keys GitLab]) e.g. git clone git@git.linuxmce.org:ochorocho/gitlab-irc.git
+
* SSH (requires a SSH key set up in [https://git.linuxmce.org/profile/keys GitLab]) e.g. <code>git clone git@git.linuxmce.org:ochorocho/gitlab-irc.git</code>
* HTTPS e.g. git clone https://git.linuxmce.org/ochorocho/gitlab-irc.git
+
* HTTPS e.g. <code>git clone https://git.linuxmce.org/ochorocho/gitlab-irc.git</code>
  
 
== Workflow ==
 
== Workflow ==
Line 37: Line 37:
 
Even if you have write access you can use this method.
 
Even if you have write access you can use this method.
  
# Fork a repository
+
# Fork a repository [[File:Git fork.png|thumbnail]]
 +
# Clone your fork: <code>git clone git@git.linuxmce.org:YOUR_USER_NAMESPACE/linuxmce.git</code>
 
# Do your stuff, implement features, fix bugs etc.
 
# Do your stuff, implement features, fix bugs etc.
# Make "Pull Request" for your changes
+
# Commit and push your changes to your fork: <br /><code>git add . && git commit -m 'YOUR MEANINGFUL MESSAGE WITH TICKET NUMBER' && git push</code>
 +
# Make "Pull Request" for your changes.
 +
## Goto  your fork in Gitlab '''https://git.linuxmce.org/YOUR_USER_NAMESPACE/linuxmce
 +
## Navigate to '''Merge Requests -> New merge''' request
 +
## Select the two branches in your fork and the origin repository you want to compare with. Compare by clicking '''Compare branches and continue'''
 +
## Give a title and a description about what you intended to change/improve/add and click on '''Submit merge request'''
 
# "Pull Request" will be verified and merged by a LinuxMCE Dev, please be patient
 
# "Pull Request" will be verified and merged by a LinuxMCE Dev, please be patient
  

Latest revision as of 21:31, 27 November 2017

GitLab / GIT

GitLab is the web interface of choice for managing GIT repositories.

A list of features: https://about.gitlab.com/features/

Additional Info:

  • GitLab URL: https://git.linuxmce.org/
  • Repository URL: https://git.linuxmc.org/< username / group name >/< project name >.git

Get access to GitLab

Go to IRC #linuxmce-devel and ask for a Account.

To create an account we need following information:

  1. Name
  2. Username
  3. E-Mail

As soon as your account was created you'll receive an E-Mail containing a link to set your password. Klick on that link and set your password, then you are ready to login. No mail received? Check your spam/junk folder.

Clone repository

You have 2 options to clone a repository:

Workflow

We have no fine grained workflow at the moment and no continous integration.

With no write access

Even if you have write access you can use this method.

  1. Fork a repository
    Git fork.png
  2. Clone your fork: git clone git@git.linuxmce.org:YOUR_USER_NAMESPACE/linuxmce.git
  3. Do your stuff, implement features, fix bugs etc.
  4. Commit and push your changes to your fork:
    git add . && git commit -m 'YOUR MEANINGFUL MESSAGE WITH TICKET NUMBER' && git push
  5. Make "Pull Request" for your changes.
    1. Goto your fork in Gitlab https://git.linuxmce.org/YOUR_USER_NAMESPACE/linuxmce
    2. Navigate to Merge Requests -> New merge request
    3. Select the two branches in your fork and the origin repository you want to compare with. Compare by clicking Compare branches and continue
    4. Give a title and a description about what you intended to change/improve/add and click on Submit merge request
  6. "Pull Request" will be verified and merged by a LinuxMCE Dev, please be patient

With write access

Master is always deployable, so we must not work on Master at any time!
Master is only used for merge in working stuff.

  1. Clone a repository
  2. Branch of from Master
  3. Do your stuff, implement features, fix bugs etc.
  4. Commit/Push your branch - on bigger changes i would recommend doing a test build using this branch
  5. Merge your changes into Master
  6. Push the verified changes to master

GitLab IRC

To enable IRC notifications for your project add a Web Hooks (Settings -> Web hook) with the URL http://localhost:4567/commit Somehow GitLab seems to ignore "Trigger". When only checked "Push events" it's still triggered for Comments, Issue events etc.

Because of that fact i extended the config.yml of giltab-irc (/home/git/gitlab-irc/config/config.yml) to have at least the option to configure notifications globally.

Following options for notifications:

msg:
  push: true
  tag_push: false
  issue: true
  note: false
  short_uri: true

To start gitlab-irc run:

/etc/init.d/gitlab-irc start

Useful links