Skip to content

chore: Added an AGENTS.md file to instruct AI agents how to interact with this repository #906

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Aug 20, 2025

Conversation

jonathanedey
Copy link
Contributor

No description provided.

- `firebase_admin/`: The main package directory.
- `__init__.py`: The primary entry point. It exposes the `initialize_app()` function and manages the lifecycle of `App` instances.
- `exceptions.py`: Defines the custom exception hierarchy for the SDK.
- `_http_client.py`: Contains the centralized `JsonHttpClient` and `HttpxAsyncClient` for all outgoing HTTP requests.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

should we add more context on the HttpxAsyncClient (HTTPX and HTTP/2)?
Could be here or under ### HTTP Communication.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah, I think a more context on when each should be used would be helpful. I'll add this in a follow up PR.

- Classes: `PascalCase` (e.g., `FirebaseError`).
- Methods and Functions: `snake_case` (e.g., `initialize_app`).
- Private Members: An underscore prefix (e.g., `_http_client`).
- Constants: `UPPER_SNAKE_CASE` (e.g., `INVALID_ARGUMENT`).
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe a short section for Typings? ex: NoneType
go/pystyle#none-type

This could also be an improvement in a future PR.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good point, I'll add this in a separate PR.

```
- **Integration Tests:**
- Located in the `integration/` directory.
- These tests make real API calls to Firebase services and require a configured project. Running these tests be should be ignored without a project and instead rely on the repository's GitHub Actions.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

did the ' break formatting here and below?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The actual markdown formatting in preview seems fine but github text didn't seem to like it.


### Journey 1: How to Add a New API Method

1. **Define Public Method:** Add the new method or change to the appropriate service client files (e.g., `firebase_admin/auth.py`).
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As a future improvement, should we be biased towards async?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm a bit hesitant to bias towards it here since we wouldn't want it to start trying to use async for every new api just yet. I think providing that bias to the agent directly would be a better option for now.

@jonathanedey jonathanedey merged commit 5e75250 into master Aug 20, 2025
19 of 20 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants