This repository was archived by the owner on Jun 3, 2020. It is now read-only.

Latest commit

History

76 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Cleric

Administration tools for the lazy software development manager.

Cleric automates the boring jobs a manager has to do when administrating accounts on GitHub, HipChat and other services used by teams. It provides commands such as:

  • Add a GitHub user to a team
  • Remove a GitHub user from an organization
  • Create a GitHub repo, assign it to a team and hook up repo notifications to HipChat all at once
  • Audit a local repo to ensure all commits are covered by pull requests

For any successful action, a configured HipChat room is notified, allowing other managers to see what's going on in your organization.

Cleric is intended to be extensible, so it should ultimately be possible to plug in other repo and chat services (assuming they have an adequate API) and provide other management notification mechanisms beyond HipChat.

While Cleric currently provides a command line interface, the design is intended to be reusable with other interfaces, e.g. a web UI.

Install

Cleric is available as a gem through GitHub, hence you'll need to add it to the Gemfile of an existing project or create a stub Gemfile to use it in isolation. Add the following line:

gem'cleric',git: 'git@github.com:mdsol/cleric.git'

Then run:

bundle install

This assumes you have Ruby (1.9+) and the bundler gem installed already!

To use the Cleric from the command line, run this command in the top directory for help:

[bundle exec] cleric help

Configure

Cleric is configured using the .clericrc YAML file in your home directory.

Management notifications

Management notification to a HipChat room is (currently) mandatory and requires the following settings in .clericrc:

hipchat:
api_token: 1234567890abcdef1234567890abcdannouncement_room_id: 1234

The api_token value should be an Admin token, to allow future commands to perform actions such as adding accounts. As the HipChat API does not provide a way to generate tokens, you will have to do this manually (once) through the "Group admin" web UI.

The announcement_room_id is the management notification chat room's id. In HipChat's chat web UI, this can be discovered by looking at the URL in the chat history page. In future, Cleric should allow room names to be used or provide a command to look up the id. Using an id does have the advantage of be resilient to the chat room being renamed.

GitHub authentication

By default, Cleric will prompt for your GitHub login and password on each invocation. You can avoid this be running the following command:

[bundle exec] cleric auth

You will be prompted for your login and password one last time but then an API token will be generated and stored in .clericrc.

Guard this token like you would a password! It allows the possessor full access to every public and private repo your account has access to! The advantage API tokens have over passwords is that they do not allow your account to be modified and can be revoked individually from GitHub's account management UI; Cleric's token will be named "Cleric (API)".

If you are uncomfortable with this level of risk, you can still enter your login and password with each invocation, which is the default behavior.

GitHub repo notifications to HipChat

The repo create command allows a new GitHub repo to (optionally) post notifications to a HipChat room. Rather than configure GitHub with the admin-level token used by Cleric itself, a separate Notification token should be used and configured in .clericrc as follows:

hipchat:
api_token: 1234567890abcdef1234567890abcdannouncement_room_id: 1234repo_api_token: abcdef1234567890abcdef12345678

Contributors

About

Administration tools for the lazy software development manager.

Topics

Resources

Stars

4 stars

Watchers

86 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content
This repository was archived by the owner on Jun 3, 2020. It is now read-only.

Latest commit

History

76 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Cleric

Administration tools for the lazy software development manager.

Cleric automates the boring jobs a manager has to do when administrating accounts on GitHub, HipChat and other services used by teams. It provides commands such as:

  • Add a GitHub user to a team
  • Remove a GitHub user from an organization
  • Create a GitHub repo, assign it to a team and hook up repo notifications to HipChat all at once
  • Audit a local repo to ensure all commits are covered by pull requests

For any successful action, a configured HipChat room is notified, allowing other managers to see what's going on in your organization.

Cleric is intended to be extensible, so it should ultimately be possible to plug in other repo and chat services (assuming they have an adequate API) and provide other management notification mechanisms beyond HipChat.

While Cleric currently provides a command line interface, the design is intended to be reusable with other interfaces, e.g. a web UI.

Install

Cleric is available as a gem through GitHub, hence you'll need to add it to the Gemfile of an existing project or create a stub Gemfile to use it in isolation. Add the following line:

gem'cleric',git: 'git@github.com:mdsol/cleric.git'

Then run:

bundle install

This assumes you have Ruby (1.9+) and the bundler gem installed already!

To use the Cleric from the command line, run this command in the top directory for help:

[bundle exec] cleric help

Configure

Cleric is configured using the .clericrc YAML file in your home directory.

Management notifications

Management notification to a HipChat room is (currently) mandatory and requires the following settings in .clericrc:

hipchat:
api_token: 1234567890abcdef1234567890abcdannouncement_room_id: 1234

The api_token value should be an Admin token, to allow future commands to perform actions such as adding accounts. As the HipChat API does not provide a way to generate tokens, you will have to do this manually (once) through the "Group admin" web UI.

The announcement_room_id is the management notification chat room's id. In HipChat's chat web UI, this can be discovered by looking at the URL in the chat history page. In future, Cleric should allow room names to be used or provide a command to look up the id. Using an id does have the advantage of be resilient to the chat room being renamed.

GitHub authentication

By default, Cleric will prompt for your GitHub login and password on each invocation. You can avoid this be running the following command:

[bundle exec] cleric auth

You will be prompted for your login and password one last time but then an API token will be generated and stored in .clericrc.

Guard this token like you would a password! It allows the possessor full access to every public and private repo your account has access to! The advantage API tokens have over passwords is that they do not allow your account to be modified and can be revoked individually from GitHub's account management UI; Cleric's token will be named "Cleric (API)".

If you are uncomfortable with this level of risk, you can still enter your login and password with each invocation, which is the default behavior.

GitHub repo notifications to HipChat

The repo create command allows a new GitHub repo to (optionally) post notifications to a HipChat room. Rather than configure GitHub with the admin-level token used by Cleric itself, a separate Notification token should be used and configured in .clericrc as follows:

hipchat:
api_token: 1234567890abcdef1234567890abcdannouncement_room_id: 1234repo_api_token: abcdef1234567890abcdef12345678

Contributors

About

Administration tools for the lazy software development manager.

Topics

Resources

Stars

4 stars

Watchers

86 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
This repository was archived by the owner on Jun 3, 2020. It is now read-only.

Latest commit

History

76 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Cleric

Administration tools for the lazy software development manager.

Cleric automates the boring jobs a manager has to do when administrating accounts on GitHub, HipChat and other services used by teams. It provides commands such as:

  • Add a GitHub user to a team
  • Remove a GitHub user from an organization
  • Create a GitHub repo, assign it to a team and hook up repo notifications to HipChat all at once
  • Audit a local repo to ensure all commits are covered by pull requests

For any successful action, a configured HipChat room is notified, allowing other managers to see what's going on in your organization.

Cleric is intended to be extensible, so it should ultimately be possible to plug in other repo and chat services (assuming they have an adequate API) and provide other management notification mechanisms beyond HipChat.

While Cleric currently provides a command line interface, the design is intended to be reusable with other interfaces, e.g. a web UI.

Install

Cleric is available as a gem through GitHub, hence you'll need to add it to the Gemfile of an existing project or create a stub Gemfile to use it in isolation. Add the following line:

gem'cleric',git: 'git@github.com:mdsol/cleric.git'

Then run:

bundle install

This assumes you have Ruby (1.9+) and the bundler gem installed already!

To use the Cleric from the command line, run this command in the top directory for help:

[bundle exec] cleric help

Configure

Cleric is configured using the .clericrc YAML file in your home directory.

Management notifications

Management notification to a HipChat room is (currently) mandatory and requires the following settings in .clericrc:

hipchat:
api_token: 1234567890abcdef1234567890abcdannouncement_room_id: 1234

The api_token value should be an Admin token, to allow future commands to perform actions such as adding accounts. As the HipChat API does not provide a way to generate tokens, you will have to do this manually (once) through the "Group admin" web UI.

The announcement_room_id is the management notification chat room's id. In HipChat's chat web UI, this can be discovered by looking at the URL in the chat history page. In future, Cleric should allow room names to be used or provide a command to look up the id. Using an id does have the advantage of be resilient to the chat room being renamed.

GitHub authentication

By default, Cleric will prompt for your GitHub login and password on each invocation. You can avoid this be running the following command:

[bundle exec] cleric auth

You will be prompted for your login and password one last time but then an API token will be generated and stored in .clericrc.

Guard this token like you would a password! It allows the possessor full access to every public and private repo your account has access to! The advantage API tokens have over passwords is that they do not allow your account to be modified and can be revoked individually from GitHub's account management UI; Cleric's token will be named "Cleric (API)".

If you are uncomfortable with this level of risk, you can still enter your login and password with each invocation, which is the default behavior.

GitHub repo notifications to HipChat

The repo create command allows a new GitHub repo to (optionally) post notifications to a HipChat room. Rather than configure GitHub with the admin-level token used by Cleric itself, a separate Notification token should be used and configured in .clericrc as follows:

hipchat:
api_token: 1234567890abcdef1234567890abcdannouncement_room_id: 1234repo_api_token: abcdef1234567890abcdef12345678

Contributors

About

Administration tools for the lazy software development manager.

Topics

Resources

Stars

4 stars

Watchers

86 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
This repository was archived by the owner on Jun 3, 2020. It is now read-only.

Latest commit

History

76 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Cleric

Administration tools for the lazy software development manager.

Cleric automates the boring jobs a manager has to do when administrating accounts on GitHub, HipChat and other services used by teams. It provides commands such as:

  • Add a GitHub user to a team
  • Remove a GitHub user from an organization
  • Create a GitHub repo, assign it to a team and hook up repo notifications to HipChat all at once
  • Audit a local repo to ensure all commits are covered by pull requests

For any successful action, a configured HipChat room is notified, allowing other managers to see what's going on in your organization.

Cleric is intended to be extensible, so it should ultimately be possible to plug in other repo and chat services (assuming they have an adequate API) and provide other management notification mechanisms beyond HipChat.

While Cleric currently provides a command line interface, the design is intended to be reusable with other interfaces, e.g. a web UI.

Install

Cleric is available as a gem through GitHub, hence you'll need to add it to the Gemfile of an existing project or create a stub Gemfile to use it in isolation. Add the following line:

gem'cleric',git: 'git@github.com:mdsol/cleric.git'

Then run:

bundle install

This assumes you have Ruby (1.9+) and the bundler gem installed already!

To use the Cleric from the command line, run this command in the top directory for help:

[bundle exec] cleric help

Configure

Cleric is configured using the .clericrc YAML file in your home directory.

Management notifications

Management notification to a HipChat room is (currently) mandatory and requires the following settings in .clericrc:

hipchat:
api_token: 1234567890abcdef1234567890abcdannouncement_room_id: 1234

The api_token value should be an Admin token, to allow future commands to perform actions such as adding accounts. As the HipChat API does not provide a way to generate tokens, you will have to do this manually (once) through the "Group admin" web UI.

The announcement_room_id is the management notification chat room's id. In HipChat's chat web UI, this can be discovered by looking at the URL in the chat history page. In future, Cleric should allow room names to be used or provide a command to look up the id. Using an id does have the advantage of be resilient to the chat room being renamed.

GitHub authentication

By default, Cleric will prompt for your GitHub login and password on each invocation. You can avoid this be running the following command:

[bundle exec] cleric auth

You will be prompted for your login and password one last time but then an API token will be generated and stored in .clericrc.

Guard this token like you would a password! It allows the possessor full access to every public and private repo your account has access to! The advantage API tokens have over passwords is that they do not allow your account to be modified and can be revoked individually from GitHub's account management UI; Cleric's token will be named "Cleric (API)".

If you are uncomfortable with this level of risk, you can still enter your login and password with each invocation, which is the default behavior.

GitHub repo notifications to HipChat

The repo create command allows a new GitHub repo to (optionally) post notifications to a HipChat room. Rather than configure GitHub with the admin-level token used by Cleric itself, a separate Notification token should be used and configured in .clericrc as follows:

hipchat:
api_token: 1234567890abcdef1234567890abcdannouncement_room_id: 1234repo_api_token: abcdef1234567890abcdef12345678

Contributors

About

Administration tools for the lazy software development manager.

Topics

Resources

Stars

4 stars

Watchers

86 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content
This repository was archived by the owner on Jun 3, 2020. It is now read-only.

Latest commit

History

76 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Cleric

Administration tools for the lazy software development manager.

Cleric automates the boring jobs a manager has to do when administrating accounts on GitHub, HipChat and other services used by teams. It provides commands such as:

  • Add a GitHub user to a team
  • Remove a GitHub user from an organization
  • Create a GitHub repo, assign it to a team and hook up repo notifications to HipChat all at once
  • Audit a local repo to ensure all commits are covered by pull requests

For any successful action, a configured HipChat room is notified, allowing other managers to see what's going on in your organization.

Cleric is intended to be extensible, so it should ultimately be possible to plug in other repo and chat services (assuming they have an adequate API) and provide other management notification mechanisms beyond HipChat.

While Cleric currently provides a command line interface, the design is intended to be reusable with other interfaces, e.g. a web UI.

Install

Cleric is available as a gem through GitHub, hence you'll need to add it to the Gemfile of an existing project or create a stub Gemfile to use it in isolation. Add the following line:

gem'cleric',git: 'git@github.com:mdsol/cleric.git'

Then run:

bundle install

This assumes you have Ruby (1.9+) and the bundler gem installed already!

To use the Cleric from the command line, run this command in the top directory for help:

[bundle exec] cleric help

Configure

Cleric is configured using the .clericrc YAML file in your home directory.

Management notifications

Management notification to a HipChat room is (currently) mandatory and requires the following settings in .clericrc:

hipchat:
api_token: 1234567890abcdef1234567890abcdannouncement_room_id: 1234

The api_token value should be an Admin token, to allow future commands to perform actions such as adding accounts. As the HipChat API does not provide a way to generate tokens, you will have to do this manually (once) through the "Group admin" web UI.

The announcement_room_id is the management notification chat room's id. In HipChat's chat web UI, this can be discovered by looking at the URL in the chat history page. In future, Cleric should allow room names to be used or provide a command to look up the id. Using an id does have the advantage of be resilient to the chat room being renamed.

GitHub authentication

By default, Cleric will prompt for your GitHub login and password on each invocation. You can avoid this be running the following command:

[bundle exec] cleric auth

You will be prompted for your login and password one last time but then an API token will be generated and stored in .clericrc.

Guard this token like you would a password! It allows the possessor full access to every public and private repo your account has access to! The advantage API tokens have over passwords is that they do not allow your account to be modified and can be revoked individually from GitHub's account management UI; Cleric's token will be named "Cleric (API)".

If you are uncomfortable with this level of risk, you can still enter your login and password with each invocation, which is the default behavior.

GitHub repo notifications to HipChat

The repo create command allows a new GitHub repo to (optionally) post notifications to a HipChat room. Rather than configure GitHub with the admin-level token used by Cleric itself, a separate Notification token should be used and configured in .clericrc as follows:

hipchat:
api_token: 1234567890abcdef1234567890abcdannouncement_room_id: 1234repo_api_token: abcdef1234567890abcdef12345678

Contributors

About

Administration tools for the lazy software development manager.

Topics

Resources

Stars

4 stars

Watchers

86 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
This repository was archived by the owner on Jun 3, 2020. It is now read-only.

Latest commit

History

76 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Cleric

Administration tools for the lazy software development manager.

Cleric automates the boring jobs a manager has to do when administrating accounts on GitHub, HipChat and other services used by teams. It provides commands such as:

  • Add a GitHub user to a team
  • Remove a GitHub user from an organization
  • Create a GitHub repo, assign it to a team and hook up repo notifications to HipChat all at once
  • Audit a local repo to ensure all commits are covered by pull requests

For any successful action, a configured HipChat room is notified, allowing other managers to see what's going on in your organization.

Cleric is intended to be extensible, so it should ultimately be possible to plug in other repo and chat services (assuming they have an adequate API) and provide other management notification mechanisms beyond HipChat.

While Cleric currently provides a command line interface, the design is intended to be reusable with other interfaces, e.g. a web UI.

Install

Cleric is available as a gem through GitHub, hence you'll need to add it to the Gemfile of an existing project or create a stub Gemfile to use it in isolation. Add the following line:

gem'cleric',git: 'git@github.com:mdsol/cleric.git'

Then run:

bundle install

This assumes you have Ruby (1.9+) and the bundler gem installed already!

To use the Cleric from the command line, run this command in the top directory for help:

[bundle exec] cleric help

Configure

Cleric is configured using the .clericrc YAML file in your home directory.

Management notifications

Management notification to a HipChat room is (currently) mandatory and requires the following settings in .clericrc:

hipchat:
api_token: 1234567890abcdef1234567890abcdannouncement_room_id: 1234

The api_token value should be an Admin token, to allow future commands to perform actions such as adding accounts. As the HipChat API does not provide a way to generate tokens, you will have to do this manually (once) through the "Group admin" web UI.

The announcement_room_id is the management notification chat room's id. In HipChat's chat web UI, this can be discovered by looking at the URL in the chat history page. In future, Cleric should allow room names to be used or provide a command to look up the id. Using an id does have the advantage of be resilient to the chat room being renamed.

GitHub authentication

By default, Cleric will prompt for your GitHub login and password on each invocation. You can avoid this be running the following command:

[bundle exec] cleric auth

You will be prompted for your login and password one last time but then an API token will be generated and stored in .clericrc.

Guard this token like you would a password! It allows the possessor full access to every public and private repo your account has access to! The advantage API tokens have over passwords is that they do not allow your account to be modified and can be revoked individually from GitHub's account management UI; Cleric's token will be named "Cleric (API)".

If you are uncomfortable with this level of risk, you can still enter your login and password with each invocation, which is the default behavior.

GitHub repo notifications to HipChat

The repo create command allows a new GitHub repo to (optionally) post notifications to a HipChat room. Rather than configure GitHub with the admin-level token used by Cleric itself, a separate Notification token should be used and configured in .clericrc as follows:

hipchat:
api_token: 1234567890abcdef1234567890abcdannouncement_room_id: 1234repo_api_token: abcdef1234567890abcdef12345678

Contributors

About

Administration tools for the lazy software development manager.

Topics

Resources

Stars

4 stars

Watchers

86 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
This repository was archived by the owner on Jun 3, 2020. It is now read-only.

Latest commit

History

76 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Cleric

Administration tools for the lazy software development manager.

Cleric automates the boring jobs a manager has to do when administrating accounts on GitHub, HipChat and other services used by teams. It provides commands such as:

  • Add a GitHub user to a team
  • Remove a GitHub user from an organization
  • Create a GitHub repo, assign it to a team and hook up repo notifications to HipChat all at once
  • Audit a local repo to ensure all commits are covered by pull requests

For any successful action, a configured HipChat room is notified, allowing other managers to see what's going on in your organization.

Cleric is intended to be extensible, so it should ultimately be possible to plug in other repo and chat services (assuming they have an adequate API) and provide other management notification mechanisms beyond HipChat.

While Cleric currently provides a command line interface, the design is intended to be reusable with other interfaces, e.g. a web UI.

Install

Cleric is available as a gem through GitHub, hence you'll need to add it to the Gemfile of an existing project or create a stub Gemfile to use it in isolation. Add the following line:

gem'cleric',git: 'git@github.com:mdsol/cleric.git'

Then run:

bundle install

This assumes you have Ruby (1.9+) and the bundler gem installed already!

To use the Cleric from the command line, run this command in the top directory for help:

[bundle exec] cleric help

Configure

Cleric is configured using the .clericrc YAML file in your home directory.

Management notifications

Management notification to a HipChat room is (currently) mandatory and requires the following settings in .clericrc:

hipchat:
api_token: 1234567890abcdef1234567890abcdannouncement_room_id: 1234

The api_token value should be an Admin token, to allow future commands to perform actions such as adding accounts. As the HipChat API does not provide a way to generate tokens, you will have to do this manually (once) through the "Group admin" web UI.

The announcement_room_id is the management notification chat room's id. In HipChat's chat web UI, this can be discovered by looking at the URL in the chat history page. In future, Cleric should allow room names to be used or provide a command to look up the id. Using an id does have the advantage of be resilient to the chat room being renamed.

GitHub authentication

By default, Cleric will prompt for your GitHub login and password on each invocation. You can avoid this be running the following command:

[bundle exec] cleric auth

You will be prompted for your login and password one last time but then an API token will be generated and stored in .clericrc.

Guard this token like you would a password! It allows the possessor full access to every public and private repo your account has access to! The advantage API tokens have over passwords is that they do not allow your account to be modified and can be revoked individually from GitHub's account management UI; Cleric's token will be named "Cleric (API)".

If you are uncomfortable with this level of risk, you can still enter your login and password with each invocation, which is the default behavior.

GitHub repo notifications to HipChat

The repo create command allows a new GitHub repo to (optionally) post notifications to a HipChat room. Rather than configure GitHub with the admin-level token used by Cleric itself, a separate Notification token should be used and configured in .clericrc as follows:

hipchat:
api_token: 1234567890abcdef1234567890abcdannouncement_room_id: 1234repo_api_token: abcdef1234567890abcdef12345678

Contributors

About

Administration tools for the lazy software development manager.

Topics

Resources

Stars

4 stars

Watchers

86 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content
This repository was archived by the owner on Jun 3, 2020. It is now read-only.

Latest commit

History

76 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Cleric

Administration tools for the lazy software development manager.

Cleric automates the boring jobs a manager has to do when administrating accounts on GitHub, HipChat and other services used by teams. It provides commands such as:

  • Add a GitHub user to a team
  • Remove a GitHub user from an organization
  • Create a GitHub repo, assign it to a team and hook up repo notifications to HipChat all at once
  • Audit a local repo to ensure all commits are covered by pull requests

For any successful action, a configured HipChat room is notified, allowing other managers to see what's going on in your organization.

Cleric is intended to be extensible, so it should ultimately be possible to plug in other repo and chat services (assuming they have an adequate API) and provide other management notification mechanisms beyond HipChat.

While Cleric currently provides a command line interface, the design is intended to be reusable with other interfaces, e.g. a web UI.

Install

Cleric is available as a gem through GitHub, hence you'll need to add it to the Gemfile of an existing project or create a stub Gemfile to use it in isolation. Add the following line:

gem'cleric',git: 'git@github.com:mdsol/cleric.git'

Then run:

bundle install

This assumes you have Ruby (1.9+) and the bundler gem installed already!

To use the Cleric from the command line, run this command in the top directory for help:

[bundle exec] cleric help

Configure

Cleric is configured using the .clericrc YAML file in your home directory.

Management notifications

Management notification to a HipChat room is (currently) mandatory and requires the following settings in .clericrc:

hipchat:
api_token: 1234567890abcdef1234567890abcdannouncement_room_id: 1234

The api_token value should be an Admin token, to allow future commands to perform actions such as adding accounts. As the HipChat API does not provide a way to generate tokens, you will have to do this manually (once) through the "Group admin" web UI.

The announcement_room_id is the management notification chat room's id. In HipChat's chat web UI, this can be discovered by looking at the URL in the chat history page. In future, Cleric should allow room names to be used or provide a command to look up the id. Using an id does have the advantage of be resilient to the chat room being renamed.

GitHub authentication

By default, Cleric will prompt for your GitHub login and password on each invocation. You can avoid this be running the following command:

[bundle exec] cleric auth

You will be prompted for your login and password one last time but then an API token will be generated and stored in .clericrc.

Guard this token like you would a password! It allows the possessor full access to every public and private repo your account has access to! The advantage API tokens have over passwords is that they do not allow your account to be modified and can be revoked individually from GitHub's account management UI; Cleric's token will be named "Cleric (API)".

If you are uncomfortable with this level of risk, you can still enter your login and password with each invocation, which is the default behavior.

GitHub repo notifications to HipChat

The repo create command allows a new GitHub repo to (optionally) post notifications to a HipChat room. Rather than configure GitHub with the admin-level token used by Cleric itself, a separate Notification token should be used and configured in .clericrc as follows:

hipchat:
api_token: 1234567890abcdef1234567890abcdannouncement_room_id: 1234repo_api_token: abcdef1234567890abcdef12345678

Contributors

About

Administration tools for the lazy software development manager.

Topics

Resources

Stars

4 stars

Watchers

86 watching

Forks

Releases

Packages

Used by

Contributors

Languages