# 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: {} } } }); ```