├── .github
└── workflows
│ └── ci.yml
├── .gitignore
├── Dockerfile
├── LICENSE
├── README.md
├── package-lock.json
└── package.json
/.github/workflows/ci.yml:
--------------------------------------------------------------------------------
1 | name: DummyCheck
2 |
3 | on:
4 | pull_request:
5 | branches: [ main ]
6 |
7 | jobs:
8 | build:
9 | strategy:
10 | fail-fast: false
11 | matrix:
12 | os: [ ubuntu-latest ]
13 | runs-on: ${{ matrix.os }}
14 |
15 | steps:
16 | - name: Check out code
17 | uses: actions/checkout@v3
18 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # Logs
2 | logs
3 | *.log
4 | npm-debug.log*
5 | yarn-debug.log*
6 | yarn-error.log*
7 | lerna-debug.log*
8 |
9 | # Diagnostic reports (https://nodejs.org/api/report.html)
10 | report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json
11 |
12 | # Runtime data
13 | pids
14 | *.pid
15 | *.seed
16 | *.pid.lock
17 |
18 | # Directory for instrumented libs generated by jscoverage/JSCover
19 | lib-cov
20 |
21 | # Coverage directory used by tools like istanbul
22 | coverage
23 | *.lcov
24 |
25 | # nyc test coverage
26 | .nyc_output
27 |
28 | # Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files)
29 | .grunt
30 |
31 | # Bower dependency directory (https://bower.io/)
32 | bower_components
33 |
34 | # node-waf configuration
35 | .lock-wscript
36 |
37 | # Compiled binary addons (https://nodejs.org/api/addons.html)
38 | build/Release
39 |
40 | # Dependency directories
41 | node_modules/
42 | jspm_packages/
43 |
44 | # TypeScript v1 declaration files
45 | typings/
46 |
47 | # TypeScript cache
48 | *.tsbuildinfo
49 |
50 | # Optional npm cache directory
51 | .npm
52 |
53 | # Optional eslint cache
54 | .eslintcache
55 |
56 | # Microbundle cache
57 | .rpt2_cache/
58 | .rts2_cache_cjs/
59 | .rts2_cache_es/
60 | .rts2_cache_umd/
61 |
62 | # Optional REPL history
63 | .node_repl_history
64 |
65 | # Output of 'npm pack'
66 | *.tgz
67 |
68 | # Yarn Integrity file
69 | .yarn-integrity
70 |
71 | # dotenv environment variables file
72 | .env
73 | .env.test
74 |
75 | # parcel-bundler cache (https://parceljs.org/)
76 | .cache
77 |
78 | # Next.js build output
79 | .next
80 |
81 | # Nuxt.js build / generate output
82 | .nuxt
83 | dist
84 |
85 | # Gatsby files
86 | .cache/
87 | # Comment in the public line in if your project uses Gatsby and *not* Next.js
88 | # https://nextjs.org/blog/next-9-1#public-directory-support
89 | # public
90 |
91 | # vuepress build output
92 | .vuepress/dist
93 |
94 | # Serverless directories
95 | .serverless/
96 |
97 | # FuseBox cache
98 | .fusebox/
99 |
100 | # DynamoDB Local files
101 | .dynamodb/
102 |
103 | # TernJS port file
104 | .tern-port
105 |
--------------------------------------------------------------------------------
/Dockerfile:
--------------------------------------------------------------------------------
1 | FROM php:8.0-fpm
2 |
3 | ENV DOCKERIZE_VERSION 0.6.1
4 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2022 Renovate Bot
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Renovate - Hands On Tutorial
2 |
3 | ## Introduction
4 |
5 | Welcome to the Renovate hands-on tutorial.
6 |
7 | This tutorial is based on the Mend Renovate App.
8 | You can also run Renovate as a CLI tool or a self-hosted application.
9 |
10 | > [!NOTE]
11 | > Although this tutorial is based on the Mend Renovate App, the concepts discussed apply to all environments.
12 |
13 | In this tutorial, you will learn how to configure Renovate and become familiar with some of the basic features.
14 |
15 | What you will learn:
16 |
17 | 1. Installation
18 | 2. Onboarding
19 | 3. Getting to know Renovate’s update PRs
20 | 4. Dependency Dashboard
21 |
22 | We will begin this tutorial with configuring and installing the Mend Renovate App and an overview of the default settings and basic functionalities.
23 |
24 | Later, we will dive deeper into functional use-cases, advanced features, and `best practices` so you'll know how to leverage Renovate to its fullest.
25 |
26 | ## Part 1 - Installation
27 |
28 | Let’s start by forking the tutorial repo to your account, installing the Mend Renovate App, and configuring it to your repo.
29 |
30 | 1. Make sure you are logged in to GitHub.com
31 | 1. Fork this repository. The tutorial instructions will be based on its contents.
32 | 1. The following instructions are directed at those that don’t have the Mend Renovate App installed:
33 | - Install the Mend Renovate App to your account by navigating to the [the Mend Renovate App installation page](https://github.com/apps/renovate) and select Install:
34 | 
35 | 1. If you do have the Mend Renovate App installed:
36 | - navigate to [the Mend Renovate App](https://github.com/apps/renovate) and select configure:
37 | 
38 | 1. You will reach an installation configuration page where you are asked to configure Repository Access.
39 |
40 | > **Note**
41 | > for existing users, installation configuration appears at the bottom of the page.
42 |
43 | - Mark `Only select repositories` and make sure to select the forked RenovateTutorial repo
44 |
45 | > **Note**
46 | > each selected repo gets an onboarding PR.
47 |
48 | If you select `All repositories`, forked repos will be skipped by default (including RenovateTutorial).
49 | - Click on `Install` (“Save” for existing users)
50 |
51 |
52 |
53 | For new installs:
54 |
55 | - You will be redirected to our “Thank you for installing Renovate” page while we are setting up your account.
56 |
57 | 
58 |
59 | - After a few seconds, you will be automatically redirected to the Mend's developer portal where you can sign in and view the Renovate logs. We recommend saving this [link](https://developer.mend.io) for future use.
60 |
61 |
62 |
63 | **Congratulations! You have successfully installed Renovate to your account.** 🎈
64 |
65 | ## Part 2 - Onboarding
66 |
67 | Now you have installed the Mend Renovate App, we can begin onboarding.
68 |
69 | Let’s review the concepts of the Onboarding PR and learn about Renovate’s initial settings.
70 |
71 | > [!NOTE]
72 | > Renovate waits for you to finish onboarding, before making changes to your repo or raises PRs.
73 |
74 | - Upon installing Renovate, an onboarding PR will be automatically generated.
75 | - This PR is there to help you understand Renovate and its default settings before Renovate starts running on your repository.
76 | - The Onboarding PR creates a configuration file called `renovate.json`, which contains Renovate’s default settings and can be modified during onboarding.
77 |
78 | Let’s review the onboarding PR:
79 |
80 | 1. Navigate to the `Pull Requests` section in GitHub, and open the newly generated PR - `Configure Renovate`
81 |
82 |
83 |
84 |
85 |
86 | #### The onboarding PR contains:
87 |
88 | - **Detected Package Files** - All package files detected by Renovate in your code.
89 | - **Configuration Summary** - The default configuration settings that will be applied.
90 | - **What to Expect** - The dependency update PRs that Renovate is about to automatically create.
91 | - The link to Renovate’s official [documentation](https://docs.renovatebot.com/).
92 | - The link to review jobs logs in the [Renovate dashboard](https://app.renovatebot.com/dashboard).
93 |
94 | > [!NOTE]
95 | > Renovate only creates dependency update PRs _after_ you merge the onboarding PR.
96 |
97 | #### These are some of the default configurations of Renovate:
98 |
99 | - Enables creation of the “Dependency Dashboard” - a dashboard that shows an overview of the state of your repositories' dependencies.
100 | - PRs will be created at a rate of 2 PRs per hour.
101 | - The limit of simultaneous open Renovate PRs is set to 10.
102 | - Renovate automatically groups known monorepo packages to a single PR (example can be seen in the `date-io` PR under the **what to expect** section).
103 |
104 | Renovate offers the ability to change configurations before merging the onboarding PR as well as preview the results of these changes.
105 | At this point, Renovate has created a branch called renovate/configure which contains the `renovate.json` configuration file.
106 | By default, Renovate limits branch creation to 2 per hour:
107 |
108 |
109 |
110 | Example
111 |
112 | As a user, despite Renovate’s suggestion to limit hourly PR creation to 2, we might want to increase the limit to a different number.
113 | Let’s try changing this hourly limitation to 3:
114 |
115 | 1. Go to the newly created branch - `renovate/configure`:
116 |
117 |
118 |
119 | 2. Go into the `renovate.json` file:
120 |
121 | 
122 |
123 | 3. Add the following code segment:
124 | ```json
125 | {
126 | "prHourlyLimit": 3
127 | }
128 | ```
129 |
130 |
131 | 4. Commit the changes
132 | 5. Revisit the onboarding PR and notice how the onboarding PR automatically updates to reflect the changes you made to the configuration
133 |
134 |
135 |
136 | > [!NOTE]
137 | > May take a few moments to update.
138 |
139 | 6. Merge the onboarding pull request.
140 |
141 | **Congratulations! You have successfully onboarded Renovate.** 🎈
142 |
143 | ## Part 3 - Getting to know Renovate’s update PRs
144 |
145 | Now that you have merged the onboarding PR, Renovate will generate Update PRs to the most recent dependency version based on your configuration.
146 |
147 | > [!NOTE]
148 | > PRs may take a couple of minutes to appear.
149 |
150 | Here we will review the basic concepts of Renovate update PRs and merge it.
151 |
152 | - By default, Renovate will create up to 2 update PRs per hour. However, if you completed the onboarding section of this tutorial, Renovate will now create 3 PRs.
153 | - You should already see notifications for these pull requests in the `Pull Requests` section of the repo.
154 |
155 | Let’s go ahead and take a look at a Renovate update PR:
156 | 1. Navigate to the `Pull requests` section and open - `Update dependency lodash to x.y.z`
157 |
158 |
159 |
160 | ### Each update PR contains:
161 |
162 | - Dependency information (name and version changes)
163 | - [Merge Confidence](https://docs.renovatebot.com/merge-confidence/) values
164 | - Up-to-date release notes
165 | - Renovate configuration-related info
166 | - Option to rebase PR
167 | - Link to view Renovate logs
168 |
169 | 
170 |
171 | - Renovate’s update PRs will update the relevant dependency across your entire repo. In our RenovateTutorial repo, this will be both the `package.json` file and the `package-lock.json` file:
172 |
173 |
174 |
175 | 1. Merge this pull request
176 |
177 | > [!NOTE]
178 | > Renovate is highly configurable and supports:
179 | >
180 | > - On-demand PR creation.
181 | > - Automatic merging of PRs.
182 | > - Settings for specific dependencies/package managers.
183 | > - Scheduling.
184 | > - Grouping.
185 | >
186 | > All the above and more will be discussed in future parts of the tutorial.
187 |
188 | **Congratulations! You have now updated your first dependency with Renovate.** 🎈
189 |
190 | ## Part 4 - Dependency Dashboard
191 |
192 | Renovate’s Dependency Dashboard is a GitHub Issue that enables you to manage and monitor Renovate’s activity in your repo.
193 | In this section, we will go over some of its main functionalities and capabilities.
194 |
195 | Let’s begin by creating and enabling the Dependency Dashboard.
196 | Since GitHub defaults to disable `issues` on forked repositories, we need to enable it on the forked RenovateTutorial repo:
197 |
198 | 1. Go to the main page of the repo
199 | 1. Go to `settings` -> `general`
200 | 1. Check the `issues` checkbox under the Features section:
201 |
202 |
203 |
204 | - In order for the Dependency Dashboard to become available, we will need to re-run Renovate by triggering a webhook (for example, closing an update PR).
205 |
206 | > [!NOTE]
207 | > This is usually done in a click via the Dependency Dashboard.
208 |
209 | 1. Go to the `Pull requests` section
210 | 2. Select `Update dependency php to v8.1` and select `Close pull request`
211 |
212 |
213 |
214 | 3. This will trigger Renovate to run and the Dependency Dashboard will appear under the `Issues` section - navigate to it
215 |
216 | > [!NOTE]
217 | > It may take a minute to appear.
218 |
219 | ### The Dependency Dashboard includes:
220 | - Overview of all updates that are still to-do:
221 |
222 | - **Open** PRs
223 | - **Rate Limited** - PRs blocked by rate limit setting and will be opened based on preferences.
224 | - **Pending Approval** - PRs that require manual triggering based on configurations.
225 | - **Awaiting Schedule** - PRs creation blocked by Renovate scheduling settings.
226 | - **Pending Status Checks** - updates that await pending status checks in order to be created.
227 |
228 | - Visibility into **rejected/deferred updates**.
229 | - List of all the **detected dependencies** and **package managers** in your repository.
230 |
231 |
232 |
233 | Users can manually trigger the creation of dependency updates directly from the dashboard.
234 |
235 | You can also re-run Renovate manually from the Dependency Dashboard by enabling the “Check this box to trigger a request Renovate to run again on this repository” option:
236 |
237 |
238 |
239 | Let’s dive into one of the Dependency Dashboard capabilities - **the Pending Approval feature**.
240 |
241 | Say we want to take extra measures before updating major versions of a package (either to reduce noise or to handle it more carefully).
242 | Renovate offers an option to prevent automatic creation of major version update PRs and create such PRs only upon manual request from the Dependency Dashboard.
243 |
244 | In the Dependency Dashboard, under the `Rate Limited` section, the `Update dependency commander to vX` is waiting to be created.
245 |
246 | > [!NOTE]
247 | > Based on the previously set `prHourlyLimit` configuration, 3 PRs per hour in our case, this PR will be created within an hour.
248 |
249 |
250 |
251 | Since we decided that we want to handle it manually, we will edit configurations and see how the Dependency Dashboard is affected by this change.
252 |
253 | In order to limit all `major` updates to on-demand creation:
254 |
255 | 1. Add this code segment to your `renovate.json` file:
256 | ```json
257 | "packageRules": [
258 | {
259 | "matchUpdateTypes": ["major"],
260 | "dependencyDashboardApproval": true
261 | }
262 | ]
263 | ```
264 |
265 |
266 |
267 | 2. Commit the changes
268 |
269 | > [!NOTE]
270 | > Changing the `renovate.json` configuration file is a webhook that triggers Renovate to re-run.
271 |
272 | 3. Now go back to the Dependency Dashboard in the Issues section
273 | 4. As you can see, `commander` major update PR now appears under the **Pending Approval** section and **will not** be opened unless manually triggered
274 |
275 | > **Note**
276 | > it may take a minute to complete Renovate's run
277 |
278 |
279 |
280 | 5. You can now decide to manually open this PR by checking the box next to it
281 | 6. Navigate to the `Pull requests` section to review the generated PR and merge it to the repo.
282 |
283 | **Congratulations! You are now familiar with Renovate’s Dependency Dashboard.** 🎈
284 |
285 | ## What you learned:
286 |
287 | - How to install Renovate
288 | - Onboarding Renovate by reviewing, configuring, and merging the onboarding PR
289 | - How to update a dependency with Renovate
290 | - How to utilize the Dependency Dashboard
291 |
292 | ### General Comments:
293 |
294 | - Granting access to all repositories or change repo selections can be modified at any time on the [the Mend Renovate App GitHub page](https://github.com/apps/renovate).
295 | - Renovate configuration can be modified by manual configurations, global organization configurations and existing Renovate presets.
296 |
297 | ### Congratulations!
298 |
299 | You have successfully completed Renovate’s hands-on tutorial and have taken your first steps to automate dependency updates in your projects.
300 | Now, it's time to configure Renovate on the rest of your repositories and let Renovate manage your dependencies' health.
301 |
302 | ### Upcoming Tutorials:
303 |
304 | We're working on more advanced Renovate tutorials and will post updates when we publish new tutorials.
305 |
306 | What’s coming next:
307 |
308 | - Merge confidence
309 | - Auto Merge
310 | - Labeling
311 | - Grouping
312 | - Schedule
313 | - Package Rules
314 | - GitHub Actions
315 | - PR Assignees and PR reviewers
316 | - Regex Managers
317 |
--------------------------------------------------------------------------------
/package-lock.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "renovate_tutorial",
3 | "version": "0.0.1",
4 | "lockfileVersion": 2,
5 | "requires": true,
6 | "packages": {
7 | "": {
8 | "name": "renovate_tutorial",
9 | "version": "0.0.1",
10 | "license": "Apache-2.0",
11 | "dependencies": {
12 | "@date-io/date-fns": "2.10.0",
13 | "@date-io/moment": "2.10.0",
14 | "commander": "2.20.3",
15 | "lodash": "4.17.20"
16 | }
17 | },
18 | "node_modules/@date-io/core": {
19 | "version": "2.14.0",
20 | "resolved": "https://registry.npmjs.org/@date-io/core/-/core-2.14.0.tgz",
21 | "integrity": "sha512-qFN64hiFjmlDHJhu+9xMkdfDG2jLsggNxKXglnekUpXSq8faiqZgtHm2lsHCUuaPDTV6wuXHcCl8J1GQ5wLmPw=="
22 | },
23 | "node_modules/@date-io/date-fns": {
24 | "version": "2.10.0",
25 | "resolved": "https://registry.npmjs.org/@date-io/date-fns/-/date-fns-2.10.0.tgz",
26 | "integrity": "sha512-PxskpYmDAoL4BBGanoVD4SwhpMNFcVZFB8V2W7KATxgQ4m6Koy5FK9Qe1nKp8j9BERW310GT3sdERdNCXq8vuQ==",
27 | "dependencies": {
28 | "@date-io/core": "^2.10.0"
29 | },
30 | "peerDependencies": {
31 | "date-fns": "^2.0.0"
32 | }
33 | },
34 | "node_modules/@date-io/moment": {
35 | "version": "2.10.0",
36 | "resolved": "https://registry.npmjs.org/@date-io/moment/-/moment-2.10.0.tgz",
37 | "integrity": "sha512-RvmREFZbMBBUUPU8YqMjSkYewUk6rfxfnw5bR1mFtjyiSibfq2mR30ITo6lnqKk9SvpnorBI8fnmOu+g0hZC6g==",
38 | "dependencies": {
39 | "@date-io/core": "^2.10.0"
40 | },
41 | "peerDependencies": {
42 | "moment": "^2.24.0"
43 | }
44 | },
45 | "node_modules/commander": {
46 | "version": "2.20.3",
47 | "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
48 | "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ=="
49 | },
50 | "node_modules/date-fns": {
51 | "version": "2.28.0",
52 | "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.28.0.tgz",
53 | "integrity": "sha512-8d35hViGYx/QH0icHYCeLmsLmMUheMmTyV9Fcm6gvNwdw31yXXH+O85sOBJ+OLnLQMKZowvpKb6FgMIQjcpvQw==",
54 | "peer": true,
55 | "engines": {
56 | "node": ">=0.11"
57 | },
58 | "funding": {
59 | "type": "opencollective",
60 | "url": "https://opencollective.com/date-fns"
61 | }
62 | },
63 | "node_modules/lodash": {
64 | "version": "4.17.20",
65 | "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz",
66 | "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA=="
67 | },
68 | "node_modules/moment": {
69 | "version": "2.29.4",
70 | "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.4.tgz",
71 | "integrity": "sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w==",
72 | "peer": true,
73 | "engines": {
74 | "node": "*"
75 | }
76 | }
77 | },
78 | "dependencies": {
79 | "@date-io/core": {
80 | "version": "2.14.0",
81 | "resolved": "https://registry.npmjs.org/@date-io/core/-/core-2.14.0.tgz",
82 | "integrity": "sha512-qFN64hiFjmlDHJhu+9xMkdfDG2jLsggNxKXglnekUpXSq8faiqZgtHm2lsHCUuaPDTV6wuXHcCl8J1GQ5wLmPw=="
83 | },
84 | "@date-io/date-fns": {
85 | "version": "2.10.0",
86 | "resolved": "https://registry.npmjs.org/@date-io/date-fns/-/date-fns-2.10.0.tgz",
87 | "integrity": "sha512-PxskpYmDAoL4BBGanoVD4SwhpMNFcVZFB8V2W7KATxgQ4m6Koy5FK9Qe1nKp8j9BERW310GT3sdERdNCXq8vuQ==",
88 | "requires": {
89 | "@date-io/core": "^2.10.0"
90 | }
91 | },
92 | "@date-io/moment": {
93 | "version": "2.10.0",
94 | "resolved": "https://registry.npmjs.org/@date-io/moment/-/moment-2.10.0.tgz",
95 | "integrity": "sha512-RvmREFZbMBBUUPU8YqMjSkYewUk6rfxfnw5bR1mFtjyiSibfq2mR30ITo6lnqKk9SvpnorBI8fnmOu+g0hZC6g==",
96 | "requires": {
97 | "@date-io/core": "^2.10.0"
98 | }
99 | },
100 | "commander": {
101 | "version": "2.20.3",
102 | "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
103 | "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ=="
104 | },
105 | "date-fns": {
106 | "version": "2.28.0",
107 | "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.28.0.tgz",
108 | "integrity": "sha512-8d35hViGYx/QH0icHYCeLmsLmMUheMmTyV9Fcm6gvNwdw31yXXH+O85sOBJ+OLnLQMKZowvpKb6FgMIQjcpvQw==",
109 | "peer": true
110 | },
111 | "lodash": {
112 | "version": "4.17.20",
113 | "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz",
114 | "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA=="
115 | },
116 | "moment": {
117 | "version": "2.29.4",
118 | "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.4.tgz",
119 | "integrity": "sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w==",
120 | "peer": true
121 | }
122 | }
123 | }
124 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "renovate_tutorial",
3 | "version": "0.0.1",
4 | "description": "A simple package json for Renovate tutorial use only",
5 | "author": "Philip",
6 | "license": "Apache-2.0",
7 | "dependencies": {
8 | "commander": "2.20.3",
9 | "lodash": "4.17.20",
10 | "@date-io/date-fns": "2.10.0",
11 | "@date-io/moment": "2.10.0"
12 | }
13 | }
14 |
--------------------------------------------------------------------------------