{"id":32566598,"url":"https://github.com/bgp/autopeer","last_synced_at":"2025-10-29T05:18:42.576Z","repository":{"id":196569374,"uuid":"587072112","full_name":"bgp/autopeer","owner":"bgp","description":null,"archived":false,"fork":false,"pushed_at":"2024-05-08T13:23:27.000Z","size":227,"stargazers_count":48,"open_issues_count":4,"forks_count":5,"subscribers_count":16,"default_branch":"main","last_synced_at":"2024-05-08T14:35:05.274Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bgp.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-01-09T22:21:37.000Z","updated_at":"2024-05-08T14:35:06.652Z","dependencies_parsed_at":"2024-03-13T18:43:59.109Z","dependency_job_id":"48117b4c-fdf1-4385-a0a4-2fd4a47ab170","html_url":"https://github.com/bgp/autopeer","commit_stats":null,"previous_names":["bgp/autopeer"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/bgp/autopeer","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bgp%2Fautopeer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bgp%2Fautopeer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bgp%2Fautopeer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bgp%2Fautopeer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bgp","download_url":"https://codeload.github.com/bgp/autopeer/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bgp%2Fautopeer/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":281563814,"owners_count":26522710,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-29T02:00:06.901Z","response_time":59,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-10-29T05:18:39.867Z","updated_at":"2025-10-29T05:18:42.571Z","avatar_url":"https://github.com/bgp.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"\n# Automated Peering API\n\nInitial proof of concept for Automated Peering API\n\nSee [CONTRIBUTING.md](CONTRIBUTING.md)\n\n## Introduction to the topic\n\nThis video is a recording of a presentation entitled \"Peering API Automation\" by Jenny Ramseyer (Meta), Matt Griswold (FullCtl), and Erica Salvaneschi (Cloudflare) given during NANOG88: https://www.youtube.com/watch?v=kMxsoplROYs The video motivates this work and shows the covered use-cases.\n\n\n## Sequence Diagram\n\n```mermaid\nsequenceDiagram\n    participant Initiator\n    participant Peer\n    participant PeeringDB\n\n    Initiator-\u003e\u003ePeeringDB: OIDC Authentication\n    PeeringDB-\u003e\u003eInitiator: Provide auth code\n    Initiator-\u003e\u003ePeer: Send auth code to Peer\n    Peer-\u003e\u003ePeeringDB: Exchange auth code for token\n    PeeringDB-\u003e\u003ePeer: Return token\n    Note left of Peer: Peer determines permissions based on token\n    Peer-\u003e\u003eInitiator: Send OK back to Initiator\n\n    Initiator-\u003e\u003ePeer: QUERY peering locations (peer type, ASN, auth code)\n    Peer-\u003e\u003eInitiator: Reply with peering locations or errors (401, 406, 451, etc.)\n\n    alt 200 response from Peer\n        Initiator-\u003e\u003ePeer: QUERY request status using request ID \u0026 auth code\n        Peer-\u003e\u003eInitiator: Reply with session status (200, 404, 202, etc.)\n        loop until peering is complete\n            Initiator-\u003e\u003ePeer: QUERY request status\n\t\t    Peer-\u003e\u003eInitiator: Session status\n        end\n    end\n```\n\n## License\n\nBy contributing to this repo, you agree that your contributions will be\nlicensed under the LICENSE file in the root directory of this source tree.\n\nDocumentation is covered by the Creative Commons Attribution 4.0 (CC-BY-4.0)\nlicense.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbgp%2Fautopeer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbgp%2Fautopeer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbgp%2Fautopeer/lists"}