{
    "version": "https:\/\/jsonfeed.org\/version\/1.1",
    "title": "Skurudo Blog(post): заметки с тегом Gitlab",
    "_rss_description": "GitLab — веб-инструмент жизненного цикла DevOps с открытым исходным кодом, представляющий систему управления репозиториями кода для Git с собственной вики, системой отслеживания ошибок, CI\/CD пайплайном и другими функциями",
    "_rss_language": "ru",
    "_itunes_email": "",
    "_itunes_categories_xml": "",
    "_itunes_image": "",
    "_itunes_explicit": "",
    "home_page_url": "https:\/\/www.skurudo.ru\/tags\/gitlab\/",
    "feed_url": "https:\/\/www.skurudo.ru\/tags\/gitlab\/json\/",
    "icon": "https:\/\/www.skurudo.ru\/pictures\/userpic\/userpic@2x.jpg?1691593083",
    "authors": [
        {
            "name": "Pavel Galkin",
            "url": "https:\/\/www.skurudo.ru\/",
            "avatar": "https:\/\/www.skurudo.ru\/pictures\/userpic\/userpic@2x.jpg?1691593083"
        }
    ],
    "items": [
        {
            "id": "245",
            "url": "https:\/\/www.skurudo.ru\/all\/something-about-gitlab-export\/",
            "title": "Немного про экспорт из Gitlab",
            "content_html": "<p>Пришлось столкнуться с переносом разного с одного гитлаба на другой. По ходу пьесы выяснилось, что не все так радужно в этом самом опенсорсе, но API и тот же самый опенсорс не плохо выручает.<\/p>\n<p>Самая большая и прекрасная примочка — <a href=\"https:\/\/github.com\/rvojcik\/gitlab-project-export\">rvojcik\/gitlab-project-export<\/a>. Прекрасный инструмент для экспорта и импорта данных. Его также можно использовать для бэкапирования данных. Автоматизировать с его помощью работу с API довольно таки удобно. Есть правда и минусы — нужно увеличивать лимиты в настройках Gitlab, а также готовить конфиг файлы для скрипта (при экспорте и импорте, а при импорте еще и создать руками новые репо).<\/p>\n<p>А вот чтобы создать конфиги... право же, не руками же их делать! Нужно будет немного поработать с API Gitlab. Если коротко, то вот такая подсказка:<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">#!\/bin\/bash\r\nGL_DOMAIN=&quot;&quot;\r\nGL_TOKEN=&quot;&quot;\r\necho &quot;&quot; &gt; gitlab_projects_urls.txt\r\nfor ((i=1; ; i+=1)); do\r\n    contents=$(curl &quot;$GL_DOMAIN\/api\/v4\/projects?private_token=$GL_TOKEN&amp;per_page=100&amp;page=$i&quot;)\r\n    if jq -e &#039;. | length == 0&#039; &gt;\/dev\/null; then \r\n       break\r\n    fi &lt;&lt;&lt; &quot;$contents&quot;\r\n    echo &quot;$contents&quot; | jq -r &#039;.[].ssh_url_to_repo&#039; &gt;&gt; gitlab_projects_urls.txt\r\ndone<\/code><\/pre><p>Кому подсказки недостаточно для полноценной жизни, то добро пожаловать на <a href=\"https:\/\/github.com\/skurudo\/usefulbash\/tree\/main#gitlab\">github<\/a>, где размещены скрипты целиком. Для работы с gitlab-project-export понадобится установить или скачать саму утилиту (ставится при наличии третьего питона как обычно — pip install gitlab-project-export). Краткое содержание по файликам выглядит следующим образом:<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">* start2.sh - запускает вереницу событий: на выходе список и сразу экспорт файлов\r\n* start.sh - при наличии готового списка запускается экспорт\r\n* config-creation.sh - обрабатывает config-template.yaml, дописывает в него репо и делает config.yaml \r\n* config-template.yaml - шаблон для gitlab-project-export.py (нужно указать URL и токен от Gitlab, а также директорию, где будут лежать файлы экспорта)\r\n* config.yaml - готовый конфиг, делается из шаблона config-template.yaml \r\n* get-all-projects.sh - скрипт для получения списка проектов по API (нужно указать URL и токен от Gitlab)\r\n* gitlab_path_with_namespace.txt - текстовый файл с проектами<\/code><\/pre><p>Ссылка на гитхаб со скриптами:<br \/>\n<a href=\"https:\/\/github.com\/skurudo\/usefulbash\/blob\/main\/gitlab-export-import\/readme.md\">https:\/\/github.com\/skurudo\/usefulbash\/blob\/main\/gitlab-export-import\/readme.md<\/a><\/p>\n",
            "date_published": "2023-11-20T18:47:22+03:00",
            "date_modified": "2023-11-20T18:58:37+03:00",
            "tags": [
                "Gitlab",
                "дневник"
            ],
            "_date_published_rfc2822": "Mon, 20 Nov 2023 18:47:22 +0300",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "245",
            "_e2_data": {
                "is_favourite": false,
                "links_required": [
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css"
                ],
                "og_images": []
            }
        }
    ],
    "_e2_version": 4116,
    "_e2_ua_string": "Aegea 11.2 (v4116)"
}