GitHub Copilot을 사용하여 5 시간 안에 접근성 준수를 자동화하는 방법
Github은 핵심 서비스에서 주간 접근성 등급을받습니다. 최근까지 서비스가 임계 값 미만으로 떨어 졌을 때, 우리는 완전히 수동 개선 체인에 의존했습니다. 누군가가 보고서를 읽고, 저장소에서 문제를 열고, 소유자를 추측하고, 별도의 거버넌스 추적기에서 지위를 쫓아 내고, 리더십에 정보를 제공하려고 시도했습니다. 결과는 예측 가능했습니다. 우리는 느린 반응 시간, 고르지 않은 후속 조치 및 서비스 및 수표가 증가함에 따라 확장하는 경로를 경험했습니다.
우리는 변경해야 할 것이 필요하다는 것을 알았으므로 Github Copilot을 사용하여 취성 프로세스를 자동화 된 감사 루프로 전환하기로 결정했습니다. 이것이 우리가 어떻게 그 변화를했는지에 대한 이야기입니다.
문제가있는 워크 플로
먼저, 우리가 어디서 시작했는지에 대해 이야기합시다. 수요일마다 접근성 등급이 추적 보드에 도착하며 정의 된 점수 이하의 서비스에는 즉각적인 치료가 필요합니다. 다음은 우리가 하나를 발견했을 때 실패한 등급을 (비효율적으로) 관리하는 방법입니다.
- 저장소에서 수동으로 추적 문제를 만듭니다
- 오른쪽 양수인을 추측하십시오
- 누군가가 추적하기를 바랍니다
- 접근성 거버넌스 저장소에서 진행 상황을 수동으로 추적합니다
이것은 확장되지 않습니다. 팀은 일관되지 않은 봉사 활동을했습니다. 리더십은 가시성이 없었습니다. 치료는 며칠이 아닌 몇 주가 걸렸습니다.
Copilot으로 건축
우리는 어떻게 이것을 고칠 수 있습니까? 지속적인 수동 조정없이 확장 가능하고 저음 관리 방법이 필요했습니다. Github Copilot을 사용하여 전체 워크 플로를 자동화하기로 결정했습니다. 지금 우리의 워크 플로우 :
- 접근성 등급이 특정 점수 아래로 떨어질 때 서비스 저장소에서 GitHub 문제를 자동으로 만듭니다.
- 지속적인 비준수를 위해 새로운 등급 데이터로 기존 문제를 업데이트합니다.
- 고객 관계 관리 (CRM) 추적 보드와의 교차 참조 치료 문제.
- 서비스가 허용 가능한 등급으로 돌아올 때 링크를 자동으로 클로즈합니다.
- 거버넌스위원회와 서비스 팀 간의 양수인을 동기화합니다.
- Repo Spam없이 투명성에 대한 이해 관계자를 언급합니다.
Copilot이 게임을 어떻게 바꾸 었는지
이와 같은 내부 자동화를 구축하는 전통적인 접근 방식은 세부 요구 사항을 작성하고 팀 백 로그로 우선 순위를 정하고 엔지니어링 용량을 기다리며 여러 스프린트 반복을 순환하기 전에 엔드 투 엔드 값을 확인하기 전에 여러 스프린트 반복을 통과했습니다. 더 이상은 아니더라도 몇 주가 걸릴 수 있습니다. 대신, 우리는 Copilot과 직접 대화하는 데 5 ~ 6 시간을 보냈으며 빠르게 프로토 타이핑 및 테스트 아이디어를 테스트했습니다.
우리의 작동 루프는 의도적으로 가볍습니다. 각 반복에 대해 우리는이 패턴을 대략적으로 따랐습니다.
- 단일 규칙을 평범한 언어로 구성합니다 (예 : 지속적인 비준수 감지 및 문제가 존재하거나 현재 컨텍스트로 업데이트 됨).
- Coplelot에게 모든 것을 처음부터 쓰는 대신 코드를 비계 또는 조정 코드 (예 : 새 헬퍼, 데이터 구문 분석 조정, API 정제)를 조정하도록 요청했습니다.
- 등급 스냅 샷 (예 : 초기 드롭, 계속 드롭, 회복)의 작은 합성 고정물을 사용하여 로그로 논리를 운동했습니다.
- 출력 (예 : 발행 본문, 라벨, 양수인)을 검토하고 명명, 임계 값 또는 분기를 조여야하는 정제 된 프롬프트.
- 가드 레일 추가 : idempotency (예 : 유효한 문제가 이미 열려있는 경우 건너 뛰기), 플립 플롭 폐쇄를 피하기위한 간단한 감쇠 및 불완전한 데이터에 대한 방어 처리.
- 의도를 신속하게 확인하기 위해 로그인 된 고층 결정 (예 :“기존 문제”vs“조치 없음 – 준수”).
- 회귀를 확인하지 않기 위해 고정물 (변형)을 다시 제공 한 다음 다음 규칙으로 커밋하고 이동하십시오.
각 반복은 단일 행동으로 범위를 지정했기 때문에 Copilot의 제안은 관련성을 유지했으며 우리는 큰 리팩터를 피했습니다. 이름이 변경된 서비스로 인한 일시적 점수 딥 또는 중복 문제 생성과 같이 새로운 엣지 케이스가 등장하면 회의를 예약하는 대신 또 다른 짧은 루프를 추가했습니다. 이 빠른 케이던스를 통해 공식적인 프로젝트 계획없이 생산 준비가 필요한 것에 수렴 할 수있었습니다.
프로토 타입에서 생산까지
우리는 먼저 빠른 프로토 타입을 구축하여 비 적합한 서비스, 표면 또는 개선 문제를 업데이트하고 소유권을 유지하는 것을 확실하게 감지했습니다. 우리는 또한 인간의 심사없이 이것을 달성 할 수 있다는 것을 증명하고 싶었습니다. 초기 목표는 역사적으로 알려진 등급 변동성을 가진 스테이징 환경에서 소규모 서비스 세트에 대한 제어 된 롤아웃이었습니다. 이런 식으로 우리는 생산 환경에서 광범위한 배치를위한 워크 플로를 재건하기 전에 실제 조건에서 행동을 볼 수 있습니다.
계획된 롤아웃 경로는 점진적이었습니다.
- 준비 환경에서 개인 액세스 토큰을 사용하는 프로토 타입.
- 모의 서비스 저장소를 준비하는 데있어 매주 소수의 테스트 매주 등급주기를 관찰하고 임계 값 또는 레이블을 조정하십시오.
- 적절한 보안 및 범위의 권한을 위해 코드를 리팩터하고 GitHub 앱으로 마이그레이션하십시오.
- 생산에 배치하고 접근성 준수를 위해 추적하는 모든 서비스에 출시됩니다.
- 일단 소음이 최소화되면 거버넌스보고를 공식화하십시오.
검증하기 위해 자동 이슈 생성, 크로스 링크, 양수인 동기화 및 반복적 인 고장에 대한 후속 업데이트를 트리거하는 입력 등급 변경을 보여주는 간결한 엔드 – 엔드 데모를 기록했습니다. 그 인공물은 이해 관계자들에게 전체 경험을 비동기 적으로 평가할 수있는 능력을 제공했습니다.
반응은 결정적이었다. 라이브 문제를 보는 것은 깨끗한 구조와 추적 성 가속화 된 승인으로 프로토 타입 단계를 넘어서게 나타납니다. 우리는 유량을 제작하기위한 엔지니어링 파트너십을 확보하고, 강화를위한 샌드 박스 환경을 확립했으며, 적절한 보안 및 스케일 고려 사항으로 Github 앱 버전을 구현하기 시작했습니다.
진짜 영향
그 영향은 우리가 소개 한 자동화와 Copilot이 누가 구축하고 반복 할 수있는 방식을 바꾸는 방식입니다.
자동화 결과 :
- 치료 문제는 이제 수동 심사를 기다리는 대신 즉시 (또는 업데이트), 서비스 소유자는 해당 문제를 해결하기위한 정책 요구 사항을 즉시 이해하고 예외를 요청할 때 책임을 지도록 할 수 있습니다.
- 소유권, 지위 및 가교 링크는 한 곳에서 살아, Ad-Hoc 스프레드 시트 나 핑이없는 신뢰할 수있는 스냅 샷을 제공합니다. 또한 접근성 프로그램 소유자와 엔지니어링 팀 간의 파트너십도 강화됩니다.
- Idempotent Logic과 Dampening은 시끄러운 닫히고 재개를 방지하기 때문에 중복 또는 오래된 봉사 활동이 떨어졌습니다.
- 거버넌스 노력은 사무적 추적에서 체계적인 접근성 패턴의 고 가치 분석으로 전환되었으며 거버넌스 제어를 더 엄격하게 만들었습니다.
사기로 유성 전달 결과 :
- 도메인 전문가는 프로토 타입을 구축하여 엔지니어가 중요한 로드맵 작업에 계속 집중할 수 있도록했습니다.
- 엔지니어링을위한 컨텍스트 전환 감소. 파트너십 시간은 기본 스캐 폴딩 대신 보안, 규모 및 생산 경화에 사용되었습니다.
- 향후 규정 준수 또는 거버넌스 툴링에 대한 장벽을 낮췄습니다. 이제 다른 사람들이 따라갈 수있는 반복 가능한 패턴이 있기 때문입니다.
맥락적으로,이 교대는 현재 가장 중요합니다. 접근성 등급은 새로운 위험을 알립니다. 누군가가 수동 체인을 알아 차리고 시작하기를 기다리는 대신 시스템은 이제 문제를 일으키고 소유권을 할당하며 상태를 유지합니다. 그리고 후속 시간이 붕괴되기 전에이 모든 작업을 수행합니다. Copilot 덕분 에이 시스템은 몇 주 더 빨리 존재하며 거버넌스 문제에 가장 가까운 사람이 반복 할 수 있습니다.
결론은 우리가 “티켓을 쓰자”에서 “치료 속도 및 가시성에 측정 가능한 영향을 미치는 코드가 작동하는 코드”로 옮겼다는 것입니다. 이러한 변화는 내부 규정 준수 도구가 얼마나 빨리 구체화 될 수 있는지에 대한 기대치를 변화시킵니다.
GitHub 액션을 사용하여 프로젝트를 자동화하는 방법을 배우려면 문서를 읽으십시오.
작성자가 작성했습니다
Post Comment