403Webshell
Server IP : 198.38.94.67  /  Your IP : 216.73.217.178
Web Server : LiteSpeed
System : Linux d6054.dxb1.stableserver.net 5.14.0-570.25.1.el9_6.x86_64 #1 SMP PREEMPT_DYNAMIC Wed Jul 9 04:57:09 EDT 2025 x86_64
User : azfilmst ( 1070)
PHP Version : 7.4.33
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /opt/saltstack/salt/lib/python3.10/site-packages/salt/utils/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /opt/saltstack/salt/lib/python3.10/site-packages/salt/utils/github.py
"""
Connection library for GitHub
"""

import logging

import salt.utils.http
import salt.utils.json

log = logging.getLogger(__name__)


def get_user_pubkeys(users):
    """
    Retrieve a set of public keys from GitHub for the specified list of users.
    Expects input in list format. Optionally, a value in the list may be a dict
    whose value is a list of key IDs to be returned. If this is not done, then
    all keys will be returned.

    Some example data structures that coupld be passed in would look like:

    .. code_block:: yaml

        ['user1', 'user2', 'user3']

        [
            'user1': [
                '12345',
                '67890',
            ],
            'user2',
            'user3',
        ]
    """
    if not isinstance(users, list):
        return {"Error": "A list of users is expected"}

    ret = {}
    for user in users:
        key_ids = []
        if isinstance(user, dict):
            tmp_user = next(iter(user.keys()))
            key_ids = user[tmp_user]
            user = tmp_user

        url = f"https://api.github.com/users/{user}/keys"
        result = salt.utils.http.query(
            url,
            "GET",
            decode=False,
            text=True,
        )

        keys = salt.utils.json.loads(result["text"])

        ret[user] = {}
        for key in keys:
            if key_ids:
                if str(key["id"]) in key_ids:
                    ret[user][key["id"]] = key["key"]
            else:
                ret[user][key["id"]] = key["key"]

    return ret

Youez - 2016 - github.com/yon3zu
LinuXploit