다음 릴리스 액터를 위한 활동

Status: Experiment
History
자체 관리형 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,
    },
  },
}