Можно ли больше войти в Gitlab с помощью python-gitlab, используя имя пользователя / адрес электронной почты и пароль?

Я пробовал использовать следующий код:

import re
import sys
import requests
import gitlab


URL = 'https://gitlab.com'
SIGN_IN_URL = 'https://gitlab.com/users/sign_in'
LOGIN_URL = 'https://gitlab.com/users/sign_in'

session = requests.Session()

sign_in_page = str(session.get(SIGN_IN_URL).content)
for l in sign_in_page.split('\n'):
    m = re.search('name="authenticity_token" value="([^"]+)"', l)
    if m:
        break

token = None
if m:
    token = m.group(1)

if not token:
    print('Unable to find the authenticity token')
    sys.exit(1)

data = {'user[login]': 'username/email',
        'user[password]': 'password',
        'authenticity_token': token}
r = session.post(LOGIN_URL, data=data)
if r.status_code != 200:
    print('Failed to log in')
    sys.exit(1)
print(token)
gl = gitlab.Gitlab(URL, api_version=4, session=session)
print(gl)

projects = gl.projects.list()
print(projects)
for project in projects:
    print(project.name)
    #print(project)
    if project.name=="test":
        project_id=project.id
        print(project_id)

Этот код является альтернативой для аутентификации с использованием электронной почты / имени пользователя и пароля, но даже он, похоже, больше не работает в списке проектов, которые я получаю, используя gl.projects.list() каким-то образом кажется, что предоставляет список новейших коммитов для существующих проектов или новейших проектов, которые были созданы в общественном достоянии GitLab, Gitlab.com

ВЫХОД:

LONG_TOKEN(not stated for security reasons obviously)
<gitlab.Gitlab object at 0x040CEFB8>
[<Project id:17536916>, <Project id:17536906>, <Project id:17536895>, <Project id:17536893>, <Project id:17536892>, <Project id:17536888>, <Project id:17536868>, <Project id:17536849>, <Project id:17536831>, <Project id:17536816>, <Project id:17536805>, <Project id:17536798>, <Project id:17536783>, <Project id:17536782>, <Project id:17536774>, <Project id:17536771>, <Project id:17536767>, <Project id:17536741>, <Project id:17536735>, <Project id:17536734>]
skip-ci-unmergeable
Gleichstromtechnik-Ausarbeitung
rdma-core
csvconv
MultiCloud Crypto 
g-force-printer-service
Thai_Project
UE4_SwitchFliashLight
Aplikasi TimeTable
wiki-git
Desarmar Cubo
packages_apps_GoogleCameraPort
Lower Backpain Jaramillo
sagrera_bot
Covid-19-curves-graphic-social
school_task
ya
Biobot
wiki-git
11

Хотя вы не получаете доступа к репозиториям, которые возвращаются в результате.

Этот результат также работает, даже если в data переменная, что очень странно.

Итак, я хотел бы знать, могу ли я по-прежнему аутентифицироваться с использованием имени пользователя и пароля, каким-то образом изменив приведенный выше код, и я также хотел бы понять, почему мой код дает такой специфический результат, как указано выше.

Приведенный выше код относится к: https://gist.github.com/gpocentek/bd4c3fbf8a6ce226ebddc4aad6b46c0a

Любая помощь по этому поводу будет очень признательна! Благодарность!

0 ответов

Другие вопросы по тегам