1.x harbor 自动清理,保留仓库后10个脚本

这篇博客介绍了一个Python脚本,用于在Harbor 1.10.x版本中自动清理仓库,保留最近的10个,脚本处理了xsrf验证问题,但项目下仓库不受限制,可能会被一并删除。
摘要由CSDN通过智能技术生成
  • 在1.10.x 版本使用没问题,其他版本没有做过测试。
    1.10 后 接口开启了 xsrf 验证,花了比较多的时间处理这个xsrf 的问题。谁曾想官方faq 内说明了如何使用,但是会有一些其他的坑,不知道接口调用哪一个,有些有 xsrf 有些没有。

使用说明

保留根据「时间倒序」前十个,其他全部删除!!!!
python3 下载模块 requests后,修改配置内的参数运行即可。
此脚本删除仅真对到项目,项目下的仓库没有做限制,仓库会遍历删除。

具体代码

#! /usr/bin/env python3
# -*- coding:utf-8 -*-
import base64
import logging
import requests
from requests.auth import HTTPBasicAuth
import urllib.parse


"""配置"""
# harbor 域名domain
harbor_domain = ""
# harbor 账号
user_name = ''
# harbor 密码
password = ""
# horbar 访问连接是否为 https
is_horbar_url_https = False
# 保留个数
number = 10
# 限制需要删除的项目名称
need_delete_project_names = [
    "v2.new",
    ....
]

"""配置结束"""


class RequestClient(object):
    def __init__(self, get_xsrf_url, username, password):
        self.get_xsrf_url = get_xsrf_url
        self.username = username
        self.password = password
        self.session = requests.Session()
        self.session.auth = HTTPBasicAuth(self.username, self.password)
        self.xsrf_str = self._get_request_xsrf_cookies()

    def _get_request_xsrf_cookies(self) -> str:
        """
        https://github.com/goharbor/harbor/wiki/Harbor-FAQs#api
        :return: string
        """
        """
        调用同样的接口获取 xsrf 只有在第一次获取才能有 xsrf_token,第二次调用就为空,原因未知。
        """
        response = self.session.get(self.get_xsrf_url)
        if response.status_code != 200:
            logging.error
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值