Обновить
5.94

Системы управления версиями *

GIT, SVN и иже с ними

Сначала показывать
Порог рейтинга
Уровень сложности

6 лучших практик для безопасного управления Git-репозиториями

Время на прочтение4 мин
Охват и читатели15K
Избегайте захламления репозиториев и других действий, которые усложняют управление кодовой базой. Вместо этого используйте лучшие практики, которые помогут упростить работу.



Изучение исходников в репозитории позволяет оценить уровень безопасности приложений. Но если никто не смотрит на код, проблемы будут только расти. К счастью, у GitHub есть свои специалисты по безопасности, которые недавно обнаружили трояна в нескольких репозиториях Git. Его почему-то не заметили сами владельцы этих репозиториев. Хотя мы не можем диктовать другим людям, как управлять своими собственными хранилищами, мы можем учиться на их ошибках. В этой статье мы рассмотрим полезные приёмы работы с репозиториями.
Читать дальше →

Code review в Gitlab CE: если Merge request approvals нет, но очень хочется

Время на прочтение5 мин
Охват и читатели44K


Одной из самых нужных функций, которой нет в бесплатной версии GitLab, является возможность голосования против обнуления репозитория контролировать Merge request (MR), используя обязательный code review.

Сделаем минимальный функционал сами — запретим Merge, пока несколько разработчиков не поставят «палец вверх» на MR.
Читать дальше →

Вышел релиз GitLab 13.0 с кластерами Gitaly, иерархией эпиков на дорожных картах и автоматическим развертыванием для ECS

Время на прочтение35 мин
Охват и читатели7.5K

Картинка для привлечения внимания


Что изменилось со времени 12.0


Прежде чем приступить к описанию нового мажорного релиза 13.0, мы хотели бы уделить внимание пройденному пути. Мы столького достигли с момента выхода версии 12.0! Недавно в блоге вышел специальный пост, в котором мы сделали обзор релизов GitLab с 12.0 по 12.10. Три наших фаворита из этой серии релизов это управление требованиями, сетевая безопасность контейнеров и конвейеры (в русской локализации GitLab «сборочные линии») родитель-ребенок.

Читать дальше →

[Опрос про трудности перевода] Локализация GitLab нуждается во мнении сообщества

Время на прочтение1 мин
Охват и читатели3.4K
image

Добрый день. Команда, занимающаяся переводом продукта GitLab на добровольных началах, хочет обратиться к сообществу разработчиков, тестировщиков, менеджеров и других специалистов, работающих с этим продуктом, а также ко всем неравнодушным. Следует отметить, что это не новая инициатива, русский язык существует в GitLab достаточно давно. Однако в последнее время процент перевода увеличивается и нам бы хотелось сделать упор на качестве.

Зачастую мы сталкиваемся с тем, что вольный перевод на русский язык чаще оказывается невостребованным из-за того, что русские варианты узкоспециализированных терминов либо переведены слишком дословно, либо вариантом, который «в народе» не используется. Мы бы хотели, чтобы пользоваться локализованной версией GitLab было удобно, комфортно, а главное — понятно. Проблема также и в том, что так и внутри команды существуют разногласия в переводе тех или иных терминов, и естественно, мнение каждого из нас не отражает мнения большинства.
Читать дальше →

Как облегчить себе жизнь при использовании Git (а также подборка материалов для глубокого погружения)

Время на прочтение13 мин
Охват и читатели41K

Tree of Dragons II by surrealistguitarist

Для тех, кто каждый день использует Git, но чувствует себя неуверенно, команда Mail.ru Cloud Solutions перевела статью фронтенд-разработчика Шейна Хадсона. Здесь вы найдете несколько трюков и советов, которые могут немного облегчить работу с Git, а также подборку статей и мануалов более продвинутого уровня.
Читать дальше →

# Вышел релиз GitLab 12.10 с управлением требованиями и автоматическим масштабированием CI на AWS Fargate

Время на прочтение24 мин
Охват и читатели2.7K

Картинка для привлечения внимания


GitLab 12.10 помогает командам контролировать и улучшать соответствие требованиям с новой фичей «управление требованиями», уменьшать время цикла и ускорять поставку программного обеспечения благодаря CI с автоматическим масштабированием на AWS Fargate и более эффективно управлять портфелем проектов с отображением состояния тикетов и эпиков (в русской локализации GitLab «цели»).

Читать дальше →

18 фич GitLab переходят в открытый исходный код

Время на прочтение6 мин
Охват и читатели6.9K

Картинка для привлечения внимания


Мы открываем исходный код фич со стадий Plan, Create, Verify, Package, Release, Configure и Defend.

Читать дальше →

Как привести в порядок историю ваших коммитов в Git

Время на прочтение5 мин
Охват и читатели27K
Публикуем перевод статьи, которую мы нашли на hackernoon.com. Ее автор, Thiago Miranda, пишет о том, как сделать работу с Git более удобной и эффективной.

Читать дальше →

Собираем свой flow для git с нуля

Время на прочтение6 мин
Охват и читатели18K

На днях вышла прекрасная, хотя и спорная статья — Please, stop using GitFlow! (и еще десяток на эту же тему после нее).


Ее основными тезисами были:


  • GitFlow противоречит тезису "ветки должны быть короткоживущими".
    Это важно, потому что чем меньше живет ветка — тем меньше шанс конфликтов (не только git, но и логических)
  • GitFlow препятствует rebase-ам, чтобы сохранить merge-коммиты.
    Да, их можно сохранять и при ребейзах, но команды Git Flow не делают этого.
  • GitFlow отрицает подход Contunious Delivery, считая, что каждый акт Delivery должен совершаться релиз-инженером, да и в целом можно увидеть, что он ориентирован только на долгий релизный цикл.
  • GitFlow не дружит с микросервисами поверх мультирепозиториев (впрочем, тут вообще мало что подходит, это идея, которая всегда плохо заканчивается)
  • Но проблема GitFlow в том, что он и с монорепозиториями тоже не дружит.


    Я сам об это споткнулся в процессе дизайна пайплайнов CI: GitFlow чудовищно мешает, когда работает поверх монорепозитория с несколькими deliverables, например, когда в одном репозитории отдельно и бэкэнд, и фронтэнд — уже из-за того, что он позволяет докоммичивать в релизные ветки, могут возникнуть конфликты при обратном мердже, если в один момент времени существует больше, чем одна релизная ветка. Да даже если одна, все равно плохо — в таких условиях надо патчить в принципе релизные механизмы GitFlow, чтобы хоть как-то заработали отдельные релизы сущностей.



Так что делать-то?

Читать дальше →

Непрерывная интеграция и развертывание настольных приложений с GitHub Actions

Время на прочтение2 мин
Охват и читатели3.5K
Из общения с разработчиками настольных приложений мы узнали, что многие хотят узнать, как быстро настраивать рабочие процессы непрерывной интеграции и непрерывного развертывания (CI/CD) для WPF и Windows Forms, чтобы пользоваться многими преимуществами пайплайнов CI/CD, такими как:

  • Обнаружение багов в начале цикла разработки
  • Повышение качества и надежности программного обеспечения
  • Обеспечение стабильного качества сборки
  • Быстрое и безопасное развертывание новых функций
  • Быстрое устранение проблем в продакшене за счет новых развертываний

Поэтому мы создали пример приложения (GitHub) для демонстрации возможностей DevOps в ваших приложениях, с использованием недавно выпущенного GitHub Actions.

Читать дальше →

Вышел релиз GitLab 12.8 с обозревателем логов, NuGet и панелью управления соответствием требованиям

Время на прочтение29 мин
Охват и читатели4.1K

Картинка для привлечения внимания


Новый релиз GitLab 12.8 посвящен подходу «единое место»: для всех ваших логов, пакетов NuGet и контроля за соответствием требованиям. По аналогии с тем, что GitLab — это единое место для всего вашего жизненного цикла DevOps.

Читать дальше →

Ansible против Puppet

Время на прочтение15 мин
Охват и читатели33K
Ansible и Puppet представляют собой системы управления конфигурациями (SCM), необходимые для построения повторяющихся инфраструктур.

Ansible отличается простотой использования, имеет безагентную архитектуру (не требует установки агента/клиента на целевую систему) и YAML-подобный DSL, написана на Python и легко расширяется за счет модулей. Обычно управляет конфигурацией Linux.

Puppet имеет клиент-серверную архитектуру (периодически опрашивает сервер, чтобы внести в конфигурацию изменения, внесенные администратором сети), написана на Ruby и имеет Ruby-подобный DSL. Это приложение позволяет централизованно управлять конфигурацией ПО, установленного на нескольких компьютерах.

В статье проводится сравнение преимуществ и недостатков этих SCM.

Читать дальше →

Как не выстрелить себе в ногу, используя Liquibase

Время на прочтение8 мин
Охват и читатели11K

Никогда не было, и вот опять!


На очередном проекте мы решили использовать Liquibase с самого начала, чтобы избежать проблем в будущем. Как оказалось, не все молодые члены команды умеют его правильно использовать. Я провёл внутренний воркшоп, который затем решил превратить в статью.


Статья включает в себя полезные советы и описание трех самых явных ловушек, в которые можно попасть, работая с инструментами миграции реляционных баз данных, в частности Liquibase. Рассчитана на Java разработчиков уровня Junior и Middle, для более опытных разработчиков может быть интересна для структуризации и повторения того, что, скорее всего, уже известно.


Читать дальше →

Ближайшие события

Хорошо подумайте, прежде чем использовать Docker-in-Docker для CI или тестовой среды

Время на прочтение6 мин
Охват и читатели64K


Docker-in-Docker представляет собой виртуализированную среду Docker-демон, запущенную в самом контейнере для сборки образов контейнера. Основной целью создания Docker-in-Docker была помощь в разработке самого Docker. Многие люди используют его для запуска Jenkins CI. Поначалу это кажется нормальным, но затем возникают проблемы, которых можно избежать, установив Docker в контейнер Jenkins CI. В этой статье рассказывается, как это сделать. Если вас интересует итоговое решение без подробностей, просто прочитайте последний раздел статьи «Решение проблемы».

Читать дальше →

Поднимаем Mercurial на Windows-сервере (с Nginx)

Время на прочтение5 мин
Охват и читатели4.4K

Недавно случайно узнал, что BitBucket, где лежат мои Mercurial-репозитории, прекращает поддержку Mercurial: новые репозитории создавать уже нельзя, а существующие будут удалелы с 1.06.2020. Возможные варианты действий: перейти на Git, выбрать один из других сервисов, или настроить хостинг Mercurial на своём сервере. Сервер у меня есть, отказываться от Mercurial и менять привычки как-то не хочется, альтернативы BitBucket мне тоже не приглянулись — поэтому выбрал последний вариант. Задача вроде несложная, вот только сервер у меня под Windows, и, кажется, в процессе настройки я умудрился наступить на максимум возможных граблей. Надеюсь, эта статья поможет кому-нибудь избежать этого и сэкономить время.

Читать дальше →

Вышел GitLab 12.7 с конвейерами Parent-Child и бета-версией общих обработчиков заданий для Windows

Время на прочтение23 мин
Охват и читатели3.9K

Картинка для привлечения внимания


Вышел релиз GitLab 12.7 — с улучшениями, которые помогут вашим командам и конвейерам (в русской локализации GitLab «сборочные линии») стать более эффективными и результативными. Настройка автоматизации и конвейеров — основа продуктивной работы команд DevOps, и в 12.7 мы предлагаем множество нововведений, которые сделают вашу работу быстрее и эффективнее. Например, конвейеры Parent-Child, группы ресурсов конвейера и бета-версию общих обработчиков заданий (shared runner) для Windows на GitLab.com.

Читать дальше →

От скриптов к собственной платформе: как мы автоматизировали разработку в ЦИАН

Время на прочтение9 мин
Охват и читатели9.8K


На РИТ 2019 наш коллега Александр Коротков сделал доклад про автоматизацию разработки в ЦИАН: чтобы упростить жизнь и работу, мы используем собственную платформу Integro. Она отслеживает жизненный цикл задач, снимает с разработчиков рутинные операции и заметно сокращает количество багов в production. В этом посте мы дополним доклад Александра и расскажем, как прошли путь от простых скриптов к объединению open source продуктов через собственную платформу и чем у нас занимается отдельная команда автоматизации.
 
Читать дальше →

Вышел релиз GitLab 12.6 с оценками безопасности проектов и материалами релиза

Время на прочтение21 мин
Охват и читатели2.7K

Картинка для привлечения внимания


Руководителям разработки необходим четкий и понятный обзор состояния безопасности приложения и соответствия требованиям для их проектов. Декабрьский релиз GitLab поможет вам эффективнее отслеживать эти важные параметры.

Читать дальше →

Arc — система контроля версий для монорепозитория. Доклад Яндекса

Время на прочтение11 мин
Охват и читатели66K
Системы контроля версий уже давно стали повседневным инструментом разработчика. В больших монорепозиториях требования к ним оказываются весьма специфическими. Из-за этого компании либо адаптируют существующие решения, как это делает Facebook с Mercurial и Microsoft с Git, либо разрабатывают собственные системы: Piper и CitC в Google и Arc VCS в Яндексе.

В докладе разработчик Владимир Кихтенко kikht рассказывает, зачем Яндексу понадобилась собственная система контроля версий и как она работает. Рассмотрим её со стороны рядового разработчика: как получить доступ к исходному коду, отвести ветку для разработки и интегрировать изменения в общую кодовую базу. Заглянем под капот — узнаем про внутреннее представление данных и их отображение в виртуальной файловой системе с рабочей копией. Обсудим трудности при реализации функций VCS в виртуальной файловой системе и при ленивой загрузке данных. Поговорим о том, как обеспечивать надежность серверной инфраструктуры репозитория. В конце можно посмотреть неофициальную запись доклада.

— Всем добрый день, меня зовут Владимир. Вы все слышали выступления о том, что не стоит писать велосипеды. Мой доклад будет с другой стороны баррикад.
Читать дальше →

Пробуем новые инструменты для сборки и автоматизации деплоя в Kubernetes

Время на прочтение21 мин
Охват и читатели27K


Привет! За последнее время вышло много классных инструментов автоматизации как для сборки Docker-образов так и для деплоя в Kubernetes. В связи с этим решил поиграться с гитлабом, как следует изучить его возможности и, конечно же, настроить пайплайн.


Вдохновлением для этой работы стал сайт kubernetes.io, который генерируется из исходных кодов автоматически, а на каждый присланный пул реквест робот автоматически генерирует preview-версию сайта с вашими изменениеми и предоставляет ссылку для просмотра.


Я постарался выстроить подобный процесс с нуля, но целиком построенный на Gitlab CI и свободных инструментах, которые я привык использовать для деплоя приложений в Kubernetes. Сегодня я, наконец, расскажу вам о них подробнее.


В статье будут рассмотрены такие инструменты как:
Hugo, qbec, kaniko, git-crypt и GitLab CI с созданием динамических окружений.

Читать дальше →

Вклад авторов