Skip to content

Latest commit

 

History

History
7072 lines (6064 loc) · 147 KB

api.md

File metadata and controls

7072 lines (6064 loc) · 147 KB

Scrum Game API

Table of Contents

Query

Field Argument Type Description
projects [Project!]!

Get all projects

project Project

Get a project by its ID

id UUID!
globalUsers [GlobalUser!]!

Get all global users

globalUser GlobalUser

Get a global user by its ID

id UUID!
currentUser GlobalUser

Get the current user

currentUserInfo BasicUserInfo

Get basic user information about the current user, currently fetched from Gropius

globalUserRoles [GlobalUserRole!]!

Get all global user roles

globalUserRole GlobalUserRole

Get a global user role by its name

name String!
eventTypes [EventType!]!

Get all event types

eventType EventType

Get an event type by its ID

id String!

Mutation

Field Argument Type Description
createProject Project!

Creates a new project. Requires the permission to create a project.

input CreateProjectInput!
updateProject Project!

Updates an existing project. Requires the permission to update a project.

id UUID!
input UpdateProjectInput!
deleteProject Boolean!

Deletes a project. Requires the permission to delete a project.

id UUID!
mutateProject ProjectMutation!

Perform changes on a project.

id UUID!
register GlobalUser!

Registers a new global user.

input CreateGlobalUserInput!
joinProject UserInProject!

Adds a user to a project.

projectId UUID!
updateGlobalUser GlobalUser!

Updates a global user.

id UUID!
input UpdateGlobalUserInput!
grantRole GlobalUser!

Grants a role to a user. The caller must have all permissions that are required by the role to grant it to another user.

userId UUID!
roleName String!
revokeRole GlobalUser!

Revokes a role from a user.

userId UUID!
roleName String!
deleteUser Boolean!

Deletes a user. Requires the permission to delete a user.

id UUID!
createGlobalUserRole GlobalUserRole!

Creates a new user role.

input CreateGlobalUserRoleInput!
updateGlobalUserRole GlobalUserRole!

Updates a user role.

name String!
input UpdateGlobalUserRoleInput!
deleteGlobalUserRole Boolean!

Deletes a user role.

name String!
createEventType EventType!

Creates a new event type.

input CreateEventTypeInput!
updateEventType EventType!

Updates an event type. This can only update event types created manually, not the predefined ones.

id String!
input UpdateEventTypeInput!
deleteEventType Boolean!

Deletes an event type. This can only delete event types created manually, not the predefined ones.

id String!

Objects

Achievement

An achievement is a goal that a user can achieve. It has a name, a description, a goal, and an icon.

Field Argument Type Description
identifier String!

Identifier of the achievement.

name String!

Name of the achievement.

description String!

Description of the achievement.

goal Int!

The target number of the achievement, e.g., the number of times a certain action has to be performed.

icon Icon

Icon of the achievement. Frontend only accepts emojis.

AchievementProgress

The progress of an achievement.

Field Argument Type Description
achievement Achievement!

The achievement that is being tracked.

progress Int!

Number of times the associated action has been performed.

achieved Boolean!

Whether the achievement has been achieved.

AnimalVoting

Details about the animal voting.

Field Argument Type Description
votableAnimals [Animal!]!

The animals that can be voted for.

animalVotingStates [AnimalVotingState!]!

The voting states for each animal, containing the votes of the users.

finished Boolean!

If the animal voting is finished.

votingResult Animal

If the animal voting is finished, the result of the voting.

AnimalVotingState

Holds the votes for an animal.

Field Argument Type Description
votedFor Animal!

The animal that is voted for.

userVotes [Vote!]!

The votes for the animal.

totalVotes Int!

The total number of votes for the animal.

BasicUserInfo

User info from the AuthenticationProvider

Field Argument Type Description
id String!

The ID of the user.

isAdmin Boolean!

If the user should be treated as an admin.

username String!

The username of the user.

avatar String

The avatar of the user. Should be a URL.

CodeRepositorySettings

Settings related to the code repositories of a project.

Field Argument Type Description
repositories [RepositoryDefinition!]!

DefaultDataField

Default implementation of the DataField interface.

Field Argument Type Description
key String!
type AllowedDataType!
value String

DefaultEvent

Implementation of the Event interface. Fields are described in the interface definition.

Field Argument Type Description
id UUID!
eventType DefaultEventType!
visibility EventVisibility!
userId UUID
visibleToUserIds [UUID!]!
projectId UUID
timestamp DateTime!
message String!
mostRecentChildTimestamp DateTime!
parent DefaultEvent
eventData [DefaultDataField!]!
children [DefaultEvent!]!
user GlobalUser

The user who is associated with this event.

reactions [Reaction!]!

List of reactions on this event.

field DataField

Get a field by name.

name String!
xpForCurrentUser Int

How much XP the current user has earned for this event.

DefaultEventType

Implementation of the EventType interface. Fields are described in the interface definition.

Field Argument Type Description
identifier String!
description String
defaultVisibility EventVisibility!
eventSchema DefaultSchemaDefinition!
messageTemplate String!

DefaultFieldSchemaDefinition

Default implementation of the FieldSchemaDefinition interface.

Field Argument Type Description
name String!
type AllowedDataType!
description String
required Boolean!
allowedValues [String!]

DefaultSchemaDefinition

Default implementation of the SchemaDefinition interface.

Field Argument Type Description
fields [DefaultFieldSchemaDefinition!]!

DefinitionOfDoneItem

A single item of the definition of done that has to be checked or commented on when completing an issue.

Field Argument Type Description
text String!

The text of the item.

required Boolean!

Whether the item is required to be checked. If not, the dialog can be completed without checking this item.

implies [DefinitionOfDoneItem!]!

Items that are implied by this item. If this item is checked, all items in this list also need to be checked if they are required.

EstimationStats

Statistics about the estimations.

Field Argument Type Description
median TShirtSizeEstimation
max TShirtSizeEstimation
min TShirtSizeEstimation
mode TShirtSizeEstimation

EstimationVote

Holds the votes for an estimation.

Field Argument Type Description
votedFor TShirtSizeEstimation!
userVotes [Vote!]!
totalVotes Int!

GlobalUser

A user of DinoDev. (In contrast to UserInProject, which is a user in a specific project.)

Field Argument Type Description
id UUID!
username String!

Username of the user.

avatar String

Avatar of the user. Must be a valid URL.

vcsUserId String!

ID of the user in the code repository system, e.g. GitHub.

roles [GlobalUserRole!]!

Roles of the user.

userInProject UserInProject

Gets the corresponding UserInProject object for the user in the given project.

projectId UUID!
userInProjects [UserInProject!]!

Gets all UserInProject objects, i.e., the edges between the user and the projects.

GlobalUserRole

Global roles define the permissions of a user on a global level. They are not tied to a specific project.

Currently, there is only a distinction between admins and non-admins.

Field Argument Type Description
name String!
globalPrivileges [GlobalPrivilege!]!

Icon

A single icon that can be displayed in the UI.

Field Argument Type Description
path String
mdiIcon String
url String
knownIcon KnownIcon
emoji String

ImsSettings

Ims specific settings of a project. Currently, this is tailored to Gropius.

Field Argument Type Description
imsName String!

Name of the IMS.

imsIcon Icon

Icon of the IMS. (currently not used!)

imsProjectId ID!

ID of the project in the IMS.

imsProjectUrl String!

URL of the project in the IMS.

issueStates [IssueState!]!

Sorted list of issue states.

imsIssueTemplateId ID!

Id of the issue template in the IMS.

effortEstimationFieldName String!

Name of the field in the IMS that contains the effort estimation.

sprintFieldName String!

Name of the field in the IMS that contains the sprint number.

partOfRelationId ID!

ID of the relation that defines the part-of relation.

issuePriorities [IssuePriorityConfiguration!]!

Issue priorities.

issueTypes [IssueTypeConfiguration!]!

Issue types.

Issue

Represents an issue in a project management system.

Field Argument Type Description
id ID!

Unique identifier for the issue.

projectId UUID!

Unique identifier of the project the issue belongs to.

title String!

Title of the issue, providing a brief summary.

description String

Detailed description of the issue. Markdown is supported.

state IssueState!

Current state of the issue.

type IssueType!

Categorization of the issue by type.

priority IssuePriority!

Priority of the issue.

sprintNumber Int

Sprint number associated with the issue, if applicable.

storyPoints Int

Story points associated with the issue. If not set, the issue is considered to not have an estimation yet. Might also be calculated based on the effort estimation.

effortEstimation TShirtSizeEstimation

Effort estimation associated with the issue. If not set, the issue is considered to not have an estimation yet.

assigneeIds [UUID!]!

List of user UUIDs representing the assignees of the issue.

issueEvents [Event!]!

List of events / timeline items of the issue.

labels [String!]!

Labels associated with the issue.

issueUrl String!

Url to the issue in the issue management system.

childrenIssueIds [ID!]!

Children issue ids of the issue.

parentIssueId ID

Parent issue id of the issue.

sprint Sprint

The sprint that this issue is in.

assignees [UserInProject]!

The assignees of this issue.

IssueEstimation

Details about the issue estimation.

Field Argument Type Description
planningMeeting PlanningMeeting!
votes [EstimationVote!]!
finished Boolean!
issueId ID
issue Issue
countdownSeconds Int
estimationStats EstimationStats
finalResult TShirtSizeEstimation

IssueMutation

Mutation type to change issues.

Field Argument Type Description
project Project!

The project that the issue belongs to.

issueId String!

The id of the issue that is being changed.

changeIssueTitle Issue!

Change the title of the issue.

title String!
changeIssueDescription Issue!

Change the description of the issue.

description String
changeIssueState Issue!

Change the state of the issue.

stateName String!
changeIssueType Issue!

Change the type of the issue.

typeName String!
changeSprint Issue!

Change the sprint of the issue.

sprintNumber Int
commentOnIssue Issue!

Add a comment to the issue.

comment String!
optionalParentId String
finishIssue Issue!

Move an issue to the state with the given name and add a comment to the issue, containing the definition of done confirm states.

dodConfirmStates [DefinitionOfDoneConfirmState!]!
doneStateName String
assignIssue Issue!

Assign the issue to the user with the given id.

assigneeId UUID

IssuePriorityConfiguration

Establishes a mapping between an issue priority in the IMS and the corresponding priority in DinoDev.

Field Argument Type Description
imsPriorityId ID!
issuePriority IssuePriority!

IssueState

Represents the state of an issue within its lifecycle.

Field Argument Type Description
name String!

Name of the state.

type IssueStateType!

Type of the state, categorizing its position in the workflow.

imsStateId ID!

Identifier for the state in an issue management system.

IssueStateInBoard

Represents a column in a Kanban board.

Field Argument Type Description
state IssueState!

The issue state of the column.

projectBoard ProjectBoard!

The project board that the column belongs to.

issues [Issue!]!

The issues in the column.

IssueType

Defines the type of an issue, such as bug, feature, etc.

Field Argument Type Description
name String!

Name of the issue type.

imsTypeId ID!

Identifier for the issue type in an issue management system.

description String

Description of what the issue type entails.

iconPath String

Path to an icon visually representing the issue type.

IssueTypeConfiguration

Establishes a mapping between an issue type in the IMS and the corresponding type in DinoDev.

Field Argument Type Description
name String!
imsTypeId ID!

MeetingAttendee

A user that attends a meeting.

Field Argument Type Description
userId UUID!

The id of the user.

state UserState!

The state of the user, e.g. online, offline or away.

role MeetingRole!

The role of the user.

user GlobalUser!

The user who is attending the meeting.

NameVoting

Details about the name voting.

Field Argument Type Description
votableNames [String!]!

The names that can be voted for.

nameVotingStates [NameVotingState!]!

The voting states for each name, containing the votes of the users.

finished Boolean!

If the name voting is finished.

votingResult String

If the name voting is finished, the result of the voting.

NameVotingState

Holds the votes for a name.

Field Argument Type Description
votedFor String!

The name that is voted for.

userVotes [Vote!]!

The votes for the name.

totalVotes Int!

The total number of votes for the name.

PaginationInfo

Return type for information about paginated results.

Field Argument Type Description
page Int!

The current page number.

size Int!

The number of elements per page.

totalElements Int!

The total number of elements across all pages.

totalPages Int!

The total number of pages.

hasNext Boolean!

Whether there is a next page.

PlacedAsset

Represents a placed decoration in the animal enclosure.

Field Argument Type Description
id UUID!
asset KnownAsset!

The asset that has been placed.

x Int!

The x-coordinate of the asset (center of the asset).

y Int!

The y-coordinate of the asset (center of the asset).

placedByUserId UUID!

The user who placed the asset.

placedBy UserInProject!

PlanningMeeting

The PlanningMeeting represents the SCRUM planning meeting.

Field Argument Type Description
planningSettings PlanningSettings!

The settings of the planning meeting.

currentPage PlanningMeetingPage!

The current page.

animalVoting AnimalVoting!

Details about the animal voting.

nameVoting NameVoting!

Details about the name voting.

issueEstimation IssueEstimation!

Details about the current issue estimation.

sprintGoalVoting SprintGoalVoting!

Details about the sprint goal voting.

meetingType MeetingType!

The type of the meeting, must be PLANNING.

active Boolean!

If the meeting is currently active.

attendees [MeetingAttendee!]!

The attendees of the meeting. Contains at most one meeting leader.

projectId UUID!

The id of the project that the meeting is associated with.

PlanningMeetingMutation

Wrapper type for all operations on the planning meeting.

Field Argument Type Description
project Project!
changePage PlanningMeeting!
page PlanningMeetingPage!
voteAnimal PlanningMeeting!

Add a vote for an animal.

animal Animal!
endAnimalVoting PlanningMeeting!

For meeting leader: End the animal voting.

addName PlanningMeeting!

Adds a new name that can be voted for.

name String!
voteName PlanningMeeting!

Adds a vote for a name.

name String!
endNameVoting PlanningMeeting!

For meeting leader: End the name voting.

voteEstimation PlanningMeeting!

Vote for a t-shirt size on the current issue.

estimation TShirtSizeEstimation!
restartEstimation PlanningMeeting!

For meeting leader: Restart the estimation of the current issue.

nextIssue PlanningMeeting!

For meeting leader: Selects an issue to estimate.

issueId String
startCountdown PlanningMeeting!

For meeting leader: Start a countdown for the estimation. After the countdown, the estimation will end, as if "endEstimation" was called.

seconds Int!
endEstimation PlanningMeeting!

For meeting leader: End the estimation of the current issue.

setFinalResult PlanningMeeting!

Confirm the final estimation result.

estimation TShirtSizeEstimation!

The final estimation result.

assignUserIds [UUID!]!

Optional: user ids that should be assigned to the issue.

addSprintIssue PlanningMeeting!

Adds an issue to the sprint goal.

issueId String!
removeSprintIssue PlanningMeeting!

Removes an issue from the sprint goal.

issueId String!
finishSprintGoalVoting PlanningMeeting!

For meeting leader: End the sprint goal voting.

finishMeeting Sprint!

For meeting leader: Finish the planning meeting.

PlanningSettings

The settings of the planning meeting.

Field Argument Type Description
sprintDurationDays Int

The duration of the sprint in days.

sprintStartDate DateTime!

The start date of the sprint.

customGoldChallengeReward String

A custom reward for the gold challenge. (currently not used)

Project

Represents a student development project.

Field Argument Type Description
id UUID!

Unique identifier of the project. (This is not the same ID as the one in the IMS.)

name String!

Name of the project.

description String

Description of the project.

projectSettings ProjectSettings!

Project settings.

currentSprintNumber Int

The number of the current sprint. Returns null if no sprint is active.

currentSprint Sprint

The current sprint of the project. Returns null if no sprint is active.

previousSprint Sprint

The previous sprint of the project. Returns null if no sprint is active.

sprints [Sprint!]!

All sprints of the project.

users [UserInProject!]!

Returns the users of the project.

currentUser UserInProject

Return the currently logged in user in the project, defined by the JWT token.

activePlanningMeeting PlanningMeeting

Returns the planning meeting of the project if one is active, otherwise null.

activeStandupMeeting StandupMeeting

Returns the standup meeting of the project if one is active, otherwise null.

activeRetrospectiveMeeting RetrospectiveMeeting

Returns the retrospective meeting of the project if one is active, otherwise null.

roles [ProjectRole!]!

Returns all project roles.

role ProjectRole

Returns the role with the given name.

name String!
issues [Issue!]!

Returns the issues of the project.

issue Issue

Returns the issue with the given ID.

id UUID!
projectBoard ProjectBoard!

Groups the issues of the project by their state, representing a Kanban board.

events [Event!]!

Returns the events of the project.

NOTE: This also triggers the synchronization of Gropius events.

page Int
size Int
shopItems [ShopItem!]!

Returns the shop items of the project.

ProjectBoard

Represents a Kanban board.

Field Argument Type Description
project Project!

The project that the board belongs to.

states [IssueStateInBoard!]!

Ordered list of states in the board.

ProjectMutation

Wrapper that contains all project related mutations.

Field Argument Type Description
project Project!
joinMeeting Meeting!

Adds the current user to a meeting.

type MeetingType!
leaveMeeting Meeting

Marks the current user as offline in a meeting.

type MeetingType!
cancelMeeting Meeting!

Cancels a meeting.

type MeetingType!
promoteToMeetingLeader Meeting!

Promotes a user to a leader in a meeting.

type MeetingType!
userId UUID!
reactToEvent Event!

Adds a reaction to an event. Currently, the reaction string does not influence the behavior.

eventId UUID!
reaction String!
postComment Event!

Adds a new global comment to an event.

optionalParentEventId UUID

ID of the parent comment if the comment is a reply.

comment String!
createPlanningMeeting PlanningMeeting!

Starts a new planning meeting.

input PlanningMeetingInput!
mutatePlanningMeeting PlanningMeetingMutation!

Perform changes to the planning meeting.

createStandupMeeting StandupMeeting!

Starts a new standup meeting.

input StandupMeetingInput!
mutateStandupMeeting StandupMeetingMutation!

Perform changes to the standup meeting.

createRetrospectiveMeeting RetrospectiveMeeting!

Starts a new retrospective meeting.

input RetrospectiveMeetingInput!
mutateRetrospectiveMeeting RetrospectiveMeetingMutation!

Perform changes to the retrospective meeting.

createRole ProjectRole!
input CreateProjectRoleInput!
updateRole ProjectRole!
name String!
input UpdateProjectRoleInput!
deleteRole Boolean!
name String!
createSprint Sprint!

Creates a new sprint. Remark: It is recommended to use the start new sprints via a planning meeting.

input CreateSprintInput
updateSprint Sprint!

Updates a sprint.

number Int!
input UpdateSprintInput!
mutateIssue IssueMutation!

Perform changes to an issue.

id ID!
createIssue Issue!

Creates a new issue.

input CreateIssueInput!
resetUserStats Boolean!

Resets the user stats of the project. Requires the user to have the role "ADMIN".

resetAchievements Boolean!

Resets the achievements of the project. Requires the user to have the role "ADMIN".

buyAndPlace PlacedAsset!

Places a new decoration asset in the enclosure.

input PlaceAssetInput!

ProjectRole

Roles are used to define the permissions of a user in a project. A user can have multiple roles in a project.

NOTE: Project-level privileges/roles are NOT implemented yet. While the general framework is in place, an actual differentiation between roles has yet to be implemented.

Field Argument Type Description
name String!
gamifiedName String!
projectId UUID!
project Project!
projectPrivileges [ProjectPrivilege!]!

ProjectSettings

Settings of a project.

Field Argument Type Description
codeRepositorySettings CodeRepositorySettings!
imsSettings ImsSettings!
definitionOfDone [DefinitionOfDoneItem!]!

Reaction

Represents a like to an event.

Field Argument Type Description
userId UUID!
user GlobalUser
reaction String!

RepositoryDefinition

Definition of a code repository.

Field Argument Type Description
name String!
url String!
icon Icon

RetrospectiveActivity

Column-based activity in the retrospective meeting.

Field Argument Type Description
id UUID!
name String!
columns [RetrospectiveColumn!]!

RetrospectiveColumn

A category of comments in the retrospective meeting. For example "Mad" in a "Mad, Sad, Glad" activity.

Field Argument Type Description
id UUID!
title String!
description String!
comments [RetrospectiveComment!]!

Comments in this column.

RetrospectiveComment

A comment by a user in the retrospective activity.

Field Argument Type Description
id UUID!
content String!
authorId UUID!
thumbsUpBy [UUID!]!

RetrospectiveMeeting

Represents a retrospective meeting.

Field Argument Type Description
currentPage RetrospectiveMeetingPage!

Current page of the retrospective meeting.

goldMedalUserId UUID

Id of the user who achieved the gold medal. Can be null, if no user contributed to the project in the sprint.

silverMedalUserId UUID

Id of the user who achieved the silver medal. Can be null, if only one user contributed to the project in the sprint.

bronzeMedalUserId UUID

Id of the user who achieved the bronze medal. Can be null, if only two users contributed to the project in the sprint.

goldMedalUser GlobalUser

User who achieved the gold medal. Can be null, if no user contributed to the project in the sprint.

silverMedalUser GlobalUser

User who achieved the silver medal. Can be null, if only one user contributed to the project in the sprint.

bronzeMedalUser GlobalUser

User who achieved the bronze medal. Can be null, if only two users contributed to the project in the sprint.

goldMedalPoints Float

Number of SP the gold medal user achieved.

silverMedalPoints Float

Number of SP the silver medal user achieved.

bronzeMedalPoints Float

Number of SP the bronze medal user achieved.

goldChallengeReward Animal

Reward for the gold challenge, if it was achieved and there are any rewards left to unlock.

baseRewards [KnownAsset!]!

List of rewards. Given under any circumstances, but may be empty.

streakRewards [KnownAsset!]!

List of rewards when a streak of two or more successful sprints is achieved.

activities [RetrospectiveActivity!]!

List of activities in the retrospective meeting. Currently, the frontend only supports this list to have a length of 0 or 1.

meetingType MeetingType!
active Boolean!
attendees [MeetingAttendee!]!
projectId UUID!

RetrospectiveMeetingMutation

Mutation type for retrospective meetings. Contains all mutations that can be performed on retrospective meetings.

Field Argument Type Description
project Project!
updatePage RetrospectiveMeeting!

Updates the current page of the retrospective meeting.

page RetrospectiveMeetingPage!
awardMedals RetrospectiveMeeting!

Should be called for the medal awarding to happen. Adds badges to the users who achieved the medals and awards virtual currency.

addComment RetrospectiveMeeting!

Adds a comment to the respective column in a retrospective activity.

columnId UUID!
content String!
editComment RetrospectiveMeeting!

Updates a comment in the retrospective meeting.

commentId UUID!
content String!
deleteComment RetrospectiveMeeting!

Deletes a comment in the retrospective meeting.

commentId UUID!
thumbsUpComment RetrospectiveMeeting!

Adds a thumbs-up to a comment in the retrospective meeting.

commentId UUID!
finishMeeting RetrospectiveMeeting!

Finishes the retrospective meeting.

ShopItem

Field Argument Type Description
id UUID!
name String!
price Int!
image KnownAsset!

Sprint

Represents a sprint in a project.

Field Argument Type Description
id UUID!
project Project!

The project this sprint belongs to.

animal Animal

The animal that represents this sprint.

name String

The name of the sprint.

number Int!

The number of the sprint. Starts with 1 and is incremented by 1 for each new sprint.

startDate DateTime
endDate DateTime
storyPointsPlanned Int

The number of story points that are planned for this sprint. This is null for sprints that have been created before using DinoDev.

customGoldChallengeReward String

Custom reward for achieving the gold challenge.

issues [Issue!]!

Issues that are part of this sprint.

stats SprintStats!

Stats for this sprint.

placedAssets [PlacedAsset!]!

Places assets in the animal enclosure.

SprintGoalVoting

Details about the sprint goal voting.

Field Argument Type Description
planningMeeting PlanningMeeting!
sprintIssueIds [ID!]!
nonSprintIssueIds [ID!]!
sprintIssues [Issue!]!
nonSprintIssues [Issue!]!
finished Boolean!

SprintStats

Stats for a sprint.

Field Argument Type Description
Sprint Sprint!
successState SprintSuccessState!

The success state of the sprint.

streak Int!

The sprint streak is the number of consecutive sprints that have been successfully completed.

totalStoryPoints Int!

The number of story points that have been completed.

averageStoryPoints Float!

The average number of story points per issue.

percentageStoryPointsCompleted Float!

The percentage of story points that have been completed.

percentageStoryPointsInProgress Float!

The percentage of story points that are in progress.

percentageStoryPointsNotStarted Float!

The percentage of story points that have not been started.

issueCount Int!

The number of issues in this sprint.

daysLeft Int!

The number of days left in this sprint.

daysElapsed Int!

The number of days that have elapsed in this sprint.

percentageTimeElapsed Float!

The percentage of time that has elapsed in this sprint.

storyPointsByDay [Int!]!

Array where each element represents the number of story points that have been completed on the corresponding day of the sprint.

burnDown [Int!]

Array where each element represents the number of story points left to complete on the corresponding day of the sprint. This can be used to create a burn down chart. This is null if the sprint was not created using DinoDev.

userStats [SprintUserStats!]!

Stats for each user in this sprint.

userStatsByUserId SprintUserStats!

Stats for a specific user in this sprint.

userId UUID!

SprintUserStats

Stats for a user in a sprint.

Field Argument Type Description
userId UUID!
storyPointsCompleted Float!

The number of story points that have been completed by this user.

StandupMeeting

Represents a standup meeting.

Field Argument Type Description
standupMeetingSettings StandupMeetingSettings!
order [MeetingAttendee!]!

The randomly assigned order of attendees in the meeting.

currentAttendee MeetingAttendee

The user whose turn it is to speak.

meetingType MeetingType!
active Boolean!
attendees [MeetingAttendee!]!
projectId UUID!

StandupMeetingMutation

Mutation type for standup meetings. Contains all mutations that can be performed on standup meetings.

Field Argument Type Description
project Project!
startStandupMeeting StandupMeeting!

Starts the standup meeting. This will determine the order of attendees randomly.

changeCurrentAttendee StandupMeeting!

Changes the current attendee in the standup meeting.

attendeeId UUID!
finishStandupMeeting StandupMeeting!

Finishes the standup meeting.

StandupMeetingSettings

Settings for a standup meeting.

Field Argument Type Description
countdownPerAttendee Int

The (optional) number of seconds each attendee has to speak.

Subscription

Field Argument Type Description
meeting Meeting

Returns the current meeting instance for the given project and meeting type. This is updated in real-time when the meeting changes.

projectId UUID!
meetingType MeetingType!
planningMeeting PlanningMeeting

Returns the current planning meeting instance for the given project. This is updated in real-time when the meeting changes.

projectId UUID!
standupMeeting StandupMeeting!

Returns the current standup meeting instance for the given project. This is updated in real-time when the meeting changes.

projectId UUID!
retrospectiveMeeting RetrospectiveMeeting!

Returns the current retrospective meeting instance for the given project. This is updated in real-time when the meeting changes.

projectId UUID!
event Event!

Listens for new events for the given project and user.

projectId UUID!
userId UUID!

UserInProject

Field Argument Type Description
roles [ProjectRole!]!
userStats UserStats!
userId UUID!
user GlobalUser!
projectId UUID!
project Project!
publicEvents [Event!]!
size Int
page Int
achievements [AchievementProgress!]!
currentBadge Icon

UserStats

Field Argument Type Description
xp Int!
totalXp Int!
xpToNextLevel Int!
level Int!
issuesCompleted Int!
issuesCreated Int!
commentsWritten Int!
reactionsGiven Int!
pullRequestsCreated Int!
pullRequestsClosed Int!
pullRequestsReviewed Int!
goldMedals Int!
silverMedals Int!
bronzeMedals Int!
virtualCurrency Int!

Vote

Represents a vote for a name or animal.

Field Argument Type Description
userId UUID!

The id of the user who voted.

user GlobalUser!

The user who voted.

Inputs

CodeRepositorySettingsInput

Field Type Description
repositories [RepositoryDefinitionInput!]!

CreateEventInput

Input for creating an event. Fields are described in the Event interface.

Field Type Description
id UUID
eventTypeIdentifier String!
visibility EventVisibility

Visibility of the event. If not provided, the default visibility of the event type is used.

timestamp DateTime!
message String

Message of the event. If not provided, the message template of the event type is used and the eventData is used to fill in the template.

userId UUID
projectId UUID
eventData [DataFieldInput!]!
parentId UUID
visibleToUserIds [UUID!]

CreateEventTypeInput

Input for creating an event type.

Field Type Description
identifier String!
description String
defaultVisibility EventVisibility!
eventSchema SchemaDefinitionInput!
messageTemplate String!

CreateGlobalUserInput

Input to register a new global user.

Field Type Description
username String!
avatar String
vcsUserId String!

CreateGlobalUserRoleInput

Field Type Description
name String!
globalPrivileges [GlobalPrivilege!]!

CreateIssueInput

Input type for creating a new issue.

Field Type Description
title String!

Title of the new issue.

description String

Detailed description of the new issue. Can be GitLab-flavored markdown.

stateName String!

Name of the state the issue should be initially set to.

typeName String!

Name of the type the issue should be categorized under.

sprintNumber Int

Sprint number the issue is associated with, if applicable.

CreateProjectInput

Input to create a new project.

Field Type Description
name String!
description String
startingSprintNumber Int!

At which sprint number the project should start. Useful if DinoDev is not used from the beginning of the project.

projectSettings ProjectSettingsInput!

CreateProjectRoleInput

Field Type Description
name String!
gamifiedName String!
projectPrivileges [ProjectPrivilege!]!

CreateSprintInput

Input object to create a new sprint.

Field Type Description
name String!
startDate DateTime!
endDate DateTime!
storyPointsPlanned Int!
animal Animal!
customGoldChallengeReward String

DataFieldInput

Input for creating a data field.

Field Type Description
key String!
type AllowedDataType!
value String

DateTimeFilter

Filter for date values. If multiple filters are specified, they are combined with AND.

Field Type Description
after DateTime

If specified, filters for dates after the specified value.

before DateTime

If specified, filters for dates before the specified value.

DefinitionOfDoneConfirmState

Represents an item of the definition of done and with the information if it is checked or not and the reason if it is not checked.

Field Type Description
dodText String!

Text of the definition of done item.

checked Boolean!

If the item is checked.

reasonIfNotChecked String

The reason why the item is not checked. Should be null if the item is checked.

children [DefinitionOfDoneConfirmState!]!

The child confirm states, containing the child items of the definition of done item.

DefinitionOfDoneItemInput

Field Type Description
text String!
required Boolean!
implies [DefinitionOfDoneItemInput!]!

FieldSchemaDefinitionInput

Input for creating and updating a field schema definition.

Field Type Description
name String!
type AllowedDataType!
description String
required Boolean!
allowedValues [String!]

IconInput

Field Type Description
path String
mdiIcon String
url String
knownIcon KnownIcon
emoji String

ImsSettingsInput

Input for the IMS settings. For a documentation of the fields, see the corresponding fields in the ImsSettings type.

Field Type Description
imsName String!
imsIcon IconInput!
imsProjectId ID!
imsProjectUrl String!
issueStates [IssueStateInput!]!
imsIssueTemplateId ID!
effortEstimationFieldName String!
sprintFieldName String!
partOfRelationId ID!
issuePriorities [IssuePriorityInput!]!
issueTypes [IssueTypeInput!]!

IntFilter

Filter for integer values. If multiple filters are specified, they are combined with AND.

Field Type Description
equals Int

An integer value to match exactly.

greaterThan Int

If specified, filters for values greater than to the specified value.

lessThan Int

If specified, filters for values less than to the specified value.

IssuePriorityInput

Field Type Description
imsPriorityId ID!
issuePriority IssuePriority!

IssueStateInput

Field Type Description
name String!
type IssueStateType!
imsStateId ID!

IssueTypeInput

Field Type Description
name String!
imsTypeId ID!

Pagination

Specifies the page size and page number for paginated results.

Field Type Description
page Int!

The page number, starting at 0. If not specified, the default value is 0. For values greater than 0, the page size must be specified. If this value is larger than the number of pages, an empty page is returned.

size Int!

The number of elements per page.

PlaceAssetInput

Input for placing an asset in the animal enclosure.

Field Type Description
asset KnownAsset!
x Int!
y Int!

PlanningMeetingInput

Field Type Description
meetingLeaderId UUID!
planningSettings PlanningSettingsInput!

PlanningSettingsInput

Field Type Description
sprintDurationDays Int!
sprintStartDate DateTime!
goldChallengeCustomReward String

ProjectSettingsInput

Input for the project settings.

Field Type Description
codeRepositorySettings CodeRepositorySettingsInput!
imsSettings ImsSettingsInput!
definitionOfDone [DefinitionOfDoneItemInput!]!

Definition of done items.

RepositoryDefinitionInput

Field Type Description
name String!
url String!
icon IconInput!

RetrospectiveActivityInput

Field Type Description
name String!
columns [RetrospectiveColumnInput!]!

RetrospectiveColumnInput

Field Type Description
title String!
description String!

RetrospectiveMeetingInput

Field Type Description
meetingLeaderId UUID!
activities [RetrospectiveActivityInput!]!

SchemaDefinitionInput

Input for creating and updating a schema definition.

Field Type Description
fields [FieldSchemaDefinitionInput!]!

StandupMeetingInput

Field Type Description
standupMeetingSettings StandupMeetingSettingsInput
meetingLeaderId UUID!

StandupMeetingSettingsInput

Field Type Description
countdownPerAttendee Int

StringFilter

Filter for string values. If multiple filters are specified, they are combined with AND.

Field Type Description
equals String

A string value to match exactly.

contains String

A string value that must be contained in the field that is being filtered.

ignoreCase Boolean!

If true, the filter is case-insensitive.

UpdateEventTypeInput

Input for updating an event type.

Field Type Description
description String
defaultVisibility EventVisibility!
eventSchema SchemaDefinitionInput!
messageTemplate String!

UpdateGlobalUserInput

Input to update a global user.

Field Type Description
username String!
avatar String
vcsUserId String!

UpdateGlobalUserRoleInput

Field Type Description
globalPrivileges [GlobalPrivilege!]!

UpdateProjectInput

Input to update a project.

Field Type Description
name String!
description String
projectSettings ProjectSettingsInput!

UpdateProjectRoleInput

Field Type Description
gamifiedName String!
projectPrivileges [ProjectPrivilege!]!

UpdateSprintInput

Input object to update an existing sprint.

Field Type Description
name String
startDate DateTime
endDate DateTime
storyPointsPlanned Int
animal Animal
customGoldChallengeReward String

Enums

AllowedDataType

Value Description
STRING
INTEGER
DOUBLE
BOOLEAN

Animal

All known animals that can be placed in the park.

Frontend supports TREX, TRICERATOPS, DODO, and PARAUSOLOPHUS.

Value Description
STEGOSAURUS
TREX
BRONTOSAURUS
TRICERATOPS
ANKYLOSAURUS
PARASAUROLOPHUS
DODO
MAMMOTH
GIANT_SLOTH

EventVisibility

Value Description
INTERNAL

Internal events. Not visible to users. May be shown to administrators.

PRIVATE

Only for the user who created the event and users in "visibleToUserIds".

DETAIL

Detail level: visible to all users but only when viewing a specific object, not in the whole list of events.

PUBLIC

Project detail level: visible to all users

GlobalPrivilege

Privileges on the global level, i.e., not tied to a specific project. Currently, UPDATE_ROLE and LIST_USERS are not used.

Value Description
CREATE_PROJECT
CREATE_ROLE
UPDATE_ROLE
DELETE_ROLE
READ_USER_PRIVATE_INFO
CHANGE_ROLES
UPDATE_USER
DELETE_USER
LIST_USERS

IssuePriority

Enumeration of priorities for issues.

Value Description
LOW
MEDIUM
HIGH

IssueStateType

Enumeration of possible states an issue can be in during its lifecycle.

Value Description
BACKLOG
SPRINT_BACKLOG
IN_PROGRESS
DONE_SPRINT
DONE

KnownAsset

All known decorations that can be placed in the park.

Note: not all are yet supported by the frontend.

Value Description
WATER_PUDDLE
CAVE
TREES
TREE_WITH_ROCKS
BUSHES_1
BUSHES_2
BUSHES_3
ROCK_1
ROCK_2
FEEDING_TROUGH
FLOWERS
FOUNTAIN
CAVE_2

KnownIcon

Value Description
GROPIUS

MeetingRole

The role of the user in a meeting. Can be an attendee or the meeting leader.

Value Description
ATTENDEE
MEETING_LEADER

MeetingType

The type of the meeting, which can be a planning, retrospective or standup meeting.

Value Description
PLANNING
RETROSPECTIVE
STANDUP

PlanningMeetingPage

The pages of the planning meeting.

Value Description
INFORMATION
CHOOSE_ANIMAL
NAME_ANIMAL
ESTIMATE_ISSUES
SPRINT_GOAL

ProjectPrivilege

Privileges on the project level.

NOTE: This is NOT implemented yet. These are just suggestions. Future work is needed to implement project-level privileges.

Value Description
READ_PROJECT
UPDATE_PROJECT
DELETE_PROJECT
CREATE_SPRINT
UPDATE_SPRINT
DELETE_SPRINT
CREATE_SHOP_ITEM
UPDATE_SHOP_ITEM
DELETE_SHOP_ITEM
CREATE_USER
UPDATE_USER
DELETE_USER
CREATE_ROLE
UPDATE_ROLE
DELETE_ROLE
READ_USER_PRIVATE_INFO

RetrospectiveMeetingPage

Value Description
INFORMATION
SPRINT_RESULT
MEDAL_CEREMONY
GAMES

SortDirection

Specifies the sort direction, either ascending or descending.

Value Description
ASC
DESC

SprintSuccessState

A sprint can have different success states:

  • IN_PROGRESS: The sprint is currently in progress
  • UNKNOWN: The success state is unknown
  • FAILED: The sprint has failed, i.e. not all story points have been completed
  • SUCCESS: The sprint has been successfully completed
  • SUCCESS_WITH_GOLD_CHALLENGE: The sprint has been successfully completed and the gold challenge has been achieved
Value Description
IN_PROGRESS
UNKNOWN
FAILED
SUCCESS
SUCCESS_WITH_GOLD_CHALLENGE

TShirtSizeEstimation

Enumeration of possible sizes for a T-shirt estimation.

Value Description
XS
S
M
L
XL

UserState

The state of the user in a meeting. Can be online, offline or away. Away is currently not used.

Value Description
ONLINE
OFFLINE
AWAY

Scalars

Boolean

The Boolean scalar type represents true or false.

Date

DateTime

Float

The Float scalar type represents signed double-precision fractional values as specified by IEEE 754.

ID

The ID scalar type represents a unique identifier, often used to refetch an object or as key for a cache. The ID type appears in a JSON response as a String; however, it is not intended to be human-readable. When expected as an input type, any string (such as "4") or integer (such as 4) input value will be accepted as an ID.

Int

The Int scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.

LocalTime

String

The String scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.

Time

UUID

Url

Interfaces

DataField

Represents a field in the data of an event.

Field Argument Type Description
key String!

Name of the field.

type AllowedDataType!

Type of the field.

value String

Value of the field, as a string.

Event

Represents an event in the system.

Field Argument Type Description
id UUID!

Unique identifier of the event.

eventType EventType!

Type of the event.

visibility EventVisibility!

Visibility of the event.

userId UUID

Id of the user who triggered the event.

visibleToUserIds [UUID!]!

List of user ids who can see the event (in addition to the user who triggered the event).

projectId UUID

Id of the project the event belongs to.

timestamp DateTime!

Timestamp of the event.

message String!

Message of the event.

mostRecentChildTimestamp DateTime!

Timestamp of the most recent child event.

parent Event

Parent event, if any.

eventData [DataField!]!

Data of the event.

children [Event!]!

List of child events.

user GlobalUser

The user who is associated with this event.

reactions [Reaction!]!

List of reactions on this event.

field DataField

Get a field by name.

name String!
xpForCurrentUser Int

How much XP the current user has earned for this event.

EventType

Represents a type of event in the system.

Field Argument Type Description
identifier String!

Unique, human readable identifier of the event type.

description String

Description of the event type.

defaultVisibility EventVisibility!

Default of the event type.

eventSchema SchemaDefinition!

Describes the schema of the event data.

messageTemplate String!

String template for the message of the event.

FieldSchemaDefinition

Schema definition for a field in the event data.

Field Argument Type Description
name String!

Name of the field.

type AllowedDataType!

Type of the field.

description String

Description of the field.

required Boolean!

Whether the field is required.

allowedValues [String!]

Allowed values for the field. Set to null if any value is allowed.

Meeting

Represents a SCRUM meeting.

Field Argument Type Description
meetingType MeetingType!

The type of the meeting.

active Boolean!

If the meeting is currently active.

attendees [MeetingAttendee!]!

The attendees of the meeting. Contains at most one meeting leader.

projectId UUID!

The id of the project that the meeting is associated with.

SchemaDefinition

Definition of the schema of the event data.

Field Argument Type Description
fields [FieldSchemaDefinition!]!

List of fields in the schema.