This guide will help you use the Repository Management System to create, update, and configure GitHub repositories through issue templates.
- Introduction
- Getting Started
- Creating a New Repository
- Updating an Existing Repository
- Removing Repository Settings
- Understanding Repository Settings
- Branch Protection Strategies
- FAQ
- Troubleshooting
The Repository Management System allows you to create and configure GitHub repositories using issue templates rather than manual setup. This ensures consistent configuration across the organization and streamlines the repository creation process.
- Create new repositories with standardized settings
- Update existing repository configurations
- Apply branch protection rules based on best practices
- Configure repository security settings
- Manage repository metadata and features
- Go to the platform-automations repository
- Click on the "Issues" tab
- Click the "New Issue" button
- Select one of the repository management templates:
- "Create New Repository"
- "Update Repository"
- "Remove Repository Settings"
To create a new repository:
- Open the "Create New Repository" issue template
- Fill out the required fields (marked with *)
- Submit the issue
- The system will process your request and comment on the issue with the results
| Field | Description | Example |
|---|---|---|
| Repository Name* | Name of the new repository (lowercase, hyphenated) | my-new-service |
| Repository Description | Brief description of the repository | Backend service for user authentication |
| Repository Visibility* | Public, Internal, or Private | Internal |
| Branch Strategy* | Approach to branch management | Git Flow |
| Field | Description | Default |
|---|---|---|
| Template Repository | Repository to use as a template | None |
| Topics | Tags to categorize the repository | None |
| Has Issues | Enable GitHub Issues | True |
| Has Projects | Enable GitHub Projects | False |
| Has Wiki | Enable GitHub Wiki | True |
| Has Discussions | Enable GitHub Discussions | False |
| Security Settings | Vulnerability alerts and automated fixes | Both enabled |
### Repository Name
api-authentication-service
### Repository Description
Authentication microservice for the customer portal
### Repository Visibility
Internal
### Branch Strategy
Git Flow (main/develop with feature, release, and hotfix branches)
### Template Repository
service-template
### Topics
microservice, authentication, api, java, spring-boot
### Has Issues
true
### Has Wiki
true
### Security Settings
- Enable vulnerability alerts: true
- Enable automated security fixes: true
To update an existing repository:
- Open the "Update Repository" issue template
- Fill out the repository name and the fields you want to update
- Leave other fields blank or with "No response" to keep current settings
- Submit the issue
- The system will process your request and comment on the issue with the results
### Repository Name
legacy-application
### Action
update
### Repository Description
Updated description for the legacy application with new contact information
### Has Issues
true
### Has Projects
false
### Topics
legacy, maintenance, java, spring
To remove specific settings from a repository:
- Open the "Remove Repository Settings" issue template
- Fill out the repository name and the settings you want to remove
- Submit the issue
- The system will process your request and comment on the issue with the results
Note: This does not delete the repository, only removes specific settings.
### Repository Name
test-project
### Action
remove
### Topics
outdated-tag, old-framework
### Branch Protection Rule Name
strict-main-protection
| Setting | Description |
|---|---|
| Description | A brief explanation of the repository's purpose |
| Visibility | Controls who can see the repository (Public, Internal, Private) |
| Topics | Tags to categorize and make the repository discoverable |
| Feature | Description |
|---|---|
| Issues | Enables GitHub Issues for tracking work |
| Projects | Enables GitHub Projects for project management |
| Wiki | Enables GitHub Wiki for documentation |
| Discussions | Enables GitHub Discussions for community conversations |
| Setting | Description |
|---|---|
| Allow Squash Merge | Allows squashing commits when merging PRs |
| Allow Merge Commit | Allows standard merge commits |
| Allow Rebase Merge | Allows rebasing and merging PRs |
| Allow Auto Merge | Allows PRs to be merged automatically when requirements are met |
| Delete Branch on Merge | Automatically deletes head branches after merging |
| Allow Update Branch | Shows a button to update a PR branch when the base branch changes |
| Setting | Description |
|---|---|
| Enable Vulnerability Alerts | Receive alerts for known vulnerabilities in dependencies |
| Enable Automated Security Fixes | Automatically create PRs to resolve vulnerabilities |
The system supports several branch protection strategies, each with its own set of rules and workflows.
A simplified workflow with a single main branch and feature branches.
- Main Branch: Protected with required reviews and status checks
- Feature Branches: Named with
feature/*pattern
Best for: Small teams, continuous deployment, web applications
A more structured workflow with main, develop, feature, release, and hotfix branches.
- Main/Master Branch: Heavily protected, represents production code
- Develop Branch: Integration branch for features
- Feature Branches: For new features, named with
feature/*pattern - Release Branches: For release preparation, named with
release/x.y.zpattern - Hotfix Branches: For urgent fixes, named with
hotfix/x.y.zpattern
Best for: Larger teams, scheduled releases, complex applications
A workflow centered around a single "trunk" branch with short-lived feature branches.
- Trunk/Main Branch: Protected with required reviews and linear history
- Feature Branches: Very short-lived, named with
fb/*pattern
Best for: CI/CD environments, high-velocity teams
A flexible workflow where features are developed in dedicated branches.
- Main Branch: Protected with required reviews and status checks
- Feature Branches: Named with various prefixes:
feature/,bugfix/,improvement/, etc.
Best for: Teams transitioning from other workflows, mixed development approaches
A workflow that extends GitHub Flow with environment branches.
- Main Branch: Protected, represents the latest development code
- Production Branch: Represents production code
- Environment Branches: For staging, pre-production, etc.
- Feature Branches: Named with
feature/*pattern
Best for: Continuous delivery with multiple environments
A workflow focused on release management.
- Main Branch: Heavily protected, always releasable
- Release Branches: Named with
release/date.versionpattern - Feature Branches: Named with
feature/*pattern
Best for: Teams with complex release requirements
For specific protection needs, you can create custom branch protection rules:
- Select "Custom" as the branch strategy
- Fill out the "Branch Protection" section of the issue template
- Specify the branch name pattern, required approvals, and other settings
### Branch Protection Rule Name
production-branch-protection
### Branch Rule Type
strict-protection
### Branch Includes
main
production
### Require Pull Request Approvals
2
### Require Code Owner Review
true
### Dismiss Stale Reviews
true
### Require Status Checks
true
### Required Status Check List
- build
- test
- security-scan
Q: Who can create or update repositories? A: Users with appropriate permissions on the platform-automations repository can create issues. The actual operations are performed by a GitHub App with organization-level permissions.
Q: Can I delete a repository using this system? A: No, the system does not support repository deletion for safety reasons. Contact an organization administrator to delete a repository.
Q: How long does it take to process a repository request? A: Typically, requests are processed within a few minutes. You'll receive a comment on your issue when the operation is complete.
Q: What is the difference between Internal and Private visibility? A: Internal repositories are visible to all members of your organization, while Private repositories are only visible to users explicitly granted access.
Q: Can I change the visibility of a repository later? A: Yes, you can update the visibility using the "Update Repository" issue template.
Q: What happens if I don't specify a branch strategy? A: The system will default to Git Flow, which provides a comprehensive branch protection setup.
Q: What does "strict-protection" provide that "standard-protection" doesn't? A: Strict protection adds additional safeguards such as required linear history, signed commits, and more reviewers.
Q: Can I customize branch protection beyond the provided strategies? A: Yes, select "Custom" as the branch strategy and fill out the branch protection section with your specific requirements.
Q: How do I protect multiple branches with different rules? A: Create multiple branch protection rules by submitting separate update issues for each rule, or select a branch strategy that includes protection for multiple branches.
Issue: Repository creation fails with an error about the name. Solution: Ensure the repository name follows GitHub's naming convention (lowercase, hyphens, no special characters).
Issue: Branch protection rules don't appear to be applied. Solution: Check that you've specified the correct branch names and that the branches exist in the repository.
Issue: Update operation doesn't change a setting. Solution: Make sure you've explicitly specified the setting you want to change. Leaving a field blank or with "No response" will keep the current value.
If you encounter issues not covered in this guide:
- Check the error message in the issue comment for specific details
- Review this guide for relevant sections
- Contact the platform team for assistance through the support channel
For additional assistance, please contact the platform team.