GitHub Actions를 사용하여 Python 코드 서식 자동화

내 워크플로우



깃허브 액션을 구축한 것은 이번이 처음인데 놀라운 새로운 것들을 배울 수 있게 해준 이 해커톤에 정말 감사합니다 😇 !

내가 만든 조치는 autoyapf 으로 알려져 있습니다. PEP 8 스타일 가이드를 준수하도록 Python 코드의 형식을 자동으로 지정하는 오픈 소스 도구인 yapf의 GitHub 작업입니다.

'푸시' 이벤트가 트리거될 때마다 Python 코드 서식을 자동화하는 간단한 워크플로를 만들었습니다. 간단히 말해서 유지 관리자가 자신의 플레이그라운드에서 코드를 푸시하거나 기여자의 풀 요청을 병합할 때마다 yapf 도구를 사용하여 PEP 8 스타일 지침에 따라 자동으로 형식이 지정됩니다. 이 조치는 Python과 관련된 프로젝트의 기여자와 유지 관리자 모두에게 윈-윈 상황입니다!

샘플 워크플로 yaml 파일:


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

autoyapf GitHub는 이름이 sedpy인 내 또 다른 오픈 소스 Python 프로젝트에서 사용되고 있습니다.

아래에서 찾을 수 있는 위의 프로젝트에서 autoyapf GitHub 작업이 사용되는 방법을 설명하는 자세한 블로그를 작성했습니다.





제출 카테고리:



메인테이너 머스트해브

Yaml 파일 또는 코드 링크




mritunjaysharma394 / 오토야프


yapf 서식 자동화.





오토야프




Python 코드가 스타일 지침을 따르고 있는지 걱정되십니까? 글쎄, 당신은 지금 그것을 할 필요가 없습니다 😄
autoyapf는 PEP 8 스타일 가이드를 준수하도록 Python 코드의 형식을 자동으로 지정하는 오픈 소스 도구인 yapf에 대한 GitHub 작업입니다.
원래 코드가 스타일 가이드를 위반하지 않았더라도 코드를 가져와서 스타일 가이드를 준수하는 최상의 형식으로 다시 포맷하는 것은 본질적으로 알고리즘입니다.
이 작업은 '푸시' 트리거와 함께 사용하도록 설계되었습니다. 간단히 말해서 유지 관리자가 자신의 플레이그라운드에서 코드를 푸시하거나 기여자의 풀 요청을 병합할 때마다
yapf 도구를 사용하여 PEP 8 스타일 지침에 따라 자동으로 형식이 지정됩니다. 이 조치는 Python과 관련된 프로젝트의 기여자와 유지 관리자 모두에게 윈-윈 상황입니다! 네, 잘 들었습니다!
이것…

View on GitHub

추가 리소스/정보



[참고:] # (워크플로를 사용하는 모든 오픈 소스 프로젝트에 연결해야 합니다!)

워크플로우는 다음에서 사용 중입니다.



  • mritunjaysharma394 / 세피


    sed(스트림 편집기)의 교차 플랫폼 대안 구축





    세피







    [ sedpy는 BSD 및 GNU 시스템에서 보다 쉽고 유연한 스트림 라인 편집을 위해 sed의 교차 플랫폼 대안으로 구축되는 오픈 소스 프로젝트입니다.

    sed는 무엇이며 sedpy는 무엇입니까?


    스트림 편집기의 줄임말인 sed 명령은 표준 입력 또는 파일에서 오는 텍스트에 대한 편집 작업을 수행합니다. sed는 한 줄씩 비대화식 방식으로 편집합니다.
    즉, 명령을 호출할 때 모든 편집 결정을 내리고 sed가 지시를 자동으로 실행합니다. 이것은 혼란스럽거나 직관적이지 않은 것처럼 보일 수 있지만 특히 스크립트 또는 자동화된 워크플로의 일부로 텍스트를 변환하는 매우 강력하고 빠른 방법입니다.sed의 문제는 순수한 크로스 플랫폼이 아니라는 것입니다. Linux는 GNU 기반sed을 사용하는 반면 macOS에는 BSD 버전sed이 있습니다. 결과적으로 둘 다 상당히 중요한 구문 및 사용법 차이가 있습니다. 동시에 sed

    View on GitHub




  • 나만자인2606 / 대청소






  • 또한 RTEMS에서 사용되는 것으로 간주되고 있습니다.



  • RTEMS / rtems 소스 빌더


    소스에서 도구 및 패키지를 빌드합니다.






    RTEMS Tools From Source
    -----------------------
    The RTEMS Source Builder is a tool to aid building packages from source used by
    the RTEMS project. It helps consolidate the details you need to build a package
    from source in a controlled and verifiable way. The tool is aimed at developers
    of software who use tool sets for embedded type development and is not limited
    to building just for RTEMS. Embedded development typically uses cross-compiling
    tool chains, debuggers, and debugging aids. Together we call these a 'tool
    set'. The RTEMS Source Builder is not limited to this role but designed to fit
    with-in this specific niche. It can be used outside of the RTEMS project and we
    welcome this happening in other open source or commercial projects
    The project is part of the RTEMS Project. The project's websites are
     RTEMS Project Website:
       https://www.rtems.org/
    
     GIT Source Repository:
       https://git.rtems.org/rtems-source-builder.git/
    
     Documentation:
       https://docs.rtems.org/branches/master/rsb/index.html
    
     Bugs:
       https://devel.rtems.org/query?component=RSB
    
    Please refer


    View on GitHub


  • 이렇게 소중한 시간을 내주셔서 정말 감사합니다!

    개선을 위한 피드백과 제안을 자유롭게 공유해 주세요! 💃

    좋은 웹페이지 즐겨찾기