github_integration.cpython-312.pyc•2.79 kB
�
|��g
� �r � d dl Z d dlZd dlZd dlmZ e� e j
d� Zdededede fd�Z
y) � N)�load_dotenv�GITHUB_TOKEN�
repo_owner� repo_name� pr_number�returnc � � t d| � d|� d|� �� d| � d|� d|� �}|� d�}ddt � �i} t j ||� � }|j � |j � }t j ||� � }|j � |j � } g }
| D ]] }|d
|d |d |d
|d |j dd� |j dd� |j dd� d�}|
j
|� �_ |d |d |d d |d |d |d t |
� |
d�}
t dt |
� � d�� |
S # t $ r5}t dt |� � �� t j � Y d}~yd}~ww xY w) aG Fetch changes from a GitHub pull request.
Args:
repo_owner: The owner of the GitHub repository
repo_name: The name of the GitHub repository
pr_number: The number of the pull request to analyze
Returns:
A list of file changes with detailed information about each change
z Fetching PR changes for �/�#zhttps://api.github.com/repos/z/pulls/z/files�
Authorizationztoken )�headers�filename�status� additions� deletions�changes�patch� �raw_url�contents_url)r r r r r r r r �title�body�user�login�
created_at�
updated_at�state)r �description�authorr r r �
total_changesr zSuccessfully fetched z changeszError fetching PR changes: N)�printr �requests�get�raise_for_status�json�append�len� Exception�str� traceback� print_exc)r r r �pr_url� files_urlr
�pr_response�pr_data�files_response�
files_datar �file�change�pr_info�es �;/Users/kalyankumarkonduru/pr_reviewer/github_integration.py�fetch_pr_changesr7
s� � �
�%�j�\��9�+�Q�y�k�
J�K� -�Z�L��)��G�I�;�
W�F��(�&�!�I��&��� 7�8�G�,��l�l�6�7�;���$�$�&��"�"�$�� "���i��A���'�'�)�#�(�(�*�
� ��� #�D� ��,��x�.�!�+�.�!�+�.�� �?����'�2�.��8�8�I�r�2� $����� <� �F�
�N�N�6�"� #� �W�%�"�6�?��f�o�g�.�!�,�/�!�,�/��W�%� ��\��
�� �%�c�'�l�^�8�<�=����� �
�+�C��F�8�4�5��������s �DE � F�+E?�?F)�osr"