GitHub 작업 자동화 Python 프로젝트의 코드 포맷을 사용하는 방법 - 연구

이것은 초보자의 우호적인 게시물입니다. 파이썬 프로젝트에서 GitHub 조작을 사용하여 파이썬 인코딩 스타일을 따르는 것이 얼마나 쉬운지 알려 드리겠습니다!

자동 YAPF 소개


우선 GitHub 작업과 그에 따른 마력에 대해 살펴보겠습니다.😃?

GitHub 작업


GitHub 작업은 저장소에서 소프트웨어 개발 워크플로우를 자동으로 사용자 정의하고 실행할 수 있는 신기한 기능입니다.
그런데 어이?언행이 다른 것은 무엇입니까?그렇다면 작업 흐름이 없는 조작은 무엇일까?그래, 네 말이 맞다!GitHub가 제대로 작동하려면 워크플로우를 사용해야 하지만 워크플로우는 무엇입니까?
워크플로우는 하나 이상의 작업으로 구성된 자동화된 프로세스입니다.이제 이 작업들은 GitHub 동작을 계산하는 트리거처럼 작동할 수 있다. 마치 메인 지점을 푸시하는 것과 같다.
워크플로우 파일에는 YAML 구문이 사용되고 있어야 합니다.yml 또는.yaml 파일 확장자.
GitHub 작업을 적용하려면 워크플로우 파일을 저장소의 .github/workflows 디렉토리에 저장해야 합니다.

GitHub 구축 작업 소개


Note: In order to use an existing GitHub action all you require is just a Workflow YAML file in .github/workflows. The files mentioned in this part of the blog are required when you start building your own GitHub Actions 😄


거의 모든 GitHub 작업을 수행하려면 다음 파일이 필요합니다.
  • Dockerfile-GitHub 동작은 세 가지 유형의 Docker 동작, Javascript 동작과 복합 운행 단계 동작이 있다.우리의 예에서, 우리는 Docker 조작을 사용할 것입니다. 따라서 Dockerfile은 이 조작을 실행하는 용기 환경을 정의하는 데 사용됩니다.
  • 행동.yml-이것은 입력, 출력, 우리가 조작하는 입구점, 그리고 조작 명칭, 설명, 저자 이름 등 기타 세부 사항을 정의할 것이다
  • 스크립트 - 작업을 수행하려면 스크립트가 필요할 수 있습니다. 예를 들어 entrypoint.sh
  • 라는 입구점 스크립트가 필요합니다.
  • 자술.md-이것은 선택할 수 있지만, 만약 우리가 시장에서 우리의 행동을 발표하고 싶다면, 우리는 그것을 필요로 한다.자술한 문서.md 파일은 실행 작업에 필요한 예시를 제공하는 데 도움이 됩니다.
  • 이것은 GitHub 작업의 기본 프레임워크를 구축하는 방법입니다.첫 번째 동작을 시작하고 싶다면 이 공식적인 헬로월드 를 보세요.
    우리가 사용할 autoyapf GitHub 작업 흐름의 주요 부분을 준비하고 설정하도록 하겠습니다.

    지도의 autoyapf는 무엇입니까?


    는yapf의GitHub 작업이고yapf는개원 도구로PEP8 스타일 가이드에 맞게 파이썬 코드를 자동으로 포맷할 수 있습니다.본질적으로 말하자면, 알고리즘은 코드를 스타일 가이드에 부합되는 가장 좋은 형식으로 다시 포맷한다. 설령 원시 코드가 스타일 가이드를 위반하지 않더라도.
    이 동작은 밀기 트리거와 함께 사용하기 위한 것이다.간단하게 말하면 매번 관리자가 자신의 플랫폼에서 코드를 전송하거나 공헌자의 추출 요청을 합병할 때마다yapf도구를 사용하여 PEP8스타일의 준칙을 자동으로 포맷한다.Python과 관련된 프로젝트의 공헌자와 관리자에게 이것은 윈윈의 국면입니다!

    자동 YAPF 항목 선택


    첫 번째 단계에서는 항상 GitHub 작업을 사용할 저장소를 선택합니다.
    GitHub 작업은 python 프로젝트를 위한 것이기 때문에 최근에 만든 python 프로젝트 를 사용합니다.

    sedpy/ mritunjaysharma394


    sed(흐름 편집기)의 크로스플랫폼 대체 방안 구축


    가죽을 쑤셔 넣다


    sedpy




    [ sedpy는 BSD와 GNU 시스템에서 보다 간단하고 유연한 유선 편집을 할 수 있도록 의 크로스플랫폼 대체 방안으로 구축된 개원 프로젝트이다.

    무엇이 sed이고, 무엇이 sedpy입니까?

    sed 명령은 스트림 편집기의 줄임말로 표준 입력이나 파일에서 온 텍스트를 편집합니다.sed는 비상호작용으로 한 줄씩 편집합니다.
    이것은 명령을 호출할 때 모든 편집 결정을 내리고sed가 자동으로 방향을 실행한다는 것을 의미합니다.이것은 보기에 곤혹스럽거나 직관적이지 않을 수도 있지만, 특히 스크립트나 자동화 작업 흐름의 일부로서 매우 강력하고 빠른 텍스트 변환 방법이다.sed의 문제는 그것이 순수한 크로스플랫폼이 아니라는 데 있다.Linux는 GNU 기반sed을 사용하고 macOS는 BSD 버전sed을 사용합니다.따라서 두 가지 모두 문법과 용법에서 상당히 중요한 차이가 있다.동시에...
    sed

    GitHub에서 보기 워크플로우 준비

  • 저장소로 이동하여 Actions 탭을 클릭합니다.이것은 자신이 작업 흐름을 설정하는 것과 같은 옵션을 반영할 것이다.그것을 클릭합니다.

  • This will create a YAML file in the path:
    .github/workflows/main.yml


    파일을 원하는 이름으로 바꿀 수 있습니다. 이 경우 autoyapf로 이름을 지정합니다.main이 아니라 yml입니다.yml.
    이제 autoyapf로 뛰어들어봅시다.yml 파일:
    name: Formatting python code
    on:
      push:
        paths:
        - '**.py'
    
    그 전에 우리가 한 일은 다음과 같다.
  • 워크플로의 이름: sed
  • 워크플로우를 트리거하는 이벤트를 정의합니다.이 경우python 파일이 저장소로 전송될 때 촉발됩니다.
  • 다음 단계는 작업을 정의하는 것입니다.
    jobs:
      autoyapf:
        runs-on: ubuntu-latest
        steps:
          - uses: actions/checkout@master
            with:
              ref: ${{ github.head_ref }}
          - name: autoyapf
            id: autoyapf
            uses: mritunjaysharma394/autoyapf@v2
            with:
              args: --style pep8 --recursive --in-place .
          - name: Check for modified files
            id: git-check
            run: echo ::set-output name=modified::$(if git diff-index --quiet HEAD --; then echo "false"; else echo "true"; fi)
          - name: Push changes
            if: steps.git-check.outputs.modified == 'true'
            run: |
              git config --global user.name 'Mritunjay Sharma'
              git config --global user.email '[email protected]'
              git remote set-url origin https://x-access-token:${{ secrets.GITHUB_TOKEN }}@github.com/${{ github.repository }}
              git commit -am "Automated autoyapf fixes"
              git push
    
    다음은 상기 코드 세션이 하는 거의 모든 일에 대한 간략한 세부 사항입니다.
  • 워크플로우에서 수행해야 하는 작업은 GitHub 관리 루틴에서 실행됩니다. 이 예에서는 Formatting python code 입니다.
  • jobs:
      autoyapf:
        runs-on: ubuntu-latest
    
  • 우리는 다음 작업ubuntu-latest을 정의했다.
  • 워크플로우를 수행할 저장소를 확인하는 첫 번째 단계입니다.나는 내부에서 그것을 사용하기 때문에, 이 저장소의 steps 지점을 검사할 것이다
  • steps:
          - uses: actions/checkout@master
            with:
              ref: ${{ github.head_ref }}
    
  • 다음 단계에서 GitHub 작업 확인
    sedpymaster 도구를 사용하여 다음과 같은 모든 포맷을 수행합니다. yapf
  • - name: autoyapf
            id: autoyapf
            uses: mritunjaysharma394/autoyapf@v2
            with:
              args: --style pep8 --recursive --in-place .
    
  • 이 절차는 상기 절차가 코드를 변경했는지 확인합니다.만약 그것이 어떤 변경을 했다면, 다음 단계는 변경 사항을 args: --style pep8 --recursive --in-place . 저장소로 보낼 것입니다.
  • - name: Check for modified files
            id: git-check
            run: echo ::set-output name=modified::$(if git diff-index --quiet HEAD --; then echo "false"; else echo "true"; fi)
    
  • 이것은 상술한 조건을 검사할 것입니다. run 유틸리티를 사용하여 변경 사항을 전송할 것입니다. 이 유틸리티는 sedpy 파일에서 유사한 터미널 명령을 사용할 수 있도록 합니다.
  •       - name: Push changes
            if: steps.git-check.outputs.modified == 'true'
            run: |
              git config --global user.name 'Mritunjay Sharma'
              git config --global user.email '[email protected]'
              git remote set-url origin https://x-access-token:${{ secrets.GITHUB_TOKEN }}@github.com/${{ github.repository }}
              git commit -am "Automated autoyapf fixes"
              git push
    
    우후!💃 전체 파일은 다음과 같이 워크플로우.yml를 완료했습니다.
    
    name: Formatting python code
    on:
      push:
        paths:
        - '**.py'
    jobs:
      autoyapf:
        runs-on: ubuntu-latest
        steps:
          - uses: actions/checkout@master
            with:
              ref: ${{ github.head_ref }}
          - name: autoyapf
            id: autoyapf
            uses: mritunjaysharma394/autoyapf@v2
            with:
              args: --style pep8 --recursive --in-place .
          - name: Check for modified files
            id: git-check
            run: echo ::set-output name=modified::$(if git diff-index --quiet HEAD --; then echo "false"; else echo "true"; fi)
          - name: Push changes
            if: steps.git-check.outputs.modified == 'true'
            run: |
              git config --global user.name 'Mritunjay Sharma'
              git config --global user.email '[email protected]'
              git remote set-url origin https://x-access-token:${{ secrets.GITHUB_TOKEN }}@github.com/${{ github.repository }}
              git commit -am "Automated autoyapf fixes"
              git push
    
    이 GitHub 작업의 실제 상황을 보려면 다음 작업 예제를 참조하십시오.

    만약 당신이 이 동작을 좋아한다면, 마음대로 별 하나를 남겨 주십시오. 그렇습니다. 당신도 그것을 위해 공헌할 수 있다면 그것은 축복이 될 것입니다!다음 링크:




    자동 YAPF/ mritunjaysharma394


    자동으로 yapf 형식을 설정합니다.




    데이터 경로 설명 파일

    자동 YAPF


    autoyapf


    당신의 Python 코드가 스타일 준칙을 따랐는지 걱정됩니까?좋아, 너 지금 이렇게 할 필요 없어.https://github.githubassets.com/images/icons/emoji/unicode/1f604.png">😄


    autoyapf는 GitHub 작업입니다. 이것은 PEP 8 스타일 가이드에 맞게 파이썬 코드를 자동으로 포맷할 수 있는 소스 오픈 도구입니다.
    본질적으로 말하자면, 알고리즘은 코드를 스타일 가이드에 부합되는 가장 좋은 형식으로 다시 포맷한다. 설령 원시 코드가 스타일 가이드를 위반하지 않았다 하더라도


    이 동작은'추'트리거와 협조하여 사용하기 위한 것이다.간단하게 말하면 매번 관리자가 자신의 플랫폼에서 코드를 전송하거나 공헌자의 요청을 합병할 때마다 이렇다
    yapf 도구를 사용하여 PEP 8 스타일 안내서를 사용하여 자동으로 포맷합니다.Python과 관련된 프로젝트의 공헌자와 관리자에게 이것은 윈윈의 국면입니다!네, 잘 들었어요


    이 문장




    yapf








    나는 이 블로그가 당신이 GitHub 조작의 작업 흐름을 만드는 데 도움을 줄 수 있기를 바란다. (우리의 예에서 autoyapf) 당신은 이미 놀라운 것을 배웠다!질문, 제안 또는 피드백이 있으면 언제든지 여기를 클릭하십시오:!

    시간을 내서 이 블로그를 읽어 주셔서 감사합니다!좋은 기분 다 드릴게요.✨

    좋은 웹페이지 즐겨찾기