Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
是否可以再使用用户名/电子邮件和密码使用python Gitlab登录Gitlab?_Python_Python 3.x_Python Requests_Gitlab_Python Gitlab - Fatal编程技术网

是否可以再使用用户名/电子邮件和密码使用python Gitlab登录Gitlab?

是否可以再使用用户名/电子邮件和密码使用python Gitlab登录Gitlab?,python,python-3.x,python-requests,gitlab,python-gitlab,Python,Python 3.x,Python Requests,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(S

我尝试使用以下代码:

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
LONG_令牌(显然出于安全原因未声明)
[, , , , , , , , , , ]
跳过不可聚合的ci
Ausarbeitung Gleichstromtechnik
rdma磁芯
csvconv
多云加密
g-force-printer-service
Thai_项目
UE4_开关灯
Aplikasi时间表
维基git
德萨马尔库博酒店
软件包\应用程序\谷歌CameraPort
下腰痛Jaramillo
萨格里拉机器人
新冠病毒-19-曲线-图形-社会
学校任务
嗯
生物机器人
维基git
11
尽管您无法访问作为结果返回的存储库

即使
data
变量中没有提供正确的身份验证详细信息,这个结果也会起作用,这很奇怪

因此,我想知道我是否仍然可以通过修改上述代码来使用用户名和密码进行身份验证,我还想了解为什么我的代码会提供上述特殊结果

上述代码是指:

在此问题上的任何帮助都将不胜感激!谢谢