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를 실험 할 준비가 되었다면 :
- 저장소 설정에서 GitHub 모델을 활성화하십시오
- 놀이터에서 시작하여 프롬프트와 모델을 테스트하십시오
- repo의 .prompt.yml 파일로 작업 프롬프트를 저장하십시오
- 위의 예제를 사용하여 첫 번째 작업을 작성하십시오
- 커뮤니티와 공유하십시오 – 우리는 모두 함께 배우고 있습니다!
우리가 작동하는 것을 더 많이 공유할수록이 도구는 더 잘 얻을 수 있습니다. 유용한 것을 만들면 연속 AI Awesome 목록에 추가하십시오.
더 많은 가입을 찾고 있다면 관리자 커뮤니티>
작성자가 작성했습니다
Post Comment