GeezerVisonThe World Wide Web, restored to 800 pixels of glory. |
| Home|About|Gaming cabinet|Archives|How it works|Starter sites |
GeezerVison is showing github.com — python-gitlab/tools/generate_token.py at master · mop/python-gitlab Expand file tree/ Copy pathgenerate_token.pyMore file actions executable file ·67 lines (50 loc) · 1.64 KB / Copy pathgenerate_token.pyFile metadata and controlsexecutable file ·67 lines (50 loc) · 1.64 KB 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 #!/usr/bin/env python import sys try: from urllib.parse import urljoin except ImportError: from urlparse import urljoin from bs4 import BeautifulSoup import requests endpoint = "http://localhost:8080" root_route = urljoin(endpoint, "/") sign_in_route = urljoin(endpoint, "/users/sign_in") pat_route = urljoin(endpoint, "/profile/personal_access_tokens") login = "root" password = "5iveL!fe" def find_csrf_token(text): soup = BeautifulSoup(text, "lxml") token = soup.find(attrs={"name": "csrf-token"}) param = soup.find(attrs={"name": "csrf-param"}) data = {param.get("content"): token.get("content")} return data def obtain_csrf_token(): r = requests.get(root_route) token = find_csrf_token(r.text) return token, r.cookies def sign_in(csrf, cookies): data = { "user[login]": login, "user[password]": password, } data.update(csrf) r = requests.post(sign_in_route, data=data, cookies=cookies) token = find_csrf_token(r.text) return token, r.history[0].cookies def obtain_personal_access_token(name, csrf, cookies): data = { "personal_access_token[name]": name, "personal_access_token[scopes][]": ["api", "sudo"], } data.update(csrf) r = requests.post(pat_route, data=data, cookies=cookies) soup = BeautifulSoup(r.text, "lxml") token = soup.find('input', id='created-personal-access-token').get('value') return token def main(): csrf1, cookies1 = obtain_csrf_token() csrf2, cookies2 = sign_in(csrf1, cookies1) token = obtain_personal_access_token('default', csrf2, cookies2) print(token) if __name__ == "__main__": main() |
| You are visitor 01402520 — GeezerVison does not store the pages you look up. Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required. |