Starlark library usage examples
This document provides sample usage for common runZero Starlark libraries used in custom integration scripts.
requests
load('requests', 'Session', 'Cookie')
load('json', json_decode='decode')
def requests_example():
session = Session()
session.headers.set('Accept', 'application/json')
session.headers.set('User-Agent', 'Mozilla/5.0')
session.headers.set('User-Agent', None) # remove header
url = 'https://hacker-news.firebaseio.com/v0/topstories.json'
session.cookies.set(url, {"test_cookie": "cookie_value"})
response = session.get(url)
if response and response.status_code == 200:
data = json_decode(response.body)
print("Top story IDs:", data[:5])
else:
print("Failed to fetch stories")
http
load('http', http_post='post', http_get='get', 'url_encode')
def fetch_example():
url = "https://hacker-news.firebaseio.com/v0/topstories.json"
headers = {"Accept": "application/json"}
response = http_get(url, headers=headers)
if response and response.status_code == 200:
print("Top stories retrieved successfully.")
else:
print("Request failed with status:", response.status_code)
net
load('net', 'ip_address')
def parse_ip_list():
ips = ["192.168.1.1", "2607:f8b0:4005:805::200e"]
for ip in ips:
addr = ip_address(ip)
print("IP:", addr, "Version:", addr.version)
json
load('json', json_encode='encode', json_decode='decode')
def test_json_handling():
data = {"name": "runZero", "features": ["scan", "API", "integrations"]}
encoded = json_encode(data)
print("Encoded JSON:", encoded)
decoded = json_decode(encoded)
print("Decoded:", decoded["name"])
time
load('time', 'parse_time')
def parse_example_time():
time_str = "2025-05-01T15:00:00Z"
parsed = parse_time(time_str)
print("Parsed time:", parsed)
uuid
load('uuid', 'new_uuid')
def create_unique_id():
uid = new_uuid()
print("Generated UUID:", uid)
gzip
load('gzip', gzip_decompress='decompress', gzip_compress='compress')
def gzip_example():
original = "Hello, runZero!".encode("utf-8")
# Compress the data
compressed = gzip_compress(original)
print("Compressed length:", len(compressed))
# Decompress it back
decompressed = gzip_decompress(compressed)
print("Decompressed value:", decompressed.decode("utf-8"))
base64
load('base64', base64_encode='encode', base64_decode='decode')
def b64_example():
username = "xxx"
password = "yyy"
enc = base64_encode(username + ":" + password)
dec = base64_decode(enc)
return (enc, dec)
Updated