integrations / terraform-provider-github

Terraform GitHub provider
https://www.terraform.io/docs/providers/github/
MIT License
863 stars 707 forks source link

Proposal to decouple GitHub pages functionality from github_repository resource #782

Open shoekstra opened 3 years ago

shoekstra commented 3 years ago

Hi!

I would like to be able to create a repo and enable the GitHub Pages functionality for a branch using Terraform. Currently I'm unable to do this without multiple Terraform runs and would like to propose decoupling the GitHub Pages functionality from the github_repository resource (in a similar way github_branch_protection is it's own resource).

If the branch to be used by GitHub pages does not exist, the API returns the following:

{
    "message": "The gh-pages branch must exist before GitHub Pages can be built.",
    "documentation_url": "https://docs.github.com/rest/reference/repos#create-a-github-pages-site"
}

With the current implementation it's not possible to create a repository, create a branch and enable Pages for that branch in a single run.

I'm happy pick this up but wanted to share the idea before investing time into it.

Thanks!

shoekstra commented 3 years ago

/cc @jcudit

jcudit commented 3 years ago

💯 on board with this direction. Excited to see this one progress.

ndobbs commented 3 years ago

I was glad to see this issue was already reported as it has been rather trying enabling gh-pages by default on my repos using this resource. I think decoupling this could also allow for more flexibility around conditionally enabling gh-pages on repositories as well.

Right now one cannot use depends_on to ensure the branch exists, considering the repo itself has not even been created.

Error: POST https://api.github.com/repos/gh-testl/test-repo/pages: 422 The gh-pages branch must exist before GitHub Pages can be built. []
│ 
│   with module.github_repo["test-repo"].github_repository.this,
│   on .terraform/modules/github_repo/main.tf line 16, in resource "github_repository" "this":
│   16: resource "github_repository" "this" {
alexlo03 commented 1 year ago

Still have this problem today

│ Error: POST https://api.github.com/repos/ORG/REPO/pages: 422 The BRANCHNAME branch must exist before GitHub Pages can be built. []
isaacsanders commented 1 year ago

I'm very interested in this.

alessio-trivisonno-shift commented 1 year ago

Very Interested 👍

kfcampbell commented 8 months ago

If somebody wants to take a shot at implementing this, we'd like to release a breaking change major version in the next month or two and that would be a natural place to include this change.

tpreviero commented 3 months ago

Hi @kfcampbell, I'm quite interested in extracting the managing of GitHub pages from the github_repository resource. I had a look at the linked open PR and from what I understand what's missing is the re-introduction of the pages resource into the github_repository and its deprecation in favour of the newly introduced resource.

I'm not sure I understand the whole picture, but can I help to make this happen eventually proposing a PR based on yours?

kfcampbell commented 2 months ago

@tpreviero You're certainly welcome to help make this happen. At this point, I'm not sure anybody understands the whole picture without doing a fair amount of research and reading up on old issues/PRs beforehand, so you're not alone! Please feel free to jump in where you see fit.