dependabot-terraform-action icon indicating copy to clipboard operation
dependabot-terraform-action copied to clipboard

Submodule path syntax support

Open davidski opened this issue 3 years ago • 6 comments

Thanks for making an HCL 2.0 compatible dependabot available! ❤️

Is submodule syntax known to be supported? I'm using a block such as

module "sg_http_inbound" {
  source              = "terraform-aws-modules/security-group/aws//modules/http-80"
  version             = "3.15.0"
  name                = "web_inbound_http"
  ...
}

This seems to be throwing an error of - Updating terraform-aws-modules/security-group/aws (from 3.1.0)…bundler: failed to load command: ./dependabot.rb (./dependabot.rb) (that 3.1.0 version string is odd as well, which I can't find in my code base).

If this should be working, I'll put some effort into generating a more useful reprex. This is currently in a thicket of private code I'm trying to sort out. Appreciate the time!

davidski avatar Aug 21 '20 13:08 davidski

Could you share the full log of the error? It seems this is a public module - will try to generate a test-case for it and see if we can fix it somehow

patrickjahns avatar Sep 09 '20 11:09 patrickjahns

I'm encountering a similar error with another public module:

  - Updating terraform-aws-modules/iam/aws (from )…bundler: failed to load command: ./dependabot.rb (./dependabot.rb)
  /usr/local/bundle/bundler/gems/dependabot-core-44f458dba8ce/terraform/lib/dependabot/terraform/file_updater.rb:25:in `block in updated_dependency_files'
  /usr/local/bundle/bundler/gems/dependabot-core-44f458dba8ce/terraform/lib/dependabot/terraform/file_updater.rb:21:in `each'
  /usr/local/bundle/bundler/gems/dependabot-core-44f458dba8ce/terraform/lib/dependabot/terraform/file_updater.rb:21:in `updated_dependency_files'
  /usr/src/app/dependabot.rb:131:in `block in update'
  /usr/src/app/dependabot.rb:93:in `each'
  /usr/src/app/dependabot.rb:93:in `update'
  /usr/src/app/dependabot.rb:162:in `block in <top (required)>'
  /usr/src/app/dependabot.rb:153:in `each'
  /usr/src/app/dependabot.rb:153:in `<top (required)>'

jnewland avatar Sep 09 '20 15:09 jnewland

@jnewland Please provide the related terraform code as well

Looking at https://github.com/dependabot/dependabot-core/pull/1299/files - upstream should handle this already. If it doesn't it's still a bug with dependabot itself and might need a fix upstream

patrickjahns avatar Sep 09 '20 15:09 patrickjahns

module "irsa_aws_alb_ingress_controller" {
  source                        = "terraform-aws-modules/iam/aws//modules/iam-assumable-role-with-oidc"
  version                       = "~> 2.18.0"
  create_role                   = true
  role_name                     = "aws-alb-ingress-controller"
  provider_url                  = replace(module.eks.cluster_oidc_issuer_url, "https://", "")
  role_policy_arns              = [aws_iam_policy.aws_alb_ingress_controller.arn]
  oidc_fully_qualified_subjects = ["system:serviceaccount:default:aws-alb-ingress-controller"]
}

jnewland avatar Sep 09 '20 15:09 jnewland

this issue is happening to me as well. works when a module is in root but not when a repo has several modules into folders. in fact it worked for until it breaks the loop

  - Checking aws-acm ...
  - Parsing dependencies information
  - Checking aws-cognito ...
  - Parsing dependencies information
  - Updating lgallard/cognito-user-pool/aws (from 0.4.0)…  - submitted
RuntimeError: Content didn't change!
  - Updating terraform-aws-modules/iam/aws (from 2.9.0)…bundler: failed to load command: ./dependabot.rb (./dependabot.rb)
  /usr/local/bundle/bundler/gems/dependabot-core-44f458dba8ce/terraform/lib/dependabot/terraform/file_updater.rb:25:in `block in updated_dependency_files'
  /usr/local/bundle/bundler/gems/dependabot-core-44f458dba8ce/terraform/lib/dependabot/terraform/file_updater.rb:21:in `each'
  /usr/local/bundle/bundler/gems/dependabot-core-44f458dba8ce/terraform/lib/dependabot/terraform/file_updater.rb:21:in `updated_dependency_files'
  /usr/src/app/dependabot.rb:131:in `block in update'
  /usr/src/app/dependabot.rb:93:in `each'
  /usr/src/app/dependabot.rb:93:in `update'
  /usr/src/app/dependabot.rb:162:in `block in <top (required)>'
  /usr/src/app/dependabot.rb:153:in `each'
  /usr/src/app/dependabot.rb:153:in `<top (required)>'

blastik avatar Oct 01 '20 14:10 blastik

@patrickjahns have you had chance to look at this at all? I'm seeing exactly the same error when trying to use submodules.

stuart-c avatar Nov 10 '20 12:11 stuart-c