Multibranch pipeline with defaults
https://plugins.jenkins.io/pipeline-multibranch-defaults and Pipeline Github plugin
https://github.com/jenkinsci/pipeline-github-plugin the first allow you to set a Jenkinsfile by default on Multibranch projects so you can have the Jenkinsfile outside of the project repo in another repo that you manage with other permissions, the second allows you to interact with GitHub, I use it to check permissions and other stuff in GitHub before to start the build, to trigger build with comments, and check reviews, I make all this stuff on a pipeline shared library that probably we make public at some point.