2. 목차
Gitlab for oneM2M Security Development
목차
I. Introduction of
Gitlab
Introduction
Procedure for the usage
III. Usage of git
command line
II. Setting up
Environment
installing git
host setup
IV. Our
Development
Source code hierarchy
Management
3. I. 사업 개요
3
1. Introduction of Gitlab
2. Procedures of the usage
I. Introduction of Gitlab
I. Introduction of OneM2M
4. Introduction of Gitlab
소프트웨어 형상 관리 도구
✓ 소프트웨어의 구현과정에서 변경관리/버전관리/릴리즈관리 기능을 수행한다. CVS(Concurrent Version System),
SVN(Subversion), Git 을 주로 이용한다.
Git
✓ 중앙시스템을 통한 형상관리를 하는 CVS, SVN과는 달리 Local과 Remote 두군데에서의 형상관리를 할 수 있음
✓ git의 사용자 인증방법
•SSH-based authentication
•Web-based authentication
SSH-based authentication
✓ 이를 사용하기 위해서는 사용자들에 대해서 SSH 아이디를 모두 발급하고, 상호간에 사용할 수 있도록 SSH key를 추가함으
로써 프로젝트를 공유할 수 있는 형태로 인증을 하게됨
✓ SSH 계정을 추가해주는 여러 취약점에 더 많이 노출될 가능성이 있음.
Web-Based Authentication
✓ Github, Gitlab, Gitblit 등 다양한 솔루션이 존재하지만, 우리는 Gitlab을 사용하고 있음.
✓ Gitlab은 Ruby on Rails로 개발되었음.
4
5. Procedures of the usages
Procedure
5
Install Git
Setting
Hostname
Create git
repository
Add
members
to the
project
Cloning git
repository
Commit
and push
source
codes
6. I. 사업 개요
6
1. Install git
2. Host setup
I. Setting up Environments
I. Introduction of OneM2M
7. Installing git command
on Windows
✓ https://git-scm.com/download/win
on Mac
✓ sudo port upgrade git
on Linux
✓ use package manager (apt-get, yum/dnf, pacman, emerge, etc.)
✓ https://git-scm.com/download/linux
7
8. Host setup
on *nix and Mac
✓ add hostname in /etc/hosts
on Windows
✓ Run cmd as administrator
8
$ sudo emacs /etc/hosts
164.125.68.157 git.artofthings.org
> notepad c:windowssystem32driversetchosts
164.125.68.157 git.artofthings.org
9. I. 사업 개요
9
1. Command line tools
I. Usage of Git
I. Introduction of OneM2M
10. testing on the command line
Cloning
Committing and pushing codes
pushing selected commit
10
$ git clone http://git.artofthings.org/hackartist/onem2m-
security.git
$ touch test.c
$ echo "//this is test for pushing" >> test.c
$ git add test.c
$ git commit test.c
add comments for the test
$ git push origin master
$ git log
$ git push origin {commit hash}:master
12. Using branches and GUI tools
Updating brach refs and heads
GUI tools
✓ on Windows, TortoiseGit
✓ on Mac OS X, GitX
12
$ git fetch
$ git checkout v0.1.0 #{branch name}
13. I. 사업 개요
13
1. Source code hierarchy
2. Management
I. Our Development
I. Introduction of OneM2M
14. Development Environments
Environments
✓ Oracle JDK 1.8
✓ IDE : JetBrain IntelliJ IDEA
✓ Gitlab
Git flow
14
masterdevelopfeature release hotfix
개발 메인새로운 기능/기능별 브랜치 릴리즈, 태그전 점검 버그
tag 0.1
tag 1.0
tag 1.1
tag
15. Source hierarchy and To-Do
Source Hierarchy
Server works
✓ Adding hostname will not be needed
✓ http will be changed to https
15