diff --git a/.github/linters/.markdown-lint.yml b/.github/linters/.markdown-lint.yml index beb5383..fa56530 100644 --- a/.github/linters/.markdown-lint.yml +++ b/.github/linters/.markdown-lint.yml @@ -7,7 +7,7 @@ MD013: # Ordered list item prefix MD029: - style: one + style: ordered # Spaces after list markers MD030: diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md new file mode 100644 index 0000000..174d9fa --- /dev/null +++ b/CODE_OF_CONDUCT.md @@ -0,0 +1,129 @@ +# Contributor Covenant Code of Conduct + +## Our Pledge + +We as members, contributors, and leaders pledge to make participation in our +community a harassment-free experience for everyone, regardless of age, body +size, visible or invisible disability, ethnicity, sex characteristics, gender +identity and expression, level of experience, education, socio-economic status, +nationality, personal appearance, race, religion, or sexual identity and +orientation. + +We pledge to act and interact in ways that contribute to an open, welcoming, +diverse, inclusive, and healthy community. + +## Our Standards + +Examples of behavior that contributes to a positive environment for our +community include: + +- Demonstrating empathy and kindness toward other people +- Being respectful of differing opinions, viewpoints, and experiences +- Giving and gracefully accepting constructive feedback +- Accepting responsibility and apologizing to those affected by our mistakes, + and learning from the experience +- Focusing on what is best not just for us as individuals, but for the overall + community + +Examples of unacceptable behavior include: + +- The use of sexualized language or imagery, and sexual attention or advances of + any kind +- Trolling, insulting or derogatory comments, and personal or political attacks +- Public or private harassment +- Publishing others' private information, such as a physical or email address, + without their explicit permission +- Other conduct which could reasonably be considered inappropriate in a + professional setting + +## Enforcement Responsibilities + +Community leaders are responsible for clarifying and enforcing our standards of +acceptable behavior and will take appropriate and fair corrective action in +response to any behavior that they deem inappropriate, threatening, offensive, +or harmful. + +Community leaders have the right and responsibility to remove, edit, or reject +comments, commits, code, wiki edits, issues, and other contributions that are +not aligned to this Code of Conduct, and will communicate reasons for moderation +decisions when appropriate. + +## Scope + +This Code of Conduct applies within all community spaces, and also applies when +an individual is officially representing the community in public spaces. +Examples of representing our community include using an official email address, +posting via an official social media account, or acting as an appointed +representative at an online or offline event. + +## Enforcement + +Instances of abusive, harassing, or otherwise unacceptable behavior may be +reported to the community leaders responsible for enforcement at +[tylermilner@gmail.com](mailto:tylermilner@gmail.com). All complaints will be +reviewed and investigated promptly and fairly. + +All community leaders are obligated to respect the privacy and security of the +reporter of any incident. + +## Enforcement Guidelines + +Community leaders will follow these Community Impact Guidelines in determining +the consequences for any action they deem in violation of this Code of Conduct: + +### 1. Correction + +**Community Impact**: Use of inappropriate language or other behavior deemed +unprofessional or unwelcome in the community. + +**Consequence**: A private, written warning from community leaders, providing +clarity around the nature of the violation and an explanation of why the +behavior was inappropriate. A public apology may be requested. + +### 2. Warning + +**Community Impact**: A violation through a single incident or series of +actions. + +**Consequence**: A warning with consequences for continued behavior. No +interaction with the people involved, including unsolicited interaction with +those enforcing the Code of Conduct, for a specified period of time. This +includes avoiding interactions in community spaces as well as external channels +like social media. Violating these terms may lead to a temporary or permanent +ban. + +### 3. Temporary Ban + +**Community Impact**: A serious violation of community standards, including +sustained inappropriate behavior. + +**Consequence**: A temporary ban from any sort of interaction or public +communication with the community for a specified period of time. No public or +private interaction with the people involved, including unsolicited interaction +with those enforcing the Code of Conduct, is allowed during this period. +Violating these terms may lead to a permanent ban. + +### 4. Permanent Ban + +**Community Impact**: Demonstrating a pattern of violation of community +standards, including sustained inappropriate behavior, harassment of an +individual, or aggression toward or disparagement of classes of individuals. + +**Consequence**: A permanent ban from any sort of public interaction within the +community. + +## Attribution + +This Code of Conduct is adapted from the [Contributor Covenant][homepage], +version 2.0, available at +[https://www.contributor-covenant.org/version/2/0/code_of_conduct.html](https://www.contributor-covenant.org/version/2/0/code_of_conduct.html). + +Community Impact Guidelines were inspired by +[Mozilla's code of conduct enforcement ladder](https://github.com/mozilla/diversity). + +[homepage]: https://www.contributor-covenant.org + +For answers to common questions about this code of conduct, see the FAQ at +[https://www.contributor-covenant.org/faq](https://www.contributor-covenant.org/faq). +Translations are available at +[https://www.contributor-covenant.org/translations](https://www.contributor-covenant.org/translations). diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..10d68d9 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,131 @@ +# Contributing + +[fork]: https://github.com/tylermilner/last-successful-commit-hash-action/fork +[pr]: https://github.com/tylermilner/last-successful-commit-hash-action/compare +[code-of-conduct]: CODE_OF_CONDUCT.md + +Hi there! We're thrilled that you'd like to contribute to this project. Your +help is essential for keeping it great. + +Contributions to this project are +[released](https://help.github.com/articles/github-terms-of-service/#6-contributions-under-repository-license) +to the public under the [project's open source license](LICENSE). + +Please note that this project is released with a [Contributor Code of +Conduct][code-of-conduct]. By participating in this project you agree to abide +by its terms. + +## Source Code Overview + +This project was generated from the +[default GitHub Actions `javascript-action` template](https://github.com/actions/javascript-action). + +The following files make up this action: + +- `action.yml` - action metadata. +- `src/index.js` - main action entry point. Calls `main.js` to run the action. +- `src/main.js` - main action logic. Changes to the action's functionality + should be made here. +- `package.json` / `package-lock.json` - defines the JavaScript dependencies + that the action needs to run. +- `dist/*` - the compiled version of the action with all of its dependencies. + These files are automatically generated and should **NOT** be modified + directly. + +## Making Code Changes + +First, `cd` into the action folder and install the project dependencies via +[npm](https://www.npmjs.com): + +```Shell +npm install +``` + +In order to avoid the need to check in the `node_modules` folder, this action +utilizes [@vercel/ncc](https://github.com/vercel/ncc) to compile the action code +and its dependencies into a single JavaScript file that can be used for +distribution. + +⚠️ **Important!** - After making code changes to this action, you will need to +recompile the action before committing your changes: + +```Shell +npm run all +``` + +This will run all of the formatters, tests, and compile the action into the +`dist` folder. Make sure to include any updated files in your commit. + +## Submitting a pull request + +1. [Fork][fork] and clone the repository +2. Configure and install the dependencies: `npm i` +3. Make sure the tests pass on your machine: `npm test` +4. Create a new branch: `git checkout -b my-branch-name` +5. Make your change, add tests, and make sure the tests still pass +6. Do one final check to ensure all tests, linter, and compilation steps pass: + `npm run all` +7. Push to your fork and [submit a pull request][pr] +8. Pat your self on the back and wait for your pull request to be reviewed and + merged. + +Here are a few things you can do that will increase the likelihood of your pull +request being accepted: + +- Follow the style guide style by running the linter `npm run lint`. +- Write tests. +- Keep your change as focused as possible. If there are multiple changes you + would like to make that are not dependent upon each other, consider submitting + them as separate pull requests. +- Write a + [good commit message](http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html). + +## Creating a Release + +When it comes time to create a new release, repository maintainers should follow +the steps below to create and publish a new release. + +### Versioning + +For versioning, we are following the +[recommended versioning documentation](https://github.com/actions/toolkit/blob/master/docs/action-versioning.md) +available in GitHub's [actions/toolkit](https://github.com/actions/toolkit) +repository. + +### Automated Release + +[ ] **TODO**: Add automated release instructions + +### Manual Release + +Perform the following steps to create a manual release: + +1. Make sure all desired changes have been pushed to the `main` branch. +2. Create a `release/*` branch off of `main` (e.g. `release/v1.0.1`). +3. Update the `version` in `package.json` to the desired version. +4. Create a pull request from the `release/*` branch to `main`. +5. Once the pull request is merged, create a new release targeted on `main` in + the GitHub UI. Make sure to set it to create the corresponding tag on publish + (e.g. `v1.0.1`) and keep the "Publish this Action to the GitHub Marketplace" + option checked. +6. Once the release has been published on GitHub, switch back to the `main` + branch and pull down any changes. +7. Update the major version tag to point the latest release, which should look + something like the following (replacing "v1" if publishing a different major + version tag): + +```Shell +git tag -fa v1 -m "Update v1 tag" +git push origin v1 --force +``` + +## Resources + +- [How to Contribute to Open Source](https://opensource.guide/how-to-contribute/) +- [Using Pull Requests](https://help.github.com/articles/about-pull-requests/) +- [GitHub Help](https://help.github.com) +- [Creating a JavaScript action](https://docs.github.com/en/actions/creating-actions/creating-a-javascript-action) +- [Action Versioning](https://github.com/actions/toolkit/blob/main/docs/action-versioning.md) +- [Releasing and maintaining actions](https://docs.github.com/en/actions/creating-actions/releasing-and-maintaining-actions) +- [`javascript-action` template repository](https://github.com/actions/javascript-action) +- [`javascript-action` example](https://github.com/github-developer/javascript-action) diff --git a/README.md b/README.md index ddc7b0b..3be4a77 100644 --- a/README.md +++ b/README.md @@ -52,43 +52,8 @@ steps: ## Contributing -### Source Code Overview - -The following files make up this action: - -- `action.yml` - action metadata. -- `src/index.js` - main action entry point. Calls `main.js` to run the action. -- `src/main.js` - main action logic. Changes to the action's functionality - should be made here. -- `package.json` / `package-lock.json` - defines the JavaScript dependencies - that the action needs to run. -- `dist/*` - the compiled version of the action with all of its dependencies. - These files are automatically generated and should **NOT** be modified - directly. - -### Making Code Changes - -First, `cd` into the action folder and install the project dependencies via -[npm](https://www.npmjs.com): - -```Shell -npm install -``` - -In order to avoid the need to check in the `node_modules` folder, this action -utilizes [@vercel/ncc](https://github.com/vercel/ncc) to compile the action code -and its dependencies into a single JavaScript file that can be used for -distribution. - -⚠️ **Important!** - After making code changes to this action, you will need to -recompile the action before committing your changes: - -```Shell -npm run all -``` - -This will run all of the formatters, tests, and compile the action into the -`dist` folder. Make sure to include any updated files in your commit. +See [Contributing](CONTRIBUTING.md) for more information about how this action +is setup and how to contribute. ## License diff --git a/SECURITY.md b/SECURITY.md new file mode 100644 index 0000000..a251230 --- /dev/null +++ b/SECURITY.md @@ -0,0 +1,17 @@ +# Security Policy + +## Supported Versions + +The current version is actively maintained and will receive frequent updates and +security patches. + +| Version | Supported | +| ------- | ------------------ | +| 1.0.x | :white_check_mark: | + +## Reporting a Vulnerability + +Please report any security vulnerabilities either as a bug through the issues +interface or by [emailing the project maintainer](mailto:tylermilner@gmail.com). +Please bare in mind that this project is voluntarily maintained and patches will +be released based on availability. diff --git a/package.json b/package.json index e919030..d2f00eb 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "last-successful-commit-hash-action", "description": "GitHub Action to determine the commit SHA of the last successful run for a workflow", - "version": "1.0.0", + "version": "1.0.1", "author": "Tyler Milner", "private": true, "homepage": "https://github.com/tylermilner/last-successful-commit-hash-action#readme",