GitHub 모델이 오픈 소스 관리자가 중요한 것에 집중하는 데 도움이되는 방법

GitHub 모델이 오픈 소스 관리자가 중요한 것에 집중하는 데 도움이되는 방법

오픈 소스는 열정과 끈기에 대해 실행됩니다. 관리자는 심사 문제에 나타나고, 기부금을 검토하고, 복제를 관리하며, 프로젝트를 계속하는 조용한 작업을 수행하는 자원 봉사자입니다.

대부분은 커뮤니티 관리자가 될 계획이 아닙니다. 그러나 그들은 유용한 것을 만들고 공유했으며 사람들이 그것에 따라 시작했을 때 머물 렀습니다. 그것이 제작자가 청지기가되는 방법입니다.

그러나 프로젝트가 커지면 수축 할 시간이 줄어 듭니다. 대신, “이것은 #1234″주석의 복제처럼 보이며, 재생산 단계가 누락되고 수동으로 레이블링되는 문제를 묻고 있습니다. 필요한 작업입니다. 그러나 프로젝트 나 오픈 소스에 대한 당신의 사랑을 촉발 한 것은 아닙니다.

그렇기 때문에 GitHub 모델을 구축 한 이유는 다음과 같습니다. AI를 사용하여 코드 관리의 반복적 인 부분을 자동화하는 데 도움이되므로 코드가 살아남은 곳 및 워크 플로우에서 처음부터 여기에 가져온 것에 집중할 수 있습니다.

관리자가 우리에게 말한 것

우리는 AI 요구에 대한 주요 오픈 소스 프로젝트의 500 명 이상의 관리자를 조사했습니다. 그들이보고 한 내용은 다음과 같습니다.

  • 60%는 문제 심사에 대한 도움을 원합니다 – 라벨링, 분류 및 흐름 관리
  • 30%는 중복 탐지가 필요합니다. 비슷한 문제를 자동으로 찾아서 연결합니다.
  • 10%가 원하는 스팸 보호 – 저품질 기부금 필터링
  • 5% 슬로프 감지가 필요합니다 – 소음을 더하는 저품질 풀 요청 식별

설문 조사에 참여한 사람들은 AI가 두 번째 눈으로 작용하고 요청하지 않는 한 개입하지 않기를 원한다고 지적했다. 그들은 또한 비슷한 문제를 찾고, 최소한의 번식을 돕는 것이 가장 중요하다고 말했다. 주제 또는 기능을 기반으로 한 클러스터링 문제도 일부에게 가장 중요한 관심사 일 수 있습니다.

Github 모델 + Github 조치 = 연속 관리자 지원 방법

우리는 CI/CD 변환 테스트 및 배포와 마찬가지로 자동화 된 AI 워크 플로우를 사용 하여이 패턴 연속 AI를 호출합니다. GitHub 모델 및 GitHub 작업을 사용하면 오늘 적용 할 수 있습니다.

다음은 지속적인 AI가 관리자 (귀하!)의 프로젝트 관리를 도울 수있는 방법입니다.

다음 예제는 프로젝트에 쉽게 복사하여 붙여 넣을 수 있도록 설계되었습니다. 저장소 또는 조직에 GitHub 모델이 활성화되어 있는지 확인한 다음 Yaml을 Repo의 .github/Workflows 디렉토리에 복사하십시오. 프로젝트에 필요에 따라 이러한 코드 블록을 사용자 정의하십시오.

권한 추가 : 모델 : 워크 플로에서 읽기 Yaml을 읽으면 내장 Github_token을 사용하여 모델을 호출 할 수 있습니다. 대부분의 프로젝트에는 특별한 설정 또는 외부 키가 필요하지 않습니다.

자동 문제 중복 제거

문제: 당신은 최대 세 가지 새로운 문제를 깨우고, 그 중 두 가지는 동일한 버그를 설명합니다. 내일 다시 일어날 때까지 링크를 복사하여 붙여 넣고, 복제를 닫고, 계속 움직입니다.

해결책: GitHub 모델과 워크 플로를 구현하여 새 문제가 기존 문제와 유사한 지 자동으로 확인하고 링크와 함께 주석을 게시합니다.

name: Detect duplicate issues

on:
  issues:
    types: [opened, reopened]

permissions:
  models: read
  issues: write

concurrency:
  group: ${{ github.workflow }}-${{ github.event.issue.number }}
  cancel-in-progress: true

jobs:
  continuous-triage-dedup:
    if: ${{ github.event.issue.user.type != 'Bot' }}
    runs-on: ubuntu-latest
    steps:
      - uses: pelikhan/action-genai-issue-dedup@v0
        with:
          github_token: ${{ secrets.GITHUB_TOKEN }}
          # Optional tuning:
          # labels: "auto"          # compare within matching labels, or "bug,api"
          # count: "20"             # how many recent issues to check
          # since: "90d"            # look back window, supports d/w/m

이를 통해 문제를 구성하고 심사 작업을 줄이며 기고자가 답변을 더 빨리 찾는 데 도움이됩니다. 조정할 수 있습니다 labels,,, count그리고 since 비교하는 것을 미세 조정합니다.

완전성을 발행하십시오

문제: 버그 보고서는 버전 번호, 재생산 단계, 예상 대 실제 동작이없는 버전으로 Repo에 착륙합니다. 도와주기 전에 해당 정보가 필요합니다.

해결책: 불완전한 문제를 자동으로 감지하고 누락 된 세부 정보를 요청합니다.

name: Issue Completeness Check

on:
  issues:
    types: [opened]

permissions:
  issues: write
  models: read

jobs:
  check-completeness:
    runs-on: ubuntu-latest
    steps:
      - name: Check issue completeness
        uses: actions/ai-inference@v1
        id: ai
        with:
          prompt: |
            Analyze this GitHub issue for completeness. If missing reproduction steps, version info, or expected/actual behavior, respond with a friendly request for the missing info. If complete, say so.
            
            Title: ${{ github.event.issue.title }}
            Body: ${{ github.event.issue.body }}
          system-prompt: You are a helpful assistant that helps analyze GitHub issues for completeness.
          model: openai/gpt-4o-mini
          temperature: 0.2

      - name: Comment on issue
        if: steps.ai.outputs.response != ''
        uses: actions/github-script@v7
        with:
          script: |
            github.rest.issues.createComment({
              owner: context.repo.owner,
              repo: context.repo.repo,
              issue_number: ${{ github.event.issue.number }},
              body: `${{ steps.ai.outputs.response }}`
            })

봇은 응답 할 수 있습니다. “안녕하세요! 보고해 주셔서 감사합니다. 조사에 도움을주기 위해 : 1) Node.js 버전, 2) 문제를 재현하기위한 단계, 3) 실제로 발생할 것으로 예상되는 일과 실제로 일어난 일? “

또는 한 걸음 더 나아가서 Ben-Balter/AI-Community-Moderator (MIT 라이센스)와 같은 기고 가이드 라인을 따르고 있는지 확인할 수 있습니다.

스팸 및 “슬로프”감지

문제: 알림을 확인하고 여러 스팸 풀 요청 또는 낮은 노력 “오타 수정”문제를 찾습니다.

해결책: AI를 사용하여 의심 스럽거나 품질이 낮은 기여도가 들어올 때.

name: Contribution Quality Check

on:
  pull_request:
    types: [opened]
  issues:
    types: [opened]

permissions:
  pull-requests: write
  issues: write
  models: read

jobs:
  quality-check:
    runs-on: ubuntu-latest
    steps:
      - name: Detect spam or low-quality content
        uses: actions/ai-inference@v1
        id: ai
        with:
          prompt: |
            Is this GitHub ${{ github.event_name == 'issues' && 'issue' || 'pull request' }} spam, AI-generated slop, or low quality?
            
            Title: ${{ github.event.issue.title || github.event.pull_request.title }}
            Body: ${{ github.event.issue.body || github.event.pull_request.body }}
            
            Respond with one of: spam, ai-generated, needs-review, or ok
          system-prompt: You detect spam and low-quality contributions. Be conservative - only flag obvious spam or AI slop.
          model: openai/gpt-4o-mini
          temperature: 0.1

      - name: Apply label if needed
        if: steps.ai.outputs.response != 'ok'
        uses: actions/github-script@v7
        with:
          script: |
            const label = `${{ steps.ai.outputs.response }}`;
            const number = ${{ github.event.issue.number || github.event.pull_request.number }};
            
            if (label && label !== 'ok') {
              await github.rest.issues.addLabels({
                owner: context.repo.owner,
                repo: context.repo.repo,
                issue_number: number,
                labels: [label]
              });
            }

이 워크 플로우는 자동 스팸/슬로프/저품질에 대한 새로운 문제와 새로운 풀 요청을 자동 크리 렌트하고 LLM의 판단에 따라 자동 라벨을 표시합니다.

팁 : 레포에 아직 가지고 있지 않은 경우 spam 또는 needs-review 라벨, addLabels 기본 스타일로 만들어집니다. 사용자 정의 색상이나 설명을 원한다면 사전 개조하십시오.

Github/AI-Assessment-Comment-Labeler (MIT 라이센스) 및 Github/AI-Moderator (MIT 라이센스)와 같은 관련 프로젝트를 확인할 수도 있습니다.

연속적인 리졸버

문제: 당신의 리포에는 수백 가지의 공개 문제가 있으며, 그 중 다수는 이미 고정되거나 구식입니다. 수동으로 닫는 데 몇 시간이 걸립니다.

해결책: 해결되거나 다른 관련 문제를 식별하거나 요청을 가져 오는 예정된 워크 플로우를 실행하고 컨텍스트와 함께 주석을 닫거나 닫습니다.

name: Continuous AI Resolver


on:
  schedule:
    - cron: '0 0 * * 0' # Runs every Sunday at midnight UTC
  workflow_dispatch:


permissions:
  issues: write
  pull-requests: write


jobs:
  resolver:
    runs-on: ubuntu-latest
    steps:
      - name: Run resolver
        uses: ashleywolf/continuous-ai-resolver@main
        with:
          github_token: ${{ secrets.GITHUB_TOKEN }}

메모: 위의 코드는 Ashleywolf/Continuous-IA-Resolver (MIT 라이센스)의 기존 조치를 참조합니다.

이를 통해 기고자가 적극적이고 관련성있는 작업을보다 쉽게 ​​찾을 수 있습니다. 오래된 문제를 자동으로 식별하고 해결함으로써, 새로운 기고자를 방해하는 끔찍한 “문제 파일 업”을 방지하고주의가 필요한 실제 문제를 발견하기가 더 어려워집니다.

새로운 기고자 온 보딩

문제: 처음 기고자는 풀 요청을 엽니 다. 그러나 그들은 당신의 주요 단계를 놓쳤다. CONTRIBUTING.md.

해결책: 가이드 라인에 대한 링크와 유용한 제안이있는 친절하고 AI 생성 환영 메시지를 보내십시오.

name: Welcome New Contributors

on:
  pull_request:
    types: [opened]

permissions:
  pull-requests: write
  models: read

jobs:
  welcome:
    runs-on: ubuntu-latest
    if: github.event.pull_request.author_association == 'FIRST_TIME_CONTRIBUTOR'
    steps:
      - name: Generate welcome message
        uses: actions/ai-inference@v1
        id: ai
        with:
          prompt: |
            Write a friendly welcome message for a first-time contributor. Include:
            1. Thank them for their first PR
            2. Mention checking CONTRIBUTING.md
            3. Offer to help if they have questions
            
            Keep it brief and encouraging.
          model: openai/gpt-4o-mini
          temperature: 0.7

      - name: Post welcome comment
        uses: actions/github-script@v7
        with:
          script: |
            const message = `${{ steps.ai.outputs.response }}`;
            await github.rest.issues.createComment({
              owner: context.repo.owner,
              repo: context.repo.repo,
              issue_number: ${{ github.event.pull_request.number }},
              body: message
            });

이로 인해 기고자들은 재 작업을 줄이고 병합 시간을 개선하여 성공을 위해 환영하는 느낌을줍니다.

왜 이들은?

이 예제는 사고, 중복 제거, 스팸 처리, 백 로그 청소 및 온 보딩 등 관리자로부터 듣는 가장 큰 고통을 겪었습니다. 그들은 빠르게 시도하고, 달리기에 안전하며, 조정하기 쉽습니다. 심지어 한 달에 시간을 절약 할 수 있습니다.

모범 사례

  • 하나의 워크 플로로 시작하여 거기에서 확장하십시오
  • 자동화를 신뢰할 때까지 유지 관리자를 루프에 보관하십시오.
  • AI가 프로젝트의 톤과 스타일과 일치하도록 프롬프트 사용자 정의
  • 결과를 모니터링하고 필요에 따라 조정하십시오
  • 하나의 크기는 모든 자동화, 검토되지 않은 변경 또는 기여자에게 스팸을 맞추는 모든 크기를 피하십시오.

오늘 시작하십시오

AI를 실험 할 준비가 되었다면 :

  1. 저장소 설정에서 GitHub 모델을 활성화하십시오
  2. 놀이터에서 시작하여 프롬프트와 모델을 테스트하십시오
  3. repo의 .prompt.yml 파일로 작업 프롬프트를 저장하십시오
  4. 위의 예제를 사용하여 첫 번째 작업을 작성하십시오
  5. 커뮤니티와 공유하십시오 – 우리는 모두 함께 배우고 있습니다!

우리가 작동하는 것을 더 많이 공유할수록이 도구는 더 잘 얻을 수 있습니다. 유용한 것을 만들면 연속 AI Awesome 목록에 추가하십시오.

더 많은 가입을 찾고 있다면 관리자 커뮤니티>

작성자가 작성했습니다

애슐리 울프

출처 참조

Post Comment

당신은 놓쳤을 수도 있습니다