пометка релизов в ansible и имя репо - PullRequest
0 голосов
/ 04 марта 2020

Раньше я использовал semanti c -tag для пометки своих выпусков, но теперь у меня есть требования, чтобы к каждому выпуску присваивалось имя и номер, например rel-1.0.1, rel-1.0.2 ... Поэтому, если я правильно понял, я больше не смогу использовать эту библиотеку, потому что мне нужно специально контролировать теги. Поэтому я использую ansible и нашел эту классную страницу: https://docs.ansible.com/ansible/latest/modules/github_release_module.html

с

- name: Create a new release
  github_release:
    token: tokenabc1234567890
    user: testuser
    repo: testrepo
    action: create_release
    tag: test
    target: master
    name: My Release
    body: Some description

Теперь я в замешательстве. в имени репо, если мой репо будет выглядеть так: git@github.mycompany.com: test / test-backend. git

тогда, если я просто добавлю test-backend. git в часть имени репо, как это разрешит и работа? Разве я не должен указывать полный путь?

1 Ответ

1 голос
/ 04 марта 2020

Из документов из github3.py следует, что нужно использовать специальный метод github.enterprise_login(url="https://github.mycompany.com", ...), который, к сожалению, v2.9.5 не поддерживает

. насколько я знаю, единственное, что у вас есть, это скопировать github_release.py в папку library вашей игровой книги , как описано в прекрасном руководстве , и исправить модуль, чтобы он принял атрибут server_url, что-то вроде

--- a/github_release.py 2020-01-20 13:12:06.000000000 -0800
+++ b/github_release.py 2020-01-20 13:12:06.000000000 -0800
@@ -145,6 +145,7 @@
 def main():
     module = AnsibleModule(
         argument_spec=dict(
+            server_url=dict(type='str', required=False),
             repo=dict(required=True),
             user=dict(required=True),
             password=dict(no_log=True),
@@ -168,6 +169,7 @@
         module.fail_json(msg=missing_required_lib('github3.py >= 1.0.0a3'),
                          exception=GITHUB_IMP_ERR)

+    server_url = module.params['server_url']
     repo = module.params['repo']
     user = module.params['user']
     password = module.params['password']
@@ -182,12 +184,17 @@

     # login to github
     try:
+        login_mth = github3.login
+        login_kwargs = {}
+        if server_url:
+            login_mth = github3.enterprise_login
+            login_kwargs['url'] = server_url
         if password:
-            gh_obj = github3.login(user, password=password)
+            login_kwargs['username'] = user
+            login_kwargs['password'] = password
         elif login_token:
-            gh_obj = github3.login(token=login_token)
-        else:
-            gh_obj = github3.GitHub()
+            login_kwargs['token'] = login_token
+        gh_obj = login_mth(**login_kwargs)

         # test if we're actually logged in
         if password or login_token:
...