У вас есть более одного требования здесь. Давайте пройдемся по одному.
a) Jenkins GitHub Organization: это отсканирует всю вашу организацию GitHub и создаст столько заданий, сколько необходимо для создания ваших репозиториев, поскольку наличие только одного задания в Jenkins не является стандартом. По сути, вы потеряли исторические данные (Дженкинс понятия не имеет, что строит разные вещи на каждой итерации). В справке говорится: «Проверяет организацию GitHub (или учетную запись пользователя) на наличие всех репозиториев, соответствующих определенным маркерам».
б) Попытайтесь рассматривать Дженкинса как автоматора, а не то, что будет содержать всю логику сборки / развертывания. Что я делаю, так это создаю файлы типа "build.sh", "deploy.sh" и так далее. Таким образом, я могу создавать и развертывать прямо из моей оболочки. Поэтому только после этого я создаю сценарии для Jenkins, которые просто вызывают сценарии сборки / развертывания, независимо от того, что они на самом деле делают. Дженкинс не должен знать. Побочным эффектом является то, что все ваши проекты «могут быть построены одинаково», независимо от того, являются ли они NodeJS, Python или чем-то еще. Конечно, в некоторых случаях вам могут понадобиться дополнительные зависимости, и Docker действительно может помочь здесь.
в) В прошлом я делал нечто подобное, имея меньше заданий, чем репозитории / филиалы / pull-запросы. Дженкинс - своего рода дамп, и здесь могут помочь несколько плагинов. Но в вашем случае, если вы действительно хотите иметь одну работу, вам нужна только обычная параметризованная работа. Хитрость в том, что глобальный веб-крюк вашей организации Github не будет указывать на Дженкинса. Он должен указывать куда-то еще, какой-то код, который вы поддерживаете. Этот код может анализировать полезную нагрузку Github, анализировать его, может в конечном итоге перезвонить GitHub («есть ли запрос на извлечение для этой ветви? Нет? Затем забудьте об этом»), чтобы улучшить его дерево решений и, в конце, инициировать это единственное задание на Дженкинс со всеми параметрами, которые вы смогли зафиксировать. Такие параметры будут указывать единственное задание, на какое репозиторий клонировать, env для развертывания и все. Вы уже знаете имена скриптов, так как они являются стандартными.
d) Тем не менее, я бы спросил ... тебе нужен Дженкинс? Может ли это маленькое программное обеспечение синтаксического анализатора на самом деле клонировать ваш репозиторий и запустить несколько скриптов в контейнере Docker? Контейнер-строитель-докер, внутри которого есть все зависимости?
e) По поводу "разговора" с GitHub, я сделал это с помощью Python. Существуют библиотеки GitHub, поэтому я смог получить информацию от Дженкинса и делать посты API, чтобы кормить GitHub статусами сборки. Так как я фактически использовал экземпляр Jenkins, моим инструментом был посредник посредник. В вашем случае, для одной работы, контейнер Docker будет хорошо играть роль.
Надеется, что это поможет с другой точки зрения.
Если вы действительно хотите использовать экземпляр Jenkins, большую часть того, что я здесь сказал, все еще можно использовать.