in client/src/components/runs/logs/forms/CommitRunForm.js [166:225]
get dockerImage () {
if (!this.props.dockerRegistries.loaded) {
return null;
}
if (this.props.defaultDockerImage) {
const parts = this.props.defaultDockerImage.split('/');
if (parts.length === 3) {
let tool = parts[2];
if (tool) {
tool = tool.split(':')[0];
}
let [selectedRegistry] = this.registries.filter(r => r.path === parts[0]);
let group = parts[1];
if (!selectedRegistry) {
selectedRegistry = this.registries[0];
group = selectedRegistry && selectedRegistry.groups
? selectedRegistry.groups[0].name : '';
tool = '';
}
if (selectedRegistry) {
const personalGroup = (selectedRegistry.groups || []).find(group => group.privateGroup);
if (personalGroup) {
group = personalGroup.name;
}
}
if (selectedRegistry && group) {
const [registryGroup] = (selectedRegistry.groups || []).filter(g => g.name === group);
if (registryGroup) {
const [groupTool] = (registryGroup.tools || [])
.filter(t => t.image === `${group}/${tool}`);
if (groupTool) {
if (!roleModel.writeAllowed(groupTool) && roleModel.writeAllowed(registryGroup)) {
tool = '';
} else if (!roleModel.writeAllowed(groupTool) &&
!roleModel.writeAllowed(registryGroup)) {
tool = '';
const selectFirstWritableGroup = g =>
roleModel.writeAllowed(g) || (g.tools || [])
.filter(t => roleModel.writeAllowed(t)).length > 0;
const selectFirstWritableRegistry = r =>
(r.groups || []).filter(selectFirstWritableGroup).length > 0;
[selectedRegistry] = this.registries.filter(selectFirstWritableRegistry);
if (selectedRegistry) {
const [writableGroup] = (selectedRegistry.groups || [])
.filter(selectFirstWritableGroup);
if (writableGroup) {
group = writableGroup.name;
}
}
}
}
}
}
if (selectedRegistry && group) {
return `${selectedRegistry.path}/${group}/${tool}`;
}
}
}
return null;
}