주석만 작성해도, function 이름만 적어줘도 AI가 코드를 대신 작성해준다고 하는 Copilot !!!

 

광고/홍보를 그렇게 해놓고는...

한정된 사람들만 사용할 수 있게 해주는 불친절한 GitHub !! 아니 MS !!!

 

 

뭐 어떻게 어떻게 사용해볼 수 있기 기회를 얻어서

다음과 같이 사용해보았다.

 

Already enabled

 

내 본캐 계정에서는 아직도 대기중인데...

 

Extension

 

GitHub 웹사이트에서 바로 사용하는 것은 말이 안되기에 어떤 방식으로 제공해주나 했는데...

Visual Studio Code Extension 형태로 제공해준다 !!!

Extension 설치 !!!

 

VSCode Extension

 

21만명이 사용하고 있나보다.

별점이 4개 밖에 안되네!? ㅋㅋㅋ

 

Sign in to GitHub

 

당연하게도 GitHub 로그인 과정을 거쳐야 한다!!!

 

Authorize

 

token

 

열기 하니까 잘 되었다.

잘 안되는 사람들은 아래에 나오는 방식으로 진행하면 되겠죠 ?!

 

function

 

사용법은 간단하다.

함수 이름 작성 하고 파라미터 정의하고 `{` 입력하면 회색으로 갑자기 딱! Suggestion을 보여준다.

 

마음에 들면 `Tab`키 누르면 되고,

마음에 안들면 `Alt + [` 또는 `Alt + ]` 누르면 다른 suggestion 들을 보여주게 된다.

 

그런데, 속도 이슈인지 `Alt + [` 또는 `Alt + ]` 눌렀을 때에 전환이 잘 안되는 경우가 많았다.

 

Ctrl + Enter

 

Suggestion 목록을 한 번에 보고 싶으면 `Ctrl + Enter`를 누르면 된다.

위 그림과 같이 오른쪽에 suggestion 목록을 전체 보여준다.

 

속도 이슈로 한번에 나오지 않더라도 기다리면 주르륵 나온다.

`Alt + [` 또는 `Alt + ]`는 다른 suggestion이 없는 것인지 아직 로딩 중인지 알 수 없어서 불편한데

차라리 그냥 `Ctrl + Enter`를 이용해서 전체를 보고 하는 것이 좋을 것 같다.

 

주석

 

함수 이름만으로는 의도를 제대로 전달하기 어려울 수 있다.

그럴 때에는 주석을 앞에 적어주면 된다.

 

Framework

 

함수만 지원하는 것도 아니다.

Express server를 사용하겠다라는 주석만으로도 코드를 제안해준다.

 

 

 

지금까지 알아본 과정은 GitHub에서 제공해주는 Start Guide로 진행해보았다.

- https://github.com/github/copilot-preview/blob/main/docs/gettingstarted.md

 

혹시 웹 관련된 JS만 잘되는 것 아닐까?

 

Python

 

확장자가 `*.py`인 파일을 만들고

`Authentication to GitHub Enterprise instance`와 같이 주석을 작성해보았다.

 

와우! stackoverflow 검색 보다는 훨씬 빠르게 코드를 찾아준다.

다만, 내용을 살펴보니 내가 원하는 실제 사용가능한 수준으로까지는 없었다.

 

주석 내용을 조금 더 디테일하게... 구체적으로 적어줘야 원하는 내용을 제안해줄 것으로 보인다.

 

한글

 

한글도 지원을 잘 해줄까!?

 

위 그림과 같이 잘 해준다 !!!

 

한글로 된 주석이 github.com에 그다지 많지 않을거라

제한적인 상황에서만 유용할 것 같지만,

여하튼 한글도 된다 !!!

 

token

 

업로드 한 사람의 잘못이긴 하겠지만

위 그림과 같이 secret 값들도 그대로 suggestion 된다.

 

이런 부분은 주의해야할 것 같다.

 

 

결론적으로 원하는 사항에 대해서 잘 정의할 수 있으면

최소한 Stackoverflow 검색하는 것보다 빠른 시간 안에 code를 suggestion 받을 수 있는 재미있는 기능이다.

 

실무에서도 유용할 지에 대해서는 직접 프로젝트를 진행하면서 사용해봐야 할 것이고,

최소한 PoC 하거나 처음 해보는 사항에 대해서 접근할 때에는 상당히 유용할 것으로 보인다.

 

반응형


형상관리 도구로써

Git 자체는

Command line 방식으로

사용하는 것을 추천한다.


나만 이렇게 생각하는 것은 아니라고 생각한다.

많은 분들이 동감할 것이다.



그래서

Windows 환경에서도

Git-bash를 사용해서

Git을 사용하고 있는데...






문제는

GitHub를 사용할 때에는

결국

Web 환경을 사용할 수 밖에 없다.



Issue를 확인한다던지,

Pull-Request를 한다던지...




하지만, 웹을 사용하기 어려운 경우...

아니면, 웹을 사용하기 싫은 경우...


우리에게 필요한 것은 뭐 ?!


"GitHub CLI"



최근에 GitHub에서 version 1.0을 릴리즈 하였다.



https://cli.github.com/





1. Installation (Win)



설치는 그냥 다운로드 받아서 Next 연타 하면 끝

(Linux, Mac도 손쉽게 할 수 있다)



실행은

Git-bash 또는 PowerShell

모두 잘 된다.







2. Authentication


Beta 버전 때에는 Enterprise를 지원하지 않는데,

v1.0 정식 릴리즈에서는

github.com + Enterprise

모두 잘 지원한다 !!!


예를 들어서 Issues 목록을 보고 싶다고 하는 경우

GitHub Client에게

어떤 repository의 Issues 목록을 보고 싶은지를

알려줘야 한다.


그리고 또하나 필요한 것은

Issues를 읽어올 수 있는

인증/권한을 셋팅하는 것 !!!



기본적인 인증 등록은 아래와 같다.


GitHub-bash에서는 정상동작하지 않는다.

PowerShell에서 실행하면 된다.


$ gh auth login


GitHub.com과 Enterprise를 고를 수 있다.



일단, GitHub.com을 선택해보았다.



웹브라우져로 할 수도 있고,

token값을 넣을 수도 있다.


웹브라우져를 선택했다.



코드값 잘 복사해놓고 엔터를 누르면 된다.



default 브라우저가 IE로 되어있으면

잘 안될 수도 있다고 한다.


Chrome 권장


위에서 복사한 코드값 넣고 'Continue' 클릭~



권한 주면 된다.


패스워드 한 번 더 확인해주고~



축하받으니 뭔가 좋긴 한데... ^^



앞에 화면 하나 캡처하지 못했는데...


기본 프로토콜로 HTTPS 사용할건지 SSH 사용할건지 묻는 화면도 있다.


굳이 HTTPS 사용할 이유는 없어서 SSH로 설정했다.






3. Usage


이제 어떻게 동작하는지 살펴보자.


> gh issue list -R [OWNER/REPO]



텍스트로 목록을 잘 보여준다.

한글도 잘 나오는 것을 볼 수 있다.



> gh issue view [이슈번호] -R [OWNER/REPO]



텍스트로 본문도 볼 수 있다.


"--web" 옵션을 사용하면 브라우져로 확인할 수도 있다.






사용할 수 있는 명령어들과 옵션들은 아래 사이트에서 확인할 수 있다.


https://cli.github.com/manual/




반응형


업무 관련하여 GitHub의 로그인(인증)을 가지고 웹사이트를 구축하고자 알아보고 있다.

별도의 웹페이지를 구성하는데, 로그인 부분을 GitHub 것을 가지고 오고 싶은 것이다.


구글신님께 여쭤보니 자꾸만 Node.JS 기반의 샘플 코드만 알려주시는데,

미천한 중생인 필자는 구석기 시대를 살고 있는 무식한 종자이기에... 버겨웠다 ㅠㅠ


하지만, 구현은 해야하는데...


필자에게 남은 선택지는 두 가지 !!!

① Node.JS 공부하기

② 무조건 다른 방식 찾아내기


그러다가 우연히 만난 구글신님의 중얼거림..... "PHP로 구현한 샘플도 있는데..."


그래서, 대세 흐름은 아니지만 PHP로 구현한 코드를 직접 한 번 되는지 해보기로 했다.



1. WAS 환경 구축하기

    - Docker 기반으로 nginx + php 환경을 간단히 구축해봤다.

        ① Docker 설치하기 (링크)

        ② Docker-Compose 설치하기 (링크)

        ③ docker-compose.yml 작성


version: '3'


services:


    web:

        image: nginx:latest

        ports:

            - "80:80"

        volumes:

            - ./html:/code

            - ./web/conf/default.conf:/etc/nginx/conf.d/default.conf

            - ./web/log:/var/log/nginx


    php:

        image: php:7.3-fpm

        expose:

            - "9000"

        volumes:

            - ./html:/code


        ④ ./web/conf/default.conf 작성


server {

    listen 80;


    server_name 192.168.100.xxx localhost;


    index index.php index.html;


    root /code;


    location ~ \.php$ {

        try_files $uri =404;

        fastcgi_split_path_info ^(.+\.php)(/.+)$;

        fastcgi_pass php:9000;

        fastcgi_index index.php;

        include fastcgi_params;

        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

        fastcgi_param PATH_INFO $fastcgi_path_info;

    }


    error_log  /var/log/nginx/error.log;

    access_log /var/log/nginx/access.log;

}


    ⑤ ./html/index.php


<?php


echo phpinfo();


?>


    ⑥ 브라우져로 접속해서 확인 → 성공~



※ 진행하다보니.... 집에서 VirtualBox로 생성한 서버에서 테스트를 진행하려다보니 여러가지 제약사항이 생겼다.

   일단 외부에 있는 GitHub.com에서 내부로 들어올 수도 없고..... 포트포워딩 등을 셋팅하면 되겠지만...

   야밤에 귀찮기도 하고... 그래서 외국에 있는 저렴이 서버 호스팅을 이용해서 테스트 진행하기로 했다.




2. GitHub 에서 App 등록하기


    - GitHub 인증을 이용하기 위해서는 GitHub에 "OAuth Apps"로 등록하는 과정이 필요하다.

    - 회사에서는 GitHub Enterprise에서 진행을 해야하지만, 지금 집에서는 GitHub.com을 이용하기로 했다.



    - GitHub.com 로그인 후 계정에서 Settings 메뉴 선택 후 Developer settings 항목을 선택하자



    - 우리가 사용할 것은 OAuth Apps 메뉴이다.



    - 위와 같이 정보를 채우자. (GitHub로 시작하는 이름은 사용할 수 없단다 ^^)

    - 생성할 때 callback URL을 어떻게 해야할지 몰라서 위와 같이 했는데... 실제 구성 時 로그인 페이지의 URL로 작성해주자.




    - 이제 우리에게 필요한 정보를 얻었다!!!




3. 페이지 구성하기


    ① index.php : 첫 접근 페이지

        - 이미 로그인이 되어있으면 main.php 페이지로 전환

        - 로그인을 원하면 login.php 링크 제공

<?php

session_start();


if (isset($_SESSION['github_data'])) {

    header("location: main.php");

}

?>

<a href="login.php">Login with Github</a>


    ② login.php

        - 로그인이 안되어 있으면 GitHub.com으로 보내버리고,

        - 로그인이 되어 있으면 세션에 사용자 정보를 넣고선 main.php로 전환

        - 위에서 생성한 정보는 각자 알맞게 입력!

<?php


$config = array(

    'client_id'     => 'xxx',

    'client_secret' => 'xxx',

    'redirect_url'  => 'http://xxx.xxx.xxx.xxx:8080/login.php',

    'app_name'      => 'WHATWANT GH Login'

);


session_start();


if($_SERVER['REQUEST_METHOD'] == 'GET') {

    if(isset($_GET['code'])) {


        $curl = curl_init('https://github.com/login/oauth/access_token');


        //TO DO: code 값이 없을 경우 처리

        $config['code'] = $_GET['code'];


        curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);

        curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($config));

        curl_setopt($curl, CURLOPT_HTTPHEADER, array("Accept: application/json"));


        $json_response = curl_exec($curl);

        curl_close($curl);



        $token = json_decode($json_response);


        //TO DO: access_token 값이 리턴되지 않을 경우 처리

        $_SESSION['access_token'] = $token->access_token;


        $curl = curl_init("https://api.github.com/user?access_token=".$_SESSION["access_token"]);


        curl_setopt($curl, CURLOPT_HEADER, false);

        curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);

        curl_setopt($curl, CURLOPT_HTTPHEADER, array("Accept: application/json", "User-Agent: WHATWANT App"));


        $json_response = curl_exec($curl);

        curl_close($curl);


        $userdata = json_decode($json_response, true);



        $_SESSION['github_data'] = $userdata;

        header("location: main.php");

    }


    else {


        $url = "https://github.com/login/oauth/authorize?client_id=".$config['client_id']."&redirect_uri=".$config['redirect_url']."&scope=user";

        header("Location: $url");

    }

}


?>


    ③ main.php

        - 세션에 값이 없으면 index.php로 전환

        - 세션에 값이 있으면 정보 출력, 더불어 로그아웃 링크 제공

<?php

session_start();


if (!isset($_SESSION['github_data'])) {

    header("location: index.php");

}

else {


    foreach( $_SESSION['github_data'] as $key => $value ) {

        echo "$key => $value<br>";

    }


    echo "<a href='logout.php'>Logout</a>";

}

?>


    ④ logout.php

        - 세션값 날리고, index.php 페이지로 전환

<?php

session_start();

unset($_SESSION['github_data']);

header("Location: index.php");

?>


일단 급한대로 여기에서 마무리.

아직 구현하지 않은 부분은 구현하는대로 업데이트 하겠음~!!


참고사이트 : https://www.9lessons.info/2014/02/login-with-github-oauth-php.html


반응형

회사에서 Gerrit~GitHub 연계를 위해서 방법을 찾던 中

부서원들이 GitHub Plugin이라는 것이 있다는 것을 알아냈는데... 좀 문제가 있었다.


바이너리가 아니라 빌드를 해서 사용해야한다는 문제인데...

더욱 더 큰 문제는... 빌드가 쉽지는 않다는 사태가...


기본 가이드 링크는 아래와 같다.

   - https://gerrit.googlesource.com/plugins/github/+/refs/heads/stable-2.12/README.md


언제나 그렇지만... 시키는대로 따라할 수가 없어서 문제이지...



[ Action ]


참고할 정보가 있는 기준(?) 레퍼런스...


https://gerrit-review.googlesource.com/Documentation/dev-buck.html

링크가 깨졌다.


그렇지만, 포기하지 않는다!!!

https://review.openstack.org/Documentation/dev-buck.html

여기에서 확인할 수 있었다.



① Git

   - 소스들을 받아오기 위해서는 기본적으로 Git이 필요하다.


$ sudo apt-get install git


② JDK

   - Gerrit은 기본적으로 Java 기반이기에... 가이드에는 JDK7이 필요하다고 되어있다.

   - 무시하고 JDK8로 환경을 맞춰서 했다가 다 망했다..

   - 무조건 JDK7 환경으로 진행을 해라!!!


③ Ant

   - Buck 이라는 빌드 도구를 빌드하기 위해서는 Ant가 필요하다.

   - 응!? Unix is not Unix ?


$ sudo apt-get install ant


④ Gerrit download

   - Gerrit 빌드할 준비를 위해 미리 소스코드를 내려 받는다.

   - 이번 빌드는 2.10 버전을 기준으로 할 것이다.

     (실제로 2.10 버전을 보면 2.10.7 까지 있는데, 우선은 가이드에 있는 2.10.2 버전으로 해보겠다)


$ cd /srv/workspace

$ git clone --recursive https://gerrit.googlesource.com/gerrit

$ cd gerrit

$ git reset --hard v2.10.2



⑤ Buck

   - 이번에 처음 들어본 빌드 도구이다. Buck ?!

   - Facebook 에서 만들었고, 오픈소스로 공개한 것인가 보다.

      . https://buckbuild.com/

      . https://github.com/facebook/buck


$ cd /srv/workspace

$ git clone https://github.com/facebook/buck

$ cd buck

$ git checkout $(cat ../gerrit/.buckversion)

$ ant

$ export PATH=$PATH:/srv/workspace/buck/bin/



⑥ Gerrit Build

   - 이제 Buck으로 Gerrit을 빌드해보자. 안해도 된다. 그냥 해보기.


$ cd /srv/workspace/gerrit

$ buck build gerrit



⑦ maven

   - 뒤에 것들을 진행하기 위해서 이것도 필요하다.


$ sudo apt-get install maven



⑧ GitHub API

   - 이것도 필요하단다...


$ cd /srv/workspace

$ git clone https://github.com/lucamilanesio/github-api.git

$ cd github-api/

$ mvn install -DskipTests=true



⑨ singleusergroup plugin

   - 또 필요한거 빌드 하자.


$ cd /srv/workspace/gerrit

$ cd ./plugins/singleusergroup

$ git reset --hard v2.10.2

$ cd /srv/workspace/gerrit

$ buck build plugins/singleusergroup/



⑩ github plugin

   - 이제 본게임으로 들어가자

   - 최신 버전으로는 빌드가 안되어 알아낸 방법..... 2.10 버전으로 하면 된다.


$ cd /srv/workspace

$ git clone https://gerrit.googlesource.com/plugins/github

$ cd github

$ git checkout -b stabe-2.10 origin/stable-2.10

$ mvn install


...


[INFO] ------------------------------------------------------------------------

[INFO] Reactor Summary:

[INFO] 

[INFO] Gerrit Code Review - GitHub integration ........... SUCCESS [2.338s]

[INFO] Gerrit Code Review - GitHub OAuth login ........... SUCCESS [22.009s]

[INFO] Gerrit Code Review - GitHub plugin ................ SUCCESS [18.869s]

[INFO] ------------------------------------------------------------------------

[INFO] BUILD SUCCESS

[INFO] ------------------------------------------------------------------------

[INFO] Total time: 44.113s

[INFO] Finished at: Mon Mar 27 00:09:03 KST 2017

[INFO] Final Memory: 31M/91M

[INFO] ------------------------------------------------------------------------


빌드까지는 성공~

이후 설치 및 셋팅은 다음 기회에~^^


github-oauth-2.10.3.jar

original-github-oauth-2.10.3.jar

github-plugin-2.10.3.jar

original-github-plugin-2.10.3.jar

github-api-1.69.jar

github-api-1.69-SNAPSHOT.jar

singlegroup.tar.gz

singlegroup.tar.gz

singlegroup.tar.gz

github-oauth-2.13.jar

original-github-oauth-2.13.jar

github-plugin-2.13.jar

original-github-plugin-2.13.jar

singleusergroup.tar.gz

github-api-1.69-SNAPSHOT.jar

singlegroup.tar.gz


반응형

GitHub는 무료로 서비스를 해주지만, 해당 서비스를 내 서버에서 운영할 수는 없다.
물론 돈을 주면 가능하긴 하다지만... 저렴한 인생으로써는...^^

그래서 찾아보던 중 오픈소스 프로젝트로 진행중인 GitLab을 알게 되었다.
설치 과정이 단순하진 않지만... 나만의 GitHub 구축을 위해서 !!!


공식 홈페이지에 설치 가이드가 너무나 잘 나와 있다.
   - https://github.com/gitlabhq/gitlabhq/blob/master/doc/install/installation.md


앞에서 작성한 포스트를 참고해도 좋다.
   - http://whatwant.tistory.com/332



01. 필수 패키지 설치

$ sudo apt-get install build-essential zlib1g-dev libyaml-dev libssl-dev libgdbm-dev libreadline-dev libncurses5-dev libffi-dev curl openssh-server redis-server checkinstall libxml2-dev libxslt-dev libcurl4-openssl-dev libicu-dev logrotate python-docutils



02. Git 설치

   - http://whatwant.tistory.com/658


03. Ruby 설치

$ sudo su -
$ curl -L https://get.rvm.io | sudo bash -s stable
$ source /etc/profile
$ rvm install 2.0.0
$ rvm use 2.0.0
$ rvm --default use 2.0.0 

 

$ nano /etc/environment

 

PATH="......:/usr/local/rvm/bin"

 

$ gem install bundler --no-ri --no-rdoc



04. 계정 만들기

$ adduser --disabled-login --gecos 'GitLab' git



05. GitLab-Shell 설치하기

$ cd /home/git

$ sudo -u git -H git clone http://github.com/gitlabhq/gitlab-shell.git -b v1.7.9

$ cd gitlab-shell

$ sudo -u git -H cp config.yml.example config.yml
$ sudo -u git -H nano config.yml

 

...
gitlab_url: "http://localhost/"
...

 

$ sudo su - git
$ cd /home/git/gitlab-shell
$ ./bin/install



08. Database

   - 필자의 취향으로 일단 PostgreSQL로 진행해보자.

$ sudo apt-get install postgresql libpq-dev

$ sudo -u postgres psql -d template1

 

# CREATE ROLE git LOGIN ENCRYPTED PASSWORD 'password' NOINHERIT VALID UNTIL 'infinity';
# CREATE DATABASE gitlabhq_production OWNER git;
# \q


   - 접속이 잘 되는지 테스트 함 해보자.

$ sudo -u git -H psql -d gitlabhq_production



09. GitLab 다운로드

$ cd /home/git
$ sudo -u git -H git clone https://github.com/gitlabhq/gitlabhq.git -b 6-3-stable gitlab

 


10. GitLab 환경 설정

$ cd /home/git/gitlab

$ sudo -u git -H cp config/gitlab.yml.example config/gitlab.yml


   - 도메인을 지정하고 싶으면 다음처럼 수정 작업을 하면 된다.

$ sudo -u git -H nano config/gitlab.yml


...
   host: localhost
...


   - 권한 조정이 필요하다.

$ sudo chown -R git log/
$ sudo chown -R git tmp/
$ sudo chmod -R u+rwX  log/
$ sudo chmod -R u+rwX  tmp/


   - satellites를 위한 디렉토리를 하나 생성하고, 필요한 디렉토리를 만들자.

$ sudo -u git -H mkdir /home/git/gitlab-satellites


   - 필요한 디렉토리를 추가로 더 만들자.

$ cd /home/git/gitlab

$ sudo -u git -H mkdir tmp/pids/
$ sudo -u git -H mkdir tmp/sockets/
$ sudo chmod -R u+rwX  tmp/pids/
$ sudo chmod -R u+rwX  tmp/sockets/

$ sudo -u git -H mkdir public/uploads
$ sudo chmod -R u+rwX  public/uploads


   - 엄청 귀찮넹... 스크립트로 만들어서 제공하지....

   -  Unicorn 환경 설정을 진행하자.

$ sudo -u git -H cp config/unicorn.rb.example config/unicorn.rb


   - 고성능이 필요하면 cluster mode를 활성화 하자. 방법은 간단하다 ?!

$ sudo -u git -H nano config/unicorn.rb


   - worker_processes를 3으로 변경하면 된다 ?!

...
worker_processes 2
...


   - 이번에는 Rack attack config를 진행하자.

$ sudo -u git -H cp config/initializers/rack_attack.rb.example config/initializers/rack_attack.rb


   - rack attack middleware를 설정하고 싶으면 다음과 같이 하자.

$ sudo -u git -H nano config/application.rb


   - 주석처리된 부분을 찾아서 주석 표시를 지우면 된다고 한다. (뭘 하는지는 아직 모르겠다.)

...
   # config.middleware.use Rack::Attack
...



11. 기본 사용자 설정

   - Git 사용자 설정을 하자.

$ sudo -u git -H git config --global user.name "GitLab"
$ sudo -u git -H git config --global user.email "gitlab@whatwant.com"
$ sudo -u git -H git config --global core.autocrlf input


   - 위 설정은 다음의 설정에서도 적용이 필요하다.

$ sudo -u git -H nano config/gitlab.yml



12. Database 환경 파일 설정

   - PostgreSQL을 사용하는 경우이다.

$ sudo -u git cp config/database.yml.postgresql config/database.yml


   - git 계정에서만 읽어볼 수 있게 하기 위한 권한 설정을 하자.

$ sudo -u git -H chmod o-rwx config/database.yml



13. Install Gems

$ sudo su - git
$ cd /home/git/gitlab
$ bundle install --deployment --without development test mysql aws



14. Database 생성

$ sudo su - git
$ cd /home/git/gitlab
$ bundle exec rake gitlab:setup RAILS_ENV=production


   - 설치과정 끝에 나오는 메시지를 잘 확인해야 한다.

...
Administrator account created:

login............admin@local.host
password.....5iveL!fe



15. Init Script 설정하기

$ cd /home/git/gitlab
$ sudo cp lib/support/init.d/gitlab /etc/init.d/gitlab
$ sudo chmod +x /etc/init.d/gitlab
$ sudo update-rc.d gitlab defaults 21



16. log 관리하기

$ sudo cp lib/support/logrotate/gitlab /etc/logrotate.d/gitlab



17. 환경 설정이 잘 되었는지 점검

   - 환경 설정이 잘 되었는지 확인을 해야하는데...
   - 우선 우리는 기본 설정값과 다른 git 경로부터 수정하고 확인을 하자.

$ sudo -u git nano config/gitlab.yml

 

...
git:
   bin_path: /usr/local/bin/git
...


   - git 경로를 제대로 적어주고나서 환경 설정 값들을 확인해보자.
 

$ sudo su - git
$ cd /home/git/gitlab
$ bundle exec rake gitlab:env:info RAILS_ENV=production

 


18. 시작

   - 이후 부터는 재부팅 될 때 자동으로 실행이 되겠지만, 지금은 직접 한 번 실행을 해보자.

$ sudo service gitlab start

 

Starting the GitLab Unicorn web server...
Starting the GitLab Sidekiq event dispatcher...
The GitLab Unicorn webserver with pid 1478 is running.
The GitLab Sidekiq job dispatcher with pid 1506 is running.
GitLab and all its components are up and running.



19. 상태 점검

   - green으로 나오면 좋은 것이다 ^^

$ sudo su - git
$ cd /home/git/gitlab
$ sudo -u git -H bundle exec rake gitlab:check RAILS_ENV=production



20. Nginx


http://tuwlab.com/10476
http://kkame.kr/106
http://blog.naver.com/PostView.nhn?blogId=delltin&logNo=90184174945

   - 개인적으로 Apache2의 대용품(?)으로 좋아하다가 요즘은 살짝 관심을 끊은 Nginx ... ^^
   - GitLab은 공식적으로 웹서버로 Nginx를 추천한다고 한다.

$ sudo apt-get install nginx


   - 설정도 진행을 하자.

$ sudo cp lib/support/nginx/gitlab /etc/nginx/sites-available/gitlab
$ sudo ln -s /etc/nginx/sites-available/gitlab /etc/nginx/sites-enabled/gitlab


   -  수정할 것도 있다.

$ sudo nano /etc/nginx/sites-available/gitlab

 

...
   server_name localhost;
...


   - 재시작 !

$ sudo service nginx restart



21. 사이트 테스트

   - [ http://localhost/ ] 접속


   - ID / Password = [ admin@local.host / 5iveL!fe ]


   - 패스워드 재설정 창이 나온다.
   - 여기에서 재설정을 하면 다시 로그인 창이 나온다. 다시 로그인을 하면 된다.


   - 드디어 제대로 된 화면이 나왔다 !!!



헥헥... 너무 힘들다.... 이거, 반드시 스크립트 제공해줘야 한다 !!!

여하튼 일단 페이지 빵! 뜨는 것 까지는 성공~

반응형
 
오픈소프트웨어 등을 다운받을 때에 가장 자주 접하던 사이트가 예전엔 SourceForge.com이었다.
하지만, 최근에는 GitHub.com이 대세이다.

심지어,
프로그래머 경력 중에서 요즘 가장 각광받는 것이 GitHub.com을 통해서 공개하고 있는 프로젝트가 있는지라고 한단다.

GitHub에 대해서 한 번 살펴보도록 하자.


1. Site

     - 일단 사이트에 접속하자.



     - 상단의 [ Signup and Pricing ]을 클릭하면 된다.


     - 분명히 GitHub는 무조건 무료로 운영되는 자원봉사 단체는 아니다.
       개성강한 많은 사람들이 근무하고 있는 회사다(https://github.com/about/team).
     - 하지만, open source를 개발하는 입장에서는 천국과도 같은 곳이기도 하다.

     - 오픈 소스가 아닌 사적인(?) 프로젝트를 운영하기 위해서도 돈을 주고 repository를 할당 받아야 한다.
     - 또, GitHub 시스템 자체는 오픈 소스는 아니다. 돈을 주고 구매(?)해야만 하는 시스템이다.
       물론 GitHub와 유사한 시스템을 위한 GitLab HQ와 같은 오픈소스 프로젝트들은 있다(http://gitlabhq.com/).



2. Create account

     - 뭐 여하튼 0달러의 유지비로 사용가능한 "Create a free account"를 선택하면 된다.


     - 입력할 사항이 정말 없다. 정말 친절하고도 바람직한 사이트다.
     - 가뿐하게 입력하고 [ Create an account ]를 누르면 된다.


     - 처음엔 정말 깜짝 놀랐다. "아니~ 이렇게 귀여운 이미지들은 대체 뭐야?!"




이걸로 가입 과정은 끝~

응!? 너무 쉽다고?! 뭐 이 다음부터가 진짜로 GitHub에 대한 이야기가 될 것이다.

SSH 공개키도 등록하고, Repository도 만들고 프로젝트도 공유하고, 내 프로젝트에 다른 사람들을 참여도 시키고...
다른 프로젝트를 Fork하기도 하고... 등등...

반응형

+ Recent posts