Documentation
¶
Overview ¶
Package githubsetup implements domain.GitHubSetupService for the GitHub Action CI setup flow. Every git/gh command runs through the injected CommandRunner under a 30-second timeout so a wedged subprocess cannot hang the UI.
Index ¶
- type CommandRunner
- type RealRunner
- type Service
- func (s *Service) CheckOrgSecretsExist(orgName string) (bool, error)
- func (s *Service) GenerateGithubActionWorkflowContent() string
- func (s *Service) GenerateStandardWorkflowContent() string
- func (s *Service) GetCurrentRepo() (string, error)
- func (s *Service) IsOrgRepo(repo string) (bool, error)
- func (s *Service) PreparePRCreation(repo, workflowPath string) (string, error)
- func (s *Service) SetOrgSecret(orgName, name, value string) error
- func (s *Service) WriteWorkflowFile(path, content string) error
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type CommandRunner ¶
type CommandRunner interface {
Run(ctx context.Context, name string, args ...string) ([]byte, error)
}
CommandRunner is an injectable interface for running subprocesses. Tests supply a fake runner so no real gh/git calls are needed.
type Service ¶
type Service struct {
// contains filtered or unexported fields
}
Service implements domain.GitHubSetupService.
func NewService ¶
func NewService(runner CommandRunner) *Service
NewService creates a new Service with the given runner.
func (*Service) CheckOrgSecretsExist ¶
CheckOrgSecretsExist checks whether INFER_APP_ID and INFER_APP_PRIVATE_KEY secrets exist for the given org.
func (*Service) GenerateGithubActionWorkflowContent ¶
GenerateGithubActionWorkflowContent generates the GitHub App-based workflow YAML content with org-level secrets.
func (*Service) GenerateStandardWorkflowContent ¶
GenerateStandardWorkflowContent generates the standard (github-actions[bot]) workflow YAML content.
func (*Service) GetCurrentRepo ¶
GetCurrentRepo returns the current GitHub repository name with owner.
func (*Service) IsOrgRepo ¶
IsOrgRepo checks whether the given repo belongs to a GitHub organization.
func (*Service) PreparePRCreation ¶
PreparePRCreation creates a branch, commits the workflow file, pushes it, and opens a PR creation page. It returns the compare URL.
func (*Service) SetOrgSecret ¶
SetOrgSecret sets a GitHub organization-level secret.
func (*Service) WriteWorkflowFile ¶
WriteWorkflowFile writes the workflow content to the specified path.