다음 릴리스를 위한 활동 배우

상태: Experiment
  • GitLab 16.5에서 activity_pubactivity_pub_project라는 두 개의 플래그와 함께 소개되었습니다. 기본적으로 비활성화되어 있습니다. 이 기능은 실험입니다.

Self-managed GitLab에서는 기본적으로 이 기능이 사용할 수 없습니다. 이를 사용 가능하게 하려면, 관리자가 activity_pubactivity_pub_project라는 기능 플래그를 활성화할 수 있습니다.
GitLab.com 및 GitLab Dedicated에서는 이 기능이 사용할 수 없습니다.
이 기능은 production 환경에서 사용할 준비가 되어 있지 않습니다.

이 기능은 두 개의 기능 플래그를 필요로 합니다:

  • activity_pub: 모든 ActivityPub 관련 기능을 활성화하거나 비활성화합니다.
  • activity_pub_project: 프로젝트에 특정한 ActivityPub 기능을 활성화하거나 비활성화합니다. activity_pub 플래그도 활성화되어야 합니다.

프로필

이 배우의 프로필은 다른 배우와 약간 다릅니다. 우리는 특정 릴리스에 대한 활동을 표시하지 않고, 특정 프로젝트에 대한 릴리스를 표시하고자 합니다.

프로필 엔드포인트는 Projects::ReleasesController#index에서 릴리스 목록을 처리하며, 다음과 같은 방식으로 응답해야 합니다:

{
  "@context": "https://www.w3.org/ns/activitystreams",
  "id": PROJECT_RELEASES_URL,
  "type": "Application",
  "name": PROJECT_NAME + " 릴리스",
  "url": PROJECT_RELEASES_URL,
  "content": PROJECT_DESCRIPTION,
  "context": {
    "id": PROJECT_URL,
    "type": "Application",
    "name": PROJECT_NAME,
    "summary": PROJECT_DESCRIPTION,
    "url": PROJECT_URL,
  },
  "outbox": PROJECT_RELEASES_OUTBOX_URL,
  "inbox": null,
}

아울박스

릴리스 배우는 상대적으로 간단합니다: 발생하는 유일한 활동은 릴리스 생성 이벤트입니다.

{
  "id": PROJECT_RELEASES_OUTBOX_URL#release_id,
  "type": "Create",
  "to": [
    "https://www.w3.org/ns/activitystreams#Public"
  ],
  "actor": {
    "id": USER_PROFILE_URL,
    "type": "Person",
    "name": USER_NAME,
    "url": USER_PROFILE_URL,
  },
  "object": {
    "id": RELEASE_URL,
    "type": "Application",
    "name": RELEASE_TITLE,
    "url": RELEASE_URL,
    "content": RELEASE_DESCRIPTION,
    "context": {
      "id": PROJECT_URL,
      "type": "Application",
      "name": PROJECT_NAME,
      "summary": PROJECT_DESCRIPTION,
      "url": PROJECT_URL,
    },
  },
}