1
0
Fork 0
mirror of https://github.com/portainer/portainer.git synced 2025-07-24 15:59:41 +02:00
portainer/app/extensions/registry-management/services/registryServiceSelector.js
xAt0mZ 198e92c734 feat(registry): gitlab support (#3107)
* feat(api): gitlab registry type

* feat(registries): early support for gitlab registries

* feat(app): registry service selector

* feat(registry): gitlab support : list repositories and tags - remove features missing

* feat(registry): gitlab registry remove features

* feat(registry): gitlab switch to registry V2 API for repositories and tags

* feat(api): use development extension binary

* fix(registry): avoid 401 on gitlab retrieve to disconnect the user

* feat(registry): gitlab browse projects without extension

* style(app): code cleaning

* refactor(app): PR review changes + refactor on types

* fix(gitlab): remove gitlab info from registrymanagementconfig and force gitlab type

* style(api): go fmt

* feat(api): update APIVersion and ExtensionDefinitionsURL

* fix(api): fix invalid RM extension URL

* feat(registry): PAT scope help

* feat(registry): defaults on registry creation

* style(registry-creation): update layout and text for Gitlab registry

* feat(registry-creation): update gitlab notice
2019-11-12 16:28:31 +13:00

82 lines
2.7 KiB
JavaScript

import { RegistryTypes } from 'Extensions/registry-management/models/registryTypes';
angular.module('portainer.extensions.registrymanagement')
.factory('RegistryServiceSelector', ['$q', 'RegistryV2Service', 'RegistryGitlabService',
function RegistryServiceSelector($q, RegistryV2Service, RegistryGitlabService) {
'use strict';
const service = {};
service.ping = ping;
service.repositories = repositories;
service.getRepositoriesDetails = getRepositoriesDetails;
service.tags = tags;
service.getTagsDetails = getTagsDetails;
service.tag = tag;
service.addTag = addTag;
service.deleteManifest = deleteManifest;
service.shortTagsWithProgress = shortTagsWithProgress;
service.deleteTagsWithProgress = deleteTagsWithProgress;
service.retagWithProgress = retagWithProgress;
function ping(registry, forceNewConfig) {
let service = RegistryV2Service;
return service.ping(registry, forceNewConfig)
}
function repositories(registry) {
let service = RegistryV2Service;
if (registry.Type === RegistryTypes.GITLAB) {
service = RegistryGitlabService;
}
return service.repositories(registry);
}
function getRepositoriesDetails(registry, repositories) {
let service = RegistryV2Service;
return service.getRepositoriesDetails(registry, repositories);
}
function tags(registry, repository) {
let service = RegistryV2Service;
return service.tags(registry, repository);
}
function getTagsDetails(registry, repository, tags) {
let service = RegistryV2Service;
return service.getTagsDetails(registry, repository, tags);
}
function tag(registry, repository, tag) {
let service = RegistryV2Service;
return service.tag(registry, repository, tag);
}
function addTag(registry, repository, tag, manifest) {
let service = RegistryV2Service;
return service.addTag(registry, repository, tag, manifest);
}
function deleteManifest(registry, repository, digest) {
let service = RegistryV2Service;
return service.deleteManifest(registry, repository, digest);
}
function shortTagsWithProgress(registry, repository, tagsList) {
let service = RegistryV2Service;
return service.shortTagsWithProgress(registry, repository, tagsList);
}
function deleteTagsWithProgress(registry, repository, modifiedDigests, impactedTags) {
let service = RegistryV2Service;
return service.deleteTagsWithProgress(registry, repository, modifiedDigests, impactedTags);
}
function retagWithProgress(registry, repository, modifiedTags, modifiedDigests, impactedTags) {
let service = RegistryV2Service;
return service.retagWithProgress(registry, repository, modifiedTags, modifiedDigests, impactedTags);
}
return service;
}
]);