diff --git a/.changeset/weak-flowers-repeat.md b/.changeset/weak-flowers-repeat.md new file mode 100644 index 0000000000..d1705343bc --- /dev/null +++ b/.changeset/weak-flowers-repeat.md @@ -0,0 +1,6 @@ +--- +'@backstage/plugin-scaffolder-backend-module-gitea': patch +--- + +- Fix issue for infinite loop when repository already exists +- Log the root cause of error reported by `checkGiteaOrg` diff --git a/plugins/scaffolder-backend-module-gitea/README.md b/plugins/scaffolder-backend-module-gitea/README.md index f13602f2d8..a1282634e0 100644 --- a/plugins/scaffolder-backend-module-gitea/README.md +++ b/plugins/scaffolder-backend-module-gitea/README.md @@ -28,8 +28,8 @@ integrations: password: '' ``` -**NOTE**: As backstage will issue HTTPS/TLS requests to the gitea instance, it is needed to configure `gitea` with a valid certificate or at least with a -self-signed certificate `gitea cert --host localhost -ca`. Don't forget to set the env var `NODE_EXTRA_CA_CERTS` to point to the CA file before launching backstage ! +**Important**: As backstage will issue HTTPS/TLS requests to the gitea instance, it is needed to configure `gitea` with a valid certificate or at least with a +self-signed certificate `gitea cert --host localhost -ca` trusted by a CA authority. Don't forget to set the env var `NODE_EXTRA_CA_CERTS` to point to the CA file before launching backstage ! When done, you can create a template which: @@ -69,18 +69,8 @@ spec: action: fetch:template input: url: ./skeleton - copyWithoutTemplating: - - .github/workflows/* values: - component_id: ${{ parameters.component_id }} - namespace: ${{ parameters.component_id }}-dev - description: ${{ parameters.description }} - group_id: ${{ parameters.group_id }} - artifact_id: ${{ parameters.artifact_id }} - java_package_name: ${{ parameters.java_package_name }} - owner: ${{ parameters.owner }} - destination: ${{ (parameters.repoUrl | parseRepoUrl).owner }}/${{ (parameters.repoUrl | parseRepoUrl).repo } - port: 8080 + name: ${{ parameters.name }} - id: publish name: Publishing to a gitea git repository diff --git a/plugins/scaffolder-backend-module-gitea/src/actions/gitea.ts b/plugins/scaffolder-backend-module-gitea/src/actions/gitea.ts index e7f62f51da..089f9b2669 100644 --- a/plugins/scaffolder-backend-module-gitea/src/actions/gitea.ts +++ b/plugins/scaffolder-backend-module-gitea/src/actions/gitea.ts @@ -80,7 +80,9 @@ const checkGiteaOrg = async ( getOptions, ); } catch (e) { - throw new Error(`Unable to get the Organization: ${owner}, ${e}`); + throw new Error( + `Unable to get the Organization: ${owner}; Error cause: ${e.cause.message}`, + ); } if (response.status !== 200) { throw new Error( @@ -178,6 +180,9 @@ async function checkAvailabilityGiteaRepository( if (response.status !== 200) { // Repository is not yet available/accessible ... await sleep(1000); + } else { + // Gitea repository exists ! + break; } } }