다음 릴리스 활동자를 위한 활동

Status: Experiment
  • GitLab 16.5에서 소개되었으며 activity_pubactivity_pub_project라는 두 가지 플래그로 이름이 지정되었습니다. 기본적으로 비활성화됩니다. 이 기능은 실험입니다.

플래그: Self-Managed형 GitLab의 경우, 기본적으로이 기능을 사용할 수 없습니다. 관리자는 activity_pubactivity_pub_project라는 피처 플래그를 활성화할 수 있습니다. GitLab.com 및 GitLab Dedicated의 경우,이 기능을 사용할 수 없습니다. 이 기능은 프로덕션용으로 준비되지 않았습니다.

이 기능에는 두 가지 피처 플래그가 필요합니다.

  • 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,
    },
  },
}