# Youtrack
[[Source Control]] [[Software Engineering]] [[Staff Engineer]]
[[Jetbrains]]'s [[Project Management]] platform, which is not too bad I guess. It's free up to 10 developers. It has a nice [[Knowledge Base]] section that is probably worth it if in a team. For personal [[PROJECTS]] I have [[My Obsidian Vault]].
Writing workflows in Youtrack is pretty cool, for example, this is the [`allow-moving-ready-to-pull-only` rule](https://wesen.youtrack.cloud/admin/scripts/101-47?scriptId=102-156) in the [[Kanban]] workflow:
```js
const entities = require('@jetbrains/youtrack-scripting-api/entities');
const workflow = require('@jetbrains/youtrack-scripting-api/workflow');
exports.rule = entities.Issue.onChange({
title: 'Block change in Kanban stage for issues that are not ready to pull',
guard: (ctx) => {
const issue = ctx.issue;
return issue.isReported && issue.fields.isChanged(ctx.Stage);
},
action: (ctx) => {
const issue = ctx.issue;
workflow.check(issue.fields.is(ctx.KanbanState, ctx.KanbanState.ReadyToPull),
'The issue is not ready to be pulled');
issue.fields.KanbanState = ctx.KanbanState.Blocked;
},
requirements: {
Stage: {
type: entities.State.fieldType
},
KanbanState: {
name: 'Kanban State',
type: entities.EnumField.fieldType,
ReadyToPull: {
name: 'Ready to pull'
},
Blocked: {}
}
}
});
```