GitHub Readme 순간 미리보기 구성 및 사용

4865 단어
GitHub은 웹 사이트에 프로젝트를 표시할 때 프로젝트README 및 기타 마크다운 파일을 HTML로 렌더링합니다. 이러한 파일은 커밋되고 푸시되어야 개발자가 불필요하고 원치 않는 커밋이 발생할 수 있는 결과를 볼 수 있습니다. 이 게시물에서는 로컬에서 GitHub Readme Instant Preview 미리보기를 위한 GitHub-flavored Markdown (GRIP) 도구 설치 및 사용에 대해 설명합니다. 개발자가 인증되지 않은 사용자에 대해 GitHubthrottles에 부딪히는 것을 방지하기 위해 GitHub에 대한 인증을 활성화하는 GRIP 특정 구성 파일을 제공합니다.

설치



GRIP 도구는 널리 사용되는 여러 패키지 관리자에서 설치할 수 있습니다. Home Brew로 MacOS에 설치하려면:

$ brew install grip



또는 데비안에서:

$ apt install grip



몇 가지 예를 들자면.

용법



사용법은 간단합니다. 작업 디렉토리를 README.md 또는 다른 마크다운 및 호출grip이 포함된 프로젝트 디렉토리로 변경합니다.

$ grip
 * Serving Flask app "grip.app" (lazy loading)
 * Environment: production
   WARNING: This is a development server. Do not use it in a production deployment.
   Use a production WSGI server instead.
 * Debug mode: off
 * Running on http://localhost:6419/ (Press CTRL+C to quit)



그리고 http://localhost:6419/(또는 출력에 지정된 URL)로 이동합니다. 로컬 프로젝트에서 실행되는 GRIP 의 출력은 https://github.com/allen-ball/spring-boot-web-server 과 비교하기 위해 아래에 표시됩니다.



(구성 없이) 구성된 대로 GRIP은 인증 없이 GitHub API를 호출합니다. GitHub는 집중적인 읽기/검토 주기에 영향을 미칠 수 있는 인증되지 않은 요청을 시간당 60개로 제한합니다(특히 개발자가 인증되지 않은 방식으로 다른 GitHub 리소스를 동시에 사용하는 경우). 다음 섹션에서는 인증 구성에 대해 설명합니다.

입증



GRIP${HOME}/.grip/settings.py 스크립트(있는 경우)를 호출하여 인증에 사용할 USERNAMEPASSWORD를 결정합니다. 아래 스크립트는 단순히 스크립트에 원시 값을 할당하는 것보다 더 안전한 옵션을 제공합니다.

GitHub은 현재 개발자create a personal access token를 권장(때로는 요구)하고 또한 caching GitHub credentials in Git(Mac, Windows 및 Linux용)에 대한 프로세스를 제공합니다. 이 두 절차를 완료하면 개발자의 자격 증명을 https 명령을 통해 GitHubgit credential fill 작업에 사용할 수 있습니다. 아래의 ${HOME}/.grip/settings.py 스크립트(이 Gist로 사용 가능)는 GRIP에 대한 캐시된 자격 증명을 검색합니다.

# settings.py
# https://github.com/joeyespo/grip

# Uses "git credential fill" to populate USERNAME and PASSWORD

def git_credential_fill():
    import subprocess
    argv = ["git", "credential", "fill"]
    process = subprocess.Popen(argv, text = True, stdin = subprocess.PIPE, stdout = subprocess.PIPE, stderr = subprocess.PIPE)
    output = process.communicate(input = "protocol=https\nhost=github.com\n")[0].strip()
    map = dict(item.split("=") for item in output.splitlines())

    return (map["username"], map["password"])

(USERNAME, PASSWORD) = git_credential_fill()



알림GRIP은 구성된 경우 메시지Using credentials를 인쇄합니다.

$ grip
 * Using credentials: allen-ball
 * Serving Flask app "grip.app" (lazy loading)
 * Environment: production
...

좋은 웹페이지 즐겨찾기