Настроить пользовательские поля задач в SourceCraft

С помощью пользовательских полей можно добавить к задачам дополнительные параметры, например плановую дату начала, оценку трудоемкости или этап работы. Конфигурация полей хранится в файле .sourcecraft/issues.yaml в ветке по умолчанию.

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

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

Конфигурация .sourcecraft/issues.yaml

Общий вид .sourcecraft/issues.yaml:

issues:
  custom_fields:
    - slug: <текстовый идентификатор поля>
      type: <string, number, datetime, date, user или значение из issues.custom_types.slug>
      title: <название поля в интерфейсе SourceCraft>
      description: <текстовое описание поля>
      default: <значение поля по умолчанию или значение из issues.custom_types.values.slug>
      visibility: public
    ...
  custom_types:
    - slug: <текстовый идентификатор пользовательского типа поля>
      kind: enum
      title: <название пользовательского типа>
      description: <текстовое описание типа>
      values:
        - slug: <текстовый идентификатор варианта>
          title: <название варианта в интерфейсе SourceCraft>
          description: <текстовое описание варианта>
        ...
    ...

Где:

  • issues — корневой блок спецификации. Допустимы следующие вложенные элементы:
    • custom_fields — список пользовательских полей задач.
      • slug — текстовый идентификатор поля.

        Важно

        Значение slug не должно совпадать с идентификатором системного поля задачи.

      • type — тип пользовательского поля. Возможные значения:

      • title — название поля в интерфейсе SourceCraft.

      • description — текстовое описание поля, отображаемое в .

      • default — значение поля по умолчанию. Для поля с преднастроенными вариантами укажите значение issues.custom_types.values.slug.

      • visibility — видимость поля. Поддерживается только значение public — значение поля видны пользователям, у которых есть доступ к задаче.

    • custom_types — список пользовательских типов полей.
      • slug — текстовый идентификатор пользовательского типа поля.
      • kind — вид пользовательского типа поля. Поддерживается только значение enum — выбор из нескольких преднастроенных вариантов.
      • title — название типа.
      • description — текстовое описание типа.
      • values — список возможных вариантов.
        • slug — текстовый идентификатор варианта.
        • title — название варианта в интерфейсе SourceCraft.
        • description — текстовое описание варианта.

Настроить пользовательские поля задач в репозитории

Файл .sourcecraft/issues.yaml можно создать в интерфейсе SourceCraft или локально. При создании файла в интерфейсе добавьте конфигурацию по приведенному ниже примеру и сохраните изменения в ветку по умолчанию.

Чтобы настроить пользовательские поля задач локально:

  1. Склонируйте репозиторий.

  2. Создайте файл .sourcecraft/issues.yaml с конфигурацией пользовательских полей задач.

    Пример конфигурации
    issues:
      custom_fields:
        - slug: planned_start_date
          type: datetime
          title: Планируемая дата начала
          description: Планируемая дата начала работ по этой задаче
          default: null
          visibility: public
        - slug: effort
          type: effort
          title: Трудоемкость
          description: Оценка трудоемкости задачи в размерах одежды (XS–XXL)
          default: m
          visibility: public
        - slug: testing_status
          type: testing_status
          title: Статус тестирования
          description: Статус прохождения тестирования этой задачи
          default: not_tested
          visibility: public
        - slug: stage
          type: stage
          title: Этап задачи
          description: Текущий этап жизненного цикла задачи
          default: discovery
          visibility: public
      custom_types:
        - slug: effort
          kind: enum
          title: Трудоемкость
          description: Оценка трудоемкости задачи в размерах одежды
          values:
            - slug: xs
              title: XS
              description: Совсем маленькая задача
            - slug: s
              title: S
              description: Небольшая задача
            - slug: m
              title: M
              description: Задача среднего размера
            - slug: l
              title: L
              description: Крупная задача
            - slug: xl
              title: XL
              description: Очень крупная задача
            - slug: xxl
              title: XXL
              description: Задача, которую стоит разбить на более мелкие
        - slug: testing_status
          kind: enum
          title: Статус тестирования
          description: Статус прохождения тестирования
          values:
            - slug: not_tested
              title: Не тестировалось
              description: Тестирование еще не начато
            - slug: testing
              title: Тестируется
              description: Тестирование выполняется
            - slug: needs_changes
              title: Требуются исправления
              description: По результатам тестирования найдены проблемы
            - slug: done
              title: Готово
              description: Тестирование успешно завершено
        - slug: stage
          kind: enum
          title: Этап задачи
          description: Текущий этап жизненного цикла задачи
          values:
            - slug: discovery
              title: Проработка
              description: Задача находится на этапе проработки
            - slug: development
              title: Разработка
              description: Задача находится на этапе разработки
            - slug: review
              title: Ревью
              description: Задача находится на этапе ревью
            - slug: prestable
              title: Стабилизация
              description: Задача практически стабилизирована
            - slug: internal_prod
              title: Внутренняя эксплуатация
              description: Задача находится во внутренней эксплуатации
            - slug: external_prod
              title: Внешняя эксплуатация
              description: Задача находится во внешней эксплуатации
    
  3. Добавьте файл в индекс Git, сделайте коммит и отправьте изменения в ветку по умолчанию:

    git add .sourcecraft/issues.yaml
    git commit -m "Add custom issue fields"
    git push origin <ветка_по_умолчанию>
    
  4. Создайте или откройте задачу на отдельной странице и убедитесь, что пользовательские поля отображаются в форме задачи.

Важно

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

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

Настроить поля на уровне организации

Чтобы использовать общие пользовательские поля во всех репозиториях организации, создайте специальный репозиторий .sourcecraft и добавьте в его ветку по умолчанию файл .sourcecraft/issues.yaml. Файл можно создать в интерфейсе SourceCraft или локально, как и для отдельного репозитория. Структура файла совпадает с конфигурацией отдельного репозитория.

Конфигурация репозитория имеет приоритет над конфигурацией организации. Если в обеих конфигурациях указан объект с одинаковым slug, используются параметры из репозитория. Списки значений enum из конфигурации репозитория заменяют организационные списки целиком.

На странице задачи сначала отображаются поля организации, а затем поля репозитория. Порядок внутри каждой группы соответствует порядку в соответствующем файле .sourcecraft/issues.yaml.

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