InfoGrab Docs

개발자 플로우

요약

개발자 플로우를 사용하면 이슈와 머지 리퀘스트 전반에서 더 효율적으로 작업할 수 있습니다. 개발자 플로우가 더 나은 결과를 생성하도록 돕기 위해 다음 선택적 설정으로 프로젝트를 구성합니다: AGENTS.md 파일 추가: 테스트 명령, 린팅 규칙, 커밋 형식, 코딩 패턴 등 프로젝트 규칙을 문서화합니다.

히스토리
  • GitLab 18.3에서 duo_workflow_in_ci라는 플래그와 함께 베타로 도입됨. 기본적으로 비활성화되어 있으나 인스턴스 또는 사용자에 대해 활성화할 수 있음.
  • GitLab 18.6에서 duo_developer_button이라는 플래그와 함께 Issue to MR에서 Developer Flow로 이름 변경됨. 기본적으로 비활성화되어 있으나 인스턴스 또는 사용자에 대해 활성화할 수 있음. 기능 플래그 duo_workflow도 활성화되어야 하나 기본적으로 활성화되어 있음.
  • GitLab 18.8에서 일반적으로 사용 가능.
  • GitLab 18.9에서 기능 플래그 duo_workflow_in_ci, duo_developer_button, duo_workflow 제거됨.
  • GitLab 18.10에서 GitLab Credits가 있는 GitLab.com Free 티어에서 사용 가능.
  • GitLab 18.11에서 멘션 트리거 도입.

개발자 플로우를 사용하면 이슈와 머지 리퀘스트 전반에서 더 효율적으로 작업할 수 있습니다. 개발자 플로우를 사용하여 다음을 수행할 수 있습니다:

  • 이슈에서 초안 머지 리퀘스트를 생성합니다.
  • 리뷰 피드백을 기반으로 기존 머지 리퀘스트를 반복합니다.
  • 구현 접근 방식을 조사하고 토론에 결과를 게시합니다.
  • 큰 머지 리퀘스트를 더 작고 집중적인 머지 리퀘스트로 분할합니다.
  • 머지 충돌을 해결합니다.

전제 조건#

개발자 플로우를 사용하려면:

프로젝트 설정#

개발자 플로우가 더 나은 결과를 생성하도록 돕기 위해 다음 선택적 설정으로 프로젝트를 구성합니다:

  • AGENTS.md 파일 추가: 테스트 명령, 린팅 규칙, 커밋 형식, 코딩 패턴 등 프로젝트 규칙을 문서화합니다. 개발자 플로우는 저장소에서 작업할 때 이 파일을 컨텍스트로 사용합니다. 자세한 내용은 AGENTS.md 사용자 정의 파일을 참조합니다.

  • 실행 환경 구성: 프로젝트에 특정 도구(예: Go, Python 또는 Node.js)가 필요한 경우 agent-config.yml 파일로 에이전트 환경을 구성합니다. 적절하게 구성된 환경에서 개발자 플로우는 커밋 전에 테스트를 실행하고 자체 변경사항을 검증할 수 있습니다. 자세한 내용은 플로우 실행 구성을 참조합니다.

플로우 사용#

전제 조건:

  • 개발자 플로우의 트리거에서 이벤트 유형 멘션할당구성되어 있어야 합니다.

토론에서 Duo Developer 멘션#

댓글을 개발자 플로우의 실행 가능한 작업으로 전환하려면 토론에서 @duo-developer-<namespace>로 멘션합니다. <namespace>를 GitLab 네임스페이스 경로(예: gitlab-org)로 교체합니다.

이슈 또는 머지 리퀘스트의 내용과 제공하는 컨텍스트의 양에 따라 플로우는 다음 작업을 실행할 수 있습니다:

  • 코드 변경
  • 머지 리퀘스트 및 이슈 생성
  • 구현 접근 방식 조사 후 결과 보고 또는 업데이트

예를 들어:

@duo-developer-<namespace> research approaches for implementing pagination
on the /users endpoint, then create a draft MR with the most
promising approach.

개발자 플로우는 세션 링크로 응답합니다.

또는 진행 상황을 모니터링하려면 왼쪽 사이드바에서 AI > 세션을 선택합니다.

이슈에서 머지 리퀘스트 생성#

이슈에서 머지 리퀘스트를 생성하려면:

  1. 상단 표시줄에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
  2. 계획 > 작업 항목을 선택한 다음 유형 = 이슈로 필터링합니다.
  3. 머지 리퀘스트를 생성할 이슈를 선택합니다.
  4. 이슈에서 머지 리퀘스트를 생성하려면 다음 중 하나를 수행합니다:
    • Duo Developer 서비스 계정을 이슈에 할당합니다:
      1. 오른쪽 사이드바의 담당자 섹션에서 편집을 선택합니다.
      2. duo developer를 입력하고 검색 결과에서 선택합니다.
    • 이슈 헤더 아래에서 GitLab Duo로 MR 생성을 선택합니다.
  5. 선택 사항. 플로우의 진행 상황을 모니터링하려면 왼쪽 사이드바에서 AI > 세션을 선택합니다.
  6. 세션이 완료되면 이슈의 활동 섹션에 있는 링크에서 머지 리퀘스트를 검토합니다.

모범 사례#

명확한 컨텍스트 제공#

개발자 플로우는 사용자가 알려주는 내용이나 이슈, 머지 리퀘스트 또는 토론 스레드의 컨텍스트에서 사용 가능한 내용만 알 수 있습니다. 인간 협력자를 돕는 것과 동일한 방식이 여기에도 적용됩니다:

  • 관련 파일이나 토론 링크가 포함된 명확한 문제 설명을 작성합니다.
  • "완료"가 무엇인지 정의하는 수락 기준을 포함합니다.
  • 파일 경로를 알고 있는 경우 정확히 지정합니다.
  • 일관성을 유지하기 위해 기존 패턴의 코드 예시를 포함합니다.

토론에서 Duo Developer를 멘션할 때 명시적으로#

토론에서 Duo Developer를 멘션할 때 원하는 작업을 정확히 지시합니다. 예를 들어:

  • "/api/users 엔드포인트의 페이지네이션을 구현하는 초안 머지 리퀘스트를 생성해."
  • "이 머지 리퀘스트의 리뷰 피드백을 처리해."
  • "로깅 변경사항을 별도의 머지 리퀘스트로 분리해."
  • "이 서비스를 gRPC로 마이그레이션하는 접근 방식을 조사하고 여기에 결과를 게시해."
  • "이 머지 리퀘스트에 머지 충돌이 있어. 해결해줘."

명시적인 지시가 없으면 플로우가 자체 접근 방식을 선택하며, 기대에 맞지 않을 수 있습니다.

작업을 집중적으로 유지#

복잡한 작업을 더 작고 집중적이며 실행 지향적인 요청으로 분류합니다. 크고 개방적인 작업은 반복 제한에 도달할 가능성이 높습니다.

예시#

머지 리퀘스트 생성을 위한 이슈#

다음 예시는 개발자 플로우가 머지 리퀘스트를 생성하는 데 사용할 수 있는 잘 작성된 이슈를 보여줍니다.

## Description
The users endpoint currently returns all users at once,
which will cause performance issues as the user base grows.
Implement cursor-based pagination for the `/api/users` endpoint
to handle large datasets efficiently.

## Implementation plan
Add pagination to GET /users API endpoint.
Include pagination metadata in /users API response (per_page, page).
Add query parameters for per page size limit (default 5, max 20).

#### Files to modify
- `src/api/users.py` - Add pagination parameters and logic.
- `src/models/user.py` - Add pagination query method.
- `tests/api/test_users_api.py` - Add pagination tests.

## Acceptance criteria
- Accepts page and per_page query parameters (default: page=5, per_page=10).
- Limits per_page to a maximum of 20 users.
- Maintains existing response format for user objects in data array.

머지 리퀘스트 리뷰 피드백 반복#

머지 리퀘스트를 검토한 후 개발자 플로우를 멘션하여 피드백을 처리할 수 있습니다. 예를 들어 특정 줄의 리뷰 댓글에서:

@duo-developer-<namespace> move this validation logic into the `BaseService` class
in `app/services/base_service.rb` instead of duplicating it here.

전체 리뷰를 제출한 후 개발자 플로우를 멘션하여 모든 열린 스레드를 처리할 수도 있습니다:

@duo-developer-<namespace> please address the review feedback on this MR.

머지 리퀘스트 분할#

머지 리퀘스트가 너무 커졌으면 개발자 플로우에게 일부를 별도의 머지 리퀘스트로 추출하도록 요청할 수 있습니다:

@duo-developer-<namespace> the logging changes in this MR are out of scope.
Split them into a separate MR.

구현 접근 방식 조사#

변경을 수행하기 전에 개발자 플로우에게 문제를 조사하고 결과를 보고하도록 요청할 수 있습니다:

@duo-developer-<namespace> research whether the `PUT /api/users` endpoint also needs
rate limiting like we added to the `POST /api/users` endpoint.
Post your findings here.

개발자 플로우

Tier: [Free](/19.0/subscriptions/gitlab_credits/#for-the-free-tier), Premium, Ultimate
Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated
원문 보기
요약

개발자 플로우를 사용하면 이슈와 머지 리퀘스트 전반에서 더 효율적으로 작업할 수 있습니다. 개발자 플로우가 더 나은 결과를 생성하도록 돕기 위해 다음 선택적 설정으로 프로젝트를 구성합니다: AGENTS.md 파일 추가: 테스트 명령, 린팅 규칙, 커밋 형식, 코딩 패턴 등 프로젝트 규칙을 문서화합니다.

히스토리
  • GitLab 18.3에서 duo_workflow_in_ci라는 플래그와 함께 베타로 도입됨. 기본적으로 비활성화되어 있으나 인스턴스 또는 사용자에 대해 활성화할 수 있음.
  • GitLab 18.6에서 duo_developer_button이라는 플래그와 함께 Issue to MR에서 Developer Flow로 이름 변경됨. 기본적으로 비활성화되어 있으나 인스턴스 또는 사용자에 대해 활성화할 수 있음. 기능 플래그 duo_workflow도 활성화되어야 하나 기본적으로 활성화되어 있음.
  • GitLab 18.8에서 일반적으로 사용 가능.
  • GitLab 18.9에서 기능 플래그 duo_workflow_in_ci, duo_developer_button, duo_workflow 제거됨.
  • GitLab 18.10에서 GitLab Credits가 있는 GitLab.com Free 티어에서 사용 가능.
  • GitLab 18.11에서 멘션 트리거 도입.

개발자 플로우를 사용하면 이슈와 머지 리퀘스트 전반에서 더 효율적으로 작업할 수 있습니다. 개발자 플로우를 사용하여 다음을 수행할 수 있습니다:

  • 이슈에서 초안 머지 리퀘스트를 생성합니다.
  • 리뷰 피드백을 기반으로 기존 머지 리퀘스트를 반복합니다.
  • 구현 접근 방식을 조사하고 토론에 결과를 게시합니다.
  • 큰 머지 리퀘스트를 더 작고 집중적인 머지 리퀘스트로 분할합니다.
  • 머지 충돌을 해결합니다.

전제 조건#

개발자 플로우를 사용하려면:

프로젝트 설정#

개발자 플로우가 더 나은 결과를 생성하도록 돕기 위해 다음 선택적 설정으로 프로젝트를 구성합니다:

  • AGENTS.md 파일 추가: 테스트 명령, 린팅 규칙, 커밋 형식, 코딩 패턴 등 프로젝트 규칙을 문서화합니다. 개발자 플로우는 저장소에서 작업할 때 이 파일을 컨텍스트로 사용합니다. 자세한 내용은 AGENTS.md 사용자 정의 파일을 참조합니다.

  • 실행 환경 구성: 프로젝트에 특정 도구(예: Go, Python 또는 Node.js)가 필요한 경우 agent-config.yml 파일로 에이전트 환경을 구성합니다. 적절하게 구성된 환경에서 개발자 플로우는 커밋 전에 테스트를 실행하고 자체 변경사항을 검증할 수 있습니다. 자세한 내용은 플로우 실행 구성을 참조합니다.

플로우 사용#

전제 조건:

  • 개발자 플로우의 트리거에서 이벤트 유형 멘션할당구성되어 있어야 합니다.

토론에서 Duo Developer 멘션#

댓글을 개발자 플로우의 실행 가능한 작업으로 전환하려면 토론에서 @duo-developer-<namespace>로 멘션합니다. <namespace>를 GitLab 네임스페이스 경로(예: gitlab-org)로 교체합니다.

이슈 또는 머지 리퀘스트의 내용과 제공하는 컨텍스트의 양에 따라 플로우는 다음 작업을 실행할 수 있습니다:

  • 코드 변경
  • 머지 리퀘스트 및 이슈 생성
  • 구현 접근 방식 조사 후 결과 보고 또는 업데이트

예를 들어:

@duo-developer-<namespace> research approaches for implementing pagination
on the /users endpoint, then create a draft MR with the most
promising approach.

개발자 플로우는 세션 링크로 응답합니다.

또는 진행 상황을 모니터링하려면 왼쪽 사이드바에서 AI > 세션을 선택합니다.

이슈에서 머지 리퀘스트 생성#

이슈에서 머지 리퀘스트를 생성하려면:

  1. 상단 표시줄에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
  2. 계획 > 작업 항목을 선택한 다음 유형 = 이슈로 필터링합니다.
  3. 머지 리퀘스트를 생성할 이슈를 선택합니다.
  4. 이슈에서 머지 리퀘스트를 생성하려면 다음 중 하나를 수행합니다:
    • Duo Developer 서비스 계정을 이슈에 할당합니다:
      1. 오른쪽 사이드바의 담당자 섹션에서 편집을 선택합니다.
      2. duo developer를 입력하고 검색 결과에서 선택합니다.
    • 이슈 헤더 아래에서 GitLab Duo로 MR 생성을 선택합니다.
  5. 선택 사항. 플로우의 진행 상황을 모니터링하려면 왼쪽 사이드바에서 AI > 세션을 선택합니다.
  6. 세션이 완료되면 이슈의 활동 섹션에 있는 링크에서 머지 리퀘스트를 검토합니다.

모범 사례#

명확한 컨텍스트 제공#

개발자 플로우는 사용자가 알려주는 내용이나 이슈, 머지 리퀘스트 또는 토론 스레드의 컨텍스트에서 사용 가능한 내용만 알 수 있습니다. 인간 협력자를 돕는 것과 동일한 방식이 여기에도 적용됩니다:

  • 관련 파일이나 토론 링크가 포함된 명확한 문제 설명을 작성합니다.
  • "완료"가 무엇인지 정의하는 수락 기준을 포함합니다.
  • 파일 경로를 알고 있는 경우 정확히 지정합니다.
  • 일관성을 유지하기 위해 기존 패턴의 코드 예시를 포함합니다.

토론에서 Duo Developer를 멘션할 때 명시적으로#

토론에서 Duo Developer를 멘션할 때 원하는 작업을 정확히 지시합니다. 예를 들어:

  • "/api/users 엔드포인트의 페이지네이션을 구현하는 초안 머지 리퀘스트를 생성해."
  • "이 머지 리퀘스트의 리뷰 피드백을 처리해."
  • "로깅 변경사항을 별도의 머지 리퀘스트로 분리해."
  • "이 서비스를 gRPC로 마이그레이션하는 접근 방식을 조사하고 여기에 결과를 게시해."
  • "이 머지 리퀘스트에 머지 충돌이 있어. 해결해줘."

명시적인 지시가 없으면 플로우가 자체 접근 방식을 선택하며, 기대에 맞지 않을 수 있습니다.

작업을 집중적으로 유지#

복잡한 작업을 더 작고 집중적이며 실행 지향적인 요청으로 분류합니다. 크고 개방적인 작업은 반복 제한에 도달할 가능성이 높습니다.

예시#

머지 리퀘스트 생성을 위한 이슈#

다음 예시는 개발자 플로우가 머지 리퀘스트를 생성하는 데 사용할 수 있는 잘 작성된 이슈를 보여줍니다.

## Description
The users endpoint currently returns all users at once,
which will cause performance issues as the user base grows.
Implement cursor-based pagination for the `/api/users` endpoint
to handle large datasets efficiently.

## Implementation plan
Add pagination to GET /users API endpoint.
Include pagination metadata in /users API response (per_page, page).
Add query parameters for per page size limit (default 5, max 20).

#### Files to modify
- `src/api/users.py` - Add pagination parameters and logic.
- `src/models/user.py` - Add pagination query method.
- `tests/api/test_users_api.py` - Add pagination tests.

## Acceptance criteria
- Accepts page and per_page query parameters (default: page=5, per_page=10).
- Limits per_page to a maximum of 20 users.
- Maintains existing response format for user objects in data array.

머지 리퀘스트 리뷰 피드백 반복#

머지 리퀘스트를 검토한 후 개발자 플로우를 멘션하여 피드백을 처리할 수 있습니다. 예를 들어 특정 줄의 리뷰 댓글에서:

@duo-developer-<namespace> move this validation logic into the `BaseService` class
in `app/services/base_service.rb` instead of duplicating it here.

전체 리뷰를 제출한 후 개발자 플로우를 멘션하여 모든 열린 스레드를 처리할 수도 있습니다:

@duo-developer-<namespace> please address the review feedback on this MR.

머지 리퀘스트 분할#

머지 리퀘스트가 너무 커졌으면 개발자 플로우에게 일부를 별도의 머지 리퀘스트로 추출하도록 요청할 수 있습니다:

@duo-developer-<namespace> the logging changes in this MR are out of scope.
Split them into a separate MR.

구현 접근 방식 조사#

변경을 수행하기 전에 개발자 플로우에게 문제를 조사하고 결과를 보고하도록 요청할 수 있습니다:

@duo-developer-<namespace> research whether the `PUT /api/users` endpoint also needs
rate limiting like we added to the `POST /api/users` endpoint.
Post your findings here.