Skip to content

Commit

Permalink
build: update bug report and add closing function for invalid links (#…
Browse files Browse the repository at this point in the history
…5298)

* build: update and rename bug_report.md to bug_report.yml
  • Loading branch information
sofisl authored May 31, 2024
1 parent 6ee7570 commit f260fd8
Show file tree
Hide file tree
Showing 4 changed files with 162 additions and 34 deletions.
34 changes: 0 additions & 34 deletions .github/ISSUE_TEMPLATE/bug_report.md

This file was deleted.

99 changes: 99 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,99 @@
name: Bug Report
description: Create a report to help us improve
labels:
- bug
body:
- type: markdown
attributes:
value: >
**PLEASE READ**: If you have a support contract with Google, please
create an issue in the [support
console](https://cloud.google.com/support/) instead of filing on GitHub.
This will ensure a timely response. Otherwise, please make sure to
follow the steps below.
- type: checkboxes
attributes:
label: Please make sure you have searched for information in the following
guides.
options:
- label: "Search the issues already opened:
https://github.com/GoogleCloudPlatform/google-cloud-node/issues"
required: true
- label: "Search StackOverflow:
http://stackoverflow.com/questions/tagged/google-cloud-platform+nod\
e.js"
required: true
- label: "Check our Troubleshooting guide:
https://googlecloudplatform.github.io/google-cloud-node/#/docs/guid\
es/troubleshooting"
required: true
- label: "Check our FAQ:
https://googlecloudplatform.github.io/google-cloud-node/#/docs/guid\
es/faq"
required: true
- label: "Check our libraries HOW-TO:
https://github.com/googleapis/gax-nodejs/blob/main/client-libraries\
.md"
required: true
- label: "Check out our authentication guide:
https://github.com/googleapis/google-auth-library-nodejs"
required: true
- label: "Check out handwritten samples for many of our APIs:
https://github.com/GoogleCloudPlatform/nodejs-docs-samples"
required: true
- type: textarea
attributes:
label: >
A screenshot that you have tested with "Try this API".
description: >
As our client libraries are mostly autogenerated, we kindly request
that you test whether your issue is with the client library, or with the
API itself. To do so, please search for your API
here: https://developers.google.com/apis-explorer and attempt to
reproduce the issue in the given method. Please include a screenshot of
the response in "Try this API". This response should NOT match the current
behavior you are experiencing. If the behavior is the same, it means
that you are likely experiencing a bug with the API itself. In that
case, please submit an issue to the API team, either by submitting an
issue in its issue tracker https://cloud.google.com/support/docs/issue-trackers), or by
submitting an issue in its linked tracker in the .repo-metadata.json
file in the API under packages/* (for example, https://github.com/googleapis/google-cloud-node/blob/58419684469e3900146c8e830543bf4dc0cbb2be/packages/google-cloud-batch/.repo-metadata.json#L6)
validations:
required: true
- type: input
attributes:
label: >
Link to the code that reproduces this issue. A link to a **public** Github Repository with a minimal
reproduction.
description: >
**Skipping this/providing an invalid link will result in the issue being closed**
validations:
required: true
- type: textarea
attributes:
label: >
A step-by-step description of how to reproduce the issue, based on
the linked reproduction.
description: >
Screenshots can be provided in the issue body below.
placeholder: |
1. Start the application in development (next dev)
2. Click X
3. Y will happen
validations:
required: true
- type: textarea
attributes:
label: A clear and concise description of what the bug is, and what you
expected to happen.
placeholder: Following the steps from the previous section, I expected A to
happen, but I observed B instead
validations:
required: true

- type: textarea
attributes:
label: A clear and concise description WHY you expect this behavior, i.e., was it a recent change, there is documentation that points to this behavior, etc. **
placeholder: 'Documentation here(link) states that B should happen instead of A'
validations:
required: true
45 changes: 45 additions & 0 deletions .github/scripts/close-invalid-link.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
// Copyright 2024 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

const fetch = require('node-fetch');

async function closeIssue() {
await github.rest.issues.update({
owner: owner,
repo: repo,
issue_number: number,
state: "closed",
});
}
module.exports = async ({ github, context }) => {
const owner = context.repo.owner;
const repo = context.repo.repo;
const number = context.issue_number;

const issue = await github.rest.issues.get({
owner: owner,
repo: repo,
issue_number: number,
});

try {
const link = issue.data.body.match(/(https?:\/\/github.com\/.*)/)[0];
const isValidLink = (await fetch(link)).status === 200;
if (!isValidLink) {
await closeIssue();
}
} catch (err) {
await closeIssue();
}
};
18 changes: 18 additions & 0 deletions .github/workflows/issues-no-repro.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
name: invalid_link
on:
issues:
types: [opened, edited]

jobs:
close:
runs-on: ubuntu-latest
permissions:
issues: write
pull-requests: write
steps:
- uses: actions/checkout@v4
- uses: actions/github-script@v7
with:
script: |
const script = require('./.github/scripts/close-invalid-link.js')
await script({github, context})

0 comments on commit f260fd8

Please sign in to comment.