derberg/manage-files-in-multiple-repositories

Error: Action failed because of: TypeError: Cannot destructure property `name` of 'undefined' or 'null'.

felixk opened this issue · 9 comments

Thanks for this code...

I tried to set this up, and I get this error message when I run the action on my .github repo:

Error: Action failed because of: TypeError: Cannot destructure property `name` of 'undefined' or 'null'.

This happens right after this message:
Getting list of repositories owned by NuBanko that will get updates. The following repos will be later ignored: [my ignored repos],.github

Any ideas what could be wrong. My workflow file looks like this:

name: Global workflow Update

on:
  push:
      branches: [ master ] #or main

jobs:

  replicate_changes:

      runs-on: ubuntu-latest

      steps:
        - name: Checkout repository
          uses: actions/checkout@v2
        - name: Replicating global workflow
          uses: derberg/global-workflows-support@v0.0.2
          with:
            github_token: ${{ secrets.CUSTOM_TOKEN }}
            files_to_ignore: globalworkflows.yml
            repos_to_ignore: [list comma delimted]
            committer_username: [my username]
            committer_email: [my email]
            commit_message: "ci: update global workflows"

Hey @felixk,

If you do not have any specific data to provide here:

            repos_to_ignore: [list comma delimted]
            committer_username: [my username]
            committer_email: [my email]

then just omit those options, just remove them from the file.

regarding the error itself, it is related to this line. This means reposList is undefined, which leads me to the question, are you sure CUSTOM_TOKEN is provided in your secrets?

Hey thanks for the quick response.

I recreated a personal token with all the possible permissions. Set my CUSTOM_TOKEN repo secret and still getting that error.

Any other ideas why the GitHub Api is failing?

Thanks!

Gimme few hours, I'll add some debug logs and release another version so you can checkout and grab more info from the logs

Okay thanks! As a quick test I used your project and wrote the following, and it returned my repolist:

async function run() {
    const gitHubKey = "MY CUSTOM_TOKEN WENT HERE";
   
    const octokit = github.getOctokit(gitHubKey);
    const reposList = await getReposList(octokit, "myorg");
    console.log(reposList);
}

@felixk new version v0.0.3 is out. Check it out. To enable debug do what is written here https://github.com/derberg/global-workflows-support#debug

please later paste all logs here so I can have a look

@felixk any luck?

I'm really sorry I didn't have a chance to try this. I was in a rush to get something implemented and ended up using your code to create a very simplified version of your action: workflow-updater-action

I'll give your changes a try in the next few days and try to see what was wrong.

@felixk did you have a chance to check it? not sure if I should keep it open

@felixk I'm gonna close. Anyway I think I know what issue you had as I had similar in my organization. I just released a fix. The issue was that the GitHub API could not provide default branch info for one repo and restructuring failed, why? cause one repo was not initialized and not initialized repos do not have default branches