ActivityPub 액터 구현하기
GitLab에서 ActivityPub 액터를 구현하는 방법과 프로필 페이지, 아웃박스, 인박스, ActivityStreams 시리얼라이저 사용법을 설명합니다.
Status: Experiment 히스토리 GitLab 16.5에서 activity_pub 및 activity_pub_project 라는 두 개의 플래그 와 함께 도입됨 . 기본적으로 비활성화되어 있음. 이 기능은 실험 기능 입니다. GitLab Self-Managed에서는 기본적으로 이 기능을 사용할 수 없습니다. 사용 가능하게 하려면, 관리자가 activity_pub 및 activity_pub_project 라는 기능 플래그를 활성화 할 수 있습니다. GitLab.com 및 GitLab Dedicated에서는 이 기능을 사용할 수 없습니다. 이 기능은 프로덕션 환경에서 사용할 준비가 되어 있지 않습니다. 이 기능에는 두 개의 기능 플래그가 필요합니다: activity_pub : 모든 ActivityPub 관련 기능을 활성화하거나 비활성화합니다. activity_pub_project : 프로젝트에 특화된 ActivityPub 기능을 활성화하거나 비활성화합니다. activity_pub 플래그도 함께 활성화해야 합니다. ActivityPub은 세 가지 표준 문서를 기반으로 합니다: ActivityPub 은 페더레이션을 구현하기 위해 발생하는 HTTP 요청을 정의합니다. ActivityStreams 는 프로토콜 사용자들이 교환하는 JSON 메시지의 형식을 정의합니다. Activity Vocabulary 는 기본적으로 인식되는 다양한 메시지를 정의합니다. 첫 번째 문서는 일반적으로 컨트롤러가 처리하며, 나머지 두 개는 시리얼라이저에서 처리하는 내용과 관련이 있습니다. ActivityPub 액터를 구현하려면 다음을 수행해야 합니다: 리소스의 프로필 페이지를 구현합니다. 아웃박스 페이지를 구현합니다. 인박스에서 들어오는 요청을 처리합니다. 모든 요청은 Accept HTTP 헤더로 application/ld+json; profile="https://www.w3.org/ns/activitystreams" 를 사용하여 이루어집니다. 소셜 기능을 위해 구현한 액터: 릴리즈 계획된 액터에 대한 자세한 내용은 에픽 11247 을 참조하세요. 프로필 페이지 # 프로필 페이지 조회는 다음을 검색하는 데 사용됩니다: 이름과 설명 같은 일반적인 정보. 인박스 및 아웃박스의 URL. 프로필 페이지를 구현하려면, app/serializers/activity_pub/ 에 ActivityStreams 시리얼라이저를 생성하여 시리얼라이저가 ActivityStreamsSerializer 를 상속받도록 만드세요. 필수 필드에 대해서는 아래 시리얼라이저 섹션을 참조하세요. 컨트롤러에서 시리얼라이저를 호출하려면: opts = { inbox: nil, outbox: outbox_project_releases_url(project) } render json: ActivityPub::ReleasesActorSerializer.new.represent(project, opts) outbox 는 이 액터의 활동 피드를 찾을 수 있는 엔드포인트입니다. inbox 는 피드를 구독하기 위해 P