curl --header "PRIVATE-TOKEN: 토큰자리" "http://주소/api/v4/users

를 사용하면 gitlab의 유저 정보가 나온다.

 

curl --header "PRIVATE-TOKEN: 토큰자리" "http://주소/api/v4/users?per_page=100&page=2"

api이 제한이 있다고 하는데, 다음에 다시 알아봐야 겠지만

100항목 제한이 있다고한다.

페이지당 100건의 요청이 최대이고, 150을 해도 100개의 요청만 수행되는 듯 하다.

page=숫자 를 함께 사용하면 될 듯 하다.

이 명령어는 페이지당 100명의 유저 정보를 보여달라는 요청인데, 2번째 페이지,

즉, 101 ~ 200번째의 유저들의 정보를 보여준다.

 

curl --header "PRIVATE-TOKEN: 토큰자리" "http://주소/api/v4/users?per_page=100&page=2" | jq -r '.[]

json 형식의 데이터를 문자열로 다룰때 사용한다고 한다.

 

curl --header "PRIVATE-TOKEN: 토큰자리" "http://주소/api/v4/users?per_page=100&page=2" | jq -r '.[] | select(.state == "active")  이렇게 하면 blocked된 상태가 아닌 현재 사용중인 상태의 사용자만을 보여준다.

 

 

curl --header "PRIVATE-TOKEN: 토큰자리" "http://주소/api/v4/users?per_page=100&page=2" | jq -r '.[] | select(.state == "active")   | {password: "password", name: .name, username: .username, email: .email, "skip_confirmation" : "true"}
원래 보여주던 항목에서 값을 가져오려면 key앞에 .을 붙여서 value를 만든다 ( key: .key) 비밀번호나 boolean의 경우 값을 관리자가 직접 정해줄 수 있다.

curl --header "PRIVATE-TOKEN: 토큰자리" "http://주소/api/v4/users?per_page=100&page=2" | jq -r '.[] | select(.state == "active")   | {password: "password", name: .name, username: .username, email: .email, "skip_confirmation" : "true"} | tojson' | paste -sd ',' - >>user_info1.json

 

이렇게 원하는 값을 추출하고 다시 json으로 가공하려면 tojson을 사용하고  , 로 분리 해주기 위해 paste -sd ',' - 를 사용한다.   그리고 출력 값을 user_info1.json에 리다이렉션하여 저장하는데 모든 페이지를 한 번에 저장하기 위해 >> 를 써서 순차적으로 기록되게 한다. > 를 사용하면 덮어쓰기가 되어서 마지막에는 마지막 페이지에서 출력한 값만 남는다.

 

 

그리고 이렇게 출력한 사용자 정보를 다른 깃랩에 올리기 위해

파이썬 함수를 사용한다. 3.6 버전을 사용했다. 이 이상의 버전은 openSSL이나 다른 라이브러리가 호환되지 않을 수 있다.

 

pip list | grep requests 라는 명령어로 requests 라는 라이브러리가 사용가능한지 보고

 

------

import requests

gitlab_url = "http://깃랩주소/api/v4/users"

access_token = "토큰"

headers = {

    "PRIVATE-TOKEN": "토큰",

    "Authorization": f"Bearer {access_token}",

    "Content-Type": "application/json"

}

users_data =

[ 여기에 json을 넣는다. ]

 

for data in users_data:

    response = requests.post(gitlab_url, headers=headers, json=data)

        if response.status_code == 201:

            print(f"사용자 '{data['username']}'가 성공적으로 생성되었습니다.")

        else:

            print(f"사용자 생성 중 오류 발생: {response.text}")

 

-----

 

이런식으로 다 등록하게 된다

vi tomcat home/conf/logging.properties

 

 

'tomcat' 카테고리의 다른 글

com.fasterxml.jackson.databind.JavaType.isReferenceType()Z  (1) 2024.07.01

블로그에 용량 업로드 시 용량 제한 문제가 발생

 

Client_max_body_size 300M로 설정 하여 용량 제한 300M로 설정

mixed content: the page at '<url>' was loaded over https, but requested an insecure element '<url>'. this request was automatically upgraded to https, for more information see <url>

 

<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">

 

이 코드 한 줄로 해결

 


wiki엔진을 이용한 블로그를 가동하는데 이런 문제가 발생했다.

 

알고보니 공용 도메인 주소에 https 통신을 적용하였는데,

블로그의 기능을 사용하기 위한 method 요청은 http로 동작하여 문제가 발생했다.

 

그래서 찾아본 결과 <head> 태그 사이에 <meta> 태그에 저 속성을 적용하니 바로 해결되었다.

 

나 같은 경우는 xwiki블로그에서 삭제 같은 기능들이 이런 현상을 보였다.

 

 

 

 

 

'etc' 카테고리의 다른 글

랜섬웨어  (0) 2025.10.13
jsp 로 스크립트 실행하여 slack 알람 보내기, flock  (0) 2025.02.04

+ Recent posts