Назначить роль пользователю в SourceCraft

Доступ к сервису SourceCraft регулируется путем назначения прав пользователям в организациях и репозиториях.

Вы можете назначить роли пользователям на уровне организации или конкретного репозитория.

Для нового пользователя можно указать роль на уровне организации в приглашении.

Назначить роль пользователю в организации

Важно

Для назначения роли пользователю в организации у вас должна быть роль не ниже Администратор организации.

  1. Откройте главную страницу SourceCraft.
  2. На вкладке Домой перейдите в раздел Организации.
  3. Выберите организацию, в которой вы хотите назначить роль пользователю.
  4. На странице организации в разделе Люди перейдите в секцию Участники и роли.
  5. Напротив пользователя, которому хотите назначить роль, в столбце Роли нажмите .
  6. Отметьте роли, которые хотите назначить пользователю.
  7. Нажмите Применить.

Совет

Вы можете назначать роли в организации сразу группе пользователей. Подробнее на странице Команды в SourceCraft.

Назначить роль пользователю в репозитории

Важно

Для назначения роли пользователю в репозитории у вас должна быть роль не ниже Ответственный за репозиторий.

Если выдать роль в репозитории пользователю, не состоящему в организации-владельце, то пользователь будет также приглашен в организацию. В таком случае вам понадобится роль Администратор организации.

  1. Откройте главную страницу SourceCraft.

  2. На вкладке Домой в секции Ваша мастерская перейдите в раздел Репозитории.

  3. Выберите репозиторий, в котором вы хотите назначить роль пользователю.

  4. На странице репозитория в разделе Настройки репозитория перейдите в секцию Роли.

  5. В правом верхнем углу нажмите Новая роль.

  6. В открывшемся окне выберите принцип, по которому пользователю будет отправлено приглашение в репозиторий и назначена роль:

    1. В поле Пользователи или команды начните вводить публичное имя пользователя, например Иванов Иван, или никнейм, например ivanov-2000, и выберите пользователя среди предложенных вариантов.
    2. В выпадающем списке Роль выберите роль, которую хотите назначить.
    3. В выпадающем списке Срок действия инвайта выберите срок, в течение которого пользователь должен принять приглашение в репозиторий.
    4. Нажмите Добавить.
    1. В поле Emails поочередно введите адреса электронной почты пользователей, которым хотите назначить роль.
    2. В выпадающем списке Роль выберите роль, которую хотите назначить.
    3. В выпадающем списке Срок действия инвайта выберите срок, в течение которого пользователь должен принять приглашение в репозиторий.
    4. Нажмите Добавить.

    Вы можете сгенерировать уникальные ссылки-приглашения для произвольных пользователей. Каждая ссылка имеет свой срок действия и может быть использована только один раз.

    Этот способ полезен, если вам неизвестны логины или электронные почты пользователей, а также может быть использован для автоматизации назначения ролей и предоставления доступа к репозиторию.

    Перейдя по ссылке, пользователь может принять ваше приглашение. После этого он получит доступ к вашей организации и репозиториям в ней.

    Также пользователю будет назначена роль, указанная вами.

    Чтобы сгенерировать ссылки-приглашения:

    1. В выпадающем списке Срок действия инвайта выберите срок, в течение которого будет действовать ссылка.

    2. В поле Количество укажите количество уникальных ссылок-приглашений.

    3. (опционально) В поле Префикс укажите префикс для ссылок-приглашений, например team-sourcecraft.

    4. В выпадающем списке Роль выберите роль, которая будет назначена пользователям, принявшим приглашение по ссылке.

    5. Нажмите Добавить.

    6. В открывшемся окне скопируйте ссылки в буфер обмена или скачайте в виде файла и закройте окно.

      Важно

      После закрытия окна сгенерированные ссылки будут недоступны. Но вы можете создать новые.

    7. Отправьте ссылки-приглашения пользователям, которым вы хотите назначить роль.

    Вы можете сгенерировать одну мульти-ссылку, по которой к репозиторию сможет присоединиться один или несколько пользователей. Создать мульти-ссылку можно как для заранее известных пользователей, так и для произвольных.

    Также пользователям, принявшим мульти-ссылку, будет назначена роль, указанная вами.

    Мульти-ссылка работает через сервисный аккаунт Yandex Identity and Access Management с ролью organization-manager.passportUserAdmin. Вы можете выбрать существующий сервисный аккаунт или создать новый.

    Чтобы сгенерировать мульти-ссылку:

    1. В выпадающем списке Срок действия инвайта выберите срок, в течение которого будет действовать мульти-ссылка.

    2. (Опционально) В поле Лимит пользователей укажите максимальное число пользователей, которые смогут принять мульти-ссылку. Если поле не заполнено, число пользователей не ограничено.

    3. (Опционально) В поле Уникальное имя ссылки укажите уникальное имя мульти-ссылки. Если поле не заполнено, имя будет сгенерировано автоматически.

    4. В выпадающем списке Роль выберите роль для приглашаемых пользователей.

    5. В блоке Могут принять выберите ограничение для приглашения:

      • Все — приглашение может принять любой пользователь.
      • Некоторые — приглашение могут принять только определенные пользователи:
        • (Опционально) Пользователи SourceCraft — начните вводить публичное имя, например Иванов Иван, или никнейм, например ivanov-2000, и выберите одного из предложенных пользователей. Вы можете добавить несколько пользователей.
        • (Опционально) Логины Яндекса — введите логин пользователя и нажмите Добавить логин. Вы можете добавить несколько пользователей.
    6. В блоке Сервисный аккаунт выберите вариант:

      • Автоматически — в Yandex Cloud автоматически будет создан новый сервисный аккаунт с ролью organization-manager.passportUserAdmin.
      • Выбрать существующий — выберите сервисный аккаунт Yandex Identity and Access Management, от имени которого будут создаваться приглашения.
    7. Нажмите Добавить.

    8. В открывшемся окне скопируйте мульти-ссылку в буфер обмена и закройте окно.

      Важно

      После закрытия окна сгенерированная мульти-ссылка будет недоступна. Но вы можете создать новую.

    9. Отправьте мульти-ссылку пользователям, которым вы хотите назначить роль.

Совет

Вы можете назначать роли в репозитории сразу группе пользователей. Подробнее на странице Команды в SourceCraft.

Назначить роль пользователю в репозитории с помощью API

Для автоматизации процесса назначения ролей доступен REST API SourceCraft.

Например, вы можете встроить процесс выдачи ролей на сайт или в свою систему управления доступом.

Подробнее на странице Repository | Roles.

Чтобы назначить пользователю роль:

  1. Получите персональный токен (PAT).

  2. Выполните запросы в зависимости от того, состоит ли пользователь в организации:

    1. Получите идентификатор пользователя в SourceCraft:

      export PAT=<персональный_токен>
      curl \
        --request GET \
        --url "https://api.sourcecraft.tech/users/<слаг_пользователя>" \
        --header "Authorization: Bearer $PAT" | jq -r '.id'
      

      Результат:

      "01971bf5-676b-79a3-adbf-7644********"
      

      Подробнее на странице GetProfile.

    2. Назначьте пользователю роль:

      export PAT=<персональный_токен>
      curl \
        --request POST \
        --url "https://api.sourcecraft.tech/repos/<слаг_организации>/<слаг_репозитория>/roles" \
        --header "Authorization: Bearer $PAT" \
        --header "Content-Type: application/json" \
        --data '{
          "subject_roles": [
            {
              "role": "<роль>",
              "subject": {
                "type": "user",
                "id": "<идентификатор_пользователя_в_SourceCraft>"
              }
            }
          ]
        }' | jq
      

      Возможные значения для role на странице Repository | Roles.

      Результат:

      {
        "subject_roles": [
          {
            "role": "admin",
            "subject": {
              "type": "user",
              "id": "01971bf5-673f-7c64-a88a-509b********"
            }
          },
          {
            "role": "viewer",
            "subject": {
              "type": "user",
              "id": "01971bf5-676b-79a3-adbf-7644********"
            }
          }
        ],
        "next_page_token": ""
      }
      

      Подробнее на странице Repository | Roles.

    1. Пригласите пользователя в организацию.

    2. Получите информацию об операции создания приглашения. Из этой информации выделите идентификатор пользователя организации — поле response: invites: subject: id.

    3. Назначьте пользователю роль:

      export PAT=<персональный_токен>
      curl \
        --request POST \
        --url "https://api.sourcecraft.tech/repos/<слаг_организации>/<слаг_репозитория>/roles" \
        --header "Authorization: Bearer $PAT" \
        --header "Content-Type: application/json" \
        --data '{
          "subject_roles": [
            {
              "role": "<роль>",
              "subject": {
                "type": "invitee",
                "id": "<идентификатор_пользователя_в_организации>"
              }
            }
          ]
        }' | jq
      

      Возможные значения для role на странице Repository | Roles.

      Результат:

      {
        "subject_roles": [
          {
            "role": "admin",
            "subject": {
              "type": "user",
              "id": "01971bf5-673f-7c64-a88a-509b********"
            }
          },
          {
            "role": "viewer",
            "subject": {
              "type": "invitee",
              "id": "ajeth710l8gi********"
            }
          }
        ],
        "next_page_token": ""
      }
      

      Подробнее на странице Repository | Roles.

Полезные ссылки